メインコンテンツまでスキップ

Material

Shaderとその設定値をひとまとめにしたもの

なに?

マテリアル(Material: 素材)とはProjectウィンドウに保存されるファイルのひとつのことで、「どのシェーダーを使うのか?」という情報と、「シェーダーの各パラメータにはどんな値を設定するか?」という情報をひとまとめにしたものです。

マテリアルで設定できる項目は選んだシェーダーによって変わります。たとえばUnityの標準機能として備わっている「スタンダードシェーダー」であれば使うテクスチャの指定およびその色、滑らかさ、金属度合い、発光度合いといった基本的なパラメータのみが設定できますが、lilToon等の高機能なシェーダーであればそれに加えて輪郭線の色や太さ、ファー(毛並み)、ラメ、影や光の細かい付き方などといった多彩な表現が可能となります。

ちなみに、「参照すべきシェーダーが存在しない」、「シェーダーで設定すべき項目にエラーがある」となった場合、そのマテリアルは壊れてしまいます。RendererをもつGameObjectに壊れたマテリアルが割り当てられていた場合、ピンク一色のいわゆる「マテリアルエラー」として描画されます。

マテリアルは、1つのメッシュ オブジェクトに対して1つないしは複数のマテリアルが割り当てられます。たとえば、顔のメッシュオブジェクトに対するマテリアルは「顔用」、「表情用(赤らめ、青ざめなど)」、「眉用(たいていは髪・耳用と共用)」と複数に分けられることがほとんどです。

特に顔に関するパーツの場合、あなたと会話する他のVRChatユーザが一番目にする部分にもなります。このため、細かな表現や高品質な描画ができるようにマテリアルも細かく分けられていることがほとんどです。

たとえば下図のハオランくん1 の場合、ヒエラルキーウィンドウで選択中のBodyというGameObjectは顔のメッシュオブジェクトを描画するためのSkinnedMeshRenderer コンポーネントを持っていることがインスペクターウィンドウから分かりますね。画像の赤枠、SkinnedMeshRendererコンポーネントに割り当てられているマテリアルスロットを見ると「HAOLAN_Face(顔用)」、「Face_Transparent(表情用)」、「HAOLAN_Body(首元用)」、「HAOLAN_Hair(眉用)」と4つのマテリアルを持っていることが分かります。

マテ�リアルスロット

マテリアルは衣装やアバターの作者がBlenderなどの3DCG制作ツールで作業をする工程において作られるものであり、私達のようなUnityを使ったアバター改変をする人たちがマテリアルの増減などを直接いじるような用途はあまり想定されていません。

もし特別な事情でマテリアルを分割したい、増やしたいといったときは配布されている衣装やアバターに同梱されたFBXファイルを使って3DCGツール上でマテリアルの再割り当てをするか、Unity上で動作できるメッシュ分割用のツールを試してみる方法があります。

ちなみに、マテリアルの数はアバターパフォーマンスランクにおける「マテリアルスロットの数」の項目に直結します。パフォーマンスランクを上げる目的で、逆にマテリアルを結合したり減らしたい場合はAAOなどのアバター軽量化ツールの利用を検討してみましょう。

Footnotes

  1. https://booth.pm/ja/items/3818504