見出し画像

AvatarNPCのモーションを差し替えてみよう。【Mixamoを使って】

AvatarNPC開発者の黒鳥です。AvatarNPCが非常に話題になってもらえてとても喜んでおります!
今回はAvatarNPCで設定されているモーションを差し替えて、よりNPCを個性的にする方法を解説していきたいと思います。

【注意】AvatarNPCを導入して、自分のアバターなりをNPC化してワールドに導入できたところまで完了している前提で解説を進めます。そこまでの導入方法についてはこちらを参照してください。

モーションを調達しよう

モーションを差し替えるなら兎にも角にもまず差し替えるモーションが必要です。今回はMixamoのモーションを利用する方法で解説していきます。
MixamoはAdobeが提供する3Dキャラクター用のモーションサービスです。Adobeのアカウントを作成すれば無償で使うことができ、モーションデータの商用利用も可能なライセンスです。

Mixamo上にある女性の歩きモーションにNPCの歩行モーションを差し替えてみましょう。Mixamoにアクセスして「Female walk」で検索し、該当のモーションを見つけます。(ここは好きな歩行モーションでも結構です。)

「Female walk」というモーションを見つけよう

ここでモーションのプレビューがチェックできますが、このモーションはキャラクターの位置がどんどん前に進んでいくモーションです。このようなキャラクターの位置そのものが変化していくアニメーションをルートモーションと呼びます。AvatarNPCで使用するにはキャラクター自体の位置は変化せずにその場で足踏みをするモーションである必要があります。
モーションをその場で動かないようにするために、右のプロパティ欄から「In Place」というチェックボックスをオンにしましょう。

そうしたら「DOWNLOAD」ボタンを押します。以下の設定でダウンロードを行います。必ず確認するところとしては「Skin」が「With Skin」になっていることを確認しましょう。

ダウンロードしたモーションをUnityにインポートする

AvatarNPCが導入されているワールドプロジェクトを開き、先ほどダウンロードしたFemale Walk.fbxをインポートします。
読み込んだモーションのインポート設定を行っていきましょう。UnityのプロジェクトビューでFemale Walkを選択し、インスペクターからRigタブを開いて、AnimationTypeをHumanoidに設定してApplyを押します。
こうすることで他のアバターモデルでも利用可能なモーションとして設定されます。

AnimationTypeをHumanoidに変更

次に、Animationタブに移動します。このモーションはループアニメーションなのでLoop Timeをオンにします。
次に、Root Transform Rotation、Root Transform Position(Y)、Root Transform Position(XZ)のBake Into Poseをすべてオンにします。
また、Mixamoのモーションは標準で名前がmixamo.comとなってしまいわかりにくいのでモーションの名前も「Female Walk」としておきましょう。
設定が完了したらApplyを押します。

ちなみにBake Into Poseを選択しないと、他のキャラクターで使用したときに不自然なモーションになります。AvatarNPCではBake Into Poseのチェックを推奨しています。

モーションを差し替える

モーションを差し替えたいNPCのアニメーターコントローラーを選択します。EasySetupToolで作成した場合は、一つ下のアバターモデルのAnimatorにコントローラーが設定されているのでこちらを見つけます。

今回は歩行モーションを変更するのでIDLEというステートを選択して、その中のBlendTreeをダブルクリックしてアクセスします。

BlendTreeのWalkモーションをインポートしたFemale Walkに置き換えましょう。

これで歩行モーションを差し替えることができました。再生ボタンなどを押してチェックしましょう。

まとめ

Mixamoのモーションをダウンロードして、AvatarNPCのモーションを置き換える方法について解説しました。この手順はMixamo以外のモーションを使って差し替える場合にも役に立つと思います!
キャラクターごとにモーションを差し替えるとキャラクターがより個性的になってオススメです。個性的なNPCを皆様が構築していただくのを楽しみにしております。お疲れ様でした!

この記事が気に入ったらサポートをしてみませんか?