A World Partition abre caminho para os criadores construírem ilhas grandes e complexas e permite que eles façam isso enquanto melhoram os custos de memória e garantem um bom desempenho em diferentes plataformas.
Dois componentes importantes que a World Partition usa para tornar isso possível são Transmissão e HLODs (Nível de Detalhe Hierarquizado).
Transmissão
A World Partition usa a Transmissão para carregar células da grade ao redor do jogador, ou uma fonte de transmissão, dentro e fora da memória. Isso reduz a quantidade de dados que sua máquina precisa memorizar das células ao redor de um personagem do jogador.
Se a ilha ultrapassar 1 km em seu eixo mais largo, você verá um pop-up solicitando a ativação da Transmissão.
Marcar a opção Habilitar Transmissão faz com que apenas as células ao redor da posição atual do jogador contem para o Uso Atual de Memória, com algumas exceções.
Clique em Janela > Configurações do Mundo para ver se a opção Habilitar transmissão está habilitada.
Ao marcar a caixa pela primeira vez, você precisará confirmar sua seleção.
Seu projeto agora deve ter a transmissão habilitada.
Para visualizar a grade da sua ilha, marque Visualizar Grades nas Configurações do Mundo.
Você pode modificar o tamanho de cada célula e a faixa de carregamento, mas lembre-se de que as configurações padrão são otimizadas para ilhas do tamanho do Fortnite Battle Royale.
Para obter informações mais detalhadas, consulte a página World Partition na documentação da Unreal Engine 5.
HLODs
Nível de Detalhe Hierarquizado HLOD é um agrupamento otimizado de atores próximos em que o grupo é simplificado em uma malha estática quando está longe o suficiente da fonte de transmissão.
HLODs são gerados a partir do Nível de Detalhe (LOD) de menor fidelidade do ativo. Se os seus ativos personalizados não tiverem LODs definidos, o HLOD será muito caro, pois será gerado a partir de ativos de resolução total.
LOD0 é o ativo de maior fidelidade. LOD1 é uma malha de menor fidelidade, e a fidelidade continua diminuindo à medida que o número do LOD aumenta.
A imagem à esquerda mostra os ativos com todos os detalhes, e a da direita é um ativo HLOD gerado a partir dessa célula da grade.
A construção de HLODs adiciona novos ativos ao seu projeto, o que aumenta o uso total de memória da sua ilha.
Com base nas suas decisões sobre Transmissão e HLODs, o uso de memória será afetado das seguintes maneiras:
Transmissão DESLIGADA | Os ativos nunca são descarregados da memória e HLODs não são usados. | Uso máximo de memória |
Transmissão ATIVADA e HLODs gerados | Os ativos ainda aparecerão a uma certa distância, mas com menos detalhes à medida que a câmera se afasta. | Uso moderado de memória |
Transmissão ATIVADA e HLODs não gerados | Os ativos desparecerão a uma certa distância à medida que a câmera se afasta. | Uso mínimo de memória |
Criar HLODs
Para criar HLODs, certifique-se de que seu projeto tem a opção Transmissão habilitada. Em seguida, vá para Construir na barra de ferramentas e selecione Criar HLODs.
Dependendo da sua máquina e da complexidade do seu mundo, a construção de HLODs pode demorar um pouco. A boa notícia é que, se você executar esse processo novamente, ele criará HLODs apenas para regiões do seu mundo que mudaram e, portanto, demorará menos.
Para saber mais sobre como os HLODs funcionam, confira a página World Partition - Nível de Detalhe Hierarquizado na documentação da Unreal Engine 5.
Excluir ativos da geração de HLODs
Alguns ativos não exigirão HLODs. Aqui estão alguns exemplos de ativos que você pode excluir:
Adereços de interior e ativos de construção | Qualquer ativo que não possa ser visto de longe não exige HLODs. Alguns exemplos incluem móveis, paredes internas, pisos internos etc. |
Ativos subterrâneos | Qualquer parte da ilha que seja subterrânea e nunca estará na linha de visão de um jogador. Exemplos incluem porões, cavernas, trincheiras, bunkers e assim por diante. |
Atores pequenos | Atores pequenos que não ocupam uma grande parte da tela do jogador não exigem HLODs. Exemplos incluem caixas, plantas e lâmpadas de rua. |
Atores grandes | Qualquer ator de fundo grande, como arranha-céus ou montanhas, não precisa de HLODs. Se você excluí-los dos HLODs, certifique-se de que eles sempre permanecerão carregados, desmarcando É Carregado Espacialmente no painel Detalhes. |
Selecione qualquer ativo que não exija HLODs. No painel Detalhes, desmarque Incluir Ator em HLODS ou Incluir Componente em HLODS, dependendo do ativo.
Uma boa regra para decidir se você deve incluir um ativo nos HLODs é reduzir o zoom no editor e ver se faz sentido excluir quaisquer ativos sem importância da geração de HLODs.
Recuar a faixa de carregamento
A qualidade dos HLODs está vinculada à distância do desenho esperada. Ao usar a transmissão, a menor distância na qual seus HLODs serão vistos é a faixa de carregamento que você configurou para sua grade da World Partition.
Se os HLODs forem carregados apenas quando já estiverem pequenos na tela do jogador, eles ocuparão menos espaço de armazenamento.
Para alterar a faixa de carregamento:
Selecione a aba Configuração da World Partition.
Expanda Configurações de Tempo de Execução e depois expanda Grade.
Modifique a faixa de carregamento clicando com o botão esquerdo e arrastando o valor do número para a esquerda ou para a direita, ou inserindo um valor exato.
Usar regiões de carregamento para melhorar o desempenho do editor
Ao trabalhar em grandes projetos no UEFN, você pode começar a notar problemas de desempenho conforme sua ilha atinge um determinado tamanho. Por padrão, toda a sua ilha é carregada na memória. Para melhorar a taxa de quadros e a capacidade de resposta da janela de visualização, você pode carregar e descarregar regiões ao trabalhar em diferentes áreas da sua ilha.
Ao trabalhar em uma ilha grande ou densa no editor do UEFN, use o minimapa da World Partition para carregar e descarregar seções da ilha, reduzindo drasticamente o tempo de carregamento.
Para fazer isso:
Certifique-se de que a Transmissão está habilitada em seu nível.
Selecione Editar na barra de menus e escolha Preferências do editor...
Acesse a seção World Partition e desmarque a opção "Desabilitar carregamento no editor".
Recarregue seu projeto. Essa funcionalidade não funcionará a menos que o projeto seja recarregado.
Na aba World Partition, clique com o botão esquerdo e arraste pela área que deseja descarregar.
Clique com o botão direito dentro da seleção e escolha Descarregar regiões selecionadas.
Para recarregar uma região, clique e arraste pela região desejada, clique com o botão direito do mouse e selecione Carregar região da seleção
Tenha em mente que todas as paisagens e dispositivos não serão afetados pelo carregamento e descarregamento. A mesma coisa vale para qualquer ativo que tenha "É Carregado Espacialmente" desmarcado nas Opções do usuário.
Camadas de dados no UEFN
Camadas de dados são um sistema no UEFN que organiza seus Atores em diferentes camadas. Essas camadas podem ser carregadas e descarregadas para organizar seu mundo, gerenciar níveis complexos e criar experiências de jogo exclusivas. Imagine um jogo com níveis aleatórios. Ao definir diferentes layouts de níveis em diferentes camadas e selecionar aleatoriamente um deles quando o jogo começa, você pode adicionar variedade e emoção à sua experiência. Você pode usar camadas de dados para transições ainda maiores, por exemplo, para mudar um nível inteiro do verão para o inverno ou adicionar destruição a um castelo após uma batalha.
Para obter informações mais detalhadas sobre a criação e o gerenciamento de camadas de dados, consulte a página de camadas de dados no site de documentação da Unreal Engine
Como manipular camadas de dados com o uso do Sequencer Cinematográfico
Você pode usar a Sequência Cinematográfica no UEFN para carregar, ativar e descarregar camadas de dados em tempo de execução e em resposta a eventos.
Na aba Sequencer, clique no botão Faixa e selecione Camada de dados para adicionar uma camada de dados existente à faixa do Sequencer.
Com a faixa definida, clique com o botão direito do mouse na faixa Camada de dados e selecione Editar seção. Em seguida, clique em Adicionar elemento, na aba Ativos da camada de dados e selecione a camada de dados que você deseja usar com o Sequencer cinemático.
Se você clicar com o botão direito do mouse na camada de dados na linha do tempo, poderá visualizar suas propriedades. Aqui, é possível escolher o Estado desejado, o estado em que você deseja que a camada esteja quando a linha do tempo for avaliada. Você também pode modificar o Estado de pré-implementação. O estado de Pré-implementação é o estado em que a camada se encontra antes do início da faixa, enquanto o estado de Pós-implementação é o estado após o término da faixa. Por exemplo, se você quisesse ativar uma camada de dados, definiria o estado desejado como Ativado e o estado de pré-implementação Carregado. Definir o estado de pré-implementação como Carregado e aumentar o número de quadros de pré-implementação dará à sua camada mais tempo para carregar antes de ser ativada, o que pode resultar em um desempenho mais suave.
Ao mover o indicador de reprodução, você pode visualizar o estado em que sua camada estará quando a linha do tempo for avaliada.
Para saber mais sobre como usar o dispositivo Sequencer cinematográfico, consulte a página dispositivo Sequencer cinematográfico.
Gerar o minimapa do editor
Uma etapa opcional é gerar um minimapa de alta fidelidade em sua sessão de editor. Isso pode ajudar você a encontrar rapidamente as várias áreas do nível em que deseja trabalhar.
Selecione Compilar na barra de menus e escolha Compilar minimapa do editor da World Partition.
Uma caixa de diálogo Status da compilação aparecerá na tela. Seja paciente, pois esta etapa pode levar vários minutos para ser concluída, dependendo da complexidade da sua ilha.
Seu minimapa agora corresponde à sua janela de visualização. As regiões ainda podem ser carregadas e descarregadas da mesma maneira.
Solução de problemas
P: Por que não consigo ver HLODs depois de construí-los?
A: Atores HLOD não são carregados por padrão pelo editor. Para inspecioná-los, use o Organizador para procurá-los e afixe-os com Pin.
P: Por que ativos estão gerando HLODs quando os atores estão longe uns dos outros?
R: Verifique se os atores estão anexados/aninhados em um ator-pai. Clique no ator e selecione Anexar: nenhum para separá-lo.
P: Alguns dos meus ativos importantes desaparecem quando as células são descarregadas.
R: Certos ativos prontos paro o UEFN não terão a opção Incluir ator no HLOD marcada por padrão. Se estiver vendo problemas, verifique as propriedades do ativo.
P: Por que o prompt de Transmissão é acionado quando minha ilha não excede 1 km?
R: O prompt de Transmissão pode ser acionado quando sua paisagem ultrapassa 1 km em seu eixo mais largo ou quando algum ator está localizado a mais de 1 km do ponto de origem no nível.
P: Por que meu ator grande não está sendo substituído por HLODs a distância?
R: Um ou vários dos atores na hierarquia de uma estrutura pré-fabricada podem ter sido copiados e movidos para tão longe que a World Partition os considera malhas que sempre precisam ser carregadas. Remova os atores distantes da hierarquia para corrigir esse problema.