Elastisches System – MRTK2

Elastisches System

MRTK verfügt über ein elastisches Simulationssystem, das eine Vielzahl von erweiterbaren und flexiblen Unterklassen umfasst und Bindungen für 4-dimensionale Quaternionsfedern, 3-dimensionale Volumenfedern und einfache lineare Federsysteme bietet.

Derzeit können die folgenden MRTK-Komponenten, die den Elastics-Manager unterstützen, elastische Funktionen nutzen:

Manager für Elastische Datenbanken

Elastisches System2

Der Elastics-Manager verarbeitet übergebene Transformationen und speist sie in das Elastics-System ein.

Die Aktivierung von Elastischen für benutzerdefinierte Komponenten kann in zwei Schritten erreicht werden:

  1. Aufrufen der Initialize-Methode beim Start der Manipulation, Aktualisieren des Systems mit der aktuellen Hosttransformation.
  2. Abfragen von ApplyHostTransform, wenn eine elastische Berechnung für die aktualisierte Zieltransformation ausgeführt werden soll.

Beachten Sie, dass elastische Datenbanken nach Beendigung der Bearbeitung (über die Elastics Manager-Updateschleife) weiterhin simuliert werden. Um das Verhalten zu blockieren, kann enableElasticsUpdate für elastische Datenbanken automatisch auf false festgelegt werden.

Standardmäßig ist für die Elastics-Manager-Komponente, wenn sie einem Spielobjekt hinzugefügt wird, für keinen Transformationstyp elastische Datenbanken aktiviert. Das Feld Manipulation types using elastic feedback muss für bestimmte Transformationstypen aktiviert werden, um die Konfiguration und Blöcke für elastische Datenbanken für den ausgewählten Typ zu erstellen.

Konfigurationen für elastische Datenbanken

Ähnlich wie bei Begrenzungssteuerungskonfigurationen enthält elastic manager eine Reihe von Konfigurationsobjekten, die als skriptfähige Objekte gespeichert und von verschiedenen Instanzen oder Prefabs gemeinsam genutzt werden können. Konfigurationen können freigegeben und entweder als einzelne skriptfähige Medienobjektdateien oder geschachtelte skriptfähige Ressourcen innerhalb von Prefabs verknüpft werden. Weitere Konfigurationen können auch direkt auf der instance definiert werden, ohne eine Verknüpfung mit einem externen oder geschachtelten skriptfähigen Medienobjekt herzustellen.

Der Elastics-Manager-Inspektor gibt an, ob eine Konfiguration freigegeben oder als Teil der aktuellen instance inline ausgeführt wird, indem eine Meldung im Eigenschafteninspektor angezeigt wird. Darüber hinaus können freigegebene Instanzen nicht direkt im Eigenschaftenfenster des Elastics-Managers selbst bearbeitet werden, sondern das Objekt, mit dem eine Verknüpfung hergestellt wird, muss direkt geändert werden, um versehentliche Änderungen an freigegebenen Konfigurationen zu vermeiden.

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

  • Elastische Übersetzung
  • Drehung elastisch
  • Skalieren von elastischen Datenbanken

Elastisches Konfigurationsobjekt

Eine Elastische Konfiguration definiert Eigenschaften für ein gedämpftes differenzielles Oszillatorsystem. Die folgenden Eigenschaften können angepasst werden, verfügen aber bereits über eine Reihe von Standardwerten im MRTK:

  • Masse: Masse des simulierten Oszillatorelements.
  • HandK: Handfederkonstante.
  • EndK: Endkappenfederkonstante.
  • SnapK: Federkonstante des Andockpunkts.
  • Ziehen: Zieh-/Dämpferfaktor, proportional zur Geschwindigkeit.

Elastische Blöcke

Die Einstellungen für elastische Blöcke variieren je nach Art der Bearbeitung. Übersetzung und Skalierung werden durch elastische Volumenausdehnungen dargestellt, und die Drehung wird durch eine elastische Quaternionsausdehnung dargestellt.

Elastische Volumeausdehnung

Volumenausdehnungen definieren einen dreidimensionalen Raum, in dem sich der gedämpfte oberschwingische Oszillator frei bewegen kann.

Elastische Volume-Stretch-Grenzen

  • StretchBounds: Stellt die untere Grenze des Bereichs für elastische Datenbanken dar.
  • UseBounds: Gibt an, ob die Stretch-Grenzen vom System beachtet werden sollen. Wenn true ist, wird die Endkraft angewendet, wenn die aktuelle Iteration der Zielposition außerhalb der Stretchgrenzen liegt.
  • SnapPoints: Punkte innerhalb des Bereichs, an den das System andockt.
  • RepeatSnapPoints: Wiederholt die Andockpunkte bis zur Unendlichkeit. Vorhandene Andockpunkte dienen als Modulo, bei dem die tatsächlichen Andockpunkte den nächsten ganzzahligen Vielfachen jedes Andockpunkts zugeordnet werden.
  • SnapRadius: Abstand, ab dem die Feder an den Andockpunkten erzwungen wird.

Andockraster für elastische Volumes

Elastische Quaternionsausdehnung

Quaternionenausdehnungen definieren einen vierdimensionalen Drehraum, in dem der gedämpfte oberschwingische Oszillator frei gedreht werden kann.

Beispiel für elastische Drehung

  • SnapPoints: Eulerwinkel, an denen das System andockt.
  • RepeatSnapPoints: Wiederholt die Andockpunkte. Vorhandene Andockpunkte dienen als Modulo, bei dem die tatsächlichen Andockpunkte den nächsten ganzzahligen Vielfachen jedes Andockpunkts zugeordnet werden.
  • SnapRadius: Bogenwinkel, an dem andockte Punkte beginnen, die Feder in Eulergraden zu erzwingen.

Beispielszene für elastische Datenbanken

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

Beispielszene für elastische Datenbanken