A Instanciação de níveis é um fluxo de trabalho baseado em nível que facilita a portabilidade de mundos não World Partition para o sistema World Partition. Ela pode ser usada para criar estratégias complexas de transmissão usando os seguintes recursos:
-
Instanciação de níveis com transformações usando um ator especificamente projetado.
-
Transmissão de várias instâncias do mesmo nível em tempo de execução. Isso não era possível nas versões anteriores do Unreal Engine.
-
Aninhamento hierárquico de subníveis adicionais dentro de um subnível.
Por exemplo, você pode usar World Partition para preencher um mapa com um grande número de atores. Nos casos em que os atores precisam ser especificamente organizados e reutilizados, as instâncias de nível fornecem um fluxo de trabalho de edição no contexto que substitui a antiga exibição de nível.
Embora seja possível usar a Transmissão de nível sem usar o World Partition, as instâncias do nível não possuem automaticamente gerenciamento de transmissão ou estratégias de transmissão fora de um mundo principal do World Partition.
Criando instâncias de nível
Novas instâncias de nível são geradas a partir de atores selecionados e podem ser criadas na Janela de visualização ou em Destaques do Mundo.
Depois de selecionar os atores, clique com o botão direito do mouse em um deles para abrir o menu sensível ao contexto e selecione Criar a partir da seleção.
Você verá uma caixa de diálogo com as seguintes configurações:
| Configuração | Descrição |
|---|---|
| Tipo | O tipo de instância de nível:
|
| Atores externos | Habilite Atores externos para usar o sistema Um arquivo por ator. Para obter mais informações, consulte a documentação One File Per Actor. |
| Tipo de pivô | O tipo de pivô que a instância de nível terá:
|
| Ator pivô | Se o ator for selecionado como o pivô, use esse menu suspenso para selecionar qual ator será o ponto pivô para a instância de nível. |
Depois de selecionar suas configurações, você será solicitado a salvar a nova instância de nível.
Esse processo criará um novo ator ALevelInstance no nível que substitui os atores selecionados anteriormente. Esse ator representa o nível que acabou de ser criado, e todas as transformações aplicadas a ele serão aplicadas à instância de nível.
Em Destaques do Mundo, os atores de nível ficarão esmaecidos, pois não podem ser selecionados ou editados no momento.
É possível arrastar um ator ALevelInstance até o seu nível e atribuir um arquivo .umap a ele no painel Detalhes.
É possível fornecer modelos de instância de nível por meio de arquivos .ini do Unreal Engine usando entradas semelhantes aos modelos de criação de nível regulares. Faça isso adicionando o seguinte ao arquivo DefaultEditor.ini para o seu projeto:
[/Script/LevelInstanceEditor.LevelInstanceEditorSettings]
+TemplateMapInfos=(ThumbnailTexture=Null,Map="/Game/Maps/Tools/TM-Template")
Instâncias de nível compactadas
Uma instância de nível compactada é um tipo de instância de nível que tenta agrupar as malhas estáticas de um nível no menor número possível de instâncias de malha estática.
Existem dois tipos de instâncias de nível compactadas:
-
Instâncias de nível compactadas: O processo de empacotamento cria uma Instância de nível compactada centrada na localização do ator ALevelInstance.
-
Blueprint de instância de nível compactada: O processo de compactação cria uma instância de nível que pode ser referenciada a partir de um blueprint.
Atores e componentes que não são malhas estáticas não são incluídos no processo de compactação e permanecerão separados no nível de origem.
Compactar uma instância de nível não altera o fluxo de trabalho de edição ao trabalhar com o nível.
Instâncias de nível compactadas são atualmente um recurso experimental e podem ser alteradas ou removidas em versões posteriores do Unreal Engine.
Editando instâncias de nível
Instâncias de nível podem ser editadas no contexto da janela de visualização ou do painel Detalhes.
Mostrado acima, o modo de edição é aberto fazendo o seguinte:
-
Selecione a instância de nível na janela de visualização.
-
Clique com o botão direito do mouse para abrir o menu sensível ao contexto.
-
Na seção Instância de nível do menu, passe o mouse sobre a opção Editar e selecione o nível que deseja editar.
O modo de edição também pode ser aberto no painel Detalhes:
Selecione a instância de nível que você deseja editar e clique no botão Editar no painel Detalhes.
Transmissão de nível em tempo de execução
Modo incorporado
Ao usar o modo incorporado, as instâncias de nível que usam o sistema Um arquivo por ator (OFPA) são descartadas e seus atores são adicionados à grade de partição do mundo em tempo de execução. Esse é o modo de tempo de execução padrão e o método sugerido de transmissão de conteúdo de nível. Isso também faz com que as instâncias de nível existam apenas no editor.
Alguns atores que não usam o OFPA são perdidos em tempo de execução ao usar o modo incorporado. Por exemplo, o objeto AWorldSettings de uma instância de nível incorporada não existe em tempo de execução, pois é um ator não OFPA.
É sua responsabilidade evitar depender disso ou usar o modo Transmissão de nível quando necessário.
Modo Transmissão de Nível
As instâncias de nível que não usam OFPA não podem ser incorporadas na grade do World Partition e, em vez disso, usarão a transmissão de nível padrão em tempo de execução. Isso significa que, quando o ator ALevelInstance for carregado por meio de sua própria célula de tempo de execução do World Partition, ele carregará o nível associado.
Esse método de transmissão de nível tem um custo de tempo de execução adicional, pois adiciona mais níveis ao fluxo. Não é recomendado usar níveis de alta densidade que usam esse modo de transmissão devido ao impacto no desempenho.
Modo incorporado com World Partition: Camadas de dados é uma ótima maneira de aproximar o que podia ser feito antes com níveis carregados dinamicamente.
Camadas de dados
Instâncias de nível oferecem suporte para World Partition: Camadas de dados ao usar o modo incorporado ou o modo de Transmissão de nível. Os atores contidos na instância de nível herdarão as camadas de dados do ator ALevelInstance.