最新版のUE5.3において「VRoidキャラをVRM4U経由で操作キャラに指定する方法」と「揺れもの設定を反映する方法」が分からず苦戦したので、初心者向けに情報をまとめてみた!
- 現在(2024年4月12日時点)は、このやり方じゃないとVRMキャラが反映できない。
- ◆VRM4Uの導入方法~VRMモデルのインポート
- ◆操作キャラのBPを編集する
- ◆ABP(アニメーションBP)を作る
- ◆IKRetargeterを作って設定&調整する
- ◆ABP編集&揺れもの設定(髪・乳・服)を反映
- ◆デフォルトの操作キャラを非表示にしてABP指定
- ◆補足情報と注意事項(5.0.xでのエラーなど)
- ◆VRoid側でなくUE5側で「揺れもの」設定を行う方法
▼本文は「続きを読む」からどうぞ~!
◆VRM4Uの導入方法~VRMモデルのインポート
- VRM4Uというプラグインを【→GitHubのReleasesページ】からDLして解凍する。
※バージョンは、自分が使っているUE5のバージョンに合わせて選ぼう。 - UE5で新規プロジェクトを作成し保存する。
※今回はThirdPersonテンプレートで作成。 - VRM4U内の[Plugin]フォルダを、UE5のプロジェクト(〇〇.uproject)と同じ階層に配置する。
- UE5起動後、上部の[Edit]>[Plugins]から、「VRM4U」を検索&有効化して再起動。
- コンテンツブラウザー上を右クリックして新規フォルダ作成。
- 作ったフォルダ内へインポートするVRM「〇〇.vrm」をドラッグ&ドロップ。
▲インポート方法がよく分からない人は、この解説動画を見てね!
◆操作キャラのBPを編集する
[BP_ThirdPersonCharacter(操作用キャラ)]の[Viewport]タブを開く。
- 左上[Components]欄にある[Mesh(CharacterMesh0)]を選択しておく。
- 左上[+Add]ボタンから新規[SkeletalMesh]を追加する。
- 追加した[SkeletalMesh]選択後に、右側[Details]欄>[Skeletal Mesh Asset]項にVRMのメッシュ[SK_〇〇]を指定する。
◆ABP(アニメーションBP)を作る
VRMを入れたフォルダ内にあるVRMの[SkeletalMesh]アイコンを探し、アイコン上で右クリックして新規ABPを作る(ABP_〇〇)。
※アイコン右クリ>[Create]>[Anim Blueprint]。
▲「文章だけじゃ分からない…」という人は、この動画を見つつ作業に取り組もう。
◆IKRetargeterを作って設定&調整する
VRMフォルダの中に新規「IKRetargeter」を作る。
※コンテンツブラウザー上の空欄を右クリ>Animation>retargeter>IKRetargeter。
「IKRetargeter」が作れたら、そのままダブルクリックして編集する。
- 右側[Details]欄>[~ IKRig Asset]欄に、Souceのグレイマン=[IK_Mannequin]とTargetのVRM=[IK_〇〇_Mannequin]を指定する。
- 左上にある[+Create]ボタン>[Create New]>[CustomRetargetPose(デフォ名)]>[OK]で、新規リターゲットポーズを作成する。
左上にある[Running Retarget]右側の[︙]ボタンを押し、[Edite Retarget Pose]モードへ変更しよう。
- 右側[Details]欄から[Target Mesh Scale]の値を大きくし、VRMの身長とグレイマンの身長を大体同じくらいにする。
(VroidStudio側で150cmなら[1.2]前後) - 左側[Target]タブより、VRM側の二の腕(~UpperArm)ボーンや前腕(LowerArm)ボーンを選び、標準モデルの腕の角度に合わせて回転させる。
※正面から見て、左右の二の腕(~UpperArm)を50度ほど内側に曲げる。
※側面から見て、左右の前腕(~LowerArm)を40度ほど正面側に曲げる。
(モード変更ボタン直下にある[Source][Target]タブを切り替えればグレイマンとVRMのボーンリストが確認できるはず) - 微調整が終わったら、左上の保存ボタンを押す。
◆ABP編集&揺れもの設定(髪・乳・服)を反映
次に、VRMフォルダ内に作った[ABP_〇〇]をダブルクリックで開く。
- [Output Pose]ノードの[Resultピン]から左ドラッグで線を引き、[Retarget Pose From Mesh]と検索して挿入する。
- [Retarget Pose From Mesh]ノードを選び、右側[Details]欄>[IKRetargeter Asset]項に、さきほど設定した[IKRetargeter]を指定する。
- 胸揺れなどVRoid側の揺れもの設定を反映させるため、[Retarget Pose From Mesh]の[人型ピン]から線を引き、[vrmspringbone]と検索して挿入する。
(出てこない場合は検索欄右上にある[Context Sensitive]のチェックを外そう) - [VrmSpringBone]ノードを選び、右側[Details]欄>[Vrm Meta Object]項に使いたいVRMのメタデータ(VM_〇〇_VrmMeta)を指定する。
- 作業が終わったら左上から[Compile]して保存ボタンを押す。
※「揺れもの」の詳細設定はVRoidStudio側でできる。
VRoidの[ルック]ページを開き、体100・服100くらいから微調整してみよう。
(数値欄に直接キー入力すれば、最大値以上の数字も設定できるぞ!)
◆デフォルトの操作キャラを非表示にしてABP指定
[BP_ThirdPersonCharactor(操作用キャラ)]の[Viewport]タブを開く。
- 左上[Components]欄にある[Mesh(CharacterMesh0)を選択しておく。
- 右側[Details]欄の最上部にある検索欄で[visi]と入力して設定項目を絞り込む。
- [▼Rendering]>[Visible]のチェックを外す。
- [▼Optimization]>[Visibility Based Anim Tick…]を、[Always Tick Pose and Refresh Bones]へ変更する。
- 左上[Components]欄に追加した[SkeletalMesh]を選択しておく。
- [▼Animation]>[Anim Class]に[ABP_〇〇_C]を指定する。
- 全ての作業が終わったら左上から[Compile]して保存ボタンを押す。
全部終わったらテストプレイしてみよう。
ミスが無ければ、VRoidStudio産のVRMキャラをUnrealEngine5上で動かせるはず…!
◆補足情報と注意事項(5.0.xでのエラーなど)
今回紹介したのは「VRM4U」という無料プラグインでVRMをインポートする方法だ。
最近「VRoid SDK」というVRoid用の公式プラグインが出たので、VRoid Hubの利用登録や開発者登録が面倒でなければそちらを使っても良いと思う!
ただし、初心者視点だとVRM4Uの方が簡単に導入できる印象だった。
※プレイヤー側に各自のVRMを読み込ませる場合は「VRoid SDK」が良いらしい!
- 【VRM4Uの注意事項】
最初にUE5(Ver5.0.3)×VRM4U(5_0_20231126)×VRoid(1.26で作った1.0)の構成で作業を進めようとしたら、インポート直後に100%エラーが発生した。 - VRMモデル読み込み時に謎のエラー文が出る人は、UE5のバージョンを5.0.xや5.1.xではなく、5.2.xまたは5.3.xに上げたら解消するはずだ。
- どうしてもプロジェクトのバージョンを変えたくない場合、少し古いバージョンのVRM4Uを試すか、ファイル解凍ソフトの変更などを試すと良いかも。
◆VRoid側でなくUE5側で「揺れもの」設定を行う方法
今回はVRoidの「揺れもの」設定をUE5側に反映させたけど、UE5側のクロスペイント機能によって揺れ方を設定する方法もあるようだ。
▲クロスペイント機能で「揺れもの設定」を行っている解説動画。
- インポート済みのVRMが入っているフォルダを開く。
- スケルタルメッシュのアイコンをダブルクリックして開く。
- 上部ツールバー[windows]>[clothing]で[Clothing]の小窓が開く。
※この小窓は多用するから、サイドバーの好きな位置(左端など)にドラッグして、メイン画面と合体させておこう! - 揺らしたい部分(服パーツ)を左クリックで選択。
>右クリックして[Create Clothing Data from Section]を選択。
>右下にある[Create]を選択。 - 再び揺らしたい部分を右クリックして[Apply Clothing Data]を選択。
>4で作ったClothing Dataを指定する。 - 上部[Activate Cloth Paint]を左クリックして有効化する。
※有効化されたら選択した服全体がピンク色に染まる。 - 左クリック長押しで揺らしたい部分だけ白く塗ってから保存する。
(頂点を中心に塗る仕組みだから、慣れるまでは少し塗りにくく感じるかも)
ここまで設定してテストプレイすれば、ゲーム内で服が揺れることを確認できた。
もちろん、髪揺れや乳揺れも、服揺れと同じように設定できると思う。