MRが楽しい

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

cats-blender-pluginアドオンを使ってBlenderでキャラクターモデルを軽量化する その3(マテリアルの数の削減)

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

今回はモデルのマテリアルの数の削減を行います。
f:id:bluebirdofoz:20200422202859j:plain

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

Blenderプロジェクトの保存

cats-blender-plugin アドオンはマテリアルの結合時、テクスチャを出力します。
デフォルトの出力先は Blender プロジェクトの保存フォルダとなるので、プロジェクトを任意のディレクトリに保存しておきます。
メニューから ファイル -> 名前を付けて保存 を選択します。
f:id:bluebirdofoz:20200422202912j:plain

ダイアログが表示されるので保存先のディレクトリと、保存ファイル名を指定して[名前をつけて保存]をクリックします。
ここで指定したディレクトリが結合テクスチャのデフォルトの出力先になります。
f:id:bluebirdofoz:20200422202925j:plain

マテリアルの削減

マテリアルを削減するには[CATS]サイドバーを開き、[最適化]パネルを利用します。
初めに[Generate Material List]をクリックしてリストを更新します。
f:id:bluebirdofoz:20200422202939j:plain

最適化の処理には画像処理のライブラリが必要なため、以下のような[Install Pillow]のボタンが表示されることがあります。
この場合は、まず[Install Pillow]のボタンをクリックしてライブラリをインストールする必要があります。
f:id:bluebirdofoz:20200422202954j:plain

[Generate Material List]をクリックすると、現在のモデルが所持するマテリアルの一覧が表示されます。
f:id:bluebirdofoz:20200422203007j:plain

ここから cluster の制約に収まるように 8 個以下のマテリアルに結合していきます。
結合の際は以下の事柄に気を付ける必要があります。
・なるべく服や肌など質感設定が行えるマテリアル同士で結合する
・テクスチャが圧縮され過ぎないようにテクスチャが大きいマテリアルを多くまとめ過ぎないようにする
・描画処理軽減のため、アルファ値の透明化が必要なマテリアルと不要なマテリアルで分ける
VRMモデルの場合、髪の毛はテクスチャでなくマテリアルの色情報でカラー設定を行っているので結合は難しい

今回、筆者は以下のように3マテリアルを結合してみました。

服のマテリアル

f:id:bluebirdofoz:20200422203030j:plain

顔のマテリアル

f:id:bluebirdofoz:20200422203044j:plain

透明化が必要なマテリアル

f:id:bluebirdofoz:20200422203057j:plain

結合したいマテリアルを選択して[Save Atlas to..]をクリックすると、マテリアルが結合されます。
ダイアログが表示されるので保存先のディレクトリを指定して[Create Atlas]をクリックします。
f:id:bluebirdofoz:20200422203108j:plain

これでマテリアルが 8 つにまとめられました。
指定した保存フォルダには、結合されたテクスチャが出力されています。
f:id:bluebirdofoz:20200422203119j:plain

これで Blender でのモデルの軽量化作業は完了です。
最後にキャラクターモデルを FBX の形式で出力します。

[CATS]の[Export Model]をクリックします。
f:id:bluebirdofoz:20200422203132j:plain

マテリアルが 5 つ以上ある場合は以下のような警告ダイアログが表示されます。
無視して[Continue to Export]をクリックして出力を実行します。
これは cats-blender-plugin アドオンが VRChat 向けのモデルを作成するツールとして作成されているためです。
(VRChat ではマテリアルを 4 つとすることを推奨しています(最大では 32 個まで利用可能))
f:id:bluebirdofoz:20200422203151j:plain

ダイアログが開くので、出力先のディレクトリとファイル名を指定して[FBXをエクスポート]をクリックします。
f:id:bluebirdofoz:20200422203201j:plain

これで結合したテクスチャと最適化された FBX 形式のキャラクターモデルが出力できました。
f:id:bluebirdofoz:20200422203216j:plain

cluster でアバターを利用する場合、VRM 形式のモデルである必要があるため、FBX 形式のモデルを VRM 形式に再変換する必要があります。
次回は Unity を使ってキャラクターモデルを改めて VRM 形式で再出力します。
bluebirdofoz.hatenablog.com