夜風のMixedReality

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

MRGTを使用したUnityUIの色反転機能

本日はMRGT枠です。

MRGTには様々なエディタ上でのツールが提供されています。今回はUIの色反転機能を見ていきます。

〇HoloLens 2022年アドベントカレンダー

 HoloLens 2022年アドベントカレンダーはQiita上で私の師であるがち本さんが開催している企画です。

 クリスマスまで毎日記事を埋めていくことが目的で本日は13日目の記事になります。

qiita.com

〇GraphicsToolsとGraphics Tools/Text Mesh Pro

MixedRealityGraphicsTools(MRGT)はMicrosoftによってオープンソースな形で開発、提供されているMixedRealityデバイス向けのSDKである第三世代のMixedRealityToolkit(MRTK3)で提供されるグラフィック関連のパッケージを指します。

github.com

 GraphicsToolsではGraphics Tools/Text Mesh Proと呼ばれるシェーダーが提供されています。

 これはUnityの別パッケージであるTextMeshProに似ていますがどういった違いがあるのかを調べる中で今回の色反転機能を知りましたのでまとめます。

Graphics Tools/ Text Mesh Pro(以下MRGTTMPシェーダー)はTextMeshPro用のシェーダーです

シェーダーの冒頭にはMRGTでの追加点が列挙されています。

// Simplified SDF shader:
// - No Shading Option (bevel / bump / env map)
// - No Glow Option
// - Softness is applied on both side of the outline

// Graphics Tools Additions
// - Single Pass Instanced Stereo Rendering Support 
// - Support for Clipping Primitives (Plane, Sphere, Box)
// - _SrcBlend and _DstBlend Properties
// - ZWrite and ZTest Properties
// - SRP Batcher Support
// - Text Color Inversion Support for Accessibility

・シングルパスインスタンシングレンダリングに対応

・Clopping プリミティブのサポート(MRGTの機能)

・アルファブレンドのプロパティの追加

・深度に関するプロパティの追加

・SRPバッチャーへの対応

・アクセシビリティのためのテキストカラーの反転機能サポート

シングルパスインスタンシングとSRPバッチャーの対応は非常に魅力的な機能です。

 しかし今回はアクセシビリティのためのテキストカラーの反転機能サポートに関して機能を見ていきます。

〇GraphicsTools/TextMeshProへの変更

 色反転機能を試すためにはTextMeshProのマテリアルのシェーダーをGraphics Tools/Text Mesh Proへ切り替える必要があります。

これはTextMeshProのアセットを開き、紐づいているマテリアルからシェーダーを変えます。

 

マテリアルを右クリックし、Graphics Tools→Accessibillity→Toggle Text Color Inversionを選択します。

以上で反転機能が有効になります。

デフォルトの状態

反転機能を有効

 この機能は背景にある色に合わせてテキストの表示色を反転させ見やすくする効果を持っており、動的に表示されます。

本日は以上です。

〇参考

learn.microsoft.com