CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Blender3.0】VRMモデルをBlenderで作成!
こんにちは!
みなさんは3Dモデルのフォーマット〔VRM〕をご存知でしょうか?
今回は、Blenderで直接VRMモデルを作る方法を中心に解説していきます!
VRMとは
VRMとは、株式会社ドワンゴによって発表された、3Dモデルを作成する際に用いられるファイルフォーマットです。
ボーンやシェイプキーなどモデルの構造が統一されており、複数のアプリケーションで使用することが出来ます。
モデルの製作を行う代表的なソフトに、〔Vroid〕があります。
VRMと他のフォーマットとの違いや、対応しているソフトについての詳しい情報は、こちらのサイトに掲載されてます!
VRMをインポート
後程紹介するアドオン〔VRM_Addon_for_Blender〕を用いて、BlenderにVRMモデルをインポートすることが可能です。
こちらのサイトでは、Vroidなどで作成したVRMモデルをBlenderにインポートし、編集を行う方法について紹介しています。
BlenderでVRMモデルを作成
それでは、BlenderでVRMモデルを作成する手順について紹介します!
アドオン VRM_Addon_for_Blender
BlenderでVRMモデルを作成する際は、〔VRM_Addon_for_Blender〕というアドオンが非常に便利です!
アドオンはこちらのサイトで配布されています。
アドオンのインストール方法についても上のリンク先で詳しく説明されています。
インストールを行ったら、忘れずにアドオンを有効化しましょう!
今回は、Blenderのみで作成したこちらのモデルをVRMでエクスポートできるように調整します。
ボーンの設定
VRMでは、決められたボーン構造があります。
この構造を満たしていないと、正しくエクスポートを行うことが出来ません!
ここでは、自動で追加したボーンを用いる方法と、すでに存在するボーンを編集して利用する方法について紹介します。
自動でボーンを追加する
アドオンを有効化すると、〔Shift+A〕から表示される〔追加〕メニューから、そのままVRMモデルに使えるボーンを追加することが出来ます。
〔アーマチュア〕から〔VRMHumanoid〕を選択します。
すると、画像のような人の形が表示されます。(表示モードをワイヤーフレームに設定すると見やすいです。)
左下の〔Add VRM Humanoid〕メニューを開くと、追加したボーンの背の高さや、パーツの大きさを操作するパラメータが表示されます。
パラメータを適切に調整した結果、以下のようになりました。
次に、作成したボーンの編集モードに入り、ボーンの大きさがさらにモデルに一致するように変形を行います。
サイズが一致したら、アーマチュアの設定とウエイトペイントを行います。
アーマチュアやウエイトペイントについては以下の記事を参考にしてください!
手動設定
モデルにすでにボーンが存在している場合、手動で調整を行い、VRMに対応させることが可能です!
しかし、VRMに使えるボーンにはいくつか条件があります。
- T-スタンスで作成されている
- すべてのボーンがツリー構造のようにつながっている(Rootボーン以外には必ず親ボーンが存在する。)
- いくつかの必須ボーンが正しい構造で用意されている
VRM_Addon_for_Blenderでは、これらの設定を行う機能が存在します。
シーン上に表示されているアーマチュアが目的のアーマチュア一つのみになる状態で以下処理を行います。
3Dビューポートの〔VRM〕タブ内の〔VRM 0.x Humanoid〕タブを確認しましょう。
こちらには、既に存在するボーンをVRMのフォーマットに対応させるメニューが存在します。
こちらに、目的のアーマチュアのボーンを一つづつ設定していきます。
親ボーンから先に設定するとやりやすいです。
選択肢に設定したいボーンが表示されない場合は、ボーンの構造が不適切なので、親子構造を見直す必要があります。
実際に、設定を行ってみました!
この状態で、〔VRMモデルのチェック〕を選択すると、〔エラーはありませんでした〕と表示されます。
次に、〔VRMオプションボーン〕を設定します。
こちらは、モデルのエクスポートに必須ではありませんが、追加することで表現の幅が大きく広がります!
メッシュの設定
VRMでは、メッシュの構造にも制限があります。
モディファイアはエクスポートできない。
- 三角面のみ対応している
- UV展開がされている
- 1つの頂点にウエイトを設定できるボーンは4つまで
以上の条件を満たすように、メッシュの構造を見直す必要があります!
マテリアルの設定
VRMでは、マテリアルの構造にも制限があります。
BlenderでVRMモデルを作る際は、最初からこの方式に則ってマテリアルを作成するか、既存のマテリアルを修正する必要があります。
アドオンを追加した時点で、シェーダ―エディタで〔Shift+A〕を押して表示されるメニューの〔グループ〕に新しいノードグループが追加されています。
今回は、〔MToon_unversioned〕を使って、髪のマテリアルを作成します。
- 〔Shift+A〕→〔グループ〕から〔MToon_unversioned〕を追加します。
- 〔MainTexture〕に髪の毛のテクスチャを、〔ShadeTexture〕に影のテクスチャを追加します。
また、影の範囲など、を設定するパラメータには、〔値ノード〕や〔RGBノード〕を接続して調整を行います。
〔MToon_unversioned〕には〔画像ノード〕、〔RGBノード〕、〔値ノード〕を直接接続します。〔リルート〕を含む他のノードを挟んだ場合エクスポートができません
これらの処理をすべてのマテリアルに適用します!
揺れものの設定
VRM_Addon_for_Blenderでは、揺れもの(Spring Bone)と衝突(Collider)を設定する手段も用意されています。
3Dビューの〔VRMタブ〕の〔VRM 0.x Spring Bone〕タブからこれらの設定を行うことが出来ます。
モデルのエクスポート
最後に、アドオンの機能を用いてモデルのエクスポートを行う方法について紹介します!
ファイル→エクスポート→VRM(.vrm)を選択します。
すると、以下のようなウィンドウが表示されます。
〔情報〕欄にはモデルの問題点について記載されています。
自動で修正が行われるため、このままでもエクスポートが可能ですが、エラーが起きたりエクスポートに時間がかかる場合はこちらの項目を確認しましょう!
次に、作成したVRMモデルを〔UniVRM〕を導入したUnityにインポートしてみます!
UniVRMとはUnityでVRMを読み込めるようにするためのスクリプトです。
導入方法についてはこちらの記事を参考にしてください!
エクスポートしたVRMモデルをUnityのProjectウィンドウにドラッグ&ドロップします。
そうすると、モデルデータと、テクスチャファイルなどを含めたフォルダが生成されます。
モデルデータをダブルクリックすると、モデルが表示されます。
モデルが正しく表示されています!
Unityでのセットアップ
アドオンの機能によって、VRM用の設定を行うことが出来ますが、どうしても限界があります。
そのため、エクスポートしたモデルUnityでのセットアップを行う必要があります。
Unityでのセットアップについては、こちらの記事を参考にして下さい!
エラーがおきたら
人によってモデルやシーンの構造に違いがあるため、今回の方法を試してもうまく行かない場合があります。
うまくエクスポートが行えなかった場合は、以下の項目を確認してみて下さい!
- 頂点数が多いとエクスポートに非常に時間がかかる
- ボーンが1つのツリー構造になっていないと、正しくボーンを設定できない。
- シーンに複数のアーマチュアが存在するとうまくエクスポートできません。
まとめ
今回は、Blenderを使ってVRMモデルをエクスポートする方法について紹介しました。
非常に強力なアドオンによって、Vroidなどを使わなくても、ある程度VRMモデルを作成することが可能です。
Blenderに慣れていて、Blenderで1から作業を行いたいという方もいると思うので、この記事が参考になれば幸いです!