UE5でVRM形式のモデルを使用するとパッケージ化した時のみエラーがでたり、そもそもリターゲットが難しかったりして苦労しました。
今回はそんな中で自作TPSオンラインゲームでのVRMのキャラクターの追加がようやくできたのでメモを残しておきます。
準備
VRM4Uをこちらからダウンロードする
・ダウンロードしたファイルを解凍して、プロジェクトファイルであるuprojectが置いてある場所と同じ所に置くこと。
・UE5を起動して編集→プラグインを選択してVRM4Uにチェックを入れてUE5を再起動する。
・VRMを入れておくためのフォルダを作成してそこにVRMをドラッグ&ドロップする。
リターゲット
リターゲットにはリターゲット元とリターゲット先のIKリグが必要でその2つのIKリグを使ってIKリターゲッタを作成しアニメーションのリターゲットを行う。
IKリグの作成
・コンテンツブラウザ内で右クリック→アニメーション→IKリグ→IKリグをクリックしてIKリグを作成する(これはリターゲット元のUE4マネキンのIKリグ)
・「新しいチェーンを追加する」で新しいチェーンを追加していく
この時にリターゲット元とリターゲット先のIKリグでチェーン名が同じになるように気を付けること
こちらはVRMをドラッグ&ドロップしたら自動的に生成されるIKリグ
IKリターゲッタの作成
・IKリグを2つ作成したら次に右クリック→アニメーション→IKリターゲッタを選んで最初のリターゲット元にUEのマネキンのIKリグを指定して、リターゲット先にVRMのIKリグを指定する。
・編集モードをクリックしてから、表示されている二つのモデルがなるべく同じポーズになるように調整する。
・チェーンマッピングタブでルートチェーン(Pelvis)を選択し、詳細タブでFKアドジャストメントのトランスレーションモードに"Globally Scaled"または"Absolute"を選択する。
この設定を行うことで、ルートボーンの移動量がリターゲットされるようになる。
リターゲットされたアニメーションをエクスポートする
・リターゲット元のアニメーションブループリント(ABP_BasePlayerChar)を右クリック→アニメーションアセットのリターゲッティング→アニメーションアセット/ブループリントを複製してリターゲッティングを選択する。
以上の手順で元のアニメーションブループリントがリターゲット先のモデルで使えるような形で複製されます。
アニメーションのリターゲットは以上でこれ以降は私自身のゲーム専用のキャラ追加の設定になります
データテーブルにリターゲットしたアニメーションをセットする
・DT_WeaponAnimsをコピーする
コピーしたデータテーブルにリターゲットしたアニメーションを設定する
・ブラウズマークを押すと設定しているファイルに飛べるのでそこで右クリック→アニメーションアセット/ブループリントを複製してリターゲッティングを選択する。
・リターゲットしたアニメーションを選択して←矢印を選択して新しいアニメーションを設定する
キャラクター用のBlueprintの作成
ゲームプレイ用のBlueprintの作成
・BP_BasePlayerCharRedをコピーしてSkeltalMeshAssetを新しいモデルに変更
・AnimationModeをUse AnimationBlueprintにしてリターゲット時に作成した新しいモデル用のAnimationblueprintに変更する
・Construction StructでDT_WeaponAnim変数に先ほど作ったデータテーブルを代入する
新しいモデルにソケットの追加をする
続いて武器を持たせるためにソケットを追加します
・Rootで右クリック→ソケットの追加してF2キーで名前をSpectatorSocketに変更
・右の腰のボーン右クリック→ソケットの追加してF2キーで名前をSecondaryWeaponHolsterSocketに変更
・Spineで右クリック→ソケットの追加してF2キーで名前をMeleeWeaponHolsterSocketに変更
・Spineで右クリック→ソケットの追加してF2キーで名前をPrimaryWeaponHolsterSocketに変更
・右手で右クリック→ソケットの追加してF2キーで名前をRightHandSocketに変更
以上でソケットの追加は完了です
アニメーションブループリントの修正
武器を持った時の左手の位置の調整
・EffectTargetに右手、Tip Boneに左手、Root Boneに左肩のボーン名を代入する。
・左のプレビューで左手の座標が調整できるので武器を持つのにちょうどいい位置に調整する。
この時にスタンディング、エイム、などそれぞれの状態によって位置が調整できるので必要に応じてする。
切り替え方法はアニメーションプレビューエディタのIs AimingやIs Pistolにチェックを入れると状態を変更できる。(ピストルの状態のFBRIKはないのでコピペして作る必要がある)
Layerd blend per boneの修正
・Layerd blend per boneのLayer Setupの中身を元のモデルと比較しながらボーン名を修正する
これを検索してすべてのLayerd blend per boneで行う
アニメーションブループリントの修正は以上です。
自キャラの当たり判定をつける
自キャラ用のBlueprintを開いて、左側のCapsule Componetを選択して、コリジョンプリセットのトレース応答のチェックボックスのブロックにチェックすると当たり判定が有効になる。
ここではVisibiltyにチェックを入れているがTrace By Channelと一致したものが当たるようになるので注意する。
パッケージ化する手順
ここまでの作業でエディタ上では新キャラを追加して実行できるようになりました。しかし、パッケージ化するとエラーが起きてしまうので、ここからはそれに対処する方法を説明します。
GItHubにログインして配布用
下のTagsから最初にダウンロードしたプラグインと日付と同じ物を選択する
・解凍したPluginsフォルダを元からあるPluginsフォルダに上書きする
・Plugins/VRM4U/Content/Utill/Actor/latestフォルダを削除する
・プラットフォーム→windows→プロジェクトをパッケージ化する
以上がリターゲットから新キャラの追加方法までの流れでした。