Voltar
Re:Imagine London do Fortnite: dando vida a Londres no UEFN
Equipe Fortnite
Re:Imagine London (código de ilha: 1442-4257-4418) é uma colaboração entre a Zaha Hadid Architects (ZHA) e a Epic Games para recriar com precisão uma área icônica de Londres. Os jogadores do Fortnite estão convidados a contribuir projetando suas próprias construções únicas na ilha.
Este projeto tem vários objetivos:
A ZHA, já bastante experiente com a Unreal Engine, teve um papel fundamental nesse projeto. Eles não só projetaram as construções, como também elaboraram a jogabilidade, incorporando conceitos arquitetônicos e de construção do mundo real. A ZHA e a Epic também colaboraram com a Accucities, outra especialista em Unreal Engine, que levou modelos incrivelmente precisos de Londres para o UEFN para a criação da área jogável no jogo.
Para saber mais sobre a história por trás do Re:Imagine London, confira este vídeo no canal "The B1M" no YouTube.
A área que os jogadores podem explorar conta com diversos pontos icônicos, como a Catedral de St. Paul, a galeria Tate Modern e o Shakespeare's Globe Theatre. Dentro dessa área jogável de Londres, há quatro locais de construção.
Os jogadores definem a forma e a categoria das construções colocando os voxels, enquanto o novo sistema gera estruturas realistas automaticamente. A ZHA projetou as partes modulares e definiu as regras de como elas se encaixam, permitindo a criação de construções muito maiores do que um voxel único.
Quando um jogador aperta o botão "Disparar", primeiro verificamos se ele está em uma "área de construção", em seguida, realizamos uma projeção de raios para determinar para que superfície de voxel ele está olhando. Se aplicável, um novo voxel é adicionado naquela posição.
Para as duas técnicas, a equipe criou um grande conjunto de adereços de construção modulares (mais de 330) que o código Verse gera no tempo de execução. O código é determinístico, excluindo e gerando adereços conforme necessário.
Aqui está uma breve explicação sobre como essas técnicas funcionam:
A Gramática de Forma consiste de regras simples nas quais cada regra recebe uma caixa e gera uma ou mais subcaixas para regras subsequentes. Por exemplo, uma regra pode fatiar uma caixa alta em "piso" alto de um voxel, enquanto outra regra atribui uma regra aos cantos e outra às paredes. Uma regra especial gera um adereço com o tamanho e na posição da caixa.
Cada regra é definida como uma classe Verse separada, que é montada em uma "árvore" no código. Essa abordagem simplifica a criação de novas regras, a experimentação com ideias variadas e a atribuição de estilos distintos a cada tipo de construção. A aplicação de diferentes regras ao mesmo conjunto de voxels gera resultados variados, conforme demonstrado na imagem abaixo.
As regras também podem selecionar uma peça "melhorada" quando combinações específicas de voxels são colocadas juntas, como um voxel de Parque e um Residencial.
Nesta implementação, um conjunto de ladrilhos é usado e, em seguida, a equipe especifica quais ladrilhos podem ficar adjacentes uns aos outros. Um "rótulo" é aplicado a cada aresta e os ladrilhos só podem ser colocados se os rótulos corresponderem. O algoritmo seleciona uma posição na grade, escolhe aleatoriamente (ou "recolhe") entre as opções possíveis, então propaga as consequências dessa escolha às possíveis opções em outras posições.
Esse processo continua até toda a região ser gerada.
Essa funcionalidade foi implementada gerando caixas normalmente invisíveis e usando um dispositivo Sequência Cinematográfica para controlar uma coleção de parâmetros de materiais. A coleção de parâmetros de materiais, por sua vez, ajusta a opacidade do material. A opção "Só instigador" permite que os jogadores controlem essa visualização independentemente, ou seja, só afeta o jogador que a ativar, não os outros.
A ilha também salva informações como as peças desbloqueadas, as tarefas concluídas e o nível do jogador no jogo. Tudo por conta da persistência em Verse!
Para deixar a cidade mais viva, foram empregadas três técnicas diferentes:
Uma camada de dados permite ligar e desligar os postes de luz com facilidade. Além disso, uma coleção de parâmetros de materiais ajusta o brilho de materiais específicos (como janelas) à noite.
Esperamos que aproveite seu tempo explorando e criando no Re:Imagine London, e que a experiência inspire novas ideias para suas ilhas futuras.
Este projeto tem vários objetivos:
- Demonstrar um novo tipo de jogabilidade dentro do Unreal Editor para Fortnite (UEFN).
- Expandir os limites da linguagem Verse e de outras funcionalidades do UEFN, testando e aprimorando todo seu potencial.
- Demonstrar como o Fortnite pode apresentar ideias inovadores a um público amplo de uma forma envolvente.
- Explorar como usuários experientes da Unreal Engine podem aplicar seus conhecimentos no UEFN.
- E, acima de tudo, inspirar jogadores a vislumbrar como as cidades do futuro podem ser mais caminháveis, vibrantes, verdes e sustentáveis.
A ZHA, já bastante experiente com a Unreal Engine, teve um papel fundamental nesse projeto. Eles não só projetaram as construções, como também elaboraram a jogabilidade, incorporando conceitos arquitetônicos e de construção do mundo real. A ZHA e a Epic também colaboraram com a Accucities, outra especialista em Unreal Engine, que levou modelos incrivelmente precisos de Londres para o UEFN para a criação da área jogável no jogo.
Para saber mais sobre a história por trás do Re:Imagine London, confira este vídeo no canal "The B1M" no YouTube.
Uma nova forma de construir
Re:Imagine London demonstra um sistema completamente novo de construção em Verse. Os jogadores escolhem entre seis tipos diferentes de construções (Passarela, Estrutura, Parque, Comercial, Escritório e Residencial) e projetam colocando voxels dessas categorias no local de construção.A área que os jogadores podem explorar conta com diversos pontos icônicos, como a Catedral de St. Paul, a galeria Tate Modern e o Shakespeare's Globe Theatre. Dentro dessa área jogável de Londres, há quatro locais de construção.
Os jogadores definem a forma e a categoria das construções colocando os voxels, enquanto o novo sistema gera estruturas realistas automaticamente. A ZHA projetou as partes modulares e definiu as regras de como elas se encaixam, permitindo a criação de construções muito maiores do que um voxel único.
Grade de voxels e projeção de raios
No centro do Re:Imagine London fica uma grade 3D de "células" para cada local de construção, que armazena informações sobre o tipo de voxel de construção presente (se houver). Implementar isso em Verse é fácil ao utilizar uma matriz de referências "opcionais". Além disso, uma rotina de projeção de raios simples recebe uma posição e direção iniciais, percorrendo a grade até encontrar uma célula ocupada.Gerenciamento de entrada
A ilha usa um número de dispositivos Gatilho de Entrada para responder a controles relacionados aos botões de "Disparar" (adicionar voxel), "Mirar" (remover voxel), "Anterior/Próximo Item" (alterar categoria) e "Picareta" (abrir menu personalizado).Quando um jogador aperta o botão "Disparar", primeiro verificamos se ele está em uma "área de construção", em seguida, realizamos uma projeção de raios para determinar para que superfície de voxel ele está olhando. Se aplicável, um novo voxel é adicionado naquela posição.
Geração procedural em Verse
O Re:Imagine London implementa dois tipos de geração procedural em Verse: a Gramática de Forma e o Recolhimento de Função de Onda. A Gramática de Forma é aplicada a construções 3D (Estrutura, Comercial, Escritório, Residencial), enquanto o Recolhimento de Função de Onda é usado para áreas 2D "planas" (Passarelas, Parques).Para as duas técnicas, a equipe criou um grande conjunto de adereços de construção modulares (mais de 330) que o código Verse gera no tempo de execução. O código é determinístico, excluindo e gerando adereços conforme necessário.
Aqui está uma breve explicação sobre como essas técnicas funcionam:
Gramática de Forma
Primeiro, todos os voxels de cada categoria são "decompostos" em caixas convexas maiores para aplicar a Gramática de Forma.A Gramática de Forma consiste de regras simples nas quais cada regra recebe uma caixa e gera uma ou mais subcaixas para regras subsequentes. Por exemplo, uma regra pode fatiar uma caixa alta em "piso" alto de um voxel, enquanto outra regra atribui uma regra aos cantos e outra às paredes. Uma regra especial gera um adereço com o tamanho e na posição da caixa.
Cada regra é definida como uma classe Verse separada, que é montada em uma "árvore" no código. Essa abordagem simplifica a criação de novas regras, a experimentação com ideias variadas e a atribuição de estilos distintos a cada tipo de construção. A aplicação de diferentes regras ao mesmo conjunto de voxels gera resultados variados, conforme demonstrado na imagem abaixo.
As regras também podem selecionar uma peça "melhorada" quando combinações específicas de voxels são colocadas juntas, como um voxel de Parque e um Residencial.
Recolhimento de Função de Onda
O Recolhimento de Função de Onda (WFC, Wave Function Collapse) é uma técnica para gerar aleatoriamente uma área com base em regras que determinam como as peças se encaixam. Esse método foi discutido na palestra do State of Unreal 2022, The Matrix Awakens: Generating a World.Nesta implementação, um conjunto de ladrilhos é usado e, em seguida, a equipe especifica quais ladrilhos podem ficar adjacentes uns aos outros. Um "rótulo" é aplicado a cada aresta e os ladrilhos só podem ser colocados se os rótulos corresponderem. O algoritmo seleciona uma posição na grade, escolhe aleatoriamente (ou "recolhe") entre as opções possíveis, então propaga as consequências dessa escolha às possíveis opções em outras posições.
Esse processo continua até toda a região ser gerada.
Modo de visualização
Para ajudar os jogadores a visualizar que tipos de voxels foram colocados, eles podem ativar a opção de modo de visualização, que adiciona uma sobreposição a todo o local de construção com caixas coloridas.Essa funcionalidade foi implementada gerando caixas normalmente invisíveis e usando um dispositivo Sequência Cinematográfica para controlar uma coleção de parâmetros de materiais. A coleção de parâmetros de materiais, por sua vez, ajusta a opacidade do material. A opção "Só instigador" permite que os jogadores controlem essa visualização independentemente, ou seja, só afeta o jogador que a ativar, não os outros.
Como salvar construções
Os jogadores podem trabalhar em suas construções durante várias sessões e compartilhar suas criações com suas amizades graças à funcionalidade de persistência em Verse. Os voxels de construção são convertidos em linhas de texto, salvos como uma matriz e podem ser recarregados mais tarde.A ilha também salva informações como as peças desbloqueadas, as tarefas concluídas e o nível do jogador no jogo. Tudo por conta da persistência em Verse!
Pedestres
Para deixar a cidade mais viva, foram empregadas três técnicas diferentes:
- Sequencer
- Usado para animar pedestres, carros, bicicletas, barcos e trens pela cidade.
- Malhas estáticas
- Para os pedestres que estão parados ou que seguem caminhos predefinidos, foram usadas malhas estáticas (StaticMeshes) com materiais de animação de vértice em vez de a animação de malha do esqueleto. Essa abordagem é mais eficiente, pois é executada exclusivamente na GPU. Para saber mais sobre essa técnica, acesse nossa Visão geral da animação de vértice.
- Dispositivo Gerador de PNJ
- Para os pedestres dentro dos locais de construção, o Dispositivo Gerador de PNJ foi usado com um comportamento Verse personalizado. Esses PNJs navegam pelas áreas de parque e passarelas, com a geração de novos à medida que o local se desenvolve. Os PNJs usam o conjunto de esqueletos e de animações de locomoção do MetaHuman.
Música procedural
O Patchwork foi usado para implementar um sistema de música procedural que evolui conforme os jogadores constroem. À medida que a construção progride em um local, a música gradualmente se torna mais dinâmica. Três camadas de música compostas foram importadas em patches de fusão, que foram então carregados nos Reprodutores de Instrumento do Patchwork e acionados por uma faixa MIDI no Sincronizador de Música. Os alto-falantes são ajustados para cima e para baixo com base na densidade da construção.Dia e noite
Um ciclo personalizado de dia/noite foi implementado para demonstrar a cidade sob a luz do sol e durante a noite. O Sequencer foi usado para ajustar os parâmetros de iluminação ao longo do tempo, acionando alterações por meio de Verse.Uma camada de dados permite ligar e desligar os postes de luz com facilidade. Além disso, uma coleção de parâmetros de materiais ajusta o brilho de materiais específicos (como janelas) à noite.
Esperamos que aproveite seu tempo explorando e criando no Re:Imagine London, e que a experiência inspire novas ideias para suas ilhas futuras.