こんにちは!ジェイです。
今回は私の現在、開発中のTPSオンラインゲームでのVRMモデルのキャラクターの追加方法を書き残しておきます。
VRM4Uの導入
まずはこちらからVRM4Uをダウンロードします。
11月26日以降のものだと、プラグインの上書き作業などがなくっているので、なるべく新しいバージョンを入手しましょう。
UnrealEngineを開いてプラグインを有効にする
1.ダウンロードしてきたzipファイルを解凍するとPluginフォルダができる
2.Pluginフォルダを.uprojectファイルがある場所と同じ階層に置く
3.UEを開き編集→プラグインからVRM4Uにチェックを入れてエディタを再起動する
VRMモデルをインポートしてリターゲットする
1.フォルダ新規作成でVRM→キャラ名→Animationsという3つの階層のフォルダを作る
2.キャラ名の場所にVRMモデルをドラッグ&ドロップしてインポートする
3.リターゲット元のABPを右クリック→アニメーションアセットの李ターゲッティング→アニメーションアセット/ブループリントを複製して李ターゲッティングを選ぶ
4.すると以下のような画面が出るのでIKリターゲッタを設定してリターゲットする
プレフィックス
設定するとリターゲット後のファイル名の前にここで入力した名前が追加される
サフィックス
設定するとリターゲット後のファイル名の後にここで入力した名前が追加される
フォルダ
ここで設定した場所にリターゲット後のファイルが生成される
リターゲットで生成されたABPを編集する
物理演算を追加する
まずはリターゲットで生成されたABPを開きVRMSpringBornのノードを追加して、Vrm Meta Objectを設定する
Layerd blend per boneのボーン名を変更する
1.Layerd blend per boneノードで右クリック→リファレンスを検索
2.表示されるすべてのLayerd blend per boneノードのBone Nameを新しく追加したVRMモデルの物に変更する
※この作業をやらないと再生されないアニメーションがあるので注意
FABRIKのボーン名を変更する
1.リターゲット前のボーンが設定されているので以下の場所に新しく追加したVRMモデルのボーン名に変更する
2.FABRIKのノードを選択して左のプレビュー画面から手の位置をちょうどいい場所に設定する
3.同じように、右下のIsAimaingやIsPistolなどにチェックを入れてすべての状態で2の操作を行う
アニメーション用のデータテーブルを作成する
1.DT_Weapon_AnimsをCtrl+DでコピーしてDT_Weapon_Anims_追加するモデル名のように名付ける
2.武器ごとにアニメーションをリターゲットしつつ新たに設定しなおす
Blueprintを作成する
プレイヤー用
1.BP_BasePlayerCharの子ブループリントをコピーして開く
2.詳細からSkeltal Meshに追加したVRMのモデルを設定して、AnimClassにリターゲットして生成したアニメーションブループリントを設定する
3.マテリアルのエレメント0とエレメント1をSkeltalMeshを参考に本来のものに設定しなおす
4.Capsule ComponentのVisivilityのブロックにチェックする
5.Construction Scriptで先ほど作ったアニメーション用DTをDT_Weapon Animsにセットする
ロビー用
1.BP_Lobby_Characterの子ブループリントをCtrl+Dでコピーする
2.詳細からSkeltal Meshに追加したVRMのモデルを設定して、Anim to Playにリターゲットして生成したアニメーションを設定する
3.マテリアルのエレメント0とエレメント1をSkeltalMeshを参考に本来のものに設定しなおす
キャラクター選択時用のデータテーブルを設定する
DB_Charsを開いて行をコピーして新しいVRMモデルのデータを設定する
スケルトンにソケットを追加してプレビューアセットを追加する
・左腰のボーンに右クリック→ソケットを追加で、SecondaryWeaponHolsterSocketと名付けて、プレビューアセットを追加する→SK_Rfileを追加する。
・Spineのボーンに右クリック→ソケットを追加で、MeleeWeaponHolsterSocketと名付けて、プレビューアセットを追加する→SK_Swordを追加する。
・Spineのボーンに右クリック→ソケットを追加で、PrimaryWeaponHolsterSocketと名付けて、プレビューアセットを追加する→SK_Rfileを追加する。
・右手のボーンに右クリック→ソケットを追加で、RightHandSocketと名付けて、プレビューアセットを追加する→SK_Rfileを追加する。
すべて追加が終わったら、Use Specific Animationを選んで、Idle_Rfile_Hipアニメーションを選択すると以下のポーズになるので、RightHandSocketの位置を調整する