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