Übersicht
Mass Entity ist ein in der Unreal Engine verfügbares Framework für datenorientierte Berechnungen. Dieses Framework ist in mehrere Plugins unterteilt, die für bestimmte Funktionalitäten innerhalb des Systems verantwortlich sind.
Das Plugin Mass Gameplay leitet sich direkt vom Plugin Mass Entity ab und beinhaltet Funktionalitäten zur Weltdarstellung, für das Spawning, den Detaillierungsgrad (LOD), die Replikation und den State Tree.
Dieses Dokument beschreibt die verfügbaren Subsysteme im Plugin MassGameplay. Weitere Informationen über MassEntity finden Sie hier: Übersicht zu Mass Entity.
Subsysteme
Mass Representation
Das Subsystem Mass Representation ist verantwortlich für die Verwaltung verschiedener visueller Aspekte der Mass Entities.
Das Subsystem bietet für jeden LOD-Wert eine Auswahl zwischen den folgenden vier Darstellungsarten:
Ein Actor mit hoher Auflösung
Ein Actor mit niedriger Auflösung
Ein instanziertes statisches Mesh (ISM)
Keine Darstellung.
Das ISM ist die kostengünstigste Art der Darstellung des Actors und kann mittels Scheitelpunktanimation bewegt und animiert werden. Um mehr darüber zu erfahren, wie die ISM-Actors animiert werden, können Sie das City Sample von Fab herunterladen.
Die instanzierte Statisches-Mesh-Animation ist für MassGameplay noch experimentell, da sie noch nicht in allen Anwendungsfällen vollständig unterstützt wird.
Das Subsystem handhabt die Übergänge zwischen den einzelnen Darstellungsarten und funktioniert direkt mit den Subsystemen MassActorSpawner und MassLOD. Darüber hinaus kann dieses Subsystem gespawnte Actors automatisch recyceln und zusammenfassen.
Mass Spawner
Das Subsystem Mass Spawner spawnt und verwaltet die auf MassSpawner-Objekten und prozeduralen Aufrufen basierenden Entitäten. Dieses Subsystem verfügt über eine instanzierte Mass-Entity-Vorlagenregistrierung, die Informationen über verfügbare Entitätsvorlagen bereitstellt.
Erstellen Sie einen MassSpawner-Actor und platzieren ihn in Ihrem Level, um dieses Subsystem zu nutzen. Sie können festlegen, welcher Actor-Typ gespawnt werden soll, indem Sie ein Mass-Entity-Definitionsasset hinzufügen, und auch wo diese Actors gespawnt werden sollen, indem Sie einen Mass-Entity-Verteilungs-Instanzgenerator hinzufügen.
Mass LOD
Das Subsystem Mass LOD berechnet den für jede Mass Entity notwendigen Detaillierungsgrad (LOD).
Das System gibt vier LOD-Werte aus: Hoch, Mittel, Niedrig und Aus. Für jede LOD-Stufe können Sie die für jede Stufe relevanten Distanzen und eine maximale Anzahl von Entitäten pro Stufe festlegen.
Als Clients für dieses Subsystem fungieren drei Systeme:
Mass (Representation/Visualization) LOD
Mass Simulation LOD
Mass Replication LOD
Mass LOD kann zudem einen Fließkommawert für die LOD-Signifikanz von 0,0f (Hoch) bis 3,0f (Aus) berechnen.
Mass (Representation/Visualization) LOD
Mass (Representation/Visualization) LOD wurde eigens für die Handhabung von visuellen LODs entwickelt. Dieses System ermittelt nicht nur die LODs aus der Distanz, sondern auch, ob diese sichtbar sind oder nicht. Sie können zudem unterschiedliche LOD-Distanzen angeben, unabhängig davon, ob sich das Objekt innerhalb des Kamera-Frustums befindet oder nicht.
Das System gruppiert alle Entitäten in unterschiedlichen Chunks, unabhängig davon, ob sie nach Distanz oder Frustum ausgeblendet werden oder ob sie gesehen werden können. Das folgende Diagramm veranschaulicht die verschiedenen Gruppierungen:
Mass Simulation LOD
Mass Simulation LOD ist eine Implementierung für die Lastenverteilung sämtlicher Entitätsberechnungen. Das System gruppiert sämtliche Entitäten in Chunks, die dasselbe LOD aufweisen, was bei der Anwendung von Filtern auf Ihre Suchanfragen nützlich ist. Darüber hinaus bietet es die Möglichkeit, alle Berechnungen mit variabler Frequenz zu aktualisieren.
Mass Replication LOD
Mass-LOD-Replication verwendet das LOD-Framework, um die Relevanz jeder Entität für Replikationszwecke zu erfahren. Im Gegensatz zu Mass LOD (Representation/Visualization) LOD und Mass Simulation LOD ermittelt dieses System ein LOD pro verbundenem Client (Viewer) für jede Entität. Das System trägt dazu bei, die Bandbreite im Netzwerk zu optimieren.
Mass Replication (experimentell)
Das Subsystem Mass Replication repliziert Entitäten in einer Client-Server-Methode über das Netzwerk. Es führt eine einseitige Replikation vom Server zu seinen Clients durch.
Dieses Subsystem handhabt sowohl die Relevanz als auch die Aktualisierungsfrequenz der Entitäten, um den Bandbreitenverbrauch über das System der Mass Replication LOD zu begrenzen.
Für die Verwendung mit Unreal Engine 5.1 wird Mass Replication als experimentelle Funktion erachtet. Das System benötigt eine C++-Implementierung zur Replikation benutzerdefinierter Werte.
Mass StateTree
Das Subsystem Mass StateTree wird verwendet, um das System von StateTree in Mass Entity zu integrieren. Es gestattet Ihnen, StateTrees für jede Entität zu konfigurieren und zugleich den StateTree jeder Entität auf Basis der Signale zu aktualisieren, die von anderen Mass-Systemen gesendet werden.
Die Logik des StateTrees wird lediglich verwendet, um Daten für die Entitäten zu konfigurieren oder einzurichten, damit die richtigen Prozessoren für bestimmte Verhaltensweisen laufen.
Mass Signals
Das Subsystem Mass Signal bietet eine Möglichkeit, ein benanntes Signal zu senden, um einer Entität mitzuteilen, dass sie eine Verarbeitung durchführen muss. Das Subsystem wird derzeit in Mass StateTree verwendet, um es zu wecken, wenn es etwas zu verarbeiten gibt.
Das Signal ähnelt einem Event ohne Nutzlast, das an eine Entität gesendet wird. Das sich das Mass-Framework vor allem auf ein Pulling-Muster konzentriert, ist dieses Subsystem sehr nützlich, wenn Sie etwas regelmäßig aktualisieren müssen.
Mass Movement
Das Subsystem Mass Movement definiert ein einfaches Bewegungsmodell für Mass-Agents. Die Fragmente und Prozessoren werden so eingerichtet, dass andere Eigenschaften die Geschwindigkeit oder Kraft direkt modifizieren können. Diese Werte werden zu einem Bewegungsendwert kombiniert, der von den Mass-Agents verwendet wird.
Beim Steuern des Agents könnte das System zum Beispiel die anfängliche Steuerstärke festlegen und die Avoidance könnte diese ändern, um Kollisionen während der Bewegung zu vermeiden.
Mass Smart Object
Das Subsystem Mass SmartObject wird verwendet, um das SmartObject-System in Mass Entity zu integrieren. Es stellt die erforderlichen Eigenschaften, Fragmente und Prozessoren bereit, um SmartObject-Abfragen und einfache Verhaltensweisen auf durch Mass Entities dargestellten Agents auszuführen.