Introducción
MassEntity es un marco para cálculos orientados a datos disponible en Unreal Engine. Está compuesto por varios complementos que se encargan de funciones específicas dentro del sistema.
El complemento Mass Gameplay deriva directamente del complemento Mass Entity, e incluye funciones para la representación en el mundo, apariciones, mecánicas de nivel de detalle (LOD), replicación y StateTree.
Este documento explica los subsistemas disponibles en el complemento MassGameplay. Obtén más información sobre MassEntity en la sección MassEntity Overview (presentación de MassEntity).
Subsistemas
Mass Representation
El subsistema de representación de masa se encarga de gestionar los distintos aspectos visuales de las entidades de masa.
Para cada valor de LOD de la representación, el sistema permite elegir una opción de entre cuatro tipos de representación distintos:
Un actor de alta resolución
Un actor de baja resolución
Una malla estática con instancias (ISM)
Sin representación.
Las ISM son la forma más económica de representar al actor y se les puede añadir movimiento y animación mediante la animación de vértices. Si quieres más información sobre cómo animar los actores de malla estática con instanciado, puedes descargar City Sample de Fab.
En MassGameplay, la animación de mallas estáticas con instancias se encuentra en fase experimental y aún no es compatible con todos los casos de uso.
El subsistema se encarga de las transiciones entre los distintos tipos de representación y funciona directamente con los subsistemas MassActorSpawner y MassLOD. Además, puede reciclar y agrupar actores generados automáticamente.
Mass Spawner
El subsistema Generador de masa genera y controla las entidades basadas en las llamadas procedimentales y objetos de MassSpawner. Este subsistema posee una instancia de Registro de plantillas de Mass Entity que almacena información en plantillas de entidad disponibles.
Para empezar a usar el subsistema, crea un actor MassSpawner y añádelo al nivel. Puedes especificar qué tipo de actor generar añadiendo un recurso de definición de Mass Entity, y dónde generarlos añadiendo un generador de instancias de distribución de Mass Entity.
Mass LOD
El subsistema LOD de masa calcula el nivel de detalle (LOD) necesario para cada entidad de masa.
Este sistema incluye cuatro valores de LOD: High (alto), Medium (medio), Low (bajo) y Off (apagado). Para cada uno de ellos, puedes configurar las distancias a las que el nivel es relevante y una cantidad máxima de entidades por nivel.
Existen tres sistemas que son clientes de este subsistema:
Mass (Representation/Visualization) LOD
MassSimulationLOD
MassReplicationLOD
MassLOD también puede calcular el valor del punto flotante de significado del LOD desde 0,0f (alto) hasta 3,0f (apagado).
Mass (Representation/Visualization) LOD
LOD para representación/visualización de masa está diseñado específicamente para gestionar niveles de detalle visuales. No solo calcula los niveles de detalle desde distancias, sino que también comprueba si son visibles o no. Además, puedes proporcionar distintas distancias de LOD aunque la entidad no esté dentro del campo de visión de la cámara.
El sistema agrupa todas las entidades en paquetes diferentes en función de si se han cribado por distancia, por campo de visión o por el hecho de si son visibles. El siguiente gráfico representa los distintos conjuntos:
Mass Simulation LOD
La implementación de LOD de simulación de masa permite realizar un equilibrio de carga de todos los cálculos de entidades. El sistema agrupa en paquetes todas las entidades que tienen el mismo nivel de detalle, algo que resulta útil a la hora de usar filtros en las consultas. Por otra parte, también ofrece la opción de actualizar la frecuencia de las variables de todos los cálculos.
Mass Replication LOD
LOD de replicación de masa se basa en el marco LOD para descubrir la relevancia de cada entidad con fines de replicación. A diferencia del Mass (Representation/Visualization) LOD y Mass Simulation LOD, este sistema calcula un nivel de detalle para cada entidad por cliente conectado (espectador). Este sistema permite optimizar el ancho de banda en toda la red.
Mass Replication (experimental)
El subsistema Replicación de masa replica entidades en la red siguiendo un método cliente-servidor. Realiza una replicación unidireccional desde el servidor hasta sus clientes.
Este subsistema controla la relevancia y la frecuencia de actualización de las entidades para limitar el consumo de ancho de banda a través del sistema Mass Replication LOD.
Mass Replication se encuentra en fase experimental para Unreal Engine 5.1. El sistema requiere una implementación de C++ para replicar valores personalizados.
Mass StateTree
El subsistema StateTree de masa se usa para integrar el sistema StateTree con Mass Entity. Permite configurar árboles de estado (State Trees) para cada entidad y actualizar cada uno de ellos en función de las señales que envíen otros sistemas de masas.
La lógica de StateTree solo se usa para configurar o establecer datos para las entidades, de modo que los procesadores adecuados ejecuten comportamientos concretos.
Mass Signal
El subsistema Señal de masa permite enviar una señal con nombre para informar a una entidad de que necesita procesar algo. A día de hoy, este subsistema se usa en Mass StateTree para activarlo cada vez que haya algo que procesar.
La señal es similar a un evento sin carga que se envía a una entidad. Puesto que, en la mayoría de los casos, el marco Mass sigue un patrón de extracción, este subsistema resulta especialmente útil cuando necesitas actualizar algo con frecuencia.
Mass Movement
El subsistema Movimiento de masa define un modelo de movimiento sencillo para agentes de masa. Los fragmentos y los procesadores se configuran de tal modo que otros rasgos (Traits) puedan modificar la velocidad y la fuerza directamente. Estos valores, por su parte, se combinan con un valor de movimiento final usado por los agentes de masa.
Por ejemplo, a la hora de dar dirección al agente, el sistema puede establecer la fuerza direccional inicial, que la evasión puede modificar para evitar colisiones durante el movimiento.
Mass SmartObject
El subsistema SmartObject de masa se usa para integrar el sistema SmartObject con Mass Entity. Aporta los rasgos (Traits), fragmentos (Fragments) y procesadores (Processors) necesarios para realizar consultas de SmartObject y ejecutar comportamientos sencillos en agentes representados por entidades de masa.