本日はMRGT枠です。
今回はGraphicsTools Standardシェーダーに内蔵されている機能のNear Fadeを紹介します。
〇MRGTとは?
MixedRealityGraphicsTools(MRGT)はMicrosoftによって提供されているMixedRealityアプリケーション開発向けのツールキットであるMixedRealityToolkit(MRTK)でのパッケージの一つとして提供されているグラフィック関連のUnity向けパッケージです。(Unreal版もあります)
MRGTのコア機能としてGraphicsToolsStandardShaderがあります。
これはUnityアプリケーション内で汎用的に使用できるシェーダーでありながらxRに特化した軽量、多機能なシェーダーとして提供されています。
MRGTシェーダーにはNearFade機能があります。
〇Near Fadeとは?
Near Fadeはオブジェクトからのカメラの距離に応じてフェードイン、フェードアウトを行うことができる機能です。
使用するためにはGraphicsToolsStandardシェーダーを使用しているマテリアルのパラメータからNear Fadeにチェックを入れ有効化します。
〇Near Fadeのパラメータ
Near Fadeには次のパラメータがあります。
パラメータ名 | 説明 |
---|---|
Use Light | カメラではなくHoverLightやProxmityLightを使用しているオブジェクトでフェードが行われます。 |
Fade Begin | フェードが開始する距離です。 |
Fade Complete | フェードが完全に完了する距離です。 |
Fade Min Value | フェードが完了した際の透過率です。 |
それぞれ詳しく見ていきます。
〇Use Light
Use Lightを使用している場合はカメラからの距離によるフェードが無効化されます。
その代わりMRGTで提供されているProxmityLightやHoverLightをアタッチしているオブジェクトの距離依存になります。
HoloLensの場合はHandTrackingのFingerTipなどにアタッチされているので手の距離に依存するフェードなどが行えます。
〇Fade Beguin Fade Complete
フェードはFade BeguinとFade Completeの間で起こります。
FadeComplete<Fade Beginの場合はカメラが近づくにつれてフェードアウトが行われ、Fade Begin< FadeCompleteの場合は逆にオブジェクトから離れるときにフェードアウトが発生します。
〇Fade Main Value
Fade Main Valueはフェードアウトした際どこまで透過させるかという設定になります。
0~1で値を決めることができ0にすると透明、1にすると不透明となります。
〇マテリアル設定
Near FadeはデフォルトでRenderType=Additiveや*RenderType=Transparentを使用することが推奨されています。
これはフェードアウトを行うという特性上透過率を持ったマテリアルでないと透過表現ができないためです。
しかしOpaqueやCutoutの不透明表現で使用されるマテリアルでも使用すること自体はできます。
この場合透明になるのではなく距離に応じて黒くなります。
これはこれで効果的に使用できる場面があります。
本日は以上です。