夜風のMixedReality

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

MixedRealityGraphicsToolsShaderのNear Fade機能の紹介

本日はMRGT枠です。

今回はGraphicsTools Standardシェーダーに内蔵されている機能のNear Fadeを紹介します。

〇MRGTとは?

MixedRealityGraphicsTools(MRGT)はMicrosoftによって提供されているMixedRealityアプリケーション開発向けのツールキットであるMixedRealityToolkit(MRTK)でのパッケージの一つとして提供されているグラフィック関連のUnity向けパッケージです。(Unreal版もあります)

github.com

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で提供されているProxmityLightHoverLightをアタッチしているオブジェクトの距離依存になります。

HoloLensの場合はHandTrackingのFingerTipなどにアタッチされているので手の距離に依存するフェードなどが行えます。

〇Fade Beguin Fade Complete

フェードはFade BeguinFade 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の不透明表現で使用されるマテリアルでも使用すること自体はできます。

 この場合透明になるのではなく距離に応じて黒くなります。 

 これはこれで効果的に使用できる場面があります。

本日は以上です。