本日は Unity の小ネタ枠です。
UnityでGenericリグのキャラクターモデルのアニメーションを組み合わせる手順を記事にします。
Genericリグでキャラクターモデルのアニメーションを扱う方法は以下の前回記事を参考にしてください。
bluebirdofoz.hatenablog.com
UnityでGenericリグのキャラクターモデルのアニメーションを組み合わせる
Blenderでのアニメーション作成
Blenderで以下のような2つのアニメメーションを作成して組み合わせてみます。
・基本の立ちアニメーション
・尻尾を振るアニメーション
組み合わせる2つのアニメーションは同じステップ数である必要はありません。
尻尾を振るアニメーションは尻尾のみが動くアニメーションです。
今回は基本の立ちアニメーションに尻尾の部分のみ、尻尾を振るアニメーションを上書きして組み合わせます。
これらのアニメーションを持つ3Dモデルファイルを FBX 形式で出力します。
Unityへの取り込みとアニメーションコントローラの作成
Unity に出力した FBX ファイルを取り込みます。
Inspector ビューの[Animation]タブから作成したアニメーションが取り込まれていることを確認します。
アニメーションを組み合わせるためのアニメーションコントローラを作成します。
右クリックから[Create -> Animatior Controller]でアニメーションコントローラを作成できます。
作成したアニメーションコントローラを選択して[Animator]画面を開き、基本の立ちアニメーションを登録します。
ここに尻尾を振るアニメーションを重ね合わせてみます。
アニメーションマスクの作成
アニメーションの尻尾の部分のみを上書きするため、アバターマスクを作成します。
右クリックから[Create -> Avatar Mask]でアバターマスクを作成できます
作成したアバターマスクを選択して Inspector ビューを開きます。
今回は Generic リグのアバターをマスクするので、[Transform]パネルを開き、[Use skeleton from]をクリックします。
アバターを持つオブジェクトの一覧が表示されるので、取り込んだキャラクターモデルのアバターを選択します。
この状態で[Import skeleton]を実行すると、リグの構造が読み込まれます。
マスクで利用したいリグのみにチェックを付けるようにします。
今回は尻尾のアニメーションを反映させたいので、尻尾のリグのみを選択したアバターマスクにします。
[Expand All]で一旦全てのチェックを外します。
その後、尻尾の部分のリグを全てチェックします。
これで尻尾のリグのみをマスクするアバターマスクができました。
アニメーションコントローラのレイヤー作成
次にアニメーションを組み合わせるため、アニメーションコントローラにレイヤーを作成します。
[Animator]画面を開き、[Layers]タブの[+]ボタンをクリックします。
新規レイヤーが作成されるので、[歯車]アイコンをクリックしてレイヤーの設定を行います。
各設定項目の説明は以下の通りです。
Weight
アニメーションを適用する重み付けです。
0 ~ 1 が設定可能で、例えば Blending:Override で Weight:1 を設定した場合、アニメーションは完全に上書きされます。
Mask
アニメーションを反映するリグを指定するアバターマスクを設定します。
Blending
アニメーションの組合せの方法を指定できます。
Override の場合、他レイヤーのアニメーションを無視してアニメーションを上書きします。
Additive の場合、他レイヤーのアニメーションに加算される形でアニメーションを適用します。
Sync
ステートやトランジションを他のレイヤーと同期します。
同期するレイヤーは[Source Layer]で指定します。
Timing
有効な場合、同期されたレイヤーにあるアニメーションの長さを調整できるようになります。
組み合わせるアニメーションの長さが異なる場合、これにチェックを入れることで別々にアニメーションの長さを調整できます。
チェックを入れない場合、同期されたレイヤーのアニメーションの長さに合わせて組合せのアニメーションが再生されます。
IK Pass
IKパスを有効化します。
今回は以下の通り設定しました。
Weight:1.0 Mask:先程作成した尻尾用のアバターマスク Blending:Override Sync:True Timing:True Source Layer:Base Layer IK Pass:False
[Base Layer]で基本の立ちアニメーションを設定したパネルを選択して Inspector ビューを開きます。
[Motion]の項目に、尻尾を振るアニメーションを登録します。
これで2つのアニメーションが組み合わせることができました。
アニメーションコントローラをキャラクターモデルに設定して動作を確認します。
シーンを再生したとき、基本の立ちアニメーションと尻尾を振るアニメーションが組み合わさったアニメーションが再生されれば成功です。