Übersicht über Gitterphysik
In einer Mesh-Erfahrung ist die Physiksimulation entscheidend, um dynamische Inhalte zu ermöglichen. Um Mesh-Teilnehmern qualitativ hochwertige gemeinsame Physikerfahrungen bereitzustellen und Entwicklern einen produktiven Workflow zum Erstellen von benutzerdefinierten Inhalten zu bieten, haben wir das Mesh Physics-System erstellt. Die Gitterphysik basiert auf der lokalen autoritativen Simulation, was zu einer sehr einfachen Architektur führt. Es ist keine serverseitige Logik und spezielle Logik auf den Clients erforderlich. Am wichtigsten ist, dass dieser Ansatz zu einer sehr reaktionsfähigen und niedrigen Latenz für jeden Spieler führt, der mit seiner Umgebung interagiert, auch wenn er mit einem Netzwerk mit hoher Latenz verbunden ist.
Verteilte Physiksimulation
Die Gitterphysik synchronisiert die Positionen starrer Körper und sollte sofort funktionieren, vorausgesetzt, alle Clients teilen sich dieselbe Szene. Die meisten Unity-Physikfeatures (z. B. Starrbodies, Kollidierungen, Materialien und Einschränkungen) werden ohne zusätzlichen Entwickleraufwand synchronisiert:
Hinweise:
- Nur starre Positionen und Ausrichtungen werden mit Interpolation synchronisiert.
- Diskrete Zustandsänderungen (z. B. unterbrechungsfähige Einschränkungen) und Triggerereignisse müssen vermieden werden.
Jeder Kunde ist dafür verantwortlich, einige der Körper zu simulieren, die als verteilter Simulationsbesitz bezeichnet werden. Wenn ein Spieler einen starren Körper berührt, wird der Simulationsbesitz sofort übertragen, um interaktionen mit geringer Latenz zu ermöglichen. Bei benachbarten Körpern führt das Physiksynchronisierungsmodul lokale Vorhersage, Interpolation und automatische Besitzerumverteilung durch, um visuelle Artefakte zu minimieren.
Gitterphysik bietet Interaktion und zusätzliche physikbezogene Funktionen wie:
- verschiedene Felder, um Körper innerhalb physisch zu beeinflussen (Auftrieb, Schwerkraft)
- verschiedene Komponenten zur Änderung des Verhaltens einzelner Körper (magnetisch, klebbar, werfend)
- die Möglichkeit, Körper auf ihre Startpositionen zurückzusetzen (selektive Szenenbereinigung)
- Play Mode with Mesh Emulation support for multi-user testing of the features above
Hier sind weitere Möglichkeiten, die Sie mit den Funktionen der Gitterphysik erledigen können:
Erlauben Sie Teilnehmern, Objekte zu erfassen und zu tragen.
Steuern, wie sich die Schwerkraft auf Objekte auswirkt.
Machen Sie ein Objekt "sticky" – es bleibt an dem, was es trifft. Beispiele: Das Werfen eines Darts an einem Dartbrett, das ein Bild an eine Wand anfügt.
Fügen Sie Animationen für die automatische Wiedergabe hinzu, die mit physischen Körpern interagieren.
Zulassen, dass Die Teilnehmer Objekte zurücksetzen (z. B. ein Schachbrett zurücksetzen oder einen Raum bereinigen, nachdem Objekte verstreut wurden).
Löst Ereignisse aus, wenn ein Objekt in einen Trigger kollidiert.
Erstellen Sie ein Eindämmungsfeld. Objekte bleiben innerhalb der Grenzen des Felds.
Steuern der Geschwindigkeit eines Objekts.
Kontrollieren Sie die Auftriebsfähigkeit von Objekten , z. B. machen Sie Boote und andere seegende Objekte "float".
Steuern der Winkelgeschwindigkeit eines Objekts.
Erstellen Sie eine Explosion, wodurch objekte in der Nähe nach außen oder in eine bestimmte Richtung verschoben werden.
Erstellen Sie "Bouncy"-Objekte, die sich mit einer vordefinierten Geschwindigkeit voneinander abspringen.
Teleportieren eines Objekts an eine neue Position und (optional) neue Drehung.
Terminologie
Während der Artikel "Mesh Physics" wird "Body" als Kurzform für "Rigidbody" verwendet.