見出し画像

VRoid Studioで出力した3DモデルをBlender・Unityで様々な要素を追加しよう

※オンラインショップでは、3Dモデル(VRM・PMX)やVRoid Studio用素材、カスタムカーネルを取り扱っています。

1.ツールの使い分けを行う【餅屋は餅屋】

VRoid Studioで出力した3Dモデルは、アバターとして使ったり、VRM対応アプリで使ったりするのには十分な仕上がりです。しかし、VRoid Studioはβ版という事もあって、もっと色々な事をしたいという時には機能的に足りていません。より深くモデリングをしていくには、BlenderやUnityを導入する必要があります。やはり、専門のツールに任せる事で、より魅力的な3Dモデルに仕上げていく事が出来ます。

◎VRoid Studio

直感的な操作で3Dアバターを作る事が出来るソフトウェアです。イラストを描く感覚でモデリングが行えるので、素体作りに便利です。デフォルトの服をベースに、服を作りたい時にはVRMで出力して、Blenderの方で加工する事も出来ます。単純にテクスチャ画像の差し替えだけでも、色々なデザインが出来ますが、テクスチャ画像に描き込むので立体物にはどうしても太刀打ち出来ない場面もあります。

◎Blender

https://www.blender.org/

オープンソースの3Dモデリングツールです。デフォルトの機能でも、かなりの事が出来ますが、アドオンを追加する事で、より効率的な作業を行えます。VRoid Studioが直感でモデリングしていく事が出来るツールですが、Blenderは古くから世界中の多くのユーザーから愛用されてきたので、より専門的なモデリングをしたい時に適しています。

VRMモデルにアクセサリーや服を自作したり、服と素体を完全分離させたりしたい時に、Blenderを使ってモデリングを行います。アクセサリーや服を別のプロジェクトで作成して、後からVRMを読み込んだファイルに追加するAppend機能を持っているので、別々のプロジェクトからオブジェクトを持ってくる事が出来るのは便利です。

◇VRMの入出力用アドオン「VRM Importer」

https://github.com/saturday06/VRM_Addon_for_Blender

◎Unity

https://unity.com/ja

Unityは、同人PCゲームやスマホゲームやブラウザゲームなどの制作で使われているゲームエンジン兼統合制作ソフトウェアです。C#でスクリプトを書いて、ゲームやアプリを仕上げていくタイプのツールで、関連書籍や情報サイトが豊富にあるので、ゲーム開発やアプリ開発がし易いのがメリットです。

VRoid Studioで出力した3Dモデルのシェーダーを変更したり、アドオンのPMXExporterを使ってMMD用の3Dモデル方式であるPMXファイルに変換したりする時にも使います。最終的な工程で使うと便利なツールと言えます。

◇VRM入出力用アドオン「UniVRM」

https://github.com/vrm-c/UniVRM/releases

これらのツールを使い分けていく事で、魅力的な3Dアバター作りが行えます。

2.VRMファイル改造の流れ

2-1.VRoid Studioを使って素体作りをする。素体の髪型や体型や顔の形、瞳などのテクスチャの設定は、ここで仕上げておくと楽です。これをVRMファイルで出力します。

VRoid Studioの最近のバージョンでは、エクスポート時にポリゴンの削減やマテリアルの削減などが行なえます。しかし、ここでは、ポリゴンの削減とボーンの数の調整だけを行って、テクスチャの修正やマテリアルの削減はBlenderやUnityで行った方が修正が聞き易いです。

ボーンの数とポリゴンの数は、髪型や衣装の装着状況によって変わってきます。アイテムはBlenderで作った方が少ないポリゴンで作る事が出来ます。バーチャルSNSのアバターに使いたいのであれば、ボーン数やマテリアル数を減らす必要があります。Clusterの場合は、ボーン数128以下・マテリアル数が8以下という制限が課せられているので、オールマイティーな仕様にしておくには、ボーン数とマテリアル数を少なくしておくのがベストです。

VRoid Studioにおいて、ボーン数の増加に繋がるのは髪型の編集です。髪の毛が多く、それに対してボーンを追加していくと、どんどん増加します。

ボーンはプロシージャや手描きガイド一つ当り2〜3個あれば、滑らかに動くように見えるので、髪型編集をする時はボーン数を意識して行うと良いでしょう。

2-2.Blenderには、VRMファイルの入出力が出来る「VRM Importer」というアドオンを使って、VRMファイルをインポートします。出力に関しても、このアドオンで行えます。出力時は、Armatureも含めて出力しないと、ボーンやウェイトの設定が反映されないので注意が必要です。ボーンやシェイプなどの設定が飛んでいるので、Unityで設定し直さなければいけないという記述をよく見かけますが、これが原因です。Armatureの項目の目のマークを開かせておいて下さい。この状態で出力すると、自動的にボーン関連の設定が反映されたVRMファイルが出力されるので、blendファイル経由でUnityにデータを渡して、ゴチャゴチャと設定し直す手間が大幅に減ります。

スクリーンショット_2021-05-14_08-50-55

Blenderでの作業は、自作のアクセサリーや服の自作、素体と下着の完全分離、アクセサリーや服の素体への装着です。必要に応じてArmatureやウェイト、UV展開などを行っていきます。Unityでも、ボーンの子にしたアクセサリーの追加を行えますが、Blenderで同様の作業を行った方がやり易かったです。Blenderでは、作ったアイテムを親子関係の設定を先に済ませて、アイテムの位置を微調整すると、楽にアクセサリーの装着が出来ました。

子を設定するには、オブジェクトモードで、装着したいアイテムを選択し、Object Propertiesをクリックして、Relationsの項目を開きます。

スクリーンショット_2021-05-14_09-13-00

◇腕などの稼働箇所にアイテムを追加したい場合

ParentはArmatureを選択し、Parent TypeはBoneにします。骨のマークをクリックすると、ボーンを選べるようになるので、マウスでスクロールしながら対象となるボーンを選択するだけで、アイテムをそのボーンの子に設定出来ます。アイテムを読み込んで、動かしていないのであれば、自動的に親であるボーンの所にアイテムが移動します。別プロジェクトでアイテムを作って、Appendでそのプロジェクトのオブジェクトを読み込んで、この設定をした方が、アイテムが明後日方向に飛んでしまうという事は起こりません。

◇素体にアイテムを追加したい場合

Blenderでニーハイやストッキングやパンツなどを作って、それを素体に装着させたい場合には、ParentにBodyを選びます。可動部に比べると、呆気ないぐらい簡単に装着が出来ます。

2-3.Blenderでモデリングが済んだら、Unityで最終的な設定を行います。MToonシェーダは、Unity用のシェーダーであるので、BlenderにVRMを持っていって、Shading EditorでMToonの設定をして作業を行うよりも、Unity上で作業を行った方が効率的であり、不具合の発生を防げます。Blenderで作成したアクセサリーや服は、VRM出力時にStandardシェーダーが使われます。MToonで統一したい場合は、UnityでMToonシェーダーへ変更すると良いでしょう。

スクリーンショット_2021-05-14_08-14-55

UVアニメーションやEmission、法線マッピングやアウトラインの設定もUnity上で全て行います。完成したら、利用するサービスやアプリに合わせて、VRMやunitypackageなどのファイルを出力させます。

3.Blenderで素体と下着を完全分離

VRoid Studioでは、素体と下着を別々にする事が出来ず、下着を素体のテクスチャ画像に描くという手法が一般的です。素体と下着を完全に分離させるには、Blenderを使います。

素体となるVRMファイルを読み込んで、オブジェクトモードで読み込んだ素体を選択し、編集モードでニーハイやパンツやブラジャーなどになる部分を選択します。大体の形に選択し終えたら、Shift+D→Enterで選択部分の複製を作り、Pキーで独立したオブジェクトにします。分かり易い名前に変更しておくと、何のパーツか分かり易いでしょう。素体は不用になるので、削除するか、非表示にします。

複製したオブジェクトをベースに、編集モードで加工をしていきます。これは、メインのプロジェクトとは分けて作業をすると、作業がし易くなります。

スクリーンショット_2021-05-14_09-25-31

アイテム制作用のプロジェクトを保存したら、メインのプロジェクトを開き、File→Appendからアイテム制作用のプロジェクトの中にあるアイテムのオブジェクトを追加します。この状態でアイテムのオブジェクトを動かさずに、2-2の項目の親子関係の設定を行います。後は、アイテムを微調整するだけです。

スクリーンショット_2021-05-14_09-32-57

素体と下着を分離させると、このように素体のテクスチャは完全に裸の物だけを用意すれば良くなります。

スクリーンショット_2021-05-14_05-30-10

スクリーンショット_2021-05-14_05-30-43

素体の一部分を複製して作ったアイテムは、そのままでは素体に食い込むので、Modifier PropatiesからShrinkwrapを追加して、素体と少し離します。

設定は以下のようにしました。

Wrap Method ー Nearest Surface Point

Snap Mode ー Outside Surface

Target ー Body

Offset ー アイテムによる(0.0005m〜0.003mぐらい)

スクリーンショット_2021-05-14_09-40-35

まとめ

BlenderとUnityを使う事で、VRoid Studioだけでは出来ない事が出来るようになります。各ツールを工程によって使い分ける事で、効率的に作業を行う事ができ、元のVRMファイルが持っていない機能を持ったVRMファイルを作る事が出来ます。

この記事が気に入ったらサポートをしてみませんか?