domingo, 16 de novembro de 2025

UEFN Verse SG: Introdução ao Scene Graph

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.

Através do Scene Graph, a Epic Games está fornecendo para os desenvolvedores novas ferramentas que expandem as possibilidades do que pode ser construído no UEFN.

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 disponíveis como mesh_component são as formas básicas listadas abaixo. Selecione o cone.


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.

 

Sumário Verse