Freigeben über


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, dreidimensionale Volumenfedern und einfache Linearfedersysteme bietet.

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

Elastics-Manager

Elastisches System2

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

Die Aktivierung von elastischen Datenbanken 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 weiterhin simulieren, sobald die Bearbeitung beendet ist (über die Elastics-Manager-Updateschleife). Um das Verhalten zu blockieren, kann enableElasticsUpdate für elastische Datenbanken automatisch aktualisiert werden 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 Ressourcendateien oder geschachtelte skriptfähige Ressourcen innerhalb von Prefabs verknüpft werden. Weitere Konfigurationen können auch direkt auf dem 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 als Teil der aktuellen instance freigegeben oder inline ist, indem eine Meldung im Eigenschafteninspektor angezeigt wird. Darüber hinaus können freigegebene Instanzen nicht direkt im Eigenschaftenfenster des Elastics-Managers 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:

  • Translation Elastic
  • Drehung elastisch
  • Skalieren von Elastic

Elastisches Konfigurationsobjekt

Eine elastische Konfiguration definiert Eigenschaften für ein gedämpftes Differenzialsystem für einen harmonischen Oszillator. Die folgenden Eigenschaften können angepasst werden, verfügen aber bereits über eine Reihe von Standardwerten in 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 Volumenblöcke dargestellt, und die Drehung wird durch einen elastischen Quaternionsbereich dargestellt.

Elastische Volumeausdehnung

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

Elastische Volume-Stretch-Begrenzungen

  • StretchBounds: Stellt die unteren Grenzen des elastischen Raums dar.
  • UseBounds: Gibt an, ob die Stretchgrenzen vom System eingehalten 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 dem das System andockt.
  • RepeatSnapPoints: Wiederholt die Andockpunkte bis zur Unendlichkeit. Vorhandene Andockpunkte dienen als Modulo, bei dem die tatsächlichen Ausrichtungspunkte den nächsten ganzzahligen Vielfachen jedes Andockpunkts zugeordnet werden.
  • SnapRadius: Entfernung, ab der andockpunkte die Feder erzwingen.

Andockraster für elastische Volumes

Elastische Quaternionsausdehnung

Quaternionsblöcke definieren einen vierdimensionalen Drehraum, in dem der gedämpfte harmonische Oszillator frei gedreht werden kann.

Beispiel für elastische Drehung

  • SnapPoints: Winkel, an denen das System andockt.
  • RepeatSnapPoints: Wiederholt die Andockpunkte. Vorhandene Andockpunkte dienen als Modulo, bei dem die tatsächlichen Ausrichtungspunkte den nächsten ganzzahligen Vielfachen jedes Andockpunkts zugeordnet werden.
  • SnapRadius: Bogenwinkel, bei dem Andockpunkte 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