夜風のMixedReality

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

MixedRealityGraphics Tools のProximityLightを理解する その②シェーダーのパラメータ

本日はMRGT調査枠です。

前回に引き続きMRGTのProximityLightを追っていきます。

前回はProximityLightがどこで使われているかを見ていきました。

redhologerbera.hatenablog.com

今回はUnityプロジェクトで実際にProximityLightを使用していきます。

〇ProxmityLightの制限

ProximityLightを使用する際はUntiyの一つのシーンにつき2つまでという制限があります。

通常MRTKのHandTracking及びコントローラーのカーソルに両手で2つ使用されているためデフォルトの場合は注意が必要です。

 またProximityLightを受け取るオブジェクトはGraphicsTools StandardシェーダーもしくはGraphicsTools canvasシェーダーを使用たマテリアルを使用している必要があります。

〇ProxmityLightを受け取るマテリアル

 前述のとおりProxmityLightを受け取るためにはMRGTで提供されているGraphicsToolsStandardシェーダー及びUI用の GrahicsToolsStandardCanvasシェーダーを使用している必要があります。

ProximityLightを使用するためにはからのゲームオブジェクトにProximityLight.csをアタッチします。

ProximityLightを落とすオブジェクトにGraphicsToolsStandardシェーダーを使用したマテリアルをアタッチします。

Fluent OptionsからProximityLightのチェックを有効化します。

 これによってProximityLightが投影されるようになります。

またライトという特性上白のオブジェクト等に投影することで見えなくなることがあります。

 このような場合はSubtractiveにチェックを入れ有効化します。

このオプションはライトを加算ではなく、減算する処理で、通常であれば白(1,1,1)に加算してもHDR(1以上の色を使用する)を設定していない限り(1,1,1)となり色が変化しませんが、Subtractiveを使用することでライトの分減算されるため次画像のように明るい色のオブジェクトに対してもライトを使用することができます。

以上がProximityLightの使用方法です。

UIやUXにおいて機能としては地味ですが非常に重要なコンポーネントです。