夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MRTK StandardShaderまとめ ~MixedRealityToolkity Examples~

HoloLensの開発ツールであるMixedRealityToolkitにはHoloLens等スタンドアローンバイスで動作する高機能なShaderとしてMRTK StandardShaderが提供されています。

今回の記事はまとめ記事です。

〇MRTK StandardShaderの使い方

 Unity上で新規のMaterialを作成し、inspector上部のタブから[MixedReality Toolkit]→[Standard]と選択することで使用することができます。

f:id:Holomoto-Sumire:20200130090613j:plain

●Rendering Mode

 マテリアルのモードです。

 大きく[Opaque]、[Cutout]、[Transparent]、[Fade]とその他カスタマイズできる[Additve]、[Custom]があります。  

Opaque - デフォルトです。透明な部分のない、一般的な固形のオブジェクトに適しています。

Cutout - 不透明と透明な領域をはっきり分ける透明効果を作成することができます。このモードでは、半透明の領域は存在せず、テクスチャは100%不透明か、まったく見えなくなるか、どちらかになります。これは、葉っぱや穴だらけでボロボロの服などの素材を形作るのに便利です。

Transparent - 透明なプラスチックやガラスなどの現実的な透明なマテリアルのようなレンダリングに適しています。このモードでは、マテリアル自体は、(テクスチャのアルファチャンネルとティントカラーのアルファに基づいた)透明度の値になります。しかし、本物の透明なマテリアルの場合と同様に、反射や照明のハイライトは、完全な明快さで表示されたままになります。

Fade - オブジェクトが鏡面反射光や反射を含んでいる場合でも、透明度の値を使ってオブジェクトを完全にフェードアウトすることができます。このモードは、オブジェクトのフェードインやフェードアウトをアニメーション化する場合に便利です。反射やハイライトもフェードアウトするので、透明なプラスチックやガラスのような透過素材を写実的にレンダリングするのには適していません

  ~Unity公式レファレンスより引用~

 f:id:Holomoto-Sumire:20200130090823j:plain

●Cull Mode

 メッシュに対してどの面を描画するかを設定します。

 ・Back・・・メッシュの表面をします。 基本的にこのモードを使用します。

 ・Front・・・メッシュの裏面を描画します。 球体や一部のオブジェクトで効果を発揮します。

 ・Off・・・メッシュの両面を描画します。 透明度を持ったオブジェクトなどで効果を発揮します。

f:id:Holomoto-Sumire:20191024181543j:plain

f:id:Holomoto-Sumire:20200130091816j:plain

●Main Maps

 オブジェクトの光の反射、見た目の色になります。

 画像をアタッチすることでテクスチャとして使用できます。

 f:id:Holomoto-Sumire:20200130091716j:plain

 また、反射や金属感など見た目に関する基本的な設定を行います。

f:id:Holomoto-Sumire:20191024103842j:plain  

●Normal Map

 Normal Mapをテクスチャとして設定することでオブジェクトに質感を与えることができます。

 f:id:Holomoto-Sumire:20200130091949j:plain

●Emission

 有効化することで発光を与えることができます。

●Triplanar Mapping

f:id:Holomoto-Sumire:20191027112449j:plain

 有効化することでUV展開が設定されていない3Dオブジェクトや地形など複雑なオブジェクトに対し一様にテクスチャを対応させることができます。

 この設定にはワールド座標に対してテクスチャが対応する場合とオブジェクトのローカル座標に対してテクスチャが対応する二つのタイプがあります。

 ワールド座標に設定した場合、オブジェクトを動かすことでテクスチャのUVが変わります。

f:id:Holomoto-Sumire:20200130092145j:plain

youtu.be

●Directional Light

 有効化することでライトの影響を受けるようになります。

 写真やUIなどのライトの影響を与える必要がないMaterialに対してはチェックを外して無効化します。

 f:id:Holomoto-Sumire:20200130092650j:plain

●Rim Light

f:id:Holomoto-Sumire:20191025100825j:plain

 有効化することでリム(縁)に対して光を持ったオブジェクトを作成できます。

 透明度を持ったオブジェクトなどに対して非常に効果的な演出を行えます。

 f:id:Holomoto-Sumire:20200130093047j:plain

●Vertex Extrusion

 法線方向へのメッシュの展開を行えます。

youtu.be

●Clipping Border

f:id:Holomoto-Sumire:20191029090830j:plain

 Clippngを行った断面の色とその大きさを指定します。

f:id:Holomoto-Sumire:20200130093819j:plain

●Near Fade

 この機能を使用することでオブジェクトに対してある距離まで近づくことによって見える(もしくは消える)オブジェクトを作成できます。

f:id:Holomoto-Sumire:20200130094208j:plain

●Hover Light

 Hover Light.csをアタッチしたオブジェクトで使用することでカーソルが当たった場所の色を変えることができます。

f:id:Holomoto-Sumire:20200130095006j:plain  

●Border Light

f:id:Holomoto-Sumire:20191022132804j:plain

 有効化することで縁を強調するようにライトをつけることができます。

f:id:Holomoto-Sumire:20200130100113j:plain

●Round Corners

f:id:Holomoto-Sumire:20191021105724j:plain

 有効化するとedgeを崩し丸みを帯びた見た目にすることができます。

f:id:Holomoto-Sumire:20200130100032j:plain

●Inner Glow

f:id:Holomoto-Sumire:20191023130017j:plain

メッシュ内部の質感を変化させます。 輝きを与えることや影を与えることができます。

f:id:Holomoto-Sumire:20200130100425j:plain

●Indescence ●Environment Coloring

 虹彩という名の通り見る角度によって色合いが変化します。

www.youtube.com

 Environment Coloringはx,y,zそれぞれの軸にカラーを設定し、見る角度によってその色へと遷移するMaterialを作成できます。

f:id:Holomoto-Sumire:20200130101116j:plain

〇Examples

 MaterialGalleryのシーンに関する過去の記事のまとめになります

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

〇ドキュメント

MRTKStandardShaderに関するドキュメントの記事のまとめになります。

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com