本日はMRGT枠です。
昨日MixedRealityToolkit 3(MRTK3)のパッケージの一つでxR上でのグラフィックに特化したパッケージであるMixedRealityGraphicsTools(MRGT)の公式メジャーアップデートv0.5がリリースされました。
本リリースでは筆者の開発した機能も含め多くの改善、改良が含まれています。
〇MRTK3とは?
MixedRelityToolkit(MRTK)はMicrosoftがオープンソースで開発、提供しているxR用のSDKです。
UnrealEngineとUnity版がありますが、ここではUnity版を指します。
MRTK3はHoloLensのSDKとしてリリースされたHoloToolkit(MixedRealityToolkit)にHoloLens以外のWindows MixedRealityイマ―シブデバイスやMetaQuestなど他のxRデバイスやLeapMotionなどのセンサーに対応したMRTKv2を経て、MRTKv2で問題視されていた依存関係を解消するパッケージとして2022年7月にMicrosoftによるワールドワイドなMixedRealityのイベントMRdevDaysに合わせてリリースされました。
〇MRGTとは?
MRTK3の中でグラフィックに特化して機能を抽出したパッケージがMixedRealityGraphicstools(MRGT)になります。
xRでは特に高質なグラフィックとパフォーマンスの両立が難しい分野でもあり、MRGTでは軽量かつ多機能なシェーダーをはじめ非常に多くのグラフィックに関するツールおよびxRの見た目的なUXに関する機能が提供されています。
また、MRGTはMRTK3のほかのパッケージの依存関係がなく、単体として使用できるためXRだけでなくUnityアプリケーション全般的に使用できるパッケージになっています。
〇v0.5での変更点
本記事執筆時点でリリースノートはCommingSoonとなっており、正式なリリースノートは現時点で公開されていないため、本記事では筆者が把握しているv0.4とのアップデートについて紹介していきます。
v0.4は22年7月4日にリリースされましたので半年以上の時間を空けてのメジャーアップデートとなります。
〇GraphicsToolsStandardShaderの新機能
メインのシェーダーに当たるGraphicsToolsStandardシェーダーの新機能の開発には筆者もかかわっています。
〇EmissionMapの追加
v0.4ではEmmission(発光)という機能はありましたが、v0.5ではEmissionMap(発光テクスチャ)が使用できるようになりました。
この変更によって今まではマテリアル単位で全体的に発光していましたが、テクスチャを使用してピクセル単位で発光を行えるようになりました。
〇NormalMapの強さを変更できるようになりました。
ノーマルマップに新たな機能としてノーマルマップの強さをマテリアルのプロパティで任意にかえれるようになりました。
〇DistantLightの追加
GraphicsToolsStandardではシェーダー単体で光の影響を受けるLitなシェーダーか光の影響を無視した軽量なunlitなシェーダーを切り替えることができますが、v0.5ではLit/Unlitに加えて第三のライトモードであるDistantLightが追加されました。
DistantLightはスクリプトベースで動くライトで、UnityのDistantLightと別次元で使用することができます。
用途としては例えばUIなど一部のオブジェクトだけライティングをかえたいという場合に使用することで第二のライトとして使用することができます。
〇NRPモードの実装
NRPとはNonPhotorealisiticRendering(非写実的レンダリング)を指します。
この機能は一言で表すと簡易Toonシェーダーです。
MRGTにはもともとOutline機能が搭載されており、これとほかのMRGTの多機能を併せたxR特化のToonシェーダーを開発したいという筆者の提案で実装しました。
現時点では影の描画をはっきり行う程度の簡易なものですがUntiyChanToonShaderに並ぶ使いやすいToonシェーディングシステムを目指しています。
〇GraphicsToolsStandardShaderの変更点
〇ライトモードが変更されました。
v0.4ではDirectionalLightのチェックボックスにチェックを入れることでLit及びUnlitの表現を変えていましたが、DistantLightが増えたことにより整理されEnum型でLightModeとして統合され選択可能になりました。
〇その他の新機能
バグ更新やパフォーマンスの向上のほかに以下のような新機能が実装されています。
〇拡大鏡機能
拡大鏡機能は視覚的困難を抱える人=ロービジョンの方々を含めたより多くのユーザーのxR体験の質の上昇を目的としたアクセシビリティツールとして提供されています。
開発の基本はWindowsに標準搭載されている拡大鏡機能をxRアプリケーション内で使用できるようにすることになります。
〇ショートカットでスクリーンキャプチャの撮影
MRGTにはスクリーンキャプチャの撮影機能があります。
Windowsのスクリーンキャプチャ機能に比べUnityのカメラを使用した高解像度かつ必要に応じて背景をping切り抜きした撮影ができるというメリットがあるものの使用するためにはUnityのGUI上で数ステップメニューを下る必要がありました。
そこでショートカットキーを提案しショートカットキーによっていつでも簡単に撮影が行えるようになりました。
〇MRGTを完全に理解する
本ブログでは『MRGTを完全に理解する』と題して専用ページを作成しています。
v0.5の内容も含まれており随時更新しているので機能を知りたい方や使い方がわからいという場合にぜひ読んでいただきたいです!