MRが楽しい

MRやVRについて学習したことを書き残す

cats-blender-pluginアドオンを使ってBlenderでキャラクターモデルを軽量化する その4(VRMモデルの作成)

本日は Blender2.8 の小ネタ枠です。
cats-blender-pluginアドオンを使ってBlenderでキャラクターモデルを軽量化する手順を記事にします。

今回は軽量化したモデルを cluster で利用するため、VRM 形式のファイルに再変換します。
f:id:bluebirdofoz:20200424224841j:plain

前回記事の続きです。
bluebirdofoz.hatenablog.com

UniVRMの準備

VRM 形式のファイルを作成するため UniVRM を利用します。
以下の記事の手順を参考に UniVRM をインポートした Unity プロジェクトを作成してください。
bluebirdofoz.hatenablog.com

軽量化モデルの取り込み

Unity プロジェクトを作成したら、前回記事で作成した軽量化モデルとテクスチャをプロジェクトにドラッグして取り込みます。
f:id:bluebirdofoz:20200424224905j:plain

以下のようにモデルが取り込まれます。
この時点では結合したテクスチャのみをインポートしたので、結合部分以外のテクスチャは反映されていません。
f:id:bluebirdofoz:20200424224920j:plain

モデルの基本設定

最初にマテリアルの作成と、Humanoid リグの適用を行います。
[Inspector]ビューの[Materials]タブを開き、[Extract Materials]をクリックします。
f:id:bluebirdofoz:20200424224948j:plain

ダイアログが開くので、マテリアルの出力先フォルダを指定して[フォルダーの選択]をクリックします。
f:id:bluebirdofoz:20200424225003j:plain

これでモデルのマテリアルが生成され、出力されました。
f:id:bluebirdofoz:20200424225016j:plain

次に Humanoid リグの設定を行います。
[Rig]タブを開き、[Animation Type]を[Humanoid]に設定して[Apply]をクリックします。
f:id:bluebirdofoz:20200424225029j:plain

これでモデルに Humanoid リグが適用されました。
念のため、適切にボーンの適用が行われているか、[Configure..]を開いて確認します。
f:id:bluebirdofoz:20200424225041j:plain

確認したところ Jaw (顎)のボーンに HairJoint (髪の毛)のボーンが適用されてしまっていました。
VRoid モデルには顎のボーンはないので[None]に再設定して[Apply]で反映しておきます。
他の箇所についても適切なボーンが紐づいていることを確認してください。
f:id:bluebirdofoz:20200424225056j:plain

オリジナルの VRM ファイルの取り込み

基本設定が完了したらマテリアルの設定を行います。
今回は結合を行わなかったマテリアルが幾つかあるので、結合しなかったマテリアルはオリジナルの VRM ファイルから取得します。
編集元の VRM ファイルをロジェクトにドラッグして取り込みます。
f:id:bluebirdofoz:20200424225114j:plain

するとオリジナルの VRM モデルのマテリアルが[ファイル名.Materials]フォルダに出力されます。
f:id:bluebirdofoz:20200424225128j:plain

再び軽量化モデルの[Inspector]ビューの[Materials]タブを開きます。
同名のオリジナルのマテリアルを各マテリアルにドラッグして上書きしていきます。
全て差し替えたら[Apply]をクリックして反映します。
f:id:bluebirdofoz:20200424225141j:plain

[Inspector]ビューを開きなおすと、以下の通り、結合箇所以外のマテリアルがオリジナルのマテリアルで適用されました。
f:id:bluebirdofoz:20200424225154j:plain

結合マテリアルの設定

最後に結合したマテリアルを手動で調整します。
調整結果が見やすいよう、モデルを[Hierarchy]配下にドラッグして[Scene]に表示します。
f:id:bluebirdofoz:20200424225210j:plain

結合マテリアルは出力したマテリアルを選択し、直接編集することで調整します。
今回は結合マテリアルについても VRM/MToon シェーダを利用するように変更してみます。
f:id:bluebirdofoz:20200424225239j:plain

VRM/MToon シェーダに切り替えて、[Lit Color]を[R:255,G:255,B:255]にすればそれなりの見た目になります。
拘りたい方はオリジナルのマテリアルなどを参考にその他の項目も調整してみると良いです。
cluster での見栄えを考えると[Shading Toony]などは[0.5]に抑えるのがオススメです。
f:id:bluebirdofoz:20200424225251j:plain

服の結合マテリアルについても同様に変更を行います。
f:id:bluebirdofoz:20200424225304j:plain

透明化が必要なマテリアルについては、追加で[Rendering Type]を[Cutout]または[Transparent]に変更する必要があります。
f:id:bluebirdofoz:20200424225317j:plain

既存マテリアルの軽量化

今回、オリジナルの VRM のマテリアルを利用しましたが、オリジナルのマテリアルには様々なテクスチャが設定されています。
cluster にはテクスチャ枚数の制約もあるため、カラーテクスチャ以外の参照は削除しておいた方が良いでしょう。
[Normal Map]、[Emission]、[MatCap]などのテクスチャが設定されています。
f:id:bluebirdofoz:20200424225328j:plain

[None]に設定しておけば、テクスチャへの参照が切れるため、モデルにテクスチャが含まれないようになります。
解除しても劣化の少ないテクスチャは全て外しておきます。
f:id:bluebirdofoz:20200424225346j:plain

再利用するマテリアル全てに同様の軽量化を行います。
f:id:bluebirdofoz:20200424225359j:plain

VRMファイルの出力とアップロード

これで全ての軽量化の編集作業は完了です。モデルを VRM 形式のファイルとして出力します。
[Hierarchy]配下のモデルを選択した状態でメニューから VRM -> Export humanoid をクリックします。
f:id:bluebirdofoz:20200424225413j:plain

出力ダイアログが表示されるので、[Title]、[Version]、[Author]を入力して[Export]をクリックします。
[Force T Pose]、[Pose Freeze]のチェックは入れたままにしておきます。
f:id:bluebirdofoz:20200424225424j:plain

これで軽量化したモデルを VRM 形式で出力できました。
f:id:bluebirdofoz:20200424225436j:plain

以下の記事を参考に、cluster へモデルをアップロードするとアバターとして利用できます。
bluebirdofoz.hatenablog.com
f:id:bluebirdofoz:20200424225445j:plain