エラスティック システム — MRTK2
MRTK には、柔軟なシミュレーション システムが付属しています。これには、さまざまな拡張可能で柔軟なサブクラスが含まれており、4 次元の四元数のばね、3 次元の容積ばね、および単純な線形ばね系のバインドが用意されています。
現在、エラスティック マネージャーをサポートする次の MRTK コンポーネントでは、エラスティック機能を利用できます。
エラスティック マネージャー
エラスティック マネージャーは、渡された変換を処理し、エラスティック システムにフィードします。
カスタム コンポーネントに対してエラスティックを有効にするには、次の 2 つの手順を実行します。
- 操作の開始時に初期化メソッドを呼び出し、現在のホスト変換を使用してシステムを更新します。
- 更新されたターゲット変換でエラスティックの計算を実行する必要がある場合は、ApplyHostTransform に対してクエリを実行します。
エラスティックは、操作が終了すると (エラスティック マネージャー更新ループを通じて) シミュレートを続行することに注意してください。 この動作をブロックするには、エラスティック自動更新 EnableElasticsUpdate を FALSE に設定します。
既定では、エラスティック マネージャー コンポーネントをゲーム オブジェクトに追加しても、変換の種類に対してエラスティックは有効になりません。
Manipulation types using elastic feedback
フィールドは、選択した種類のエラスティック構成とエクステントを作成するために、特定の種類の変換に対して有効にする必要があります。
エラスティックの構成
境界制御の構成と同様に、エラスティック マネージャーには、スクリプト可能なオブジェクトとして格納し、異なるインスタンスまたはプレハブ間で共有できる一連の構成オブジェクトが用意されています。 構成は、個々のスクリプト可能な資産ファイルまたはプレハブ内の入れ子になったスクリプト可能な資産として共有およびリンクできます。 さらに、外部または入れ子になったスクリプト可能な資産にリンクすることなく、インスタンスで直接構成を定義することもできます。
エラスティック マネージャー インスペクターは、プロパティ インスペクターにメッセージを表示することによって、構成が共有されているか、現在のインスタンスの一部としてインライン展開されているかを示します。 また、共有インスタンスは、エラスティック マネージャー プロパティウィンドウ自体で直接編集することはできません。ただし、共有構成を誤って変更しないようにするには、リンク先の資産を直接変更する必要があります。
エラスティック マネージャーには、次の変換の種類の構成オブジェクト オプションが用意されています。これらはそれぞれエラスティック構成オブジェクトによって表されます。
- 翻訳エラスティック
- 回転エラスティック
- スケール エラスティック
エラスティック構成オブジェクト
エラスティック構成は、抑制調和オシレーターの差分システムのプロパティを定義します。 次のプロパティは調整できますが、MRTK には既定のセットが既に含まれています。
- Mass: シミュレートされたオシレーター要素の質量。
- HandK: ハンド スプリング定数。
- EndK: 終了キャップ スプリング定数。
- SnapK: スナップ ポイントのスプリング定数。
- Drag: 速度に比例するドラッグまたはダンパー係数。
エラスティック エクステント
エラスティック エクステントの設定は、操作の種類によって異なります。 変換とスケールは、ボリュームのエラスティック エクステントによって表され、回転は四元数のエラスティック エクステントによって表されます。
ボリュームのエラスティック エクステント
ボリューム エクステントは、抑制調和オシレーターを自由に移動できる 3 次元空間を定義します。
- StretchBounds: エラスティック領域の下限を表します。
- UseBounds: 拡張境界をシステムで尊重する必要があるかどうか。 True の場合、ターゲット位置の現在の反復が伸縮範囲外にあると、終了の強制が適用されます。
- SnapPoints: システムがスナップされる空間内のポイント。
- RepeatSnapPoints: スナップ ポイントを無限に繰り返します。 既存のスナップ ポイントは、実際のスナップ ポイントがすべてのスナップ ポイントの最も近い整数倍にマップされる剰余として機能します。
- SnapRadius: ナップ ポイントがスプリングの強制を開始する距離。
四元数エラスティック エクステント
四元数エクステントは、抑制調和オシレーターを自由に回転できる 4 次元の回転領域を定義します。
- SnapPoints: システムがスナップするオイラー角。
- RepeatSnapPoints: スナップ ポイントを繰り返します。 既存のスナップ ポイントは、実際のスナップ ポイントがすべてのスナップ ポイントの最も近い整数倍にマップされる剰余として機能します。
- SnapRadius: スナップ ポイントがばねをオイラー角に強制するときに使用する弧の角度。
エラスティック サンプル シーン
エラスティックの構成の例については、ElasticSystemExample
シーンをご覧ください。