VRChat 日本wiki - シェーダー


シェーダーとマテリアルについて

シェーダーとは

陰影処理のことでアバターやワールド内の物などオブジェクトの見え方を設定するものです。
着色、テクスチャの付与、反射、透過など見え方にかかわる属性を設定することができます。
シェーダーによって得意不得意があるため、目的に合わせたシェーダーを設定を行う必要があります。
基本的にアバター向け、ワールド向け関係なく使用可能ですが、ここではVRChat内で一般的な用途別に紹介しています。

シェーダーは基本的に外部からスクリプトを参照することがなければ、どのようなものでもVRChat上に持っていくことが可能なので、自分で描いたシェーダーや、ShaderForgeなどで作ったShaderも使うことができます。

マテリアル

アバターやワールド内の物などのオブジェクトにシェーダーを設定するためにはマテリアルを作成する必要があります。
マテリアルとはオブジェクトの質感を表現するもので、任意のオブジェクトに割り当てシェーダーを設定することで見え方を変えます。マテリアルとシェーダ

アバター向けシェーダー

ユニティちゃんトゥーンシェーダー

ユニティちゃんトゥーンシェーダー2.0
Unity公式より提供されているトゥーンシェーダー
トゥーンシェーダーに必要とされてる表現は殆ど揃ってる。
それ故にUnityを触った事もないような初心者が扱う場合はハードルが高いかもしれません。
VRChatユーザーの増加に伴いVer2.07から日本語インターフェースが追加されある程度とっつきやすくなりました。
2019/10/7には書籍が発売されより使いやすくなりました。
実践!ユニティちゃん トゥーンシェーダー2.0 スーパー使いこなし術

MnMrShaders

みに配布用 - MnMrShader
作者:みに @ Twitter
「まんまるシェーダー」と呼ばれている。

Arktoon-Shaders(開発終了)

Arktoon-Shaders releases
作者:synqark @ Twitter
ワールドの環境を尊重しつつも、キャラクターに必要な表現が追求されてる。

Cubeds-Unity-Shaders(開発終了)

A compilation of custom shaders for Unity3D
設定項目の説明
VRCの開発チームの一人である cubedparadox氏 が作成。VRchatの親和性が高いシェーダーです。
トゥーン調のシェーディングがされるシェーダ。周囲の環境光(AmbientSorceやAmbientColor、DirectionalLight等)から影響を受けるシェーダ。
離れていると見えないようなエフェクトなども同梱されている。ノーマルマップにも対応。

ワールド向けシェーダー

Standerd Shader

新しく作成したマテリアルには標準でスタンダードシェーダーが設定されている。
シェーダーの構造をスタンダードシェーダーを例に説明する。
Rendering Mode
プルダウンでシェーディングのタイプを選択する。
・Opaque:不透明な素材
・Cutout:テクスチャのアルファで一部透過をさせることができる
・Fade:半透明、反射も透過するため物理的には正しくない
・Transparent:半透明、反射をするため現実近い
Main Maps
・Albedo:反射する色、基本的にはメインの色になる、テクスチャを設定することもできる
・Metallic:金属光沢、0〜1の範囲で設定きる、マスクテクスチャを設定することで部分的に反射させることができる
・Smoothness:表面のつや、0〜1の範囲で設定きる
・NormalMap:法線マップ、設定することで細かな凹凸を表現することができる
・HeightMap:視差マッピング、キズのような凹みを表現することができる
・Occlusion::遮蔽マップ(AO)、奥まったところや、傷などを暗くすることができる
・Detail Mask:セカンダリマップの適用量をマスクで指定する、標準では全適用

・Emission:チェックすることで発光を適用させる
・Color:発光の色を指定し強さを0〜1で設定できる
・Global Illumination:GIやライトマップベイクに影響する手法を選択する

・Tiling:テクスチャのスケールを指定する
・Offset:テクスチャのオフセットを指定する
Secondary Maps
・Detail Albedo:詳細な色を指定する
・Normal Map:詳細な法線を指定する
・Tiling:テクスチャのスケールを指定する
・Offset:テクスチャのオフセットを指定する
・UV Set:セカンダリマップで使用するUVチャネルを指定する


Unityアセットストアからシェーダーの追加

  1. 画面中央AssetStoreタブで任意のシェーダーをインポートする。(ToonyColorsFreeオススメ)
  2. fbx生成の過程でMaterialsフォルダが生成されているので、格納されているファイルを全選択し、画面右InsoectorタブのShaderプルダウンから先程インポートしたシェーダーを適用する。
  3. シェーダーの詳細設定方法については各自ググること。