エラスティック システム

エラスティック システム

MRTK には、柔軟なシミュレーションシステムが付属しています。これには、さまざまな拡張可能で柔軟なサブクラスが含まれており、4次元の四元数のばね、3次元の容積ばね、および単純な線形ばね系のバインドが用意されています。

現在、 エラスティック manager をサポートする次の MRTK コンポーネントでは、エラスティック機能を利用できます。

エラスティック manager

エラスティック System2

エラスティック manager は、渡された変換を処理し、エラスティックシステムにフィードします。

カスタムコンポーネントに対してエラスティックを有効にするには、次の2つの手順を実行します。

  1. 操作を開始するときに Initialize メソッドを呼び出しています。現在のホスト変換を使用してシステムを更新しています。
  2. 更新されたターゲット変換でエラスティックの計算を実行する必要がある場合は、ApplyHostTransform に対してクエリを実行します。

エラスティックは、操作が終了すると (エラスティック manager update ループを通じて) シミュレートを続行することに注意してください。 この動作をブロックするには、エラスティック auto update EnableElasticsUpdate を false に設定します。

既定では、エラスティック manager コンポーネントを game オブジェクトに追加しても、変換の種類に対してエラスティックは有効になりません。 選択し Manipulation types using elastic feedback た種類のエラスティック構成とエクステントを作成するために、特定の種類の変換に対してフィールドを有効にする必要があります。

エラスティックの構成

境界制御の構成と同様に、エラスティックマネージャーには、スクリプト可能なオブジェクトとして格納し、異なるインスタンスまたは prefabs 間で共有できる一連の構成オブジェクトが用意されています。 構成は、個別のスクリプト可能なアセットファイルとして、または prefabs 内の入れ子になったスクリプト可能なアセットとして共有およびリンクできます。 その他の構成は、外部または入れ子になったスクリプト可能なアセットにリンクせずに、インスタンスで直接定義することもできます。

エラスティック manager インスペクターは、プロパティインスペクターにメッセージを表示することによって、構成が共有されているか、現在のインスタンスの一部としてインライン展開されているかを示します。 また、共有インスタンスは、エラスティック manager プロパティウィンドウ自体で直接編集することはできません。ただし、共有構成を誤って変更しないようにするには、リンク先の資産を直接変更する必要があります。

エラスティック manager には、次の変換の種類の構成オブジェクトオプションが用意されています。これらはそれぞれ、 エラスティック構成オブジェクトによって表されます。

  • 翻訳のエラスティック
  • 回転のエラスティック
  • 柔軟なスケーリング

エラスティック構成オブジェクト

エラスティック構成は、抑制調和オシレーターの差分システムのプロパティを定義します。 次のプロパティは調整できますが、MRTK には既定のセットが既に含まれています。

  • 質量: シミュレートされたオシレーター要素の質量。
  • 「方法 k: ハンドスプリング定数」。
  • Endk: 終了キャップのスプリング定数。
  • Snapk: スナップポイントの spring 定数。
  • ドラッグ: 速度に比例してドラッグ/ダンパー係数を ドラッグし ます。

エラスティックエクステント

エラスティック extents の設定は、操作の種類によって異なります。 変換とスケールは、 ボリュームのエラスティックエクステント によって表され、回転は 四元数のエラスティック範囲によって表されます。

ボリュームのエラスティック範囲

ボリュームエクステントは、抑制調和オシレーターを自由に移動できる3次元空間を定義します。

エラスティックボリュームの拡張境界

  • StretchBounds: エラスティック領域の下限を表します。
  • Usebounds: 拡張境界をシステムで尊重する必要があるかどうか。 True の場合、ターゲット位置の現在の反復が伸縮範囲外にあると、end force が適用されます。
  • スナップ ポイント: システムがスナップされる領域内のポイント。
  • Repeatスナップポイント: スナップポイントを無限に繰り返します。 既存のスナップポイントは、実際のスナップポイントがすべてのスナップポイントの最も近い整数倍にマップされる剰余として機能します。
  • Snapradius: スナップポイントがスプリングの強制を開始する距離。

エラスティックボリュームスナップグリッド

四元数エラスティックエクステント

四元数エクステントは、抑制調和オシレーターを自由に回転できる4次元の回転領域を定義します。

エラスティックローテーションの例

  • スナップ ポイント: システムがスナップするオイラー角度。
  • Repeatスナップポイント: スナップポイントを繰り返します。 既存のスナップポイントは、実際のスナップポイントがすべてのスナップポイントの最も近い整数倍にマップされる剰余として機能します。
  • Snapradius: スナップポイントがばねをオイラー度に強制するときに使用する弧の角度。

エラスティックサンプルシーン

エラスティックの構成の例については、シーンをご覧 ElasticSystemExample ください。

エラスティックサンプルシーン