Visão geral
Mass Entity é uma estrutura para cálculos orientados a dados disponível na Unreal Engine. Esse framework é dividido em vários plugins responsáveis por funcionalidades específicas no sistema.
O plugin Mass Gameplay é derivado diretamente do plugin Mass Entity e inclui funcionalidades para representação no mundo, surgimento, mecânicas de nível de detalhe (LOD), replicação e StateTree.
Este documento descreve os subsistemas disponíveis no plugin MassGameplay. Confira a Visão geral do MassEntity para saber mais sobre o MassEntity.
Subsistemas
Mass Representation
O subsistema Mass Representation é responsável por gerenciar os diferentes aspectos visuais das entidades de massa.
Para cada representação de valor de LOD, o subsistema fornece uma opção entre quatro tipos de representação:
Um ator em alta resolução
Um ator em baixa resolução
Uma Malha Estática Instanciada (ISM)
Nenhuma representação.
A ISM é a maneira mais barata de representação de ator e pode ser movida e animada usando animação de vértice. Para saber mais sobre como os atores ISM são animados, você pode baixar a Amostra de Cidade da Fab.
A animação da Malha Estática Instanciada é considerada experimental no MassGameplay, pois ainda não é compatível em todos os casos de uso.
O subsistema controla as transições entre cada tipo de representação e opera direto com o subsistema MassActorSpawner e os subsistemas MassLOD. Além disso, esse subsistema consegue reciclar e agrupar de forma automática atores gerados.
Mass Spawner
O subsistema Mass Spawner gera e gerencia as entidades com base nos objetos de MassSpawner e as chamadas procedurais. Esse subsistema tem uma instância Mass Entity Template Registry que armazena informações em modelos de entidade disponíveis.
Para usar esse subsistema, crie um ator MassSpawner e posicione-o no nível. Especifique o tipo de ator a ser gerado adicionando um Mass Entity Definition Asset e o local do surgimento desses atores adicionando um Mass Entity Distribution Instance Generator.
Mass LOD
O subsistema Mass LOD calcula o nível de detalhe (LOD) necessário para cada entidade de massa.
O sistema retorna quatro valores de LOD: alto, médio, baixo e desativado. Para cada nível de LOD, é possível configurar distâncias de relevância do nível e uma contagem máxima de entidades por nível.
Existem três sistemas que são clientes desse subsistema:
Mass (Representation/Visualization) LOD
MassSimulationLOD
MassReplicationLOD
MassLOD também calcula um valor de ponto flutuante de significância LOD de 0,0f (Alto) até 3,0f (Desativado).
Mass (Representation/Visualization) LOD
Mass (Representation/Visualization) LOD foi projetado para controlar LODs visuais. Ele calcula os LODs das distâncias e se estão visíveis ou não. Você também pode fornecer diferentes distâncias de LOD, mesmo se a entidade não estiver no frustum da câmera.
O sistema agrupa todas as entidades em diferentes pacotes, sejam elas selecionadas por distância, selecionadas por frustum ou se podem ser vistas. O seguinte gráfico representa os diferentes agrupamentos:
Mass Simulation LOD
Mass Simulation LOD é uma implementação para balanceamento de carga de todos os cálculos da entidade. O sistema agrupa todas as entidades em pacotes com o mesmo LOD. Isso é útil quando você usa filtros nas consultas. Ele também tem a opção de fornecer uma atualização de frequência variável para todos os cálculos.
Mass Replication LOD
Mass LOD Replication usa o framework de LOD para saber a relevância de cada entidade para fins de replicação. Diferente de "Mass (Representation/Visualization) LOD" e "Mass Simulation LOD", esse sistema calcula um LOD para cada entidade por cliente conectado (espectador). Ele ajuda a otimizar a largura de banda na rede.
Mass Replication (Experimental)
O subsistema Mass Replication replica entidades na rede no modo servidor-cliente. Ele realiza replicação unidirecional do servidor aos clientes.
Esse subsistema gerencia a relevância e frequência de atualização de entidades para limitar o consumo de largura de banda por meio do sistema Mass Replication LOD.
"Mass Replication" é considerado experimental na Unreal Engine 5.1. O sistema precisa de uma implementação de C++ para replicar valores personalizados.
Mass StateTree
O subsistema Mass StateTree é usado para integrar o sistema StateTree com entidade de massa. Ele permite configurar StateTrees para cada entidade e atualizar cada StateTree da entidade com base nos sinais enviados por outros sistemas de massa.
A lógica StateTree é usada apenas para configurar ou definir dados para as entidades, de modo que os processadores corretos sejam executados em comportamentos específicos.
Mass Signals
O subsistema Mass Signal fornece uma maneira de enviar um sinal nomeado para informar a uma entidade que ela deve fazer um processamento. Esse subsistema é usado no Mass StateTree para avisá-lo de que deve fazer um processamento.
O sinal é semelhante a um evento sem carga útil enviada a uma entidade. Como o framework de massa se concentra mais em um padrão de extração, esse subsistema é muito útil quando você precisa atualizar algo com frequência.
Mass Movement
O subsistema Mass Movement define um modelo de movimento simples para agentes de massa. Os fragmentos e processadores são configurados de modo que outros traços consigam modificar a velocidade ou força. Esses valores são combinados a um valor de movimento final usado pelos agentes de massa.
Por exemplo, ao direcionar o agente, o sistema pode definir a força de direção inicial e o desvio pode alterá-la para evitar colisões durante o movimento.
Mass SmartObject
O subsistema Mass SmartObject é usado para integrar o sistema SmartObject com entidade de massa. Ele fornece os traços, fragmentos e processadores necessários para realizar consultas de Smart Object e executar comportamentos simples em agentes representados por MassEntities.