パルス シェーダーを使用して、サーフェスの再構築、多関節ハンド メッシュ、またはその他のメッシュに対する視覚的なパルス効果をアニメーション化します。
シェーダーとマテリアル
次のマテリアルでは 、シェーダー SR_Triangles 使用されます。 塗りつぶしの色、線の色、パルスの色など、さまざまなオプションを構成できます。
- MRTK_Pulse_SpatialMeshBlue.mat
- MRTK_Pulse_SpatialMeshPurple.mat
- MRTK_Pulse_ArticulatedHandMeshBlue.mat
- MRTK_Pulse_ArticulatedHandMeshPurple.mat
前提条件
空間メッシュの例では、MixedRealityToolkit オブジェクト -> Spatial Awareness Profile -> Display Settings -> Visible Material の下に、MRTK_Pulse_SpatialMeshBlue.mat または MRTK_Pulse_SpatialMeshPurple.mat が割り当てられていることを確認します。
ハンド メッシュの例では、articulatedHandMesh.prefab で MRTK_Pulse_ArticulatedHandMeshBlue.mat または MRTK_Pulse_ArticulatedHandMeshPurple.mat が割り当てられていることを確認します。これは、それ自体が MRTK 設定 -> Input -> Hand Tracking -> Hand Mesh Prefab で割り当てる必要があります。
メカニズム
ハンド メッシュ シェーダーでは、UV を使用してハンド メッシュに沿ってパルスをマップし、手首をフェードアウトします。 サーフェス再構築シェーダーは、頂点位置を使用してパルスをマップします。
空間メッシュの例 - PulseShaderSpatialMeshExample.unity
HoloLens 2のシェル エクスペリエンスと同様に、ハンド レイをポイントしてエアタップすると、空間メッシュに脈動効果を生成できます。 サンプル シーンには、Unityのゲーム モードのテスト空間メッシュ データである ExampleSpatialMesh オブジェクトが含まれています。 このオブジェクトは無効になり、デバイスでは非表示になります。
PulseShaderSpatialMeshHandler.cs スクリプトは、 PulseOnSelect が true の場合、ヒット ポイント位置の空間メッシュにパルス効果を生成します。
Auto Pulse プロパティは、繰り返しアニメーションのマテリアル自体で true に設定することもできます。 サンプル シーンでは、このスクリプトは PulseShaderSpatialMeshParent プレハブにアタッチされています。 このプレハブは、ランタイム空間メッシュ プレハブ プロパティを介して空間認識プロファイルで参照されます。 実行時に、PulseShaderSpatialMeshParent プレハブがインスタンス化され、空間メッシュ階層に追加されます (デバイスでのみ、この動作はエディターで観察できません)。
ハンド メッシュの例 - PulseShaderHandMeshExample.unity
このシーンの例では、パルス シェーダーを使用したハンド メッシュの視覚化を示します。 HoloLens デバイスによって手が検出されると、パルス アニメーションが 1 回トリガーされます。 この視覚的なフィードバックは、ユーザーの対話の信頼度を高めることができます。
PulseShaderHandMeshHandler.cs スクリプトは、割り当てられた材料にパルス効果を生成します。 既定では、[パルスオンハンド検出] がオンになっています。