Elastisches System — MRTK2

Elastic System

MRTK verfügt über ein elastisches Simulationssystem, das eine Vielzahl erweiterbarer und flexibler Unterklassen umfasst und Bindungen für 4dimensionale Quaternionfedern, 3dimensionale Volumenfedern und einfache lineare Federsysteme bietet.

Derzeit können die folgenden MRTK-Komponenten, die den Elastics-Manager unterstützen, die Elastics-Funktionalität nutzen:

Elastics Manager

Elastic System2

Der Elastics Manager verarbeitet übergebene Transformationen und leitet sie in das elastische System ein.

Die Aktivierung von Elastics für benutzerdefinierte Komponenten kann durch zwei Schritte erreicht werden:

  1. Rufen Sie die Initialize-Methode beim Start der Manipulation auf, aktualisieren Sie das System mit der aktuellen Hosttransformation.
  2. Abfragen von ApplyHostTransform, wenn eine elastische Berechnung auf der aktualisierten Zieltransformation ausgeführt werden soll.

Beachten Sie, dass die Elastics weiterhin simuliert werden, sobald die Manipulation endet (über die Elastics Manager UpdateSchleife). Um das Verhalten zu blockieren, kann " EnableElasticsUpdate " automatisch auf "false" festgelegt werden.

Standardmäßig sind die Elastics-Manager-Komponente, die einem Spielobjekt hinzugefügt wird, nicht für alle Transformationstypen aktiviert. Das Feld Manipulation types using elastic feedback muss für bestimmte Transformationstypen aktiviert werden, um die Konfiguration von Elastics und Erfordernissen für den ausgewählten Typ zu erstellen.

Elastics-Konfigurationen

Ähnlich wie die Begrenzungssteuerungskonfigurationen verfügt der elastic Manager über eine Reihe von Konfigurationsobjekten, die als skriptfähige Objekte gespeichert und zwischen verschiedenen Instanzen oder Prefabs gemeinsam genutzt werden können. Konfigurationen können freigegeben und entweder als einzelne skriptfähige Objektdateien oder geschachtelte skriptfähige Ressourcen innerhalb von Prefabs verknüpft werden. Weitere Konfigurationen können auch direkt auf der Instanz definiert werden, ohne eine Verknüpfung mit einem externen oder geschachtelten skriptfähigen Objekt zu erstellen.

Der Elastics Manager Inspector gibt an, ob eine Konfiguration als Teil der aktuellen Instanz freigegeben oder inlineiert wird, indem eine Meldung im Eigenschafteninspektor angezeigt wird. Darüber hinaus können freigegebene Instanzen nicht direkt im Eigenschaftenfenster des Elastics-Managers bearbeitet werden, sondern stattdessen muss die Verknüpfte Ressource direkt modfiziert werden, um versehentliche Änderungen an freigegebenen Konfigurationen zu vermeiden.

Der Elastics-Manager bietet Konfigurationsobjekte optionen für die folgenden Transformationstypen, die jeweils durch ein elastisches Konfigurationsobjekt dargestellt werden:

  • Übersetzungslastisch
  • Drehung elastisch
  • Skalieren elastisch

Elastisches Konfigurationsobjekt

Eine Elastics-Konfiguration definiert Eigenschaften für ein dämpfendes Schwingungsdifferenzsystem. Die folgenden Eigenschaften können angepasst werden, sind aber bereits mit einer Reihe von Standardwerten in MRTK enthalten:

  • Masse: Masse des simulierten Oszillatorelements.
  • HandK: Handfederkonstante.
  • EndK: End cap spring constant.
  • SnapK: Ziehpunktfederkonstante.
  • Ziehen: Zieh-/Dämpferfaktor, proportional zur Geschwindigkeit.

Elastics-Ausmaße

Elastics-Umfangseinstellungen variieren je nach Art der Manipulation. Übersetzung und Skalierung werden durch volumenlastische Ausmaße dargestellt, und die Drehung wird durch ein quaternionslastisches Ausmaß dargestellt.

Volumen elastisch

Volumenausdehnungen definieren einen dreidimensionalen Raum, in dem der abgedämmte harmonische Oszillator frei bewegt werden kann.

Elastic Volume Stretch Bounds

  • StretchBounds: stellt die unteren Grenzen des elastischen Raums dar.
  • UseBounds: Gibt an, ob die Streckengrenzen vom System eingehalten werden sollen. Wenn true, wenn die aktuelle Iteration der Zielposition außerhalb der Stretchgrenzen liegt, wird die Endkraft angewendet.
  • SnapPoints: Zeigt innerhalb des Leerraums, an den das System angedockt wird.
  • RepeatSnapPoints: Wiederholt die Andockpunkte auf unendlich. Vorhandene Snappunkte dienen als Modulo, bei dem die tatsächlichen Snappunkte den nächstgelegenen ganzzahligen Vielfachen jedes Snappoints zugeordnet sind.
  • SnapRadius: Abstand, an dem snap points beginnen, die Feder zu erzwingen.

Elastic Volume Snap Grid

Quaternion elastisch

Quaternion-Ausmaße definieren einen vierdimensionalen Drehraum, in dem der feuchte harmonische Oszillator frei gedreht werden kann.

Elastic Rotation Example

  • SnapPoints: Eulerwinkel, an die das System angedockt wird.
  • RepeatSnapPoints: wiederholt die Andockpunkte. Vorhandene Snappunkte dienen als Modulo, bei dem die tatsächlichen Snappunkte den nächstgelegenen ganzzahligen Vielfachen jedes Snappoints zugeordnet sind.
  • SnapRadius: Bogenwinkel, an dem Diekpunkte beginnen, die Feder in Eulergraden zu erzwingen.

Beispielszene für Elastics

Beispiele für elastische Konfigurationen finden Sie in der ElasticSystemExample Szene.

Elastics Example Scene