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 → UE でインポート・エクスポートをして正常に動作するかをまずチェックします。ここで設定を間違えるとメッシュが崩壊したり、アニメーションに上手く追従しなかったりします。
インポート・エクスポート操作手順
① 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くんが出現
② Blenderからキャラクターデータをファイルにエクスポートする
- Blenderに取り込んだSKM_Manny_RigをBlenderからエクスポートする。
- アーマチュアを選択しMannyくんのメッシュも選択
(順番が重要・逆に選択するとルートモーションがおかしくなりました。)
→ File → Export → FBX → 「 ExportFromBlender.fbx 」
という名前でエクスポート。 - 設定項目を正確に設定する。
●1 選択したオブジェクトにチェック → オブジェクトタイプをアーマチュアとメッシュのみの選択にする。
●2 ジオメトリ → スムース → Face(面)
●3 アーマチュア → リーフボーン追加のチェックを外す
●4 Armaturesの座標をプライマリボーン軸を-X Axis セカンダリボーン軸=Y Axis
→ エクスポート
②’ 新しく作ったキャラクターをファイルにエクスポートする
- アーマチュアを選択し新規自作したキャラクターのメッシュも選択
(順番が重要・逆に選択するとルートモーションがおかしくなりました。)
→ File → Export → FBX → 「 お好みのファイル名.fbx 」
という名前でエクスポート。 - 設定項目を正確に設定する。
●1 選択したオブジェクトにチェック → オブジェクトタイプをアーマチュアとメッシュのみの選択にする。
●2 ジオメトリ → スムース → Face(面)
●3 アーマチュア → リーフボーン追加のチェックを外す
●4 Armaturesの座標をプライマリボーン軸を-X Axis セカンダリボーン軸=Y Axis
→ エクスポート
③ Blenderで作ったキャラクターをUEに取り込む
- UnrealEngineでExportFromBlender.fbx(Blenderからエクスポートした自作のキャラクター.fbx)をインポートする。(スケルトンをSK_Mannequinを選択)
- サードパーソンテンプレートのスケルタルメッシュをExportFromBlender.fbx(Blenderからエクスポートした自作のキャラクター.fbx)に変更して正常に動作するかを確認する。
適当に設定するとバグる
●1(インポートした状態からすぐにエクスポートするとルートモーションがおかしくなりました。アーマチュアを選んでメッシュを選択してから手順4の方法でUEに取り込むとルートモーションがおかしいのは治りました。
●2 さらにアーマチュアの設定を行わずにエクスポートするとキャラクターのメッシュがぐちゃぐちゃになりました。ルートモーションは正常でアニメーションも正常に再生はされます。)
新しいEpic Skeltonのキャラクターを作る
手順① → ④ → ②’ → ③ の手順で新しいキャラクターを作ります。
④ Blenderで新しいキャラクターのモデルを作成してUEに取り込む
- ①のインポート手順を行い、マネキンのメッシュをBlenderで削除する
- リグに合わせて新しいメッシュ(オリジナルキャラクター)を作成
- メッシュを選んで次にボーンを選択 → Control + P → Set Parent To オプションから → With Automatic Weight(自動のウェイトで)を選択
- メッシュを選択 → 編集モード → Weight Paintモードでウェイトペンとされているか確認(青色になっているとウェイトが自動で設定された?)
- メッシュを選択 → 編集モードにする → Vertex GroupでIKとついているものはすべて登録を削除する(参考動画=7:34)
- アーマチュア → メッシュの順に選ぶ 手順②’(新しく作ったキャラクターをファイルにエクスポートする) 操作を行いエクスポートする。
- 手順③を行い、新しく作成したキャラクターで正常にアニメーションなどが動作するかをチェックする
- 問題なければ成功!
Rigの対応
スケルタルメッシュ ←→ スケルトン の対応を個々に書いておきます。UEにインポートするときに迷わないように。
- SKM_Manny ←→ SK_Mannequins
- SKM_Quinn ←→ SK_Mannequins
- SK_Mannequin(スケルタルメッシュ) ←→ UE4_Mannequin_Skeleton
間違ってたらすまん。
余談・サードパーソンテンプレートのアニメーションブループリントめっちゃ複雑。
ゼロからアニメーションブループリントを作成してキャラクターの動きを作ることも考えましたが、ABP_Mannyの中身を見てみると分かりますが初心者では理解不能なくらい複雑な処理が実装されています。
新しくステートを付け足すくらいなら簡単そうだったので、ABP_Mannyを改造する方法を選択しました。
またリターゲティングを挟むと一気に複雑になるので、今回直接キャラクターを変更する方法はないものか?といろいろ調べてみた次第です。
コメント