O hirunewani blog

Unreal Engine 5.4でVRMを動かす

Created at

Unreal Engine 5.4でVRMをインポートして、動作確認をした際の手順をメモした。

VRM4Uの有効化

VRMにUnreal Engineをインポートするために、VRM4Uを利用する。

  • リリースページから対応したバージョンをダウンロードする。
    • 2024年8月現在、最新のリリースに5.4用のものがなかったため、20240617のものを利用した。
  • 利用したいプロジェクトのディレクトリに解凍したPluginsディレクトリを配置する。
    • /[ProjectName]/Plugins/VRM4Uという構成になっていればいい。
  • この状態で再起動して、プラグインパネルを開くとVRM4Uが表示されるようになっている。
    • 有効化されていなければ、チェックマークを入れて再起動する。

VRMのインポートして動かす

今回は、UEのサードパーソンテンプレートのキャラクターをVRMモデルに置き換える方法を例に説明する。

VRMのインポート

  • コンテンツドロワーを開いて、インポートする用のディレクトリを作成する。
  • 作成したディレクトリにVRMファイルをドラッグアンドドロップする。
  • 表示されるインポートの設定画面が表示される。基本的に変更しなくて良い。
    • ただしMaterial TypeのデフォルトがMToon Unlitになっており陰影の計算がされないので、MToon Litに変更した方が適していることが多いように思う。
  • 問題なければインポートを押す。

アニメーションブループリントの作成

  • インポートされたファイルの中からスケルタルメッシュを選択して右クリックを押す。
  • “作成する”から、“Animブループリント”を選択する。
  • 作成したアニメーションブループリントを開く。
  • 表示されたAnimeGraphのResultからドラッグして、Retarget pose from meshを選択する。
  • Retarget post from meshを選択して、詳細にあるIKRetarget Assetでインポートしたファイルの中にあるIKリターゲッタを選択する。
  • コンパイルと保存を行い、アニメーションブループリントを閉じる。

アニメーションを引き継がせる

  • コンテンツドロワーから、All/Contents/ThirdPerson/Blueprints/BP_ThirdPersonを選択して開く。
  • ビューポートを表示し、既存のCharacterMeshを選択した状態でコンポーネントの追加からスケルタルメッシュコンポーネントを追加する。
  • 追加したスケルタルメッシュコンポーネントを選択した状態で、詳細タブのメッシュにインポートしたVRMのスケルタルメッシュを設定する。VRMモデルが表示された状態になる。
  • 詳細タブのAnimationに作成したアニメーションブループリントを設定する。VRMモデルがポーズを取るようになる。
  • コンポーネントからMeshを選択して、詳細タブの最適化にあるVisibility based anim tick optionをAlways Tick Pose and Refresh Bonesに変更する。これをしないとVRMモデルがポーズを取らない。
  • 元々あったMeshは表示したくないので、レンダリングにあるVisibilityをFalseにする。

この状態で実行すると、元々表示されていたキャラクターの代わりにインポートしたVRMモデルを操作できるようになっている。