【UE】UE5でVRoidのキャラクターを動かす手順を紹介!!
本ノートではUnreal Engine5でVRoid Studioで作成したキャラクターを動かすための手順を紹介します。
※UE4以下に関しては、本手順はできないのでご注意ください。
VroidStudioで3Dアバターを作成
本作業について、詳細は省略します。
大まかに必要な作業は以下。
VRoid Studioで3Dアバターを作成後にVRMファイルを出力してください。
VRoid Studioでアバターを作成
右上アイコンからVRMエクスポートをクリック
エクスポートボタンをクリック
VRM設定を入力し、エクスポート画面をクリックして、好きなフォルダにVRMファイルを保存する
もしくは、Vroid Hubで公開されている3Dアバターを利用しましょう。※設定されたライセンスを確認してから利用しましょう。
UE5でプロジェクトを作成、ThirdPersonをプロジェクトに追加
新しくプロジェクトを作成する場合は、ThirdPersonプロジェクトを設定してプロジェクトを作成してください。
今回は、既存プロジェクトへのThridPersonの追加も見据えて作業します。新規プロジェクト作成後、ThirdPersonプロジェクトを取り込む形で進めます。
新しいプロジェクトを作成
Epic Game Luncherを起動>Unreal Engine > ライブラリ> Engine バージョンを選択して起動をクリック(バージョンは5.0.1で作業しています)
Unreal Project Brower>Games >Blankをクリック
Project Nameを入力後、Createをクリック
ThirdPersonプロジェクトを追加
コンテンツブラウザで右クリック。メニューから「Add New > Add Feature or Content Pack...」をクリック
ThirdPerson>Add to Projectの順にクリック
ThirdPersonを取り込むとコンテンツブラウザのcontent>TherdPersonフォルダが出来ます。
Maps配下のThirdPersonMapsをダブルクリックして開いてください。右上メニューのプレイから、試しにプレイしてみるとThirdPersonが表示され、動かすことができます。
こちらをVroidのキャラクターに変更することが今回の目標です。
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の場合、プラグインフォルダの表示方法は、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をクリックしてみて進めました。
見た目の設定
Skeltal Meshを配置して見た目を設定する
All > Plugins > VRM4U Countent > Util > AcotrにあるMToonAttachAcotrをシーンに配置
同じフォルダにあるMToonMaterialSystemも配置しておく
MToonAttachActorの設定を行う
- Target by Skeletal Mesh Acotrのスポイトをクリックして配置したSeltal Mesh をクリック
MToonMaterialSystem
マテリアル全般に対する設定を行います
取り込み時にLitで取り込んでない場合は、サイトの手順を元にLitモードに変更する。
VROIDキャラクターとThirdPersonキャラクターのポーズを合わせる
ボーンを持つスケルタルメッシュのポーズを取り込みキャラクターと合わせましょう。最低限、TポーズかAポーズなのかは合わせておきましょう。
※Tポーズ:両腕を肩から水平に上げて、全身でTを表すポーズ。
※Aポーズ:両腕を外側斜め下に向けて広げて、全身でAを表すポーズ。
VROIDはAポーズとTポーズが最初から用意されているので、基本的には、VROID側のポーズをThirdPerson(Aポーズ)に合わせます。
VROIDのポーズをAポーズに変更
※この作業は不要かも。
Skeltonファイルをダブルクリックして開きます
SKEL_(VRMファイル名)Retarget Sequencesタブを開く(もしタブがなければ、メニューのRetaget Sources もしくは、Widnwos>Retarget Sources クリック)
Modify Poseをクリック>Pose_Retaget_(VRMファイル名)を選択
ポーズには選択肢のうちPOSE_Aを選択
Importをクリック
Importをクリックすると、ポーズが変わります。その後、改めてModify Poseをクリック>Set PoseのUse CurentPoseをクリック
メニューのSaveをクリックして、保存
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ポーズに変更する方法でもよさそうです。
RTG_Mannequin.uassetをダブルクリックし編集画面を開く
Content/Characters/Mannequins/Rigs/RTG_Mannequin.uassetDetailsのTarget Rig AssetにVRoidのIKファイルを選択します
IK_(VRMファイル名)_MannequinContent DrawerからWBP_IKRetargetを右クリック>Run Editor Utility Widgetをクリック
Content/Util/Actor/latest/WBP_IKRetarget.uasset、(プロジェクトパス)/Plugins/VRM4U/Content/Util/Actor/latest/WBP_IKRetarget.uassetAsset欄>Target IKRetargeterにRTG_(VRoidキャラクター名)を選択
Update IKRetargeterPoserボタンをクリック
RTG_Mannequinの編集画面に戻り、画面上部メニューのCurrent Retarget PoseからAポーズを設定(※Aポーズ選べない場合下記※確認)
プレビュー画面のVRoidのキャラクターのポーズがAポーズに変わります。Asset Browserタブでアニメーションをダブルクリックで選択し、VROIDキャラクターがアニメーションすることを確認
(MF_Run_FWDなどが分かりやすい)保存します
アニメーションを確認したときにうまく動いていない場合、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のプルダウンを確認してください。
※下記も参考にしてください
ThirdPersonのAnimationをVRMファイル向けにRetarget
一つずつAnimationのターゲットを変更する方法もありますが、Animation BulePrintをRetagetすると、使用しているアニメーションをまとめて変更できるようなのでそちらで対応していきます。
Aniamtion BulePrint(ABP_Quinn)を右クリック
Retarget Animation Assets>Duplicate and Retarget Animation Blueprintをクリック
各種設定を行います。
IK RetargeterでRTG_Mannequinを選択
Select Skeletonでキャラクター選択。
Source Skelteal Mesh SKM_Quinn_Simple
Target Skeletal Mesh SK_(VRMファイル名)Changeでファイル保存先を設定(例:/Game/VROID/VRoid_Animation)
※右クリックから新しいフォルダの作成が可能Prefixでファイルの先頭につける名前を設定(例:VROID_ )
Retargetをクリックして、出力
ここまでの作業で、UE上にVRoidキャラクターのメッシュとアニメーションが出来ています。以降の作業でプレイ時に動かすキャラクターをThridPersonからVRoidのキャラクターに変更していきます。
VRoidキャラクターを実際にゲーム上で動かせるように設定
キャラクターを操作するBPのメッシュをVroidに入れ替える
Content>ThirdPerson>BlueprintsのBP_ThirdPersonCharacterを複製
分かりやすい名前に変更ダブルクリックで編集エディタを開く
ViewPortタブのCommonetのMeshをクリック
Details>Mesh>Skeltal MeshをVROIDのメッシュに変更
Details>Animation>Anim ClassをRetagetで作成した(VROID_)ABP_Quineに変更
コンパイルして、保存
プレイヤー用のBulePrintをVRoidのBPに変更する
UEエディタのメニュー>Window>World Settingsをクリック
World Settings(デフォルトだと、右枠のウインドウに表示される)>GameMode>Selected GameMode>default Pawn Classを先ほど作成したBlue Printに変更
以上の作業によりゲームをプレイすると、ThirdPersonCharaterの代わりにVROIDから取り込んだキャラクターを操作することができます。
【参考】
以上で終わりです。
この記事が気に入ったらサポートをしてみませんか?