指先の視覚化 — MRTK2

指先の視覚化メイン

指先アフォーダンスは、ユーザーがターゲット オブジェクトからの距離を認識するのに役立ちます。 リング図形のビジュアルで、指先からオブジェクトまでの距離に基づいてサイズが調整されます。 指先の視覚化は、PokePointer のカーソル プレハブとして生成される FingerCursor (Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab) (およびスクリプト) によって主に制御されます。 視覚化のその他のコンポーネントには、ProximityLight スクリプトと MixedRealityStandard シェーダーが含まれます。

指先の視覚化の使用方法

既定では、指先の視覚化は、FingerCursor を生成するように構成されているすべての Unity シーンで動作します。 FingerCursor の生成は、以下の DefaultMixedRealityToolkitConfigurationProfile で行われます。

DefaultMixedRealityInputSystemProfile > DefaultMixedRealityInputPointerProfile > PokePointer > FingerCursor

大まかに言えば、指先の視覚化は近接光を使用して、近接光を受け入れる近くの表面に色のついたグラデーションを投影することで機能します。 次に、指カーソルは、親 IMixedRealityNearPointer(s) によって決定される近くの対話可能な表面を探し、指が表面の方に移動するに従って、指のリングを表面に合わせます。 指が表面に近づくと、MixedRealityStandard シェーダーのラウンド コーナー プロパティを使用して、指のリングも動的にアニメーション化されます。

シーンの例

指先の視覚化の例は、多関節ハンドで行われるほとんどのシーンで見ることができますが、HandInteractionExample のシーンでは顕著です。

指先の視覚化の状態

インスペクター プロパティ

FingerCursor 指カーソルのプロパティの多くは、基本のカーソル クラスから継承されています。 重要なプロパティには、MixedRealityStandard シェーダー内の指リング アニメーションを動かす遠近面のマージンと幅が含まれます。 その他のプロパティについては、インスペクター ツールのヒントにマウス ポインターを合わせてください。

カーソルインスペクター

近接光 近接光の設定では、光が表面に近づいたときと遠ざかったときの見え方を制御します。 中心、中間、外側の各色は、ライトのグラデーションの外観を制御し、アプリケーションのカラー パレット用にカスタマイズすることができます。 色は HDR (ハイ ダイナミック レンジ) であるため、ユーザーは近接光を 1 よりも大きい値に明るくですることができます。 その他のプロパティについては、インスペクター ツールのヒントにマウス ポインターを合わせてください。

MixedRealityStandard シェーダー MixedRealityStandard シェーダーは、MRTK の多くの効果に使用されます。 指先の視覚化にとって重要なのは、"近距離フェード" と "近接光" の 2 つの設定です。[近距離フェード] を使用すると、カメラやライトがオブジェクトに近づいたときに、そのオブジェクトをフェードイン/アウトできます。 [ライト] を必ずオンにして、近接光がカメラではなくフェードを駆動するようにしてください。 [フェードの開始]と [フェードの完了] の値を逆にすると、フェードを反転することができます。 近接光で明るくする表面については、[近接光] を確認してください。 その他のプロパティについては、インスペクター ツールのヒントにマウス ポインターを合わせてください。

シェーダー インスペクター