ジェイのブログ

Unity,UnrealEngine,ゲーム制作,プログラミング,日記も書きます!

新キャラクターの追加方法のまとめ

こんにちは!ジェイです。

UnrealEngine5で開発中のTPSオンラインゲームでのVRMモデルを使った新しいキャラクターの追加方法のメモです。

まずは、VRM4Uが必要になるので以下からダウンロードします。

ruyo.github.io

次にuprojectのある階層に解凍するとPluginフォルダができる
UEエディタを起動して、ツールバーの編集→プラグインからVRM4Uを追加してUEエディタを再起動したら準備完了です。

VRMモデルを読み込む

まず、Contentフォルダ下にVRM/モデル名/Animationとなるようにフォルダを作成する。

モデル名の下にVRMモデルをドラッグ&ドロップするとモデルが生成される

ルートモーションに関する設定

Character/Heros/Mannequin/Animationsを開き検索窓からTurnと入力する
MF_Pistol_TurnLeft_90
MF_Pistol_TurnRight_90
MF_Pistol_TurnRight_180
MM_Pistol_Crouch_TurnLeft_90
MM_Pistol_Crouch_TurnRight_90
MM_Pistol_Crouch_TurnRight_180
の6つのアニメーションファイル(モンタージュではない)を選んでから、AssetAction→Bulk Edit Via Propaty Matrixを選択する
RootMotionのタブを開いて、EnableRootMotionとFoceRootLockのチェックを外す

リターゲットがすべて終わった後で、以上と同じ手順をして、EnableRootMotionとFoceRootLockのチェックを元に戻しておくこと。

AnimationBluePrintの作成

1.VRM/モデル名/Animationに右クリック→アニメーション→IKリグ→IKリターゲッタを選び、コピー元のIK_Mannequinを指定してIKリターゲッタを作成する

2.作成したリターゲッタを開き、右側のターゲットに追加したVRMモデルを選ぶ

3.左側から編集モードを選んでから、両方のモデルが同じポーズになるように調整する

4.Characters/ABP_Hero_Quinnで右クリック→アニメーションアセットのリターゲッティングを選んで、IKリターゲッタに1.で作成した物を選び、サフィックスにモデル名を入力して、フォルダにVRM/モデル名/Animationを指定してから、リターゲットをクリックするとAnimationBluePrintが作成される

アニメーションデータを作成しデータテーブルに代入する

CharacterInfo_TableとCharCustomisation_Tableに新しい行を追加して、新しいモデルの情報を入力する。ここでは、1つずつアニメーションを選んでリターゲッティングしながら代入していく。

次に同じ要領で、DT_WeaponAnims_QuinnをコピーしてQuinnの部分を新しいモデル名に変えて編集する。

MM_Rifle_Idle_ADSを最初にリターゲットしておくと複数被らないで済む。

CharacterInfo_Table

CharCustomisation_Table

DT_WeaponAnims_VRMモデル

新モデル用BluePrint作成

BP_Hero_Quinn_Blueをコピーして、新しいモデル名に変更して開いて編集する

1.Skeletal Mesh Assetを変更する予定のモデルを選ぶ

2.Anim Classを先程リターゲッティングで生成したアニメーションブループリントを選ぶ

3.Construction SctiptのSocket Nameなどを以下の様に編集する(Socket Nameはモデルデータ編集した時の名前と同じにすること)

新モデルデータ編集

Skeletal Mesh Assetのモデルデータを開いて、GrenadeSocketとSocketHolster_0(左腰)、SocketHolster_1(背中)、SocketHolster_2(背中)にソケットを追加する。

(Socket Nameはキャラクター用BluePrintを編集した時の名前と同じにすること)

新モデル用AnimationBluePrintの編集

先程リターゲットした時に生成されたAnimationBluePintを開いて、以下の部分を編集する。

キャラクター選択画面の編集

新しく追加したモデル用のボタンをコピーして作成する

次にボタンのOnClickからCharacterButtonPressedを呼び出す。

引数には先程作ったブループリントとキャラ名を指定

ロビーで使うモデルデータの編集

BP_MenuController>GetWeaponAnimsTableのswitch on Nameにモデル名を追加して、LclDataTableに先程編集したデーターテーブルを入れておく。