パルス シェーダー

MRTK_SpatialMesh_Pulse

パルス シェーダーを使用して、表面の再構成、多関節ハンド メッシュ、または他のメッシュに対する視覚的なパルス効果をアニメーション化します。

シェーダーと素材

次の素材では、シェーダー SR_Triangles 使用します。 塗りつぶしの色、線の色、パルスの色など、さまざまなオプションを構成できます。

  • MRTK_Pulse_SpatialMeshBlue.mat
  • MRTK_Pulse_SpatialMeshPurple.mat
  • MRTK_Pulse_ArticulatedHandMeshBlue.mat
  • MRTK_Pulse_ArticulatedHandMeshPurple.mat

前提条件

空間メッシュの例では、MixedRealityToolkit オブジェクト -> Spatial Awareness Profile -> Display 設定 -> Visible Material で MRTK_Pulse_SpatialMeshBlue.mat または MRTK_Pulse_SpatialMeshPurple.mat が割り当てられている必要があります。

ハンド メッシュの例では、MRTK_Pulse_ArticulatedHandMeshBlue.mat または MRTK_Pulse_ArticulatedHandMeshPurple.mat が ArticulatedHandMesh.prefab に割り当てられている必要があります。このプレハブ自体は MRTK 設定 -> Input -> Hand Tracking -> Hand Mesh Prefab で割り当てる必要があります。

しくみ

ハンド メッシュ シェーダーでは、UV を使用して手のメッシュに沿ってパルスをマップし、ベルトをフェードアウトします。 表面の再構成シェーダーは、頂点位置を使用してパルスをマップします。

空間メッシュの例 - PulseShaderSpatialMeshExample.unity

シェルHoloLens 2と同様に、ハンド レイでポイントとエアタップを行って、空間メッシュに対するパルス効果を生成できます。 このサンプル シーンには、Unity のゲーム モードのテスト空間メッシュ データである ExampleSpatialMesh オブジェクトが含まれている。 このオブジェクトは無効になり、デバイス上で非表示になります。

PulseShaderSpatialMeshHandler.cs スクリプトは、 が true の場合、ヒット ポイント位置の空間メッシュに対するパルス効果 PulseOnSelect を生成します。 繰 Auto Pulse り返しアニメーションの場合は、素材自体で プロパティを true に設定できます。 このサンプル シーンでは、このスクリプトは PulseShaderSpatialMeshParent プレハブにアタッチされています。 このプレハブは、ランタイム空間メッシュ プレハブ プロパティを介して空間認識プロファイルの下で参照されます。 実行時に、PulseShaderSpatialMeshParent プレハブがインスタンス化され、空間メッシュ階層に追加されます (デバイス上でのみ、この動作はエディターで観察できません)。

ハンド メッシュの例 - PulseShaderHandMeshExample.unity

このシーン例では、パルス シェーダーを使用したハンド メッシュの視覚化を示します。 デバイスから手が検出されると、HoloLensアニメーションが 1 回トリガーされます。 この視覚的なフィードバックは、ユーザーの対話の信頼度を高める可能性があります。

PulseShaderHandMeshHandler.cs スクリプトは、割り当てられた素材に対してパルス効果を生成します。 既定では、[Pulse On Hand Detected] がオンになっています。