Esta funcionalidade está em um estado experimental, então você pode testá-la, fornecer feedback e ver o que estamos planejando. Você não pode publicar um projeto que use o Scene Graph neste momento. Lembre-se de que não garantimos a compatibilidade com versões anteriores de ativos criados em um estágio experimental, que as APIs dessas funcionalidades podem sofrer alterações e que podemos remover completamente funcionalidades experimentais ou uma funcionalidade específica a nosso critério. Confira a lista de problemas conhecidos antes de começar a trabalhar com a funcionalidade.
O Scene Graph é uma estrutura unificada que conecta todos os objetos no mundo. Pense nele como uma caixa de ferramentas que contém todas as ferramentas de que você precisa em termos de decoração de cenários, sistemas de jogabilidade, áudio, efeitos visuais, entre outros, para criar experiências para o metaverso.
Com o Scene Graph, você pode fazer rapidamente a transição de greyboxing e criação de mundo para um nível jogável completo em poucos passos.
Ao criar com o Scene Graph, você pode executar operações em objetos relacionados no seu projeto. Você também pode usar o Scene Graph para duplicar estruturas e iterar nelas conforme as cria. É possível, inclusive, transformar os objetos criados em estruturas pré-fabricadas reutilizáveis e usá-las em diferentes projetos.
O Scene Graph é um sistema Verse nativo que aproveita as características da linguagem Verse. Assim, você pode adicionar mais personalização aos seus projetos com experiências de jogo e objetos interativos e sob medida.
O Scene Graph aumenta a estabilidade do projeto, pois a linguagem Verse faz todo o trabalho pesado em segundo plano, garantindo que as entidades funcionem como o esperado. A linguagem também tem acesso profundo a todas as partes das entidades e dos componentes da cena, ou seja, você pode adicionar maior variedade a ela.
Objetos no metaverso
O metaverso é uma experiência de entretenimento social on-line em tempo real, onde as pessoas jogam e se conectam em um mundo 3D. A Epic Games está desenvolvendo o sistema Scene Graph para o UEFN para permitir que você crie essas experiências no metaverso.
No sistema Scene Graph, você pode instanciar e reutilizar objetos sem a classificação de ator da Unreal Engine. A base do Scene Graph é composta por um conjunto de blocos de construção que usam dados e lógica para construir o seu jogo, além de renderizar e simular os objetos no ambiente de jogo.
Os atores e as entidades não são intercambiáveis; eles são diferentes sistemas que funcionam conjuntamente na cena.
Com o Scene Graph, você pode estabelecer um framework de simulação 3D em tempo real em que todas as decisões de design e os resultados ficam instantaneamente visíveis na janela de visualização. A partir daí, é possível editar no painel Detalhes ou no Editor de Estruturas Pré-fabricadas.
Você poderá importar ativos que criar ou comprar de um fornecedor, como a Fab e usá-los com o Scene Graph para criar objetos e estruturas pré-fabricadas sob medida.
Tudo que você cria no Scene Graph pode ser reutilizado diversas vezes e com menor consumo de memória. O sistema de construção do Scene Graph foi projetado para permitir simulações compartilhadas e o compartilhamento de conteúdo complexo, mas ainda garantindo a aplicação de limites entre os conteúdos.
Entidades e componentes
As entidades e os componentes são a espinha dorsal do Scene Graph. Eles operam controlando a definição e o comportamento dos objetos.
As entidades são os contêineres que por si só não têm definição nem função visíveis. São os componentes que fornecem os dados e o comportamento para as entidades. Eles definem o que uma entidade deve fazer na cena.
Os componentes têm propriedades editáveis. Essas propriedades podem ser físicas, como uma malha estática ou um sistema de partículas; ou lógicas, como uma tag de jogabilidade ou um código Verse personalizado, que define o movimento de uma plataforma. Por padrão, todas as entidades têm um componente de transformação para especificar onde a entidade existe no mundo.
Construir uma entidade com Verse não cria um componente de transformação automaticamente.
Com o Scene Graph, você pode reunir rapidamente cenas pré-estabelecidas e mecânicas de jogo, utilizando dados físicos de malhas, indicações sonoras e muito mais.
Uma entidade se torna a representação física de uma malha estática quando você adiciona um componente malha à entidade e uma malha é selecionada no espaço de malha do componente. Isso significa que você pode simular rapidamente construções ou cenas pré-estabelecidas individuais e usá-las imediatamente na sua cena.
Por exemplo, no vídeo abaixo, uma entidade é transformada em um bambuzal, e um componente de som é adicionado à entidade arrastando-se uma indicação sonora para o espaço do componente de som.
Você pode transformar esse bambuzal em uma estrutura pré-fabricada individual ou combiná-lo com outras entidades para criar uma estrutura pré-fabricada de floresta.
Uma entidade (a entidade de simulação) fica na raiz do seu projeto para representar a simulação. A cena é criada quando as entidades são aninhadas sob a entidade de simulação. Ao adicionar entidades ao mapa, você está criando automaticamente entidades filhas da entidade de simulação.
A entidade superior de uma estrutura pré-fabricada é a entidade-raiz dela, com outras estruturas pré-fabricadas e entidades aninhadas abaixo. As estruturas pré-fabricadas pais compõem o visual e o comportamento de suas filhas para interagir com os outros objetos na cena.
-
Entidade-raiz de estrutura pré-fabricada → WoodenHouse_Tiny_Prefab
-
Estrutura pré-fabricada filha → WoodenHouse_RoofSmall_Prefab_C_1
-
Entidade filha → Building_WIndowCircle_Bright2
-
Entidade filha → Building_WIndowCircle_Bright4
-
Entidade filha → Building_WIndowCircle_Dark2
-
Entidade filha → Building_WIndowCircle_Dark4
-
Entidade filha → WoodenHouse_Floor
-
Entidade filha → WoodenHouse_RoofCap2
-
Entidade filha → WoodenHouse_RoofCap3
-
Entidade filha → WoodenHouse_RoofWindow2
-
-
Estrutura pré-fabricada filha → WoodenHouse_SmallFloor_Prefab_C_1
-
Entidade filha → WoodenHouse_Floor
-
Entidade filha → WoodenHouse_Wall10
-
Entidade filha → WoodenHouse_WallDoor_C4
-
-
Estrutura pré-fabricada filha → WoodenHouse_Windows_Prefab_C_3
-
Entidade filha → Building_WindowPlane_Bright3
-
Entidade filha → Building_WindowPlane_Bright4
-
Entidade filha → Building_WindowPlane_Dark3
-
Entidade filha → Building_WindowPlane_Dark4
-
Entidade filha → WoodenHouse_Windoows_10
-
-
Cada estrutura pré-fabricada filha tem componentes que determinam o visual da estrutura pré-fabricada e como ela se alinha às outras estruturas pré-fabricadas na cena. Você pode usar a linguagem Verse a fim de selecionar estruturas pré-fabricadas e entidades específicas para trocar a estrutura pré-fabricada filha por outra estrutura pré-fabricada, ou até alterar a cor usada para as entidades Building_WindowPlane_Bright e Building_WindowPlane_Dark.
Há diversos tipos de componentes que determinam como uma parte da entidade ou toda ela age. Para saber mais sobre os diferentes tipos de componentes disponíveis no Scene Graph, consulte Componentes.
Para obter mais informações sobre o uso de entidades e componentes, consulte Como trabalhar com entidades e componentes.
Estruturas pré-fabricadas
O Scene Graph cria estruturas pré-fabricadas reunindo entidades em pacotes sob uma entidade pai. Todas as entidades selecionadas, hierarquias de entidades e seus componentes são instantaneamente adicionados à árvore de entidades na estrutura pré-fabricada. Quando a estrutura pré-fabricada estiver pronta, você poderá personalizar todas as suas instâncias no Editor de Estruturas Pré-fabricadas.
Para criar uma instância da sua estrutura pré-fabricada, arraste-a para a janela de visualização, tirando-a do Navegador de Conteúdo. Você também pode aninhar as estruturas pré-fabricadas dentro de uma hierarquia de estruturas pré-fabricadas e pode usar a hierarquia para aplicar as alterações feitas em todas as instâncias e estruturas pré-fabricadas na hierarquia.
Conforme atualiza e melhora a estrutura pré-fabricada, você economiza tempo, pois não precisa procurar todas as instâncias de determinado objeto para atualizar cada um deles individualmente.
Além disso, você pode criar vários objetos de aparência semelhante selecionando subpartes na hierarquia e substituindo diferentes valores de componentes. Também é possível girar objetos e adicionar novos valores de componente a diferentes instâncias da estrutura pré-fabricada conforme você edita no Editor de Estruturas Pré-fabricadas.
O editor marca todas as alterações no painel Detalhes com um ícone de chave de substituição nos atributos do componente individual. Ele também marca diferentes ícones de componentes no botão do menu suspenso de card do componente.
Para recuperar o design original da estrutura pré-fabricada, clique nas chaves de substituição do componente individual. O objeto retorna automaticamente ao estado da estrutura pré-fabricada pai. Você também pode clicar no botão do menu suspenso de card do componente e selecionar Clear Override (Limpar substituição).
Para saber mais sobre a modificação de estruturas pré-fabricadas, consulte Estruturas pré-fabricadas e instâncias de estruturas pré-fabricadas.
No vídeo abaixo, o Scene Graph é usado para criar duas pequenas estruturas pré-fabricadas de casa.
A casa é duplicada. Diferentes elementos da casa são alterados selecionando-se diferentes malhas para substituir as partes do original, resultando na criação de outra estrutura pré-fabricada. Você pode continuar a copiar e substituir as partes para simular rapidamente um pequeno vilarejo. Como isso também funciona com componentes, você pode adicionar diferentes comportamentos a cada casa no vilarejo.
Editar as estruturas pré-fabricadas não afeta a estabilidade nem a memória do objeto original nem de suas cópias. Isso significa que você pode concluir o layout, o design abstrato e a arte de seu nível para criar objetos personalizados para sua ilha. Com o sistema de construção do Scene Graph, você pode reutilizar as estruturas pré-fabricadas que cria em diferentes projetos para criar seu próprio universo de jogo no Fortnite.
Verse no Scene Graph
O Scene Graph usa a linguagem de programação Verse para gerar e remover entidades do mundo e criar componentes e comportamentos personalizados.
Com essa linguagem, você pode criar um lampião externo suspenso para a casa do exemplo anterior. A linguagem Verse permite que você defina as propriedades de oscilação, rotação e duração para determinar como o lampião se move.
As estruturas pré-fabricadas que você cria no seu projeto são expostas como uma classe em Verse no arquivo Assets.digest.verse do seu projeto. As entidades e os componentes definidos na sua estrutura pré-fabricada são acessados em Verse por meio das chamadas GetEntities()
e GetComponents()
em uma estrutura pré-fabricada.
Para começar a usar Verse no Scene Graph, confira Como criar seu próprio componente usando Verse.
Como habilitar o Scene Graph no seu projeto
Para usar o Scene Graph no seu projeto:
-
Na barra de ferramentas, escolha Projeto > Configurações do projeto para abrir a janela "Configurações do projeto".
-
Na janela "Configurações do projeto", em Experimental Access (Acesso experimental), habilite Scene Graph System (Sistema Scene Graph).
- Para confirmar que você consegue visualizar as funcionalidades do Scene Graph, na barra de ferramentas, selecione Posicionar atores e veja Entidades no menu suspenso "Posicionar atores".
Primeiros passos
Abra o Modelo de estrutura pré-fabricada para saber mais sobre o Scene Graph. O modelo apresenta os conceitos básicos do trabalho com as funcionalidades do Scene Graph e se aprofunda nesses fluxos de trabalho fundamentais para ilustrar a capacidade de criação do seu projeto usando estruturas pré-fabricadas e Verse.
Problemas conhecidos
Veja a seguir uma lista de problemas conhecidos que podem ocorrer ao trabalhar com o Scene Graph no seu projeto. Se você tiver algum feedback ou encontrar problemas que não estejam incluídos na lista abaixo, informe-os nos fóruns.
-
Por ser uma funcionalidade experimental, podem ocorrer travamentos inesperados e instabilidade.
-
Não é possível usar encaixe na grade, na rotação nem em escala no Editor de Estruturas Pré-fabricadas.
-
Não é possível fazer seleções múltiplas no Editor de Estruturas Pré-fabricadas.
-
Não é possível fazer duplicações com ALT e arrastar nem copiar e colar no Editor de Estruturas Pré-fabricadas.
-
Não é possível copiar e colar componentes.
-
Não é possível limpar todas as substituições de uma instância de uma estrutura pré-fabricada de uma só vez. É preciso fazer isso em cada substituição.
-
As entidades não usam o sistema de um arquivo por ator; em vez disso, as entidades são salvas no ativo UMAP. Se você usar o URC com o seu projeto, bloqueará consistentemente o nível principal e desabilitará a capacidade de colaborar no seu projeto.
-
Não há como salvar instâncias de estruturas pré-fabricadas substituídas no ativo da estrutura pré-fabricada.
-
Entidades duplicadas não são nomeadas corretamente no Editor de Estruturas Pré-fabricadas.
-
As opções Expandir tudo e Recolher tudo não funcionam nos componentes.
-
No momento, não é possível remover substituições de uma estrutura pré-fabricada.
-
Clicar com o botão direito no ícone de substituição deve ter o mesmo resultado que um clique com o botão esquerdo.
-
Não é possível desanexar uma entidade filha arrastando-a para seu pai.
-
Vasculhar a Rotação do componente malha estática pelo eixo Y produz um movimento inesperado.
-
Um comportamento de jogador inesperado ocorre ao colidir com objetos de gráfico de cena.
-
Quando uma entidade é renomeada manualmente, seu nome não pode ser alterado.
-
O dimensionamento negativo pode usar interações anormais nas entidades filhas ao girar.
-
Arrastar os Valores de transformação" no Editor de Estruturas Pré-fabricadas é uma ação mais lenta e menos dinâmica que alterar os valores no widget.
-
A janela Create Verse Component (Criar componente Verse) não exibe os modelos nas Opções do editor.
-
Nem sempre é possível selecionar as entidades no Editor de Estruturas Pré-fabricadas.
-
Excluir uma estrutura pré-fabricada cria uma estrutura pré-fabricada "fantasma" nas sessões da Edição ao vivo.
-
Os ativos de estruturas pré-fabricadas não têm miniaturas.
-
A lógica do componente é executada tanto no modo de edição quanto no de jogo.
-
Os componentes são inicializados muito antes do que os dispositivos do Modo Criativo, o que significa que tentar buscar um dispositivo do Modo Criativo em
component.OnBeginSimulation
oucomponent.OnSimulate
não funcionará. Para contornar esse problema, você pode chamar "loop" e "sleep" até que os componentes sejam encontrados ou pode gerar suas estruturas pré-fabricadas na chamada OnBegin de um dispositivo do Modo Criativo. -
Chamar
Dispose()
para uma entidade colocada no nível diretamente não removerá elementos como efeitos visíveis de malha e outros da visualização do cliente. ChamarDispose()
para as entidades geradas com código Verse funcionará corretamente. -
A capacidade de ocultar as entidades selecionadas no Editor de Níveis (tecla de atalho H) e no Editor de Estruturas Pré-fabricadas não está funcionando.
-
As alterações feitas no Editor de Estruturas Pré-fabricadas não serão propagadas para as instâncias colocadas da estrutura pré-fabricada a menos que você salve suas alterações.
-
Salvar o projeto enquanto o código Verse não está compilando pode resultar em dados corrompidos da estrutura pré-fabricada.