UnrealEngine4でゲーム制作・Animation Retargetで自作モデルにBluemanのアニメを適用編
今回から新テーマとなります。
自作モデルをUE4のプレイアブルキャラにしたい
UE4にはプロジェクトテンプレートが多数用意されているので、今回はThird Personプロジェクトを利用します。Starter Contenctsに含まれるHeroTPP_Skelton(通称Blueman)のアニメーションを、Animation Retarget機能を使って、Mayaで作成したキャラクターモデルに割り当てたいと思います。
Maya上でボーンセットアップに関する注意点
ボーンの数(特に背骨と肩)とネーミングはUE4のドキュメントに従って合わせておいた方がスムーズにリターゲティング出来ます。下記のようにボーンを描きました。TスタンスでBind Skinする方が後々良いのですが、例のように足が開いた状態でBindされたモデルでもUE4上で調節可能です(後述)。
上記をfbx形式で書き出します。UE4のコンテンツブラウザのインポートメニューを使ってfbxを読み込みます。関連するテクスチャもUE4のマテリアルとして変換されます。スペキュラやノーマルマップ等に関しては、UE4上で再度調整を行う必要があります。
リグのリターゲット
コンテンツブラウザ右下の表示オプションで「エンジンコンテンツを表示」にチェックを入れます。次にリターゲットの元となる、Game/Charactorの中にある「HeroTPP_Skelton」アセットをダブルクリックで開きます。画面上部にあるRetarget Managerボタンを押し、開いたダイアログ内のSet up Rigの項目のSelect Rigで、Humanoid Rigを選択します。
左上の保存ボタンをクリックして、ウィンドウを閉じます。
先程読み込んだfbxがあるフォルダで、xxxx_Skeltonアセットをダブルクリックで開きます。画面上部にあるRetarget Managerボタンを押し、開いたダイアログ内のSet up Rigの項目のSelect Rigで、Humanoid Rigを選択します。この時、Maya上でボーンの数・名前が、Humanoid Rigと同じになっていれば何もせずにリグが割り当てられます。
アニメーションのリターゲット
今回はThird Personプロジェクトに含まれるHeroTPPのアニメーションをそのまま利用します。Game/CharactorフォルダにあるHeroTPP_AnimBluePrintを右クリックし、「アニメーションブループリントをリターゲット」>「アニメーションブループリントとリターゲットを複製します」を選択します。
開いた「スケルトンを選択ダイアログ」の左列で、読み込んだfbxに該当するxxxx_Skeltonをクリックし(右のウィンドウにTスタンスが表示される)、選択ボタンを押します。
xxxx_SkeltonがあるフォルダにHeroTPP_AnimBluePrint_Copyと、それに関連しているAnimationのコピーが出来上がります。
MyCharactorクラス内でのメッシュとアニメーションの置き換え
上記手順までの状態で再生ボタンを押しても、プレイヤーキャラクターとして表示されるのはBluemanのままです。リターゲットしたアニメーションとモデルを画面内に表示するにはクラスブループリントの書き換えが必要です。Game/BlueprintsフォルダにあるMyCharactorクラスをダブルクリックで開きます。開いたダイアログの右上でデフォルトを参照して下さい。Animationの項目にあるAnim Blueprint Generated ClassにHeroTPP_AnimBluePrint_Cpoyを選択、Meshの項目にあるSkeltal Meshにfbxで読み込んだxxxxを選択します。左上のコンパイルボタンを押してください。
再生ボタンを押すとBluemanが自分のキャラクターに置き換わって操作出来ているはずです。
リターゲット後のポーズがおかしい場合
基本的にTスタンスでないと回転角がずれてしまいます。今回の場合、足がハの字のため、よりガニ股になってしまいました。これを調整するには、fbxを読み込んだところにあるxxxx_Skeltonアセットをダブルクリックで開いてください。該当するボーンを回転してポーズを調整します。
ポーズ調整が完了したら、Retarget Managerダイアログの右下のSave Poseボタンを押して、基本ポーズを登録し直します。
キャラクターの大きさや接地がおかしい場合
再生時にキャラクターの大きさや接地がおかしい場合は、Game/BlueprintsフォルダにあるMyCharactorクラスをダブルクリックで開きます。開いたダイアログの右上でコンポーネントを参照して下さい。キャラクターの大きさ、位置、コリジョンの調整が行えます。
プロジェクトにないボーンアニメを加える場合
マーケットで購入したアニメーションや、Mayaアニメーションリギングツールで作成したアニメーションを追加使用する場合は、アニメーション個別にリターゲットの作業が必要になります。加えてBlueprintにも制御を記述する必要があります。この点につきましては、別途ご紹介しようと思います。
次回以降は、今回作成したキャラクターを活かして簡単な3Dアクションゲームに仕上げていきたいと思います。