Chapter 23

MixamoからUE5(UE4)へアニメーションをリターゲットして使用する方法

daichi_gamedev
daichi_gamedev
2021.11.15に更新

※UE4でも同じやり方です。

https://www.youtube.com/watch?v=TueNMdAOlcY
動画でも紹介しています↑

MixamoのアニメーションをUEに追加して使用するまでの手順

今回はMixamoからアニメーションをUE5に持ってくる方法を紹介します。UE4でも同じようにできます。

①まずはMixamoにログイン

②今回は例としてWalkingアニメーションを追加します。左上でwalkと検索してwalkingをクリック。


右の設定項目はOverdrive(速さ)、cahracterarmspace(腕の位置調整)、Trim(トリミング)、Mirror(反転させるかどうか)、InPlace(その場にとどまるかどうか)を選択できます。

③InPlaceにチェックを入れて、Download


以下の画面が出てきます。設定項目はFormat(形式)、Skin(スキンを一緒にダウンロードするかどうか)、Frams per second(フレーム数)、key frame reduction(キーフレームの削減)があります。基本的にデフォルトのままダウンロードします。

④そのままの設定でダウンロード

⑤UEを開いてドラッグ&ドロップで追加

⑥AnimationのImportAnimationsにチェックしてImport

二つ目以降のMixamoのアニメーションを追加する場合のImport設定

既存のスケルタルメッシュを使用するので、MeshのImportMeshのチェックを外しましょう。

他の設定はデフォルトのままで問題ないです。インポートされました↓

⑦スケルタルメッシュを開く

ダウンロードされた中からスケルタルメッシュを開きます。

ではここからはリターゲットといってアニメーションを違うモデルでも再生できるようにします。

⑧右上の設定からSkeltonを選択して、中央上のRetargetManagerを開く

⑨SelectRigからSelectHumanoidRigを選択

⑩ボーンを割り当てる

AutoMapで名前から自動で割り当てる事もできるのですが、基本正しく適用されないのでこの機能は使わない事を強くおすすめします!今回は以下の画像のようにボーンを手動で割り当てるか、既にこちらで用意したボーンマッピングデータを使用して割り当ててください。

今回は行いませんが、指先など全てのリグにアニメーションを適用させたい場合はshow advancedから他の全てのリグを設定する必要があります。ちなみにAutoMapをクリックしてしまうとshowadvanceのリグも設定されてしまうので注意。

Show Advancedで全てのリグを設定する方法(必須ではありません)

showadvancedを開いて、また同じように設定していきます。

以下の設定にします。

これで全てのリグが適用されました。

設定したRigを保存して他のプロジェクトで使用する方法

この方法でもう二度とボーンを割り当てるめんどくさい作業をする必要がなくなります。
RigからSaveをクリックして適当な場所に保存。

その後、新しくフォルダを作成してその中にBoneMappingを入れる。

右クリックでMigrate(移行)を選択して他のプロジェクトに移す。

他のプロジェクトを開いてボーンを割り当てるLoadをクリックしてBoneMappingを選択

適用されました。

ここにMixamo用のボーンマッピングのデータを用意したので、これをダウンロードして適用した方が楽なのでおすすめ↓

https://drive.google.com/drive/u/0/folders/1L7uc5FOUUT6dFrIAnLyvF7CC0D8AmfdB
Mixamo用のボーンマッピングのデータ適用方法

ここにボーンマッピングのデータを用意したので、これをダウンロードして適用します。
https://drive.google.com/drive/u/0/folders/1L7uc5FOUUT6dFrIAnLyvF7CC0D8AmfdB

bonemappingallをダウンロードします。

ダウンロードしたら、エクスプローラーでこのファイルをコピーしてエクスプローラーでそのプロジェクトのContent以下のフォルダにペーストします。

UE5のリターゲットマネージャーに戻ってloadから選択します。

これで全てのボーンが正しく適用されました。

⑪グレイマンのスケルタルメッシュを開いてボーンを割り当てる

グレイマンのスケルタルメッシュはデフォルトでは以下にあります。

スケルタルメッシュを開いて、先ほどと同じようにSelctRigからHumanoidを選択します。先ほどと違って、グレイマンはデフォルトで名前が全て一致しているので自動的に全てのボーンが割り当てられます。

⑪グレイマンのポーズをTポーズにする

アニメーションが元々ついているモデルと、アニメーションを追加したいモデルの両方のポーズを一緒にします。Tポーズにするのですが、既にMixamoのモデルはTポーズになっています↓

なので、今回グレイマンのAポーズをTポーズに直します。ここは正確にTポーズにした方がアニメーションも正確になりますが今回は簡単にTポーズにします。
腕の角度を50度変えます。角度はざっくりで構いません。

次は上から見つつ腕がまっすぐになるように30度曲げます。

最終的にグレイマンのポーズはこんな感じ。Mixamoのモデルのポーズに近くなりました。余裕がある方は足の角度や指先の角度を調整してさらに下のMixamoのモデルのTポーズによせてください。


では保存しましょう。

⑫ModifyPoseからUseCurrentPoseで保存

⑬Mixamoのスケルタルメッシュを開いてPreview Meshからスケルタルメッシュを選択

⑭ApplyToAssetをクリック


Saveも忘れずにしましょう。

⑬ダウンロードしたアニメーションから右クリックでリターゲット設定を開く

右クリックでRetarget Anim Blueprint > Duplicate Anim Blueprint and retargetを選択します。

リターゲット画面が開きました。

⑭スケルトンを選択して、Retargetをクリック


これでアニメーションを使えるようになりました。


Tポーズが甘かったのと指先までリグを設定していないのでv若干違和感がありますが、これでアニメーションを追加できるようになりました。

アニメーションがおかしい場合


アニメーションがおかしくなる場合はリグの設定を間違えてたり、Tポーズになっていなかったりします。もう一度確認して直した後、リターゲットしましょう。

ポーズはViewposeをクリックすると設定したポーズを確認できます。

記事は以上です。大変でしたがお疲れ様でした😣

実際にゲーム内で再生させる方法

必須ではありませんが、試したい方は以下からどうぞ
①リターゲットして作成したアニメーションから右クリック > Create > Create Anim montageで新たにモンタージュと呼ばれるアニメーションを作成。


②グレイマンのブループリントを開いて以下のノードを作成して、PlayAnimMontageのAnimMontageに先ほど作成したモンタージュのアニメーションを選択、コンパイル

③アニメーションBPを開く

④AnimGrafを開く

⑤以下のように中間にslot defaultslotを追加して繋げる

⑥完成


著者コメント
最初は結構大変ですよね手順が意外にも多くて。次からはMixamoのアニメーションを使用した時は必ず設定したリグを保存して使い回すようにしましょう!

参考動画