見出し画像

UnrealEgine5.3でVRMを動かす!

今回はUnrealEngine初学者の自分のために備忘録としてUEのThirdPersonサンプルのキャラを自作のVRMモデルに変更するというのをやっていきます。

UE5のThirdPersonサンプルイメージ

ThirdPersonサンプルは3人称視点でプレイヤーキャラであるマネキン人形を動かせるという内容になっていますが、このマネキン人形を変更する流れをこれから解説していきます。

■VRM4U

これはUnrealEngineで動作する、VRMファイルのインポーターです。
こちらのサイトから入手できます。

セットアップ方法は同サイトのこちらのページで説明があります。

こちらでも軽く説明をしますが、入手したプラグインはプロジェクト内に置きます。例えばプロジェクト名が「MyGame」である場合は以下のようにPluginsフォルダを作成し、その中にプラグインデータをコピーします。

-MyGame
  -MyGame.uproject
  -Config
  -Content
  -Plugins
    -VRM4U
      -VRM4U.uplugin
      - :

そしてプラグインを認識する為にUEを一度再起動します。

次にUE上部メニュー「Edit」->「Plugin」を選びPluginsウィンドウを開くと、一覧に先ほど追加したVRM4Uが表示されるので左側のチェックボックスをONにします。すると再起動するよう促されるので右下のボタンを押して再起動します。


■VRoidStudio

VRMモデルはVRoidStudioというツールを使用する事で簡単に作成する事ができます。

https://vroid.com/studio

画面はこんな感じで、パーツを選択したりスライドバーを調整するだけで作れます。

うちの看板娘「森永さん」もこの通り作れちゃう!

VRMにエクスポートする際はこんな画面がでます。

タイトルと作者名は必須なので入力します。それとフォーマットはVRM0.0とVRM1.0の2つが選べますが、VRM4Uでは0.0の方が動作が安定するようですのでこちらを選びます。
(公式サイトによれば1.0も随時対応中との事です)

さて、作成したvrmデータはUEのコンテントブラウザーにドラッグする事でインポートが開始されます。

Material Typeはデフォルトで「Auto(MToon Unlit)」になってます。Unlitなのでライティングしないのですが、お好みでMToon Litに変える事ができます。

また「No physics asset」にはチェックを入れておいてください。これは後ほどVRM4Uの機能で揺れ骨を揺らすのに必要になります。

■マネキンをVRMに置き換える

まずはマネキンのブループリント「BP_ThirdPersonCharacter」を複製し、それをベースにして新しいキャラを作っていきます。

「BP_ThirdPersonCharacter」はThirdPerson -> Blueprints の
中にありますが「BP_」で検索すると早いです

そして作成した「BP_XXXX」をダブルクリックし、Mesh -> Skeletal Mesh Asset をVRM4Uでインポートしたモデルに変え、Compileします。

次に上部メニューの「Window」->「World Settings」を呼び出し「Game Mode」->「Default Pawn Class」に先ほどの「BP_XXXX」を割り当てます。

こうするとゲームを始めた時にプレイヤーキャラが「BP_XXXX」になります。ゲームエンジン自体がプレイヤーキャラを機能として持っているのはUnityとは違うところですね。

ゲーム画面。一応移動やジャンプはするけど
アニメーション設定をしていないのでTポーズのまま…

■アニメーションを再利用する

今度はマネキン人形のアニメーションをVRMモデル側で使えるように再利用します。UEではこれをリターゲットと呼んでます。

リターゲットの方法はいくつかありますが、VRM4Uを使う上では「IKリターゲッティング」を使うのが1つの方法です。

まず「IK Retargeter」というアセットを作成します。コンテントブラウザーで右クリックをし「Animation」->「Retargeting」->「IK Retargeter」を選びます。(名前は分かりやすいものを付けます)

そしてDetailsのSourceIKRig Assetにコピーされる側(つまりマネキン人形)のIK_Manequinを選び、Target IKRig Assetにはコピーする側(IK_XXXX_Manequin)を選びます。そして位置を調整するとこんな表示になります。

コピーされる側がAポーズ、する側がTポーズになってるのが分かると思います。このままリターゲットをするとうまいかないので、する側のポーズをAポーズに変えます。

画面左上の「Create」ボタンを押し、Import from Pose Assetを選んで…

POSE_retarget_XXXXを選び、右下の「POSE_T」になっている所は「POSE_A」に変えてImportします。

またこの画面ではルートモーションの設定も行なっておきます。右↓のChainMappingタブを押し、Rootを選択。DetailsのFK->Translation Mode を「Globally Scaled」を選びます。


次にアニメーションブループリントを複製して作成します。

コンテンツブラウザーのContent -> Characters -> Mannequins -> Animations内の、ABP_Manny(男性用)もしくはABP_Quinn(女性用)を選び右クリックし、Retarget Animation Assets -> Duplicate and Retarget Animation Asset/Blueprintsを選びます。

別ウィンドウが開くので、IKRetargeterに先ほど作成したものを選びます。

またSource Skeletal Meshには男性ならSKM_Manny_Simple、女性ならSKM_Quinn_Simpleにします。

Rename New Assetsには新しいファイルにサフィックスを付けたり出力先フォルダが選べるので分かりやすいものを付けます。

全て設定し終えたら「Retarget」ボタンを押します。これでリターゲットされたアニメーションの他アニメーションブループリントABP_Manny_XXとABP_Quinn_XXが出来ました。あとはこれをBP_XXXXに設定してやればアニメーションを行なうようになります。

■揺れ骨の設定

VRM4U公式のここに解説があります。

ここではメタデータが必要で『メタデータはVRMインポート時に作成されています』と記載がありますが、インポート時設定の「No physics asset」にチェックがある時に作成されたので、もしなかった場合はもう一度設定を見直してインポートし直すのがいいと思います。

■FootIKの設定

ThirdPersonサンプルのマネキン人形には最初からFootIKが付いているのですが、VRM差し替えの際に参照が切れてしまうので、それを再設定してあげます。

詳細な方法はこちらの方が説明されていました。ふえー…。

https://www.youtube.com/watch?v=fvKysk4le1s

他にも設定したい所はありますけど、一旦これで完成!



この記事が気に入ったらサポートをしてみませんか?