Unreal Engineのサードパーソンテンプレートのキャラクターを直接変更して、既存のアニメーションブループリントで差し替えたキャラクターを動くようにする方法を調べていきます。アニメーションブループリントの改造をやりやすく、キャラクターの構造をシンプルにすることを目的にします。
前提知識・やりたいこと
UEではEpic Skeltonが基本リグ構造
UnityではHumanoid、UnrealEngineではEpic Skeltonと呼ばれるリグ構造が基本になっています。異なるリグ構造でもリターゲティングというUnrealEngineの機能を使えばEpic Skeltonではないリグ構造のキャラクターも動かすことが出来ますが、ややブループリントとアニメーションブループリント周りの設定が複雑になります。
一応リターゲティング方法の解説動画も自前で出してます。
動画を見てもらう通り、手順も複雑で、構造も複雑になり、より高度な改造をしていくに当たってどんどん煩雑になり、最終的に訳が分からなくなり改造を完成させられる可能性が低くなります。
直接スケルタルメッシュを変更して元のABP_Mannyを改造したい。
今回ではサードパーソンテンプレートを基本としてキャラクターをマニー君からオリジナルのロボットに変更して、操作方法、アニメーションブループリントを改造して行きたいと考えています。そこでリターゲティングをするとどうしてもよくわからなくなったり、意図したとおりにアニメーションが動いてくれない場合が起こります。
そのため、リターゲティングではなく、直接マニー君のスケルタルメッシュを差し替えて、アニメーションブループリントはABP_Mannyを改造するようにすればシンプルな構造で改造することが出来ます。さらにアニメーションも意図したとおりに動いてくれるはずです。
アニメーションの追加も市販されているものを直接使える(かも)などメリットも多くありそうです。
Epic Skeltonのキャラクターを作る方法
参考動画
時間があれば手順と失敗例紹介動画を作りたい
動画ができて忘れてなければここに貼り付けます。
実際にやってみる
動画内ではUE4の SK_Mannequinスケルタルメッシュ、UE4_Mannequin_Skeltonで行っていますが、今回はUE5の SKM_Mannyスケルタルメッシュ、SK_Mannequinでやっています。
手順もUE5の方法で記載しています。
UEからBlenderにキャラクターをインポートする
- サードパーソンテンプレートのSK_Many(スケルタルメッシュファイル)を右クリック → Asset Actions → Export → ファイルをFBXで保存 → 名前を「 SKM_Manny_Rig 」にする(動画内では「 UE4Rig.FBX 」)
- UEのFBX Export Optionsで、Level Of DetailとCollisionのチェックを外す → Export
- BlenderでSKM_Manny_Rigをインポートする。
→ (オプションは右側に表示される。Blender2.83)
Armaturesの座標を プライマリボーン軸=-XAxis、セカンダリボーン軸=Y Axisへ変更 → メッシュ付きのMannyくんが出現
●1(インポートした状態からすぐにエクスポートするとルートモーションがおかしくなりました。アーマチュアを選んでメッシュを選択してから手順4の方法でUEに取り込むとルートモーションがおかしいのは治りました。
●2 さらにアーマチュアの設定を行わずにエクスポートするとキャラクターのメッシュがぐちゃぐちゃになりました。ルートモーションは正常でアニメーションも正常に再生はされます。)
BlenderからUEへエクスポートしてUEに取り込む(確認)
- Blenderに取り込んだSKM_Manny_RigをBlenderからエクスポートする。(エクスポートして正常にUEで動くかまず確認) → アーマチュアを選択しMannyくんのメッシュも選択(順番が重要・逆に選択するとルートモーションがおかしくなりました。) → File → Export → FBX → 「 ExportFromBlender.fbx 」という名前でエクスポート。
●1 選択したオブジェクトにチェック → オブジェクトタイプをアーマチュアとメッシュのみの選択にする。
●2 ジオメトリ → スムース → Face(面)
●3 アーマチュア → リーフボーン追加のチェックを外す
●4 Armaturesの座標をプライマリボーン軸を-X Axis セカンダリボーン軸=Y Axis
→ エクスポート - UnrealEngineでExportFromBlender.fbxをインポートする。(スケルトンをSK_Mannequinを選択)
- サードパーソンテンプレートのスケルタルメッシュをExportFromBlender.fbxに変更して正常に動作するかを確認する。
Blenderで新しいキャラクターのモデルを作成してUEに取り込む
- マネキンのメッシュをBlenderで削除する
- リグに合わせて新しいメッシュ(オリジナルキャラクター)を作成
- メッシュを選んで次にボーンを選択 → Control + P → Set Parent To オプションから → With Automatic Weight(自動のウェイトで)を選択
- メッシュを選択 → 編集モード → Weight Paintモードでウェイトペンとされているか確認(青色になっているとウェイトが自動で設定された?)
- メッシュを選択 → 編集モードにする → Vertex GroupでIKとついているものはすべて登録を削除する(参考動画=7:34)
- アーマチュア → メッシュの順に選ぶ 手順4(BlenderからUEへエクスポートしてUEに取り込む(確認))と同様に操作を行いエクスポートする。
- 手順5(インポート)、6(スケルタルメッシュの設定)を同様に行い、新しく作成したキャラクターで正常にアニメーションなどが動作するかをチェックする
- 問題なければ成功!
Rigの対応
スケルタルメッシュ ←→ スケルトン の対応を個々に書いておきます。UEにインポートするときに迷わないように。
- SKM_Manny ←→ SK_Mannequins
- SKM_Quinn ←→ SK_Mannequins
- SK_Mannequin(スケルタルメッシュ) ←→ UE4_Mannequin_Skeleton
間違ってたらすまん。
余談・サードパーソンテンプレートのアニメーションブループリントめっちゃ複雑。
ゼロからアニメーションブループリントを作成してキャラクターの動きを作ることも考えましたが、ABP_Mannyの中身を見てみると分かりますが初心者では理解不能なくらい複雑な処理が実装されています。
新しくステートを付け足すくらいなら簡単そうだったので、ABP_Mannyを改造する方法を選択しました。
またリターゲティングを挟むと一気に複雑になるので、今回直接キャラクターを変更する方法はないものか?といろいろ調べてみた次第です。
コメント