Este é o primeiro de uma série de artigos relacionados ao sistema de Scene Graph no UEFN.
A Epic Games e muitos desenvolvedores tem ressaltado a importância do sistema de Scene Graph, mas para alguns desenvolvedores ou novatos no UEFN talvez não seja tão claro quais são os benefícios de aprender e utilizar o Scene Graph.
Em primeiro lugar o sistema de Scene Graph não substitui o sistema de Creative Device que está disponível no UEFN desde seu lançamento. Vamos comparar os dois sistemas:
- Sistema de Creative Device: É um sistema de alto nível voltado para a programação de gameplay que permite a manipulação dos dispositivos.
- Sistema de Scene Graph: É um sistema de baixo nível que permite o uso da linguagem Verse para manipular as entidades que compõem a cena e programar componentes personalizados.
A Epic Games já deixou claro que a linguagem Verse e o sistema de Scene Graph serão os pilares da programação na Unreal Engine 6. O UEFN é um ótimo laboratório para praticar estes conceitos antes do lançamento da Unreal Engine 6.
O Scene Graph é uma estrutura que representa os elementos da cena de uma forma hierárquica e possui estes três conceitos fundamentais:
- Entidade: É um container onde são colocados os componentes. Uma Entidade também pode conter outras entidades.
- Componente: Isto é o que dá vida à uma entidade. Uma entidade pode conter vários componentes para definir seus aspectos físicos, visuais e comportamentais. Novos componentes podem ser programados usando a linguagem Verse.
- Prefab: É usado para agrupar uma hierarquia de entidades e componentes em uma classe e guardar como um Asset do projeto. É possível adicionar várias instâncias de um Prefab no nível e usar a classe do Prefab diretamente no código Verse.
Neste artigo veremos um workflow básico que envolve estes três conceitos. É muito importante que estes conceitos estejam bem claros antes de aprofundar no estudo do Scene Graph.
O primeiro passo é criar uma entidade vazia no nível. Isto é feito a partir da aba Place Actors que pode ser aberta no menu superior Window.
Nos ícones de categorias na esquerda selecione Entities e arraste o entity para dentro do nível.
Veja na aba Details que a entidade que foi adicionada ao nível tem um transform_component que é usado para definir a localização da entidade no nível.
Clique no botão +Component para adicionar outros componentes. Será exibida uma listagem dos componentes disponíveis. Alguns tipos de componentes são abstratos e é preciso escolher uma subclasse dele. Por exemplo, selecione o mesh_component.
As Static Meshes do Fortnite e os assets do FAB não são compatíveis com Scene Graph no UEFN. Este é um ponto importante e às vezes frustrante para quem está iniciando com Scene Graph.
Para usarmos Static Meshes customizadas é preciso importar os arquivos FBX ou criá-las usando as ferramentas de modelagem do UEFN.
Agora vamos adicionar outro mesh_component à entidade que foi criada. Entretanto, se você clicar no +Component verá que o mesh_component não aparece mais na listagem de componentes. Isto acontece porque uma entidade só pode ter um componente de cada tipo.
Será necessário criar uma entidade filha para adicionar o mesh_component nesta nova entidade. Na aba Outliner, clique com o botão direito na entidade que foi criada e selecione Add Entity > entity:
Na aba Details da entidade filha, clique no botão +Component e selecione mesh_component > cube. Este cubo será usado como o tampo de uma mesa por isso altere o Scale do eixo UP (verde) para 0.1 :
No editor de nível, use a seta verde para posicionar o tampo da mesa no topo do cone:
O próximo passo é converter esta hierarquia de entidades e componentes em um Prefab. Ele será armazenada como um Asset do projeto. Isto permitirá a adição de instâncias deste Prefab no nível usando o editor de nível ou código Verse.
Na aba Outliner, clique com o botão direito na entidade pai e selecione Save As Prefab... :
Na tela seguinte, insira um nome para o seu Prefab. Eu escolhi Prefab_Table. Depois clique no botão Create entity Class.
O editor de Prefab será exibido com o nosso novo Prefab para edição. Feche o editor de Prefab e acesse o Content Drawer para visualizar o asset do Prefab que foi criado. No meu exemplo o editor UEFN criou uma pasta com o mesmo nome da pasta do projeto:
Arraste o Prefab e solte dentro do nível para criar novas instâncias:
Neste artigo vamos parar por aqui. Nos próximos artigos veremos as Entidades, Componentes e Prefab em mais detalhes. Também vamos aprender como programar nosso próprio componente usando Verse.










