HoloLensの開発ツールであるMixedRealityToolkitにはHoloLens等スタンドアローンデバイスで動作する高機能なShaderとしてMRTK StandardShaderが提供されています。
今回の記事はまとめ記事です。
〇MRTK StandardShaderの使い方
Unity上で新規のMaterialを作成し、inspector上部のタブから[MixedReality Toolkit]→[Standard]と選択することで使用することができます。
●Rendering Mode
マテリアルのモードです。
大きく[Opaque]、[Cutout]、[Transparent]、[Fade]とその他カスタマイズできる[Additve]、[Custom]があります。
Opaque - デフォルトです。透明な部分のない、一般的な固形のオブジェクトに適しています。
Cutout - 不透明と透明な領域をはっきり分ける透明効果を作成することができます。このモードでは、半透明の領域は存在せず、テクスチャは100%不透明か、まったく見えなくなるか、どちらかになります。これは、葉っぱや穴だらけでボロボロの服などの素材を形作るのに便利です。
Transparent - 透明なプラスチックやガラスなどの現実的な透明なマテリアルのようなレンダリングに適しています。このモードでは、マテリアル自体は、(テクスチャのアルファチャンネルとティントカラーのアルファに基づいた)透明度の値になります。しかし、本物の透明なマテリアルの場合と同様に、反射や照明のハイライトは、完全な明快さで表示されたままになります。
Fade - オブジェクトが鏡面反射光や反射を含んでいる場合でも、透明度の値を使ってオブジェクトを完全にフェードアウトすることができます。このモードは、オブジェクトのフェードインやフェードアウトをアニメーション化する場合に便利です。反射やハイライトもフェードアウトするので、透明なプラスチックやガラスのような透過素材を写実的にレンダリングするのには適していません
~Unity公式レファレンスより引用~
●Cull Mode
メッシュに対してどの面を描画するかを設定します。
・Back・・・メッシュの表面をします。 基本的にこのモードを使用します。
・Front・・・メッシュの裏面を描画します。 球体や一部のオブジェクトで効果を発揮します。
・Off・・・メッシュの両面を描画します。 透明度を持ったオブジェクトなどで効果を発揮します。
●Main Maps
オブジェクトの光の反射、見た目の色になります。
画像をアタッチすることでテクスチャとして使用できます。
また、反射や金属感など見た目に関する基本的な設定を行います。
●Normal Map
Normal Mapをテクスチャとして設定することでオブジェクトに質感を与えることができます。
●Emission
有効化することで発光を与えることができます。
●Triplanar Mapping
有効化することでUV展開が設定されていない3Dオブジェクトや地形など複雑なオブジェクトに対し一様にテクスチャを対応させることができます。
この設定にはワールド座標に対してテクスチャが対応する場合とオブジェクトのローカル座標に対してテクスチャが対応する二つのタイプがあります。
ワールド座標に設定した場合、オブジェクトを動かすことでテクスチャのUVが変わります。
●Directional Light
有効化することでライトの影響を受けるようになります。
写真やUIなどのライトの影響を与える必要がないMaterialに対してはチェックを外して無効化します。
●Rim Light
有効化することでリム(縁)に対して光を持ったオブジェクトを作成できます。
透明度を持ったオブジェクトなどに対して非常に効果的な演出を行えます。
●Vertex Extrusion
法線方向へのメッシュの展開を行えます。
●Clipping Border
Clippngを行った断面の色とその大きさを指定します。
●Near Fade
この機能を使用することでオブジェクトに対してある距離まで近づくことによって見える(もしくは消える)オブジェクトを作成できます。
●Hover Light
Hover Light.csをアタッチしたオブジェクトで使用することでカーソルが当たった場所の色を変えることができます。
●Border Light
有効化することで縁を強調するようにライトをつけることができます。
●Round Corners
有効化するとedgeを崩し丸みを帯びた見た目にすることができます。
●Inner Glow
メッシュ内部の質感を変化させます。 輝きを与えることや影を与えることができます。
●Indescence ●Environment Coloring
虹彩という名の通り見る角度によって色合いが変化します。
Environment Coloringはx,y,zそれぞれの軸にカラーを設定し、見る角度によってその色へと遷移するMaterialを作成できます。
〇Examples
MaterialGalleryのシーンに関する過去の記事のまとめになります
〇ドキュメント
MRTKStandardShaderに関するドキュメントの記事のまとめになります。