見出し画像

【UE5】Mannyのコントロールリグでつけたモーションを自作モデルに流用する

※こちらは学習目的のコンテスト『第5回UE5ぷちコン 映像編』に参加した際に執筆した個人的な備忘録になります。ご参考にされる際は自己責任でお願い致します。

解説内容

”コントロールリグでモーションを付けたい!”
”でもコントロールリグを自作キャラに組み込んでいる時間がない!”
(やり方分からない&刻々と迫る〆切…)
”そうだUE5標準装備のMannyさんのコントロールリグでモーションを付けて、IKリターゲッタで自作キャラ用にコンバートしよう!”

ということをやったメモになります✍

これが一般的な方法なのか、別に良い方法がないのか…というのはわかりませんが、一応メモとして残しておきます。

以下の流れで解説しています。
[シーケンサー]Mannyさんコントロールリグでアニメーションを付ける
アニメーションシーケンスとして書き出す
自作キャラ用にコンバートしたアニメーションシーケンスを作成する
[シーケンサー]自作キャラでアニメーションシーケンスを再生する

メリット

自分でコントロールリグを組まなくてもUE5上でコントロールリグを使用しアニメーションを作成できる
UE5上のシーンでモーションをつけられるので、DCCツールとの行き来が減る

デメリット

Mannyさんと自作キャラで体格差があると完成をイメージしづらい
一度作成したアニメーションシーケンスの修正が少し手間が掛かる

補足

結果的に自分の場合は動画作成で活用して無事に画を出すことには成功しましたが、モーションの微調整などは都度リターゲットが挟まるため面倒でした。

動画制作などでUE5上で動きをつける必要があり、かつ少量のモーションでコントロールリグを組むほどでもない場合など限定的な使用になりそうな所感です。



自作キャラモデルのセットアップ

まずは前準備として自作キャラモデルにIKリグ・IKリターゲッタを仕込んでおきます。
方法は過去にこちらで解説しています。

自作キャラモデルのスケルタルメッシュを元に”IKリグ”、”IKリターゲッタ”が作成された状態

IKリグ・IKリターゲッタを作成することで、他のスケルトンで作成されたアニメーションを流用できるようになります。


Mannyさんのコントロールリグを使用してアニメーションを付ける

レベルシーケンサーを使用してMannyさんのコントロールリグでつけたアニメーションをアニメーションシーケンスに書き出していきます。

レベルシーケンス追加

3Dビュー上のカチンコアイコンから、”レベルシーケンスを追加”を選択

例は適当なテストレベルです

ウィンドウが立ち上がるので、新規シーケンサーをわかりやすいフォルダに名前をつけて保存します。

上のカチンコアイコンから作成したシーケンサーを開きます。


Mannyさんのコントロールリグをレベル上に配置

ThirdPersonテンプレートを使用してプロジェクト作成した場合、コンテンツフォルダ内の以下の場所にMannyさんのコントロールリグが格納されています。
Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset

ない場合はコンテンツブラウザ左上の”+追加”からThirdPersonを追加することができます。


コンテンツブラウザからドラッグ&ドロップでレベルに配置します。

(※初期位置はリグではなく、メッシュの方のトランスフォームで調整した方が良いと思います。リグで初期位置調整したらキャラを配置した時に位置合わせが面倒でした。)

コントロールリグをレベルに配置すると自動的にレベルシーケンサーに読み込んでくれるようです。
自動で読み込まれなかったらアウトライナからシーケンサーにドラッグ&ドロップします。

シーケンサーにCR_Mannequin_Bodyが追加される


Tips: IK/FKを切り替える

シーケンサーの項目の中にIK/FKスイッチがあります。チェックオンオフで切り替えることができます。
CR_Mannepuin_Body
>global_ctrl 
 >arm_l_fk_ik_switch
  leg_l_fk_ik_switch
  arm_r_fk_ik_switch
  leg_r_fk_ik_switch


キーを打ってアニメーションを作成

リグを動かしてアニメーションを付けていきます。
左の”アニメーションタブ”内、”リグコントロールのみを選択”にチェックオンでリグのみ選択できるようになるようです。背景の誤選択を減らしたい場合に便利そうです。

アニメーションを付ける
アニメーション完成


リンクされたアニメーションシーケンスを作成

アニメーションが出来上がったら、アニメーションシーケンスとして書き出しを行います。
[シーケンサー]CR_Mannequin_Body 右クリックメニュー >リンクされたアニメーションシーケンスを作成


新規ウィンドウが立ち上がるので、わかりやすい名前をつけて保存します。
例では”MM_Test01”としました。

アニメーションシーケンスオプション ウィンドウが立ち上がります。
例では初期設定で書き出しました。

コンテンツフォルダ内の指定した場所にアニメーションシーケンスファイルが書き出されました。


自作キャラクターモデル用のアニメーションシーケンスにコンバートする

作成したアニメーションシーケンス”MM_Test01”右クリックメニュー
>アニメーションのリターゲッティング >アニメーション アセット/ブループリントを複製してリターゲティング


ウィンドウが立ち上がるのでIKリターゲッタの欄に自作キャラのIKリターゲッタを設定します。
するとソーススケルタルメッシュとターゲットスケルタルメッシュにMannyさんと自作キャラクターが現れます。

もし書き出し先のフォルダを指定したい場合は、”フォルダ”の右の変更ボタンで設定が可能です。

リターゲットを実行すると指定したフォルダにアニメーションシーケンスが作成されました。


自作キャラクターでアニメーションを再生する

自作キャラモデル用にコンバートしたアニメーションシーケンス”MM_Test02”をレベルにドラッグ&ドロップします。(キャラクターのスケルタルメッシュでも可)

メッシュを選択してトランスフォームのコピーなどでMannyさんと位置を合わせます。


自作キャラクターをアウトライナからシーケンサーにドラッグ&ドロップで読み込みます


[シーケンサー]MM_Test02(キャラクターモデル名) >アニメーション + >MM_Test02

するとアニメーション欄にバーが現れます。
このバーは掴んで任意の場所に移動させることができます。
再生を押すと、バーが始まったところから先程つけたアニメーションが再生されます。


Mannyさんを非表示にする

Mannyさんが不要であればアウトライナ上の非表示に加え、
CR_Mannequin_Body 選択 >詳細タブ >Actor Hidden InGame(PIE実行時非表示) / Hidden In Scene Capture(レンダリング時非表示)
に設定することで、本番環境に映り込まないようにできます。
(自分は念のため削除せずに残してます)


モーションを修正する

Mannyさんのコントロールリグのポーズを変えてみます。
また、書き出し時間もポーズの長さに合わせたいので、赤いフレームの位置をアニメーションの終わりのフレームに移動します。

シーケンサーの保存マークで変更を保存します。


シーケンサーを保存すると、アニメーションシーケンス”MM_Test01”のポーズが新しいものに差し替わります。
”リンクされたアニメーションシーケンスを作成”で作成したので、変更が反映されるようになっているようです。

しかし、自作キャラクターの方のアニメーションシーケンスは変更は反映されていません。

ポーズが違う

そのためリターゲティングをやり直し、アニメーションを”MM_Test03”として追加してシーケンサー上のアニメーションを差し替える必要があります。
(この辺りもっとスマートなやり方があったら教えてください…🙇‍♂)

無事、新しいポーズに一致させて、バーの尺も0~30フレームの長さになりました。

修正の一連の流れは以上になります。

関連記事

アニメーションシーケンスに表情を付ける方法はこちらの記事で解説しています。(事前にDCCツールでブレンドシェイプをFBXに仕込んでおく必要があります)



参考資料

主にこちらの動画の解説を参考にさせて頂きました。

【UE4/UE5ゲーム制作講座】ControlRigとシーケンサーを使ってアニメーションシーケンスを作ってみよう/九里江めいく【ゲーム制作VTuber UE4・UE5初心者向け講座】様


いいなと思ったら応援しよう!