【UE5】VRM4UでVroid製のプレイヤーBPを作る

スポンサーリンク
UnrealEngine

この記事でできること

UE初心者向けです。使用バージョンはUE5.2です。

この記事でできること
  • VRM4UをUEに導入し、エディタ上にモデルを作る
  • 簡易的なリターゲッティング機能を用いてThirdPersonCharacterのアニメーションをコピーする
  • プレイヤーのBPで輪郭線、影を調整し見た目をよくする

はじめに

VRM4U制作者のはるべえ様が具体的な使い方を提示しております。

VRM4U
UE4でVRMを使おう! 「VRM4U」プラグインの解説ページです。

ある程度UEに慣れている方については基本的はこちらの記事に沿って実装するのがいいと思います。

本記事ではこのページで少し難しい部分や書いていない部分をかみ砕いて補足する形になります。

VRoidでVRMファイルを作成する(vrmファイルが無い方)

手持ちのvrmがない方はVRoidでキャラを作ってみましょう。

Steam:VRoid Studio v1.26.2
VRoid Studioは、表現力を活かしてオリジナルキャラクターを簡単に作れる3Dキャラクター制作ソフトウェアです。多数のパラメータを用いた直感的な操作、絵を描くような髪型モデリング、筆圧感知のペンツールによるテクスチャの描きこみが可能。...

運営様のご尽力で、プリセットのみでも無料で大分かわいいキャラが作れるようになっているのでおすすめです。

今回自分が作成したキャラはこんな感じ。ドヤ顔がかわいい金髪メイドのアメリアちゃんです。

エクスポート時について、ポリゴン数やボーン数等はなんでもいいですが、VRMは0.0の方がエラーなく持ってこれると思います。

VRM4UをUEに導入し、エディタ上にモデルを作る

まずはリンク先の指示に従ってVRM4Uのインストール、vrmファイルのインポートまで行ってみてください。

セットアップ
UE4でVRMを使おう! 「VRM4U」プラグインの解説ページです。

今回はテストですのでインポート設定は特に変えません。

プロトタイプが完成して、実際ゲームを作るときに調整しましょう。

あとはマニュアルを読み進めていけば問題ないかと思います。↓画像の段階まで進めましょう

簡易的なリターゲッティング機能を用いてThirdPersonCharacterのアニメーションをコピーする

マニュアルだとここの部分になります。手軽さや汎用性を考慮し今回はリターゲットの手法を使います。

グレイマンを置き換える
UE4でVRMを使おう! 「VRM4U」プラグインの解説ページです。

アニメーションブループリントから一括で置き換え

置き換え元のキャラ(ここではThirdPersonテンプレートのキャラ)のABPを右クリックし。RetargetAnimationAssetsを開きます。

IK Retargeterにインポートしたvrmキャラのリターゲッターを設定します。RTG_キャラ名となっているので見つけやすいはずです。

このような感じにファイルが入っていたら成功です。(名前はこのタイミングで適宜変更してください)

先程作成したABPとインポートしたフォルダに入っていたスケルタルメッシュを設定すればとりあえずキャラクターは動きます。

不具合

機能を実装したら不具合を探して修正しておきます。

パッケージエラーの修正

パッケージを作る際、このようなエラーが出てパッケージ化に失敗することがあります。赤くログに出た該当ファイルを削除しパッケージ化を成功させましょう。

参考:https://ruyo.github.io/VRM4U/03_exe/

StandAlone時のアニメーション不具合

実はこの方法にはひとつ大きな欠点があります。

それはStandAlone時に以下の画像のように、着地アニメーション時にアニメーション再生がおかしくなることです。原因はおそらく下半身のアニメーションがAポーズになっていていて、上半身のみが動いていることだと思うのですが、本当のところはわかりません……

テストプレイに影響が出るので面倒ですが、PIE、パッケージ版ではきちんと再生されているので問題の優先度は低め。かといって放置するとかなりめんどくさい状況になるので調べておいた方がよさそう。

下動画はShippingビルドをしたときのもの。

まあ製品ビルドで動くならいっか……(絶対よくない)

プレイヤーのBPで輪郭線、影を調整し見た目をよくする

マニュアルでいうとこの部分

見た目を調整する
UE4でVRMを使おう! 「VRM4U」プラグインの解説ページです。

しかし、このページはすでにおかれているactorの撮影用であるため、調整を行うなら少し改良が必要です。

影、輪郭線を制御する

結論からいくと操作したいプレイヤーのBPにこんな感じで書き加えたらいけます。
この機能を担当するMToonAttachActorはBPで書かれているのでBPで作りました。

こんな感じになっていれば成功です。

注意
  • MToonActorはコンポーネントとしてAttachはしない

実装を調べているときこのように実装されている方が多かったのですが、これだけだとアタッチが完了したわけではありません。しっかりMToonActorのTargetbyActorにプレイヤーBPをセットしてReInitを実行しておきましょう。

影、輪郭線は任意でオンオフできますが、影はこんな感じで微妙になることがあったのでオフにしました。

マテリアル設定を変える

インポート時から設定を変えたい場合(MtoonUnLit→MtoonLitにしたい)等

あとはレベルに設置していたMToonMaterialSystemをいじるとこんな感じになります。

とりあえず、ひとまず完成です。あとはお好みでアニメーションを差し替えてもよし、フェイシャルを設定してもよしです。

細かい修正

ゲームには影響がないものの、やっておくとよさげなものを挙げておきます

ControlRigの修正

ControlRig修正有

ControlRig修正無

1.SkeltalMeshComponentを開き、Rootを右クリック→AddVirtualBone

2.J_Bip_L(orR)_Footを選択し仮想ボーンを作る

参考:https://docs.unrealengine.com/5.0/ja/virtual-bones-in-unreal-engine

3.ABPファイルでControlRigノードを確認。ダブルクリックしてCR_Manny_BasicFootIKを開く。
(上記ファイルを編集するので保険用のバックアップをとっておく)

4.ノード内のNameを変えていく

IK_Foot→VB_Root_J_Bip_L/R_Foot

Pevis→J_Bip_C_Hips

Foot→J_Bip_L/R_Foot

これで完了です。お疲れ様でした。

もっと改良するには

ここまでの工程を終えればとりあえず動くようにはなると思います。
プロトタイプはこれでいいのですが、実際リリースするとなると、

・貫通、浮きの対策

・フェイシャル(キャラの表情)

・バグ対応(StandAloneのやつ等)

まだまだ課題が残ります。射撃モーションの組み込みなんかはもう一ハードルあるかもしれませんね。これらについてはまた後日チャレンジしていきましょう

終わりに

StandAloneのバグ調査なんかは丸1日溶かしたのですが結局根本の原因はわからずじまいでした。リターゲッティング周りは難しい……
本記事もあくまで自分はこうしましたという内容なので突っ込みどころがあればコメントいただけると幸いです。

コメント

タイトルとURLをコピーしました