Como Usar Data Tables na Unreal Engine 5
Gerenciar informações de um projeto na Unreal Engine exige organização, especialmente quando o jogo escala e passa a ter dezenas de itens, equipamentos, NPCs ou elementos de interface. Em vez de espalhar dados em variáveis soltas ou Blueprints isoladas, a melhor escolha é utilizar as Data Tables, centralizando tudo em um único local estruturado.
O que o vídeo cobre
- O que são Data Tables: entenda por que organizar dados em tabelas é mais eficiente do que criar variáveis manuais em Blueprints.
- Criação da Struct de dados: como criar e configurar a
S_Npcpara definir as colunas e tipos de dados da tabela. - Criando e editando a Data Table: como configurar a
DT_Npcs, gerenciar oRow Namecomo identificador único e editar linhas. - Workflow com CSV e IA: exportar e reimportar planilhas para atualizar dados no projeto rapidamente, incluindo a geração de conteúdo assistida por IA na plataforma Desbloqueando Unreal.
- Leitura de dados em Blueprints: como utilizar o node
Get Data Table Rowpara ler e aplicar dados dinamicamente no jogo. - Iteração e geração em lote: como puxar todos os registros com
Get Data Table Row NameseFor Each Looppara instanciar elementos com espaçamento. - Caso de uso prático em UI: como utilizar Data Tables com Widget Blueprints para montar telas modulares de créditos e membros do canal.
Por que usar Data Tables no seu projeto?
Imagine criar um RPG com diversos NPCs. Se cada personagem tiver variáveis de nome, falas e referências de assets configuradas manualmente dentro de Blueprints separadas, qualquer alteração futura exigirá abrir arquivo por arquivo e recompilar o projeto. Com as Data Tables, cada linha representa uma entidade e cada coluna representa um atributo. Todas as informações ficam centralizadas e podem ser alteradas sem mexer no código visual.
Passo 1: Definindo a Estrutura com uma Struct
Uma Data Table precisa saber quais tipos de dados ela vai armazenar. Para isso, criamos primeiro uma Structure (Struct) no navegador de conteúdo: clique com o botão direito, vá em Blueprints e selecione Structure. Vamos nomeá-la como S_Npc.
Dentro da Struct, criamos duas variáveis do tipo Text: a primeira chamada Nome e a segunda chamada Texto. Salve a Struct. Ela servirá como o modelo de colunas para a nossa tabela.
Passo 2: Criando a Data Table
No Content Browser, clique com o botão direito, acesse Miscellaneous e escolha Data Table. A Unreal Engine pedirá para selecionar a Struct de referência: escolha a S_Npc que acabamos de criar e nomeie o arquivo como DT_Npcs.
Ao abrir a Data Table, você pode clicar em Add para inserir novas linhas. A primeira coluna é o Row Name, utilizado como identificador único no projeto (como NPC_1, NPC_2). As demais colunas são Nome e Texto, herdadas da Struct.
Passo 3: Workflow com CSV, Planilhas Externas e IA
Editar dados diretamente na Unreal Engine é prático, mas trabalhar com arquivos .CSV oferece ainda mais agilidade. Ao clicar no botão de exportação da Data Table, você salva os dados em um formato compatível com Excel, Google Sheets ou com ferramentas de planejamento como a disponível na plataforma Desbloqueando Unreal.
Após atualizar os dados ou gerar textos via Inteligência Artificial na planilha externa, basta salvar o arquivo com o mesmo nome e clicar com o botão direito na Data Table dentro da Unreal Engine escolhendo a opção Reimport. O projeto atualiza todas as variáveis instantaneamente.
Passo 4: Lendo os Dados com Blueprints
Para acessar as informações da tabela no código visual, o node principal é o Get Data Table Row. Basta selecionar a tabela DT_Npcs no input e informar o Row Name desejado. Se a linha for encontrada, a saída entrega a Struct completa com os campos de Nome e Texto.
Você pode selecionar a linha dinamicamente usando um node Append String para unir o prefixo "NPC_" a um número aleatório (usando Random Integer in Range), permitindo sortear NPCs da lista durante a execução do jogo.
Passo 5: Geração em Lote e Aplicação em Interfaces (UI)
Se o objetivo for gerar todos os NPCs de uma vez só, podemos usar o node Get Data Table Row Names para obter uma array com todos os identificadores. Conectando essa lista a um For Each Loop, instanciamos cada ator no mundo, aplicando um cálculo de espaçamento no eixo X a cada iteração para que os atores não fiquem sobrepostos.
Essa mesma lógica pode ser aplicada em Widget Blueprints de interface. Um exemplo prático demonstrado na aula é a tela de membros do canal: os nomes dos apoiadores são mantidos na Data Table e lidos em um loop para gerar widgets modulares dentro de um painel de créditos, economizando horas de trabalho manual a cada vídeo publicado.