この記事でできること
UE初心者向けです。使用バージョンはUE5.2です。
はじめに
VRM4U制作者のはるべえ様が具体的な使い方を提示しております。
ある程度UEに慣れている方については基本的はこちらの記事に沿って実装するのがいいと思います。
本記事ではこのページで少し難しい部分や書いていない部分をかみ砕いて補足する形になります。
VRoidでVRMファイルを作成する(vrmファイルが無い方)
手持ちのvrmがない方はVRoidでキャラを作ってみましょう。
運営様のご尽力で、プリセットのみでも無料で大分かわいいキャラが作れるようになっているのでおすすめです。
今回自分が作成したキャラはこんな感じ。ドヤ顔がかわいい金髪メイドのアメリアちゃんです。
エクスポート時について、ポリゴン数やボーン数等はなんでもいいですが、VRMは0.0の方がエラーなく持ってこれると思います。
VRM4UをUEに導入し、エディタ上にモデルを作る
まずはリンク先の指示に従ってVRM4Uのインストール、vrmファイルのインポートまで行ってみてください。
今回はテストですのでインポート設定は特に変えません。
プロトタイプが完成して、実際ゲームを作るときに調整しましょう。
あとはマニュアルを読み進めていけば問題ないかと思います。↓画像の段階まで進めましょう
簡易的なリターゲッティング機能を用いてThirdPersonCharacterのアニメーションをコピーする
マニュアルだとここの部分になります。手軽さや汎用性を考慮し今回はリターゲットの手法を使います。
アニメーションブループリントから一括で置き換え
置き換え元のキャラ(ここではThirdPersonテンプレートのキャラ)のABPを右クリックし。RetargetAnimationAssetsを開きます。
IK Retargeterにインポートしたvrmキャラのリターゲッターを設定します。RTG_キャラ名となっているので見つけやすいはずです。
このような感じにファイルが入っていたら成功です。(名前はこのタイミングで適宜変更してください)
先程作成したABPとインポートしたフォルダに入っていたスケルタルメッシュを設定すればとりあえずキャラクターは動きます。
不具合
機能を実装したら不具合を探して修正しておきます。
パッケージエラーの修正
パッケージを作る際、このようなエラーが出てパッケージ化に失敗することがあります。赤くログに出た該当ファイルを削除しパッケージ化を成功させましょう。
参考:https://ruyo.github.io/VRM4U/03_exe/
StandAlone時のアニメーション不具合
実はこの方法にはひとつ大きな欠点があります。
それはStandAlone時に以下の画像のように、着地アニメーション時にアニメーション再生がおかしくなることです。原因はおそらく下半身のアニメーションがAポーズになっていていて、上半身のみが動いていることだと思うのですが、本当のところはわかりません……
テストプレイに影響が出るので面倒ですが、PIE、パッケージ版ではきちんと再生されているので問題の優先度は低め。かといって放置するとかなりめんどくさい状況になるので調べておいた方がよさそう。
下動画はShippingビルドをしたときのもの。
まあ製品ビルドで動くならいっか……(絶対よくない)
原因がわかりました
上記の方法でリターゲットを行うと着地アニメーション(名前を変えていなければMM_Land)がうまくいっていないケースが多いです。該当するアニメーションアセットを開きAssetDetailsを確認しましょう。↓画像のようになっていれば上手くアニメーションされるはず
プレイヤーのBPで輪郭線、影を調整し見た目をよくする
マニュアルでいうとこの部分
しかし、このページはすでにおかれているactorの撮影用であるため、調整を行うなら少し改良が必要です。
影、輪郭線を制御する
結論からいくと操作したいプレイヤーのBPにこんな感じで書き加えたらいけます。
この機能を担当するMToonAttachActorはBPで書かれているのでBPで作りました。
こんな感じになっていれば成功です。
影、輪郭線は任意でオンオフできますが、影はこんな感じで微妙になることがあったのでオフにしました。
マテリアル設定を変える
インポート時から設定を変えたい場合(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日溶かしたのですが結局根本の原因はわからずじまいでした。リターゲッティング周りは難しい……
本記事もあくまで自分はこうしましたという内容なので突っ込みどころがあればコメントいただけると幸いです。
コメント