Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
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:
- Aufrufen der Initialize-Methode beim Start der Manipulation, Aktualisieren des Systems mit der aktuellen Hosttransformation.
- 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.
- 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.
Elastische Quaternionsausdehnung
Quaternionsblöcke definieren einen vierdimensionalen Drehraum, in dem der gedämpfte harmonische Oszillator frei gedreht werden kann.
- 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.