Jetmanブログ

株式会社JETMANの中の人が、ゲームエンジンやUI/UX、クリエイターのキャリアデザインについて語ります。

UnrealEngine4でゲーム制作・Animation Retargetで自作モデルにBluemanのアニメを適用編

今回から新テーマとなります。

自作モデルをUE4のプレイアブルキャラにしたい

UE4にはプロジェクトテンプレートが多数用意されているので、今回はThird Personプロジェクトを利用します。Starter Contenctsに含まれるHeroTPP_Skelton(通称Blueman)のアニメーションを、Animation Retarget機能を使って、Mayaで作成したキャラクターモデルに割り当てたいと思います。

Maya上でボーンセットアップに関する注意点

ボーンの数(特に背骨と肩)とネーミングはUE4のドキュメントに従って合わせておいた方がスムーズにリターゲティング出来ます。下記のようにボーンを描きました。TスタンスでBind Skinする方が後々良いのですが、例のように足が開いた状態でBindされたモデルでもUE4上で調節可能です(後述)。

f:id:jetmanblog:20150205172017j:plain

上記をfbx形式で書き出します。UE4のコンテンツブラウザのインポートメニューを使ってfbxを読み込みます。関連するテクスチャもUE4のマテリアルとして変換されます。スペキュラやノーマルマップ等に関しては、UE4上で再度調整を行う必要があります。

f:id:jetmanblog:20150205172626j:plain

リグのリターゲット

コンテンツブラウザ右下の表示オプションで「エンジンコンテンツを表示」にチェックを入れます。次にリターゲットの元となる、Game/Charactorの中にある「HeroTPP_Skelton」アセットをダブルクリックで開きます。画面上部にあるRetarget Managerボタンを押し、開いたダイアログ内のSet up Rigの項目のSelect Rigで、Humanoid Rigを選択します。

f:id:jetmanblog:20150205174548j:plain

左上の保存ボタンをクリックして、ウィンドウを閉じます。

先程読み込んだfbxがあるフォルダで、xxxx_Skeltonアセットをダブルクリックで開きます。画面上部にあるRetarget Managerボタンを押し、開いたダイアログ内のSet up Rigの項目のSelect Rigで、Humanoid Rigを選択します。この時、Maya上でボーンの数・名前が、Humanoid Rigと同じになっていれば何もせずにリグが割り当てられます。

f:id:jetmanblog:20150205181406j:plain

 アニメーションのリターゲット

今回はThird Personプロジェクトに含まれるHeroTPPのアニメーションをそのまま利用します。Game/CharactorフォルダにあるHeroTPP_AnimBluePrintを右クリックし、「アニメーションブループリントをリターゲット」>「アニメーションブループリントとリターゲットを複製します」を選択します。

f:id:jetmanblog:20150205175635j:plain

 開いた「スケルトンを選択ダイアログ」の左列で、読み込んだfbxに該当するxxxx_Skeltonをクリックし(右のウィンドウにTスタンスが表示される)、選択ボタンを押します。

f:id:jetmanblog:20150205180152j:plain

xxxx_SkeltonがあるフォルダにHeroTPP_AnimBluePrint_Copyと、それに関連しているAnimationのコピーが出来上がります。

MyCharactorクラス内でのメッシュとアニメーションの置き換え

上記手順までの状態で再生ボタンを押しても、プレイヤーキャラクターとして表示されるのはBluemanのままです。リターゲットしたアニメーションとモデルを画面内に表示するにはクラスブループリントの書き換えが必要です。Game/BlueprintsフォルダにあるMyCharactorクラスをダブルクリックで開きます。開いたダイアログの右上でデフォルトを参照して下さい。Animationの項目にあるAnim Blueprint Generated ClassにHeroTPP_AnimBluePrint_Cpoyを選択、Meshの項目にあるSkeltal Meshにfbxで読み込んだxxxxを選択します。左上のコンパイルボタンを押してください。

f:id:jetmanblog:20150205183348j:plain

再生ボタンを押すとBluemanが自分のキャラクターに置き換わって操作出来ているはずです。

f:id:jetmanblog:20150205181325j:plain

リターゲット後のポーズがおかしい場合

基本的にTスタンスでないと回転角がずれてしまいます。今回の場合、足がハの字のため、よりガニ股になってしまいました。これを調整するには、fbxを読み込んだところにあるxxxx_Skeltonアセットをダブルクリックで開いてください。該当するボーンを回転してポーズを調整します。

f:id:jetmanblog:20150205181753j:plain

ポーズ調整が完了したら、Retarget Managerダイアログの右下のSave Poseボタンを押して、基本ポーズを登録し直します。

f:id:jetmanblog:20150205181924j:plain

キャラクターの大きさや接地がおかしい場合

再生時にキャラクターの大きさや接地がおかしい場合は、Game/BlueprintsフォルダにあるMyCharactorクラスをダブルクリックで開きます。開いたダイアログの右上でコンポーネントを参照して下さい。キャラクターの大きさ、位置、コリジョンの調整が行えます。

プロジェクトにないボーンアニメを加える場合

マーケットで購入したアニメーションや、Mayaアニメーションリギングツールで作成したアニメーションを追加使用する場合は、アニメーション個別にリターゲットの作業が必要になります。加えてBlueprintにも制御を記述する必要があります。この点につきましては、別途ご紹介しようと思います。

次回以降は、今回作成したキャラクターを活かして簡単な3Dアクションゲームに仕上げていきたいと思います。


株式会社ジェットマン|アプリ開発・UIデザイン

ゲーム領域|学科|宝塚大学 東京メディア・コンテンツ学部