概要
Vroid Studioにて作成したキャラクターをUE4に持っていく方法の自分用メモです。
以前の記事ではVRoidStudio->Blender->Maya->UE4という流れで持っていきましたが、
今回はVRoidStudio->Blender->UE4という手順で進めます。
最近はVRM用アドオンも充実してきて、かなり簡単にUE4まで持っていくことができます!
なお、VRM形式の3DモデルをそのままUE4に持っていくのであれば、はるべえさん(@ruyo_h)が公開されているVRM4Uを使用するのが確実です。
この記事では、Blender上でモデルデータの改造や軽量化をしてからUE4に持っていくことを想定して、一度Blenderを経由する手順を紹介します。
環境
- VRoid Studio v0.10.4
- Unreal Engine 4.25.2
- Blender 2.83.0
下準備
Blenderのアドオンをインポート
BlenderでVRMファイルを読み込んで編集するために、以下のアドオンをインポートしてください。
- VRM IMPORTER
- Cats Blender Plugin
- X4UE: Exporter for Unreal Engine
VRM IMPORTER
「VRM IMPORTER」はblender上でVRMファイルを読み込むことを可能するアドオンです。
インポート方法はこちらをご確認ください。
Cats Blender Plugin
「Cats Blender Plugin」はVRMモデルを最適化することができるアドオンです。
インポート方法はこちらをご確認ください。
X4UE: Exporter for Unreal Engine
「X4UE: Exporter for Unreal Engine」はBlenderからFBXファイルにエクスポートする際に、自動でUE4向けの設定を行ってくれるアドオンです。
詳細な手順は墨崎達哉さん(@T_Sumisaki)の記事をご確認ください。
手順
1. VRoidStudioからVRMファイルをエクスポートする
今回もVRoidStudio公式テンプレートの「千駄ヶ谷 渋」ちゃんを使って説明していきます。
これでVRM形式で保存されます。
尚、最新版のVRoid Studioには、エクスポートする際の右メニューに、[ポリゴンの削減]や[マテリアルの削減]などの機能が用意されています。こちらは適宜使用してください。
2. BlenderでVRMファイルを調整する
2.1. VRMファイルを読み込む
Blenderを起動し、初期配置されているCamera、Cube、Lightを削除します。
サイドバーを開き、[CATS]>[Import Model]を選択してVRMファイルをインポートします。
ファイルの読み込みに成功するとモデルが表示されます。
2.2. CATSの機能を使って最適化する
[CATS]>[Fix Model]の横にあるレンチをクリックしてオプションを開きます。[Keep Upper Chest]のチェックを入れて、OKを選択します。 [Fix Model]を選択すると、モデルが最適化されます。
この状態で、ポーズモードにしてボーンを動かしてみてください。
ボーンを動かした時にきちんとモデルがついてくれば完了です。
稀にバインドが外れてしまい、ボーンを動かしてもモデルが動かついてこない時があります。その場合は再度[Fix Model]を実行すると正しく反映されます。
2.3. ボーン名をリネームする
ボーン名をUE4の標準スケルトンの名称にリネームします。
この作業は必須ではありませんが、名称を揃えておくと管理が楽なのでここで変えてしまいます。
BlenderはPythonを使うことができますので、以下のスクリプトを使用すれば一発で変換することができます。
2.4. Rootボーンを追加する
VRMモデルはルートがHips(UE4ではPelvis)になっており、原点位置にルートボーンがありません。
UE4のスケルトンに構造を近づけるために手動でRootボーンを追加します。
- 編集モードでアーマチュアを選択する。
- [追加]>[単一ボーン]を選択してボーンを原点位置に追加する。
- 追加したボーンの名前を「Root」に変更する。
- Rootボーンの長さを0.1にして小さくする。
RootボーンをPelvisに繋がるように大きくする必要はありません。 - PelvisをRootの子にするためにペアレント化をする。この時、[オフセットを保持]を選択すること。
これで最低限のモデルの修正は完了ですが、他にもBlenderで加工したい場合はここで行います。
みっちーさん(@nyu___nSfms)の記事でいろいろな最適化例が紹介されています。
3. BlenderからFBXファイル形式でエクスポートする
BlenderからスケルタルメッシュをUE4に持っていく際の注意点は2つあります。
- ルートボーンにスケール値100が残ってしまう。
- ルートボーンに回転値が残ってしまう。
この問題の対策は、なんさん(@tarava777)の記事の手順で解決することができます。
これまではこの対応を手作業でしていましたが、2019年末のUE4アドベントカレンダーにてIndie-us Gamesの墨崎達哉さん(@T_Sumisaki)が上記の問題を解決するFBXエクスポーターを公開してくださいました!神!
おかげで手順はとても簡単になりました。以下に記載します。
- アウトライナのArmatureを右クリック>[階層を選択]をクリックする。
- [ファイル]>[エクスポート]>[FBX for UE4 (.fbx)]を選択する。
- オプションメニューの[Bones Axes]を確認する。
- [プライマリ]>[Z軸]になっていることを確認する。
- [セカンダリ]>[X軸]になっていることを確認する。
- [UE4 FBX Export]をクリックする。
4. UE4にインポートする
4.1. FBXをインポートする
UE4側でFBXをインポートします。
インポートオプションの[Import Morph Targets]のチェックはデフォルトでOFFになっているので忘れずチェックするようにしてください。表情のブレンドシェイプをインポートすることができます。
無事にインポートされました!
4.2. マテリアルをいい感じにする
インポートオプションでマテリアルを生成するようにした場合、自動的にマテリアルが作成されて割り当てられますが、お世辞にも綺麗とは言えません。
現状一番綺麗にVRoidを表示できるのは、はるべえさん(@ruyo_h)のVRM4Uかと思います。
詳細な手順は本記事では触れませんが、VRM4Uプラグインを使って一度VRMファイルをインポートし、生成されたマテリアルを使わせてもらうと綺麗に表示されます。
4.3. リターゲットの設定をする
UE4ではスケルトンのリターゲット設定をすることで、別のスケルトンのモーションをコピーして流用することができるようになります。特に人型のキャラクターを使用する際は恩恵が大きいので、きちんとリターゲットの設定をしておくことをオススメします。
- スケルトンアセットを開く。
- リターゲットオプションを表示する。
- [Rootボーンを右クリック]>[移動リターゲティングスケルトンを再起的に設定]を選択する。
- Rootボーンを個別で[Animation]に設定し、Pelvisボーンを個別で[Animation Scaled]に設定する。docs.unrealengine.comアニメーション リターゲット
https://docs.unrealengine.com/ja/Engine/Animation/AnimationRetargeting/#リターゲットの設定リターゲットしたアニメーションを複数のスケルタルメッシュで使用して、アニメーションを共有できるようにします。 - 画面右の[プレビューシーン設定]の[Mesh]>[Preview Mesh]の[Apply To Asset]をクリックする。
これでリターゲットが利用可能になりました!
まとめ
Blenderのアドオンが充実しているのでVRMをUE4に持っていくのがグッと楽になりました!
自分用のメモのつもりで書きましたが、みなさんのお役に立てれば幸いです!
最近のコメント