VRChatのアバターのマテリアルはBlenderでCats Blender Pluginを使って1ボタンで処理する方法が絶対におすすめって本当?
Unityに移した後にレンダリングモードをCutoutに変更するのがポイントって本当?
こんな疑問に答えます。
僕はVRoidで漫画が作れるiPhoneアプリComicamを開発して公開中、自作の3Dモデルは400DL以上されています。
そんな僕が解説していきます。
作業環境
Unity 2017.4.15f1
VRCSDK-2019.04.14.12.31
Blender 2.79a
Cats Blender Plugin 0.13.1
Windows10
VRChatのアバターのマテリアルを解説【追加プラグインを入れて統合するだけ】
まずBlenderのCats Blender Pluginでアバターのマテリアルを統合していきます。
Cats Blender Pluginの使い方の全体の流れはこちらで解説しています。
» Cats Blender Pluginの使い方【1ボタンで最適化・詳細設定も可能】
アバターをVRoidで作る方法はこちらの記事で解説しています。
» VRoidの完全マップ【入門・基礎・中級・上級を徹底解説】
BlenderでCats Blender PluginにMaterial Combinerを追加インストールする
Material Combinerの追加インストールが必要です。
https://vrcat.club/threads/material-combiner-blender-addon-2-0-3-2.2255/
Macではインストール完了できない
僕のMacではMaterial Combinerが上手くインストールできなかったの注意です。
再起動してくださいと表示されますが、実際に再起動しても先に進みません。
Windows使いましょう。
AtlasタブでGenerate Material Listボタンを押す
インストールが無事に完了するとこの表示になります。
マテリアルリスト生成ボタンを押します。
マテリアルリストを確認する
マテリアルリストにすべて緑色のチェックが付いているのを確認して「Save Atlas to」を押します。
これですべてのマテリアルが統合されます。
フォルダの場所を目で確認してAtlasを保存する
フォルダ画面が開くので「Create Atlas」ボタンを押します。
VRMファイルを置いていたのと同じ場所に統合されたマテリアルが保存されます。
マテリアルが統合されたのを確認する
マテリアルが1つに統合されました。
これでBlender側の作業は完了です。
VRMファイルを置いたフォルダを開いてマテリアルを確認する
VRMファイルを置いていたフォルダに新しく「combine_material_1234567」のようなファイルが生成されています。
これがVRChatに適したVRoidのマテリアルです。
Unityでマテリアルをcombine_materialに設定する
Unityに移りCats Blender Pluginで生成したFBXファイルを配置したら、マテリアルを指定していきます。
右サイドバーのマテリアルタブのここです。
リストが出るので先ほどの「combine_material_1234567」を指定します。
指定できない場合はテクスチャネームから探す設定にする
ここでどうしても結合したテクスチャが指定できないことがあります。
その場合はまずLoation(場所)をLocationをUse External Materials(外部のマテリアルを使用する)を選びます。
Naming(名前)をBy Base Texture Name(テクスチャ名で探す)にしてApplyを押してください。
そうすると「combine_material_1234567」が適用されます。
成功するとこのようにマテリアルが適用されます。
ただ透明度がちょっとおかしいですね。
UnityでテクスチャのRendering ModeをCutoutに変更する
左サイドバーでBodyを選択します。
右サイドバーにマテリアルの詳細設定が出ます。
その中のRendering Modeを「Cutout」に変更します。
Cutoutは透明部分は透明、不透明部分は不透明に描画するというモードです。
これで想定通りの見た目になりました。
マテリアルの作業は完了です。
VRChatのアバターのマテリアル作業の際に知っておきたいこと【1つにする理由は制限クリアです】
マテリアルをわざわざ統合するのはVRChatの制限をクリアするためです
VRChatのアバターのアップロードには細かい制限があります。
マテリアルの数が多いとアップロードできなかったり重くなる原因になりやすいです。
正確には、公式サイトには10以上のマテリアルがある場合はアトラス化が推奨と書いてあります。
今回の作業をすれば、Unityでマテリアルの数(マテリアルスロットの数)が1つになっているのでOKです。
マテリアル・テクスチャ・アトラスの意味が混ざって混乱しがちなので注意です
テクスチャアトラス
コンピューター負荷を抑えるために、テクスチャを地図帳(=Atlas)のように集めて凝縮したものです。
UV展開したテクスチャと同じ意味と認識しています。
» 参考:https://en.wikipedia.org/wiki/Texture_atlas
マテリアル
マテリアルは、テクスチャ・光の色・影の色などの素材に関するすべての情報を含みます。
つまり今回の作業は、Cats Blender Pluginを使いVRoidのすべてのマテリアルの中に入ってるテクスチャを全部1枚にアトラス化してまとめている、ということになります。
マテリアルタブは使わない
ちなみにCats Blender Pluginにはマテリアルタブも存在していて似たようなボタンが並んでいますが、ここはとりあえず使わなくてよさそうです。
参考:
https://docs.vrchat.com/docs/avatar-optimizing-tips
というわけで今回は以上です。
最初はマテリアルの意味がよくわからなかったのですが一度理解すると超簡単だと思います。