Unity(ゲーム制作)

【Unity】Humanoidのアニメーションを部分的に動かす方法

Unity-Humanoidのアニメーションを部分的に動かす方法アイキャッチ画像

こんにちは。ラルトン(@raruton_blog)です。

Unityの3Dゲームを作っているときに、「手だけは別の動きをして欲しいな」などと思ったことはないでしょうか。

例えば、歩いているアニメーションをしているときに、手だけは銃を撃つアニメーションをしているなどです。

今回は、このような体の一部分だけ別の動きをさせる方法を紹介します。

やりたいこと

今回は走っているアニメーション魔法を放っているようなアニメーションを使って実装してみたいと思います。

UnityChanが走っているアニメーションUnityChanが走っているアニメーション
UnityChanが魔法を放っているアニメーションUnityChanが魔法を放っているアニメーション

 

下半身は走っているアニメーション、上半身は魔法を放っているアニメーションを使って、走りながら魔法を放っている動きを作ろうと思います。

UnityChanが走りながら魔法を放っているアニメーション完成図

作成手順

アバターマスクの作成

まずは、アバターマスクを作成します。

Projectウィンドウで

Create > Avatar Mask

でアバターマスクを作成します。

Unity-アバターマスクの作成

今回は上半身だけ魔法を放っているアニメーションにしたいので、名前を”UnityChanUpper”としました。

そして、UnityChanUpperのInspectorウィンドウのHumanoidを以下の様に、動いてほしい部分だけ緑色にします。

Unity-アバターマスクの設定

これで、アバターマスクは完了です。

アニメーターコントローラーで新しいレイヤーを作成する

続いて、Animator Controllerを開きます。

Animator Controllerが開けたら、

左上にあるLayersを選んで、+ボタンを押して、新しいレイヤーを作成します。

名前は”Upper Layer”としました。

Unity-アニメーターで新しいレイヤーの追加

続いて、Upper Layerの歯車マークを押して、

Weightを1に、Maskは先ほど作成したアバターマスク(UnityChanUpper)を選択します。

そして、BlendingをOverrideにします。

Unity-アニメーターで新しいレイヤーの設定

アニメーションをセットする

最後にアニメーションを各レイヤーにセットしていきます。

まず、Base Layerには走っているアニメーションを設定します。

Unity-ベースレイヤーのアニメーションを設定する

続いて、Upper Layerには魔法を放っているアニメーションを設定します。

Unityアッパーレイヤーのアニメーションを設定する

もし、条件付きでアニメーションを遷移させたい場合は、Base LayerUpper Layerとで、同じ条件でアニメーションを切り替わるようにすれば大丈夫です。

これでで完成です!

UnityChanが走りながら魔法を放っているアニメーション

まとめ

いかがだったでしょうか。

今回の記事では、体の一部分だけ別のアニメーションをさせる方法について紹介しました。

今回使ったアニメーションは全て、Mixamoというサイトから持ってきました。

今回使用したアニメーション以外にも、豊富なアニメーションが無料で使用できるので、気になった方はアクセスしてみてください。

 

© Unity Technologies Japan/UCL