見出し画像

【UE】UE5でVRoidのキャラクターを動かす手順を紹介!!

本ノートではUnreal Engine5でVRoid Studioで作成したキャラクターを動かすための手順を紹介します。
※UE4以下に関しては、本手順はできないのでご注意ください。

VroidStudioで3Dアバターを作成

本作業について、詳細は省略します。
大まかに必要な作業は以下。

  1. VRoid Studioで3Dアバターを作成後にVRMファイルを出力してください。

  2. VRoid Studioでアバターを作成

  3. 右上アイコンからVRMエクスポートをクリック

  4. エクスポートボタンをクリック

  5. VRM設定を入力し、エクスポート画面をクリックして、好きなフォルダにVRMファイルを保存する


もしくは、Vroid Hubで公開されている3Dアバターを利用しましょう。※設定されたライセンスを確認してから利用しましょう。


UE5でプロジェクトを作成、ThirdPersonをプロジェクトに追加

新しくプロジェクトを作成する場合は、ThirdPersonプロジェクトを設定してプロジェクトを作成してください。
今回は、既存プロジェクトへのThridPersonの追加も見据えて作業します。新規プロジェクト作成後、ThirdPersonプロジェクトを取り込む形で進めます。

新しいプロジェクトを作成

  1. Epic Game Luncherを起動>Unreal Engine > ライブラリ> Engine バージョンを選択して起動をクリック(バージョンは5.0.1で作業しています

  1. Unreal Project Brower>Games >Blankをクリック

  2. Project Nameを入力後、Createをクリック

ThirdPersonプロジェクトを追加

  1. コンテンツブラウザで右クリック。メニューから「Add New > Add Feature or Content Pack...」をクリック

  2. ThirdPerson>Add to Projectの順にクリック

ThirdPersonを取り込むとコンテンツブラウザのcontent>TherdPersonフォルダが出来ます。

Maps配下のThirdPersonMapsをダブルクリックして開いてください。右上メニューのプレイから、試しにプレイしてみるとThirdPersonが表示され、動かすことができます。
こちらをVroidのキャラクターに変更することが今回の目標です。

ThirdPersonMapのプレイボタン(▶)から実行した画面

VROIDキャラクターをUEに取り込む

VRM4Uというプラグインを利用して、Vroidから出力したキャラクターをUEに取り込みます。

下記ページを参考に、作業を実施してください
VRM4UをUEにインストール
 ・VRM4Uをダウンロードし、UEでプラグイン設定を行う
VROIDのVRMファイルをUEに取り込み
 ・VRMファイルをドラッグ&ドロップ

【ざっくりインストール手順】
・Githubの使用するUEのバージョンに合ったVRM4Uプラグインをダウンロードする
・VRM4Uを解凍して、UEのプロジェクト配下に移動
・UEを起動します(起動しているじょうたいなら、再起動)
・Edit > Plugins > VRM4Uにチェックを付けてRestart Now

【注意点】

  • ダウンロードするVRM4Uは、UE5で利用する場合、[VRM4U_5_X_YYYYMMDD]と記載されているファイルです。

  • 初期状態だとVRM4Uを格納するフォルダはコンテンツブラウザ上からは見えません。コンテンツブラウザのフォルダを右クリック>show in Exploerで開いて、プロジェクト直下のPuluginフォルダに格納してください。また、フォルダに資産を配置後、VRM4Uをアクティブにする際、UEを開きなおさないとPulaginウインドウ上で見つけられないので注意。

  • vrmファイルをドラッグ&ドロップでUE上に取り込む際は、他のファイルとまざらないようにフォルダを作成してから取り込みましょう
     例)VROID>Character>(キャラクター名)

UE5の場合:VRM4U_5_X_YYYMMDD.zipをクリックしてダウンロード
プロジェクトフォルダ配下にPluginsフォルダを作成し、配下にVRM4Uを格納します。
VRMファイルを取り込むと別ウインドウでフォルダが開く

続けて、必要に応じて下記を参照して見た目の設定を行いましょう。

注意点

  • UE5の場合、プラグインフォルダの表示方法は、Content Drawer(エディタの左したタブ)のSettingsからshow Plugin Contentをクリックしましょう

  • 見た目を調整する際には、取り込まれたVRMファイルから分割された全身が見れるSkeltalMeshのファイルを利用しましょう。下記の画像ではamimation Sequence(左)とSkeltalMesh(右)を表示してます

  • MToonAttachActorの設定:セルフシャドウの設定は[Disable Custom sadow]、アウトラインの設定は[Create Outline Mode]

  • Material Typeがバージョンの違いなのか設定する項目が見つからない場合があります。その場合は、search欄にMaterial Typeと入力して、それらしいものを探してみましょう。changeParent Matも見つからないので、ApplyParentMatをクリックしてみて進めました。

ContentブラウザのSettingsからPluginフォルダを表示させる
設定適用後の見え方(右がSkeltalMesh)
設定適用後の見え方(右がSkeltalMesh)

見た目の設定

Skeltal Meshを配置して見た目を設定する
All > Plugins > VRM4U Countent > Util > AcotrにあるMToonAttachAcotrをシーンに配置
同じフォルダにあるMToonMaterialSystemも配置しておく
MToonAttachActorの設定を行う
- Target by Skeletal Mesh Acotrのスポイトをクリックして配置したSeltal Mesh をクリック
MToonMaterialSystem
 マテリアル全般に対する設定を行います

TargetにSkeltal Meshを設定

取り込み時にLitで取り込んでない場合は、サイトの手順を元にLitモードに変更する。


VROIDキャラクターとThirdPersonキャラクターのポーズを合わせる

ボーンを持つスケルタルメッシュのポーズを取り込みキャラクターと合わせましょう。最低限、TポーズかAポーズなのかは合わせておきましょう。
※Tポーズ:両腕を肩から水平に上げて、全身でTを表すポーズ。
※Aポーズ:両腕を外側斜め下に向けて広げて、全身でAを表すポーズ。

ThirdPersonはデフォルトでAポーズをとっている

VROIDはAポーズとTポーズが最初から用意されているので、基本的には、VROID側のポーズをThirdPerson(Aポーズ)に合わせます

VROIDのポーズをAポーズに変更

※この作業は不要かも。

  1. Skeltonファイルをダブルクリックして開きます
    SKEL_(VRMファイル名)

  2. Retarget Sequencesタブを開く(もしタブがなければ、メニューのRetaget Sources もしくは、Widnwos>Retarget Sources クリック)

  3. Modify Poseをクリック>Pose_Retaget_(VRMファイル名)を選択

  4. ポーズには選択肢のうちPOSE_Aを選択

  5. Importをクリック
    Importをクリックすると、ポーズが変わります。その後、改めてModify Poseをクリック>Set PoseのUse CurentPoseをクリック
    メニューのSaveをクリックして、保存

Skeltonファイルを編集します
POSE_Aに変更

ThirdPersonのAnimationのターゲットを変更する

Unreal EngineにはRetargetという処理対象を変更する機能があるので、それを利用し、ThirdPersonのAnimationを変更します。

IK Retargeterを利用し、ThirdPersonのAnimationをVroidに対応させる

※ThirdPersonのキャラクターと入れ替えたいだけの場合は、『ThirdPersonのAnimationをVRMファイル向けにRetarget』の項目の処理だけでOK。


IK Retargeterファイルによりソースに指定したボーンとターゲットに指定したボーンを対応させ、アニメーションを共通して利用できます。(この説明は間違っているかも)
何をやっているかは公式動画を見るとわかりやすいです。ページの最後に動画を埋め込んでいますが、『UE5でのアニメーションの流用方法について』の42:35 UE5新機能 IK Retergeterを見てみてください。
※UE5新機能 Compatible Skeletonsもアニメーションを追加する場合は参考になりそうです。
※対象のオブジェクトが見つからない場合はオブジェクト名で検索をかけましょう
※下記ではTarget側のVRMキャラクターのポーズを変更しようとしていますが、Source側のMannequinをTポーズに変更する方法でもよさそうです。

Sourceタブをクリックし、Current Retarget PoseをT Poseに設定する
  1. RTG_Mannequin.uassetをダブルクリックし編集画面を開く
    Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset

  2. DetailsのTarget Rig AssetにVRoidのIKファイルを選択します
      IK_(VRMファイル名)_Mannequin

  3. Content DrawerからWBP_IKRetargetを右クリック>Run Editor Utility Widgetをクリック
     Content/Util/Actor/latest/WBP_IKRetarget.uasset、(プロジェクトパス)/Plugins/VRM4U/Content/Util/Actor/latest/WBP_IKRetarget.uasset

  4. Asset欄>Target IKRetargeterにRTG_(VRoidキャラクター名)を選択

  5. Update IKRetargeterPoserボタンをクリック

  6. RTG_Mannequinの編集画面に戻り、画面上部メニューのCurrent Retarget PoseからAポーズを設定(※Aポーズ選べない場合下記※確認)
     プレビュー画面のVRoidのキャラクターのポーズがAポーズに変わります。

  7. Asset Browserタブでアニメーションをダブルクリックで選択し、VROIDキャラクターがアニメーションすることを確認
     (MF_Run_FWDなどが分かりやすい)

  8. 保存します

アニメーションを確認したときにうまく動いていない場合、RTG_Mannequin上でのポーズの編集、IKRetargetファイルによるボーンの編集などが必要になります。『UE5でのアニメーションの流用方法について』の42:35 UE5新機能 IK Retergeterなどを参考に修正してください。
ブラウザを閉じてOKです。
※Aポーズを選択できない場合、RTG_MannequinのTargetタブ > Create > Import pose from Assetをクリック、Import画面で、Pose_retarget_[VRoidキャラクター名]を選択、右下のポーズ選択でPOSE_Aを選択し、Import NEw Retarget Poseをクリック。プレビュー画面でキャラクターがAポーズをとっていること、TargetタブのCurrent Retarget PoseがPOSE_retarget _[VRoidキャラクター名]に変更されていることを確認
※Aポーズを選択できない場合、Target IKRetargeterに[RTG_Mannequin]、Src Poseに[Pose_retarget_(Vroidキャラクター名)]を選択>UpdateIKRetaergetPoseをクリックを行った後に、再度Current Retrget Poseのプルダウンを確認してください。

RTG_Mannequinを使用する
ThirdPersonとVroidキャラクター
アニメーションが想像通りになっているか確認


RTG_MannequinでAポーズが選択できない場合

※下記も参考にしてください

ThirdPersonのAnimationをVRMファイル向けにRetarget

一つずつAnimationのターゲットを変更する方法もありますが、Animation BulePrintをRetagetすると、使用しているアニメーションをまとめて変更できるようなのでそちらで対応していきます。

  1. Aniamtion BulePrint(ABP_Quinn)を右クリック

  2. Retarget Animation Assets>Duplicate and Retarget Animation Blueprintをクリック

各種設定を行います。

  1. IK RetargeterでRTG_Mannequinを選択

  2. Select Skeletonでキャラクター選択。
     Source Skelteal Mesh SKM_Quinn_Simple
     Target Skeletal Mesh SK_(VRMファイル名)

    1. Changeでファイル保存先を設定(例:/Game/VROID/VRoid_Animation)
       ※右クリックから新しいフォルダの作成が可能

    2. Prefixでファイルの先頭につける名前を設定(例:VROID_ )

  3. Retargetをクリックして、出力

ここまでの作業で、UE上にVRoidキャラクターのメッシュとアニメーションが出来ています。以降の作業でプレイ時に動かすキャラクターをThridPersonからVRoidのキャラクターに変更していきます。


VRoidキャラクターを実際にゲーム上で動かせるように設定

キャラクターを操作するBPのメッシュをVroidに入れ替える

  1. Content>ThirdPerson>BlueprintsのBP_ThirdPersonCharacterを複製
    分かりやすい名前に変更

  2. ダブルクリックで編集エディタを開く

BP_ThirdPersonCharacterを複製して編集していく
BluePrint複製後
  1. ViewPortタブのCommonetのMeshをクリック

  2. Details>Mesh>Skeltal MeshをVROIDのメッシュに変更

  3. Details>Animation>Anim ClassをRetagetで作成した(VROID_)ABP_Quineに変更

  4. コンパイルして、保存

Anim Classを変更※勝手に"_C"が表示される

プレイヤー用のBulePrintをVRoidのBPに変更する

  1. UEエディタのメニュー>Window>World Settingsをクリック

  2. World Settings(デフォルトだと、右枠のウインドウに表示される)>GameMode>Selected GameMode>default Pawn Classを先ほど作成したBlue Printに変更

以上の作業によりゲームをプレイすると、ThirdPersonCharaterの代わりにVROIDから取り込んだキャラクターを操作することができます。

idle状態のVroidキャラクター


【参考】

以上で終わりです。

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