Nesta seção da série de tutoriais, você se familiarizará com os conceitos básicos do Unreal Editor, incluindo como criar um novo nível, posicionar e transformar objetos, trabalhar com diferentes modos de janela de visualização e usar o Organizador para se manter organizado.
Você também aprenderá a bloquear suas ideias usando formas simples enquanto aplica conceitos de design de níveis como escala, verticalidade, oclusão, contraste e linhas de guia. Todas essas são ferramentas que influenciam a maneira como os jogadores se movimentam e interagem no seu nível.
No final, você terá um espaço que estabelecerá a base para a jogabilidade que você criará nas próximas seções da track.
Antes de começar
Certifique-se de ter instalado o Inicializador da Epic Games e a Unreal Engine.
Para seguir este tutorial, você deve compreender os conceitos básicos das barras de ferramentas, painéis e controles de janela de visualização do Unreal Editor. Para obter mais informações, consulte as outras páginas da documentação Unreal Engine para novos usuários antes de iniciar este tutorial:
Esboce suas ideias
Antes de começar a construir no editor, passe de 10 a 20 minutos escrevendo ou esboçando suas ideias no papel. Essa iteração inicial pode ajudar a:
Descobrir os ritmos e conceitos básicos da jogabilidade no seu nível.
Ver se as suas ideias de jogabilidade podem fluir bem e se encaixar no escopo antes de investir tempo construindo-as no editor.
Lembrar-se das suas ideias entre as sessões de trabalho.
Você pode abordar esse design inicial de diferentes maneiras, como liderar com a mecânica do jogo ou liderar com o design do nível. Escolha ou combine técnicas de design de níveis com base no tipo de jogo que está criando e na sua preferência pessoal. Não existe uma abordagem correta única para o design de jogos: o que importa é o resultado. Os jogos em que o design de níveis e a jogabilidade são compatíveis entre si são mais coesos e criam uma experiência mais imersiva e envolvente para o jogador.
Uma técnica, o mapeamento de nós, envolve o desenho de um diagrama simplificado e abstrato de círculos e linhas para mostrar os diferentes espaços do nível, o que acontece nesses espaços e como o jogador pode fazer a transição de um espaço para outro. O mapeamento de nós se concentra no ritmo da jogabilidade, nos caminhos de ramificação e nas escolhas dos jogadores. Um nó representa uma ação ou evento de jogador. O evento pode inspirar a forma desse espaço.
Este tutorial usa uma série de salas para mostrar como implementar objetos comuns de jogabilidade, por exemplo, restringir o jogador com portas e chaves trancadas, criar obstáculos que podem danificar o jogador e adicionar plataformas e interruptores para derrotar esses obstáculos. Veja como esboçamos esse tipo de ideia de nível em nós:
Outra técnica é desenhar um esboço visual de uma visão de cima para baixo, lateral ou ortogonal do layout real do nível. Aqui, o foco começa com o design de nível, e não com a jogabilidade. A forma dos espaços do nível pode inspirar ações e eventos dos jogadores.
Aqui está o primeiro esboço do design da sala e do corredor para o nosso nível de tutorial:
Você também pode criar com verbos de jogador, ou seja, as ações que o jogador é capaz de realizar no jogo, como pular, correr, esconder-se, agarrar, criar, atirar, combater corpo a corpo e falar. Isso muda seu foco das coisas no mundo para o que o jogador está fazendo. Essa maneira de pensar pode ajudar a aumentar o envolvimento, a diversão e o ritmo do seu nível.
Ao projetar os espaços do seu nível, pense em onde você pode adicionar oportunidades para usar esses verbos de jogador de maneira significativa. Os verbos podem embasar o design do espaço. Por exemplo, se o verbo for pular, você pode adicionar um espaço para atravessar, algumas plataformas, espaço vertical ou um inimigo ou perigo para pular. Varie esses verbos de um espaço para o outro para manter a jogabilidade atualizada e com bom ritmo.
Independentemente da abordagem que você adotar para projetar um nível e sua jogabilidade, sempre considere o que o jogador está fazendo.
Crie seu projeto
Para começar, crie um novo projeto usando o modelo Primeira pessoa. Modelos incluem ativos predefinidos, como malhas, objetos de jogabilidade e um personagem jogável, que são úteis para acelerar o design de níveis.
Uma malha é um modelo 3D ou o conjunto de polígonos que criam um modelo 3D. Uma malha estática é um modelo 3D usado para criar um objeto em seu nível que pode ser transladado, girado e dimensionado.
Se você começou com o tutorial da Trilha de Programação, poderá continuar usando seu projeto nesta track.
Para criar um novo projeto em primeira pessoa, siga estas etapas:
Abra o Unreal Editor. No Navegador de Projetos da Unreal, acesse a categoria de projeto Jogos e selecione o modelo Primeira Pessoa.
Mantenha todos os Padrões do projeto e selecione Jogo de tiro em arena como a Variante. Variantes de modelo incluem ativos adicionais e um nível de amostra que corresponde a esse gênero de jogo.
Dê um nome para o seu projeto. Este tutorial usa
AdventureGamecomo o nome do projeto.Clique em Criar para abrir seu novo projeto no Unreal Editor.
Seu projeto é aberto com o nível de amostra Lvl_FirstPerson aberto na janela de visualização.
Iniciar um novo nível
Para começar a criar seu próprio projeto, crie um nível totalmente novo (às vezes chamado de mapa), explore seu conteúdo, configure como o jogo começa e jogue-o pela primeira vez.
Quando estiver no Unreal Editor, se encontrar um comportamento inesperado (por exemplo, ativos ou atores que não aparecem ou não são atualizados), tente reiniciar o editor. Como a Unreal Engine depende muito do armazenamento em cache, uma reinicialização geralmente pode resolver esses problemas.
Para criar um novo nível, siga estas etapas:
Na barra de menus do Unreal Editor, vá para Arquivo e selecione Novo nível.
Na janela Novo nível, selecione Básico e clique em Criar. Isso permite começar com um andar, céu, surgimento de jogador e iluminação ambiente.
Vá para Arquivo > Salvar nível atual.
Crie uma estrutura de pastas para armazenar os ativos que você criará ao longo desta série de tutoriais:
Na janela Salvar nível como, no painel esquerdo, clique com o botão direito do mouse na pasta Content e selecione Nova pasta.
Dê a essa pasta o nome do seu projeto. Este tutorial usa
AdventureGame.Clique com o botão direito do mouse na sua nova pasta e selecione Nova pasta.
Dê a essa pasta o nome de
Designere selecione-a.
Insira um nome para seu nível e clique em Salvar. Este tutorial usa
Lvl_Adventure.
Explorar o Organizador e os painéis de detalhes
Observe o Organizador para ver uma lista de todos os objetos no seu nível. Esses objetos também são frequentemente chamados de atores.
Na pasta Iluminação, há um conjunto de objetos que controlam o fundo e a iluminação ambiente no seu nível. Para ver como cada um contribui para a aparência do nível, passe o mouse sobre cada um deles e clique no ícone de olho para alternar sua visibilidade na janela de visualização.
A localização desses objetos de nível de iluminação não importa e, por isso, você pode afastá-los do caminho se desejar.
O nível também contém uma malha de andar e um ponto de surgimento PlayerStart que controla onde os jogadores começam o nível.
No Organizador, clique em DirectionalLight. Essa luz é configurada para atuar como o sol (ou a lua) que ilumina seu nível e projeta sombras. No painel Detalhes, você pode visualizar e alterar as propriedades da luz, como Cor ou Intensidade, e ver os resultados serem atualizados instantaneamente na janela de visualização.
Se não conseguir encontrar um objeto na janela de visualização, no Organizador, clique nesse objeto e pressione F para reposicionar a janela de visualização e focalizar esse objeto.
Para saber mais sobre como personalizar a iluminação do seu nível, consulte Como iluminar o ambiente.
Visualizar a jogabilidade na janela de visualização
A janela de visualização mostra uma prévia do nível. Na Barra de ferramentas da janela de visualização, clique em Reproduzir para reproduzir seu nível dentro da janela de visualização. Isso também é chamado de modo Jogar no Editor (JNE). Com o modo JNE, você pode testar como seu projeto funciona em tempo de execução no Unreal Editor (em uma janela de visualização ou em uma nova janela).
Tempo de execução refere-se ao período em que um projeto está em execução na plataforma-alvo, como a sua máquina ou um console.
Ao jogar o nível, você surgirá no local do PlayerStart.
Em seguida, clique na janela de visualização e use o WASD ou as teclas de seta para se movimentar e a barra de espaço para pular.
Olhe para baixo e você verá que seu jogo está usando um personagem jogável padrão em primeira pessoa.
Pressione Shift+F1 para voltar ao cursor e clique em Parar (ou pressione Escape) para sair do modo de jogo.
Para jogar uma versão completa e autônoma do seu jogo, clique nos três pontos ao lado dos controles do Modo de jogo e selecione o modo Jogo autônomo. Isso reproduz o jogo em uma nova janela e simula uma versão finalizada e exportada dele, permitindo testar os menus da interface do usuário e as telas de carregamento, o dimensionamento da resolução e a entrada do mouse. No entanto, esse modo ainda é executado no editor. Para criar e executar uma versão . exe temporária do seu pacote de jogo, selecione o modo Inicialização rápida.
Use esse menu para voltar ao modo de jogo na janela de visualização.
Se o Unreal Editor estiver lento no computador, clique no botão de ferramentas de Desempenho e escalabilidade próximo ao canto superior direito da janela de visualização, acesse Escalabilidade da janela de visualização e selecione uma configuração de qualidade mais baixa. Ou, próximo ao lado direito da Barra de ferramentas da janela de visualização, clique em Iluminável para abrir o menu Modo de visualização e selecione Não iluminável. Isso afeta apenas o Unreal Editor, e não seu projeto final.
Alterar o nível de inicialização
Use as Configurações do projeto para alterar o nível que é carregado quando você abre o projeto no Unreal Editor e ao jogar o jogo finalizado.
Para alterar o nível inicial padrão do seu projeto, siga estas etapas:
No menu principal do editor, acesse Editar > Configurações de Projeto.
Na seção Projeto do painel esquerdo, selecione Mapas e Modos.
Na seção Mapas padrão, altere o Mapa de inicialização do editor e o Mapa padrão do jogo para seu novo nível. O editor abre o Mapa de inicialização do editor quando você abre o projeto, e a Unreal Engine carrega o Mapa padrão do jogo ao reproduzir um
. exeautônomo ou em pacote do seu projeto.Feche as Configurações de Projeto.
Estruturar o rascunho do seu mapa
Agora que você tem um conceito, um novo projeto e um novo nível, pode começar a projetar no Unreal Editor.
Antes de pensar na arte finalizada e nos toques detalhados, é importante se concentrar primeiro no layout e na jogabilidade do seu nível. Essa fase de design é geralmente chamada de rascunho (ou caixa cinza) e envolve a construção de espaços irregulares no seu nível com formas simples que representam paredes, caminhos e obstáculos funcionais. É como fazer um esboço com um lápis em uma tela de pintura antes de finalizá-lo com tinta.
O rascunho é uma ferramenta que ajuda você a iterar e testar ideias rapidamente para decidir o que está ou não funcionando no seu design. Lembre-se de que esse não é o produto final. O processo deve ser rápido para permitir que mais tempo dedicado às partes do jogo com as quais os jogadores realmente interagirão.
Estruturar o rascunho do seu nível ajuda você a:
Começar a projetar a jogabilidade sem esperar um design artístico finalizado.
Detectar problemas de design mais cedo.
Fazer experimentos e iterações rapidamente sem correr o risco de refazer ativos de arte.
Testar a escala, as linhas de visão e o fluxo do jogo sem gastar tempo com detalhes desnecessários nesse estágio.
Você está criando a versão mais simples e navegável possível do seu nível, apenas com os obstáculos compatíveis com a jogabilidade. Em vez da aparência, concentre-se na sensação que o espaço transmite: se é divertido e se contribui para os seus objetivos de jogo. Como você está usando formas básicas, se algo não estiver funcionando, é possível removê-lo e tentar algo novo.
Você pode incorporar opções de layout e design artístico no seu rascunho, desde que sejam funcionais e compatíveis com a jogabilidade. Jogos de sucesso usam os dois tipos de elementos de design para criar espaços envolventes e imersivos.
| O que adicionar ao seu rascunho | O que não adicionar ao seu rascunho | |
|---|---|---|
Opções de design de layout |
|
|
Escolhas de design artístico |
|
|
Determine sua escala
Antes de começar a planejar seu nível, é importante estabelecer as medidas e a escala padrão do jogo. Isso inclui decidir o tamanho das estruturas comuns no seu nível, como:
A altura de objetos que podem ser saltados, objetos que podem ser escalados, cobertura, corredores e salas.
O tamanho de portas, janelas e corredores.
Ao ajustar a escala do seu nível, seu objetivo é tornar o nível consistente, natural e de fácil compreensão. Seu rascunho também cria a escala para os artistas de ambientes.
Na Unreal Engine, você trabalhará com unidades de centímetros, e 100 centímetros equivalem a 1 metro.
Faça com que pareça natural
As funcionalidades do espaço devem parecer convincentes com base no tamanho do jogador. No entanto, lembre-se de que o realismo total nem sempre dá certo em jogos. Por exemplo, uma porta de 0,8 m de largura pode parecer espaçosa na vida real, mas ser muito apertada no jogo ou impedir a passagem da câmera sem cortes. Encontre o equilíbrio entre realismo e diversão que seja convincente para o seu tipo de jogo.
A sua escala depende do tamanho dos jogadores, da sensação que o espaço deve transmitir e da jogabilidade que o espaço irá suportar. O espaço é um corredor apertado e claustrofóbico ou um cômodo aberto e arejado? Ele precisa ajustar-se a um jogador, a vários jogadores ou a um encontro com um inimigo?
Ao decidir a escala dos espaços do seu nível, tenha em mente estas medidas médias
| Objeto de nível | Medição padrão |
|---|---|
Personagem humano | 1,8 m de altura, saltos de 0,5 m de altura |
Corredores | 2-3 m de largura, 3-4 m de altura As câmeras de terceira pessoa requerem corredores mais largos para acomodar uma câmera. |
Portas | 1 - 1,5 m de largura, 2 m de altura |
Paredes | 4m de altura |
Lembre-se de que essas são apenas diretrizes. O design e a escala do seu nível devem corresponder às necessidades da sua experiência de jogo.
Faça com que seja fácil de compreender
A escala das características de um nível deve ser facilmente compreensível e previsível para o jogador. Quando o jogador se aproxima de um objeto, ele deve saber rapidamente se deve se agachar ao lado dele para se proteger, se deve pular, escalar ou se ele é intransponível.
Por exemplo, aqui está uma estrutura curta que representa um pequeno muro de jardim como uma linha de guia para orientar o jogador, mas não para pular. Ela tem 0,6 m de altura (10 cm a mais do que a altura de salto do jogador).
Quando o jogador corre até essa parede, ela é baixa o suficiente para que ele pense que pode pular por cima dela e pode se sentir frustrado quando não consegue. Em vez disso, poderíamos substituir a parede por uma série de painéis altos de treliça que permitem uma visibilidade semelhante à da parede e, ao mesmo tempo, comunicam ao jogador que ele não pode passar por esse caminho.
Torne-o consistente
Para fazer com que seu nível pareça crível e compatível com a criação do mundo, mantenha o tamanho das funcionalidades comuns consistente em todo o ambiente.
No entanto, você pode introduzir um certo contraste para chamar a atenção do jogador ou evocar uma emoção. Por exemplo, fazer uma porta maior do que todas as outras pode sugerir sua importância.
Se houver muitos designers trabalhando em um nível ou projeto, a padronização das medidas evita inconsistência entre os ativos (o que evita o tempo gasto refazendo o trabalho) e ajuda a criar uma experiência coesa para o jogador.
Ao projetar o nível, crie um cubo do tamanho de um jogador ou uma malha de personagem em cada espaço como referência da escala do jogador. Para adicionar uma malha estática de jogador, vá para a pasta Content > Characters > Mannequins > Meshes no Navegador de conteúdo e arraste um SKM_Manny_Simple até a janela de visualização.
Os objetos parecem menores na visão em terceira pessoa porque a câmera está mais atrás. Portanto, talvez seja necessário aumentar a escala dos espaços em comparação com um jogo em primeira pessoa. Uma boa orientação é multiplicar a escala por 1,5 (um aumento de 50%) ao trabalhar com uma câmera de terceira pessoa.
Peças modulares x peças completas
Ao estruturar o rascunho dos seus espaços, você pode construir paredes, andares e tetos a partir de uma malha longa ou continuar duplicando malhas para um design mais modular.
Essa escolha depende da preferência e do tipo de espaço. Você pode usar peças modulares em corredores e salas quadrados e usar peças maiores em salas com formatos estranhos ou espaços naturais.
O rascunho em peças modulares tem as seguintes vantagens:
Muitos designers de níveis acham mais rápido e previsível duplicar as peças modulares em vez de redimensionar cada peça.
Pode ser mais fácil alterar uma ou duas peças modulares no rascunho em vez de uma peça maior.
Você pode criar uma ampla variedade de espaços e, ao mesmo tempo, minimizar o número de ativos que precisam ser criados pelos artistas.
Os tamanhos padronizados mantêm tudo alinhado à mesma grade e escala, o que ajuda o desempenho ao reduzir o número de materiais e malhas exclusivos necessários.
Usando práticas de design modular, você criará uma paleta de formas de malha que poderá usar como blocos de construção para montar os espaços do seu nível. No entanto, essas peças são apenas uma base; você sempre pode adicionar formas exclusivas conforme necessário.
Adicione seu primeiro objeto
Use os ativos de amostra incluídos no seu projeto para começar a fazer experiências com escala e estruturar o rascunho do seu nível.
Ativos são arquivos que você cria ou importa para o seu projeto e são armazenados no Navegador de conteúdo. Ativos podem ser malhas 3D, imagens 2D, arquivos de som e muito mais.
Na Unreal Engine, você trabalha com ativos e atores:
Ativos são arquivos que você cria ou importa para o seu projeto e são armazenados no Navegador de conteúdo.
Atores são qualquer objeto colocado em um nível.
Muitas vezes, os atores são instâncias de um ativo, ou seja, uma cópia individual desse ativo colocada no mundo.
Para adicionar sua primeira malha estática ao nível, siga estas etapas:
Na árvore de ativos do Navegador de conteúdo, vá para a pasta Content > LevelPrototyping > Meshes.
Clique em
SM_Cubee arraste-o até a janela de visualização perto de PlayerStart. Isso cria um Ator de malha estática no seu nível que usa o ativoSM_Cube.
O ativo do Navegador de conteúdo e as instâncias de objeto de nível desse ativo têm uma relação de pai/filho. As alterações no ativo SM_Cube pai afetam a malha no seu nível, mas as alterações feitas em instâncias individuais de objetos SM_Cube no seu nível não afetarão o ativo SM_Cube no Navegador de conteúdo.
Esse bloco mede 1 m x 1 m x 1 m e tem um material de grade para ajudar você a ver suas dimensões rapidamente. As linhas escuras no material criam uma grade de 1 m, e as linhas claras no material do andar criam uma grade de 0,1 m. As linhas claras nas superfícies verticais são grades de 0,2 m.
Na Unreal Engine, um material é um ativo feito de texturas 2D que altera a aparência da superfície de uma malha. Materiais são o que fazem uma malha parecer metal, madeira ou apenas uma cor simples.
Para redimensionar o bloco de 1 m em um pedaço de parede, siga estas etapas:
Na janela de visualização, clique na malha do bloco para selecioná-la.
Na Barra de ferramentas da janela de visualização, clique no botão Escala (ou pressione R). O gizmo Escala aparece no bloco.
Clique e arraste as alças do gizmo para tornar o bloco mais fino, mais longo e mais alto. A espessura das paredes depende do que você está construindo. Uma casa pode ter paredes mais finas, enquanto uma fortaleza tem paredes mais grossas. 10-30 cm é um bom ponto de partida.
Ao redimensionar a forma, observe o painel Detalhes e veja como as propriedades de Escala mudam. Você também pode alterar a localização, a rotação e o tamanho de um objeto no painel Detalhes.
Para aumentar ou diminuir a forma em várias dimensões ao mesmo tempo, passe o mouse sobre o triângulo entre as alças vermelha e azul até que elas sejam destacadas em amarelo e, em seguida, clique e arraste.
Para escala as três dimensões de uma só vez, clique e arraste a esfera branca no meio do gizmo.
Para ajustar a posição da parede, siga estas etapas:
Na Barra de ferramentas da janela de visualização, clique no botão Transladar (ou pressione W).
Clique e arraste as alças verdes ou vermelhas para mover a forma em qualquer direção ao longo do andar.
Para mover a forma em duas direções ao mesmo tempo, passe o mouse sobre o quadrado entre as alças verde e vermelha até que elas sejam destacadas em amarelo e, em seguida, clique e arraste a forma pelo andar.
Duplicar e alinhar objetos para construir uma sala
Você precisa de mais algumas paredes para criar uma sala, então continue!
Para criar rapidamente outra peça de parede, selecione sua malha de parede, mantenha pressionada a tecla Alt e use o gizmo Transladar para mover a malha. Isso mantém o original no lugar e cria uma duplicata.
Duplique e mova as peças da parede para construir sua primeira sala. Certifique-se de que haja espaço suficiente para adicionar um obstáculo em um módulo posterior deste tutorial.
Pressione Ctrl para selecionar várias peças de uma vez e, em seguida, pressione e mantenha pressionada a tecla Alt enquanto estiver girando ou transladando para duplicar toda a seleção.
Ao mover os objetos, observe que eles se encaixam em uma grade invisível. As ferramentas de grade e de encaixe de grade ajudam você a posicionar, alinhar e dimensionar objetos com precisão no seu nível. A grade garante que tudo se encaixe perfeitamente e permaneça consistente em termos de tamanho e posição.
Os espaços criados pelo homem aderem a uma grade mais do que os espaços naturais.
Na Barra de ferramentas da janela de visualização, você pode usar os menus de encaixe de grade para selecionar um tamanho de grade diferente (ou incremento de encaixe) para translação, rotação e escala. Por padrão, o tamanho da grade para objetos em movimento é de 10 unidades, ou 10 cm.
Os incrementos de encaixe grandes são ótimos para dispor salas e paredes, e os tamanhos de grade pequenos são úteis para ajustar o posicionamento dos objetos. Por exemplo, altere o snap da grade de rotação para 45° ou 90° para alinhar os objetos em ângulos retos.
Para obter mais informações sobre todas as opções de encaixe, consulte a seção Ferramentas de encaixe e configurações de encaixe da Barra de ferramentas da janela de visualização.
Outra maneira de garantir que seus objetos estejam alinhados é usar uma visualização de wireframe 2D. No lado direito da Barra de ferramentas da janela de visualização, clique em Perspectiva para abrir as opções de câmera e selecione Topo.
Essas exibições do tipo ortogonal têm como padrão o modo de exibição Wireframe, que mostra as bordas e a estrutura de polígonos da geometria do nível. Você também pode ver a grade nesse modo. Ao estruturar o rascunho do nível, mude periodicamente para uma visualização Superior ou lateral para verificar o alinhamento das malhas. Quando terminar, volte para o modo Perspectiva.
Alguns objetos, como luzes grandes, malhas de céu ou volumes de disparador, podem atrapalhar quando você tenta selecionar objetos em uma janela de visualização de wireframe 2D. Para ocultar esses objetos, use o menu Mostrar sinalizadores na Barra de ferramentas da janela de visualização para ocultar tipos de objetos. Outra alternativa é usar o Organizador para ocultar objetos individuais.
Definir o ponto inicial
Agora que você tem o início de um nível, reposicione a posição de PlayerStart para onde o jogador deve começar e certifique-se de que ele esteja voltado para a direção certa!
Para alterar o local e a direção de partida do jogador, siga estas etapas:
Clique no objeto PlayerStart. Use o gizmo Transladar para movê-lo até onde você deseja que o jogador surja em sua primeira sala.
Pressione Q no teclado para mudar para o modo Selecionar e remover o gizmo. A seta azul no objeto PlayerStart mostra a direção para a qual o jogador está voltado quando o jogo começa.
Use a barra de ferramentas Transformar para alternar para o gizmo Rotação e gire-o para controlar a posição do jogador quando ele começar.
Adicionar uma porta
Mais adiante neste tutorial, você aprenderá a criar um blueprint para uma chave que pode ser definida com cores diferentes, com cada cor abrindo uma porta correspondente. Para configurar seu nível para essa funcionalidade, adicione algumas portas.
Para adicionar e redimensionar um Blueprint BP_DoorFrame, siga estas etapas:
Em seu rascunho, abra espaço para três portas diferentes.
No Navegador de conteúdo, vá para Content > LevelPrototyping > Interactable > Door.
Arraste
BP_DoorFrameaté o seu nível. Esse objeto não é uma malha estática simples comoSM_Cube; é um blueprint, que é um ativo visual com funcionalidades ou comportamentos extras programados nele. Na janela de visualização, você pode ver que ele está cercado por um volume de acionamento e tem um widget de Tamanho da porta. Você aprenderá mais sobre Blueprints no próximo módulo deste tutorial.Clique no widget Tamanho da porta . Isso força o gizmo Translação a estar ativo, mas você pode usá-lo para redimensionar a porta da mesma forma que usaria o gizmo Escala.
Clique na malha da porta e use o gizmo de translação para mover a porta até um dos espaços em suas paredes. Talvez seja necessário ajustar as paredes ou a largura da porta para que tudo se encaixe.
Ajustes finos na visualização de wireframe de cima para baixo.Repita essas etapas para adicionar mais duas portas à sua sala.
Construir um corredor
Em seguida, adicione algum espaço de passagem com um corredor que conecta a primeira sala a uma segunda.
Há algumas maneiras de projetar um corredor. Primeiro, e se fizermos isso direto?
Isso não é muito empolgante, mas pode ser eficaz se quisermos que o jogador seja pressionado por ataques à distância ao percorrer esse corredor ou se quisermos que ele antecipe o que verá no final do corredor. Aqui está um exemplo de um corredor reto que se tornou mais interessante com obstáculos que o jogador precisa passar por baixo ou escalar:
Que tal um corredor com uma curva?
Agora há alguma oclusão e uma revelação quando o jogador vira a esquina. Oclusão é quando a linha de visão do jogador está parcial ou totalmente bloqueada. Você pode usar a oclusão para direcionar a atenção do jogador em um nível. Por exemplo, direcionar a atenção para capturas e progressão de nível ou obscurecer a visibilidade de um inimigo para facilitar um salto de susto.
E se adicionarmos uma janela no corredor e na sala ao lado?
Isso torna a passagem pelo corredor um pouco mais interessante. Mostrar ao jogador uma prévia do seu destino cria expectativa e mostra a recompensa que ele receberá ao investir tempo nesse caminho.
E se adicionarmos uma certa verticalidade? Isso significa adicionar diferenças de altura ao seu nível, como escadas, colinas, plataformas e áreas de escalada.
Elementos verticais podem fazer o seguinte para sua jogabilidade:
Adicione variedade aos seus espaços e torne a travessia e a exploração mais interessantes.
Proporcione aos jogadores uma vantagem tática (se estiverem no alto) ou uma desvantagem (se estiverem embaixo).
Mostre ao jogador para onde ele está indo em seguida (por exemplo, observar uma paisagem).
Controle o acesso do jogador (por exemplo, descer em um espaço sem poder voltar, ou só poder subir em um espaço depois de encontrar uma corda).
Para adicionar escadas ao seu bloqueio, arraste um SM_Ramp (em Content > LevelPrototyping > Meshes) até o seu nível e redimensiono-a. Certifique-se de testar a escala durante o processo.
Esse corredor é curvo para adicionar oclusão sem ser muito quadrado e é mais largo para acomodar dois caminhos diferentes, cada um oferecendo a oportunidade de se esgueirar e usar cobertura. Adicionar opções como essa faz com que o jogador sinta que tem algum poder de decisão.
Teste antecipadamente e com frequência
Certifique-se de jogar seu nível e verificar como estão suas métricas e escala antes de continuar a construir.
Teste as linhas de visão do jogador para verificar se a oclusão está configurada corretamente. Um espaço pode parecer ótimo na janela de visualização, mas os testes de jogo podem revelar que o jogador pode ver algo que não deveria, como o ponto de surgimento da outra equipe.
À medida que o nível cresce e você deseja visualizar uma seção sem voltar ao ponto de surgimento do jogador, clique com o botão direito do mouse em um ponto da janela de visualização e selecione Reproduzir daqui.
Adicionar volumes de bloqueio
Ao testar seu design, você poderá descobrir locais onde o jogador pode pular pela geometria e sair ou pular pela área de jogo. Volumes de bloqueio são objetos de nível que atuam como uma parede invisível para fechar áreas não intencionais e manter o jogador no nível.
No entanto, nunca use volumes de bloqueio em locais onde o jogador espera se mover livremente, como uma porta ou um corredor aberto.
Para adicionar um volume de bloqueio ao seu nível, siga estas etapas:
Na barra de ferramentas principal, clique no botão Create (Criar). Nesse menu, você pode criar novos atores.
No menu Create, role até Volumes, pesquise por
Blockinge selecione Blocking Volume.O editor adiciona um
Volume de bloqueiono meio de sua janela de visualização principal.
Quando terminar de trabalhar nos volumes de bloqueio, você poderá ocultá-los para reduzir a desordem no seu nível.
No exemplo do corredor aqui, os volumes de bloqueio impedem que o jogador pule pela janela ou pule no telhado depois de subir no pilar:
Os volumes de bloqueio também podem uniformizar formas de colisão complexas ou geometrias detalhadas, para que o jogador não fique preso ou esbarre em pequenas bordas ou buracos.
Organizar objetos no Organizador
À medida que seu nível aumenta, o mesmo acontece com a lista de objetos no painel do Organizador. Para tornar o Organizador mais limpo e mais navegável, organize seus objetos em pastas. Você pode criar pastas para agrupar objetos por função ou local.
Para criar uma pasta Geometry com todas as malhas de bloqueio, siga estas etapas:
No painel do Organizador, selecione toda a geometria do bloqueio. (Pressione Ctrl ou Shift para adicionar à sua seleção)
No canto superior direito do Organizador, clique no botão Criar pasta.
Digite um nome para sua pasta (por exemplo,
Geometry).
À medida que o seu nível cresce, você pode organizar ainda mais o projeto criando pastas de geometria de bloqueio para cada região ou sala do nível.
Você pode repetir essas etapas para um subconjunto de malhas para classificá-las em uma subpasta da pasta Geometry.
Use os botões de visibilidade no Organizador para ocultar todos os objetos em uma pasta
Adicionar rótulos de texto
Para rotular um espaço, obstáculo ou elemento de jogabilidade que está por vir, adicione um Ator de renderização de texto ao seu rascunho. Esse texto pode funcionar como um espaço reservado ou dar aos testadores um contexto sobre o que está planejado para aquele espaço.
Para usar um Ator de renderização de texto para exibir uma sequência de texto no seu nível, siga estas etapas:
Na barra de ferramentas principal, clique no botão Create (Criar).
No menu Create, pesquise por
Text Render(Renderização de texto) e selecione Text Render Actor (Ator de renderização de texto). O editor adiciona um TextRenderActor no meio da sua janela de visualização principal.Com o ator selecionado, em seu painel Detalhes e use a propriedade Texto para inserir o texto que deseja exibir no nível.
Use Tamanho do mundo para aumentar ou diminuir o tamanho do texto e use Cor de renderização do texto para alterar a cor do texto.
Gire e mova o texto até a posição correta. Os Atores de renderização de texto ficam melhores quando colocados em uma parede, andar ou obstáculo.
Opcional: Para tornar um Text Render Actor (atro de renderização de texto) invisível no jogo, no painel Detalhes, na seção Renderização, habilite Actor Hidden in Game (Ator oculto no jogo).
Aprimore seu design
Você já começou com sua primeira sala e alguns corredores; agora continue construindo!
Para concluir o restante deste tutorial, recomendamos que você tenha os seguintes elementos em seu bloqueio:
Áreas que permitem que o jogador colete três chaves diferentes e destrave a porta correspondente a cada chave.
Uma área para colocar um labirinto de armadilhas que podem ser desativadas com um interruptor no andar.
Uma área para atravessar uma série de plataformas móveis.
Uma área para lutar contra inimigos PNJ.
Além disso, use sua imaginação, experimente e repita! Essa é a beleza da caixa cinza.
À medida que você constrói, há mais alguns princípios de design a serem considerados:
Obstáculos e oclusão
Não se esqueça de introduzir alguns obstáculos funcionais. Por exemplo:
Um objeto que bloqueia um caminho óbvio, forçando o jogador a encontrar um desvio interessante.
Pilares que bloqueiam a linha de visão e acrescentam interesse.
Objetos que criam cobertura.
Geometria que ensina ao jogador parte do seu conjunto de movimentos (como pular, agachar, rastejar).
Aqui está um exemplo de uma sala bloqueada com algumas alterações de altura e oclusão:
Fluxo de nível e linhas de orientação
Pense no ritmo e na velocidade do percurso dos jogadores no seu nível. Eles são guiados naturalmente para a próxima área? Há momentos de tensão e calma? Os jogadores sentem que têm alguma escolha?
O uso de linhas-guia e pontos de contraste direciona os jogadores para áreas de interesse sem que eles percebam. Isso faz com que o mundo pareça intuitivo, pois os jogadores são naturalmente atraídos por esses elementos ou em direção a eles.
Por exemplo:
Cabos, canos, cercas, grades e caminhos conduzem o olhar dos jogadores ao longo dessas bordas.
Fontes de luz ou visuais contrastantes chamam a atenção dos jogadores.
A visão de um ponto de referência ou de uma porta que enquadra a próxima área atrai os jogadores para aquela direção.
Quando os jogadores entram nessa sala, são arrastados ao longo da parede em direção à janela, que os levam para a saída.
Ao projetar seus espaços, pense em como eles serão percorridos. Por exemplo, este tutorial cria um espaço do tipo centro e raios, no qual o jogador precisa retornar à primeira sala após completar determinados objetivos. Aqui, os corredores não devem ser muito longos, porque o jogador precisa passar por eles várias vezes.
Linguagem de formas
Você pode usar diferentes formas para comunicar emoções ou funções ao jogador, mesmo no estágio de rascunho do desenvolvimento.
Cantos arredondados e curvas sugerem natureza e segurança e, por isso, essas formas funcionam bem em uma área de descanso ou local de cura.
Áreas quadradas ou retangulares parecem feitas pelo homem, estáveis e ordenadas.
Áreas triangulares, irregulares ou pontiagudas parecem perigosas. Um espaço como esse poderia avisar silenciosamente o jogador de que há armadilhas ou inimigos por perto.
Um espaço alto ou amplo pode evocar poder, enquanto espaços claustrofóbicos e desordenados criam tensão e desconforto.
Por exemplo, uma seção futura deste tutorial cria uma armadilha que causa danos ao jogador quando ele cai nela. Os jogadores associam espinhos a perigo e, portanto, esse design usa essa linguagem de forma para informar que eles devem evitar esse obstáculo:
Exemplo de rascunho
Este é o espaço usado no restante deste tutorial. Você pode combiná-lo ou criar algo totalmente seu.
Todas as salas têm um número e, portanto, as etapas deste tutorial fazem referência a uma sala específica.
As salas são construídas para demonstrar a complexidade cada vez maior:
A Sala inicial é onde o jogador começa. Também adicionamos uma pequena área de surgimento que leva à sala inicial.
A Sala 2 é simples, com uma curva em L básica no corredor.
A Sala 1 aumenta a complexidade com um corredor curvo que apresenta diferentes caminhos, oclusão e mudanças de altura.
A Sala 3 vai além para demonstrar todo o potencial do que você poderia criar com as formas básicas incluídas no modelo de primeira pessoa. Ela adiciona um nível de detalhe ao andar e às paredes que influencia o estilo de arte do jogo e ajuda os artistas a imaginar o que pode ser feito nesse espaço.
O estilo de rascunho nas Salas 1 e 2 geralmente é o tipo de detalhe que você deve buscar ao projetar níveis.
O Corredor 3 e a Sala 3 também usam as malhas da BP_DoorFrame localizadas em Content > LevelPrototyping > Interactable > Door > Assets > Meshes.
Experimentar o nível de amostra
Se quiser usar o exemplo de rascunho que criamos para este tutorial, use o trecho abaixo. Esta é uma versão em texto de todas as malhas de rascunho usadas para criar este exemplo. Quando você copia e cola esse texto no editor de níveis, a Unreal Engine o transforma em objetos de nível.
Begin Map
Begin Level
Begin Actor Class=/Game/LevelPrototyping/Interactable/Door/BP_DoorFrame.BP_DoorFrame_C Name=BP_DoorFrame_C_4 Archetype="/Game/LevelPrototyping/Interactable/Door/BP_DoorFrame.BP_DoorFrame_C'/Game/LevelPrototyping/Interactable/Door/BP_DoorFrame.Default__BP_DoorFrame_C'" ExportPath="/Game/LevelPrototyping/Interactable/Door/BP_DoorFrame.BP_DoorFrame_C'/Temp/Untitled_1.Untitled_1:PersistentLevel.BP_DoorFrame_C_4'"
Begin Object Class=/Script/Engine.SceneComponent Name="DefaultSceneRoot" Archetype="/Script/Engine.SceneComponent'/Game/LevelPrototyping/Interactable/Door/BP_DoorFrame.BP_DoorFrame_C:DefaultSceneRoot_GEN_VARIABLE'" ExportPath="/Script/Engine.SceneComponent'/Temp/Untitled_1.Untitled_1:PersistentLevel.BP_DoorFrame_C_4.DefaultSceneRoot'"
End Object
Begin Object Class=/Script/Engine.BoxComponent Name="Box" Archetype="/Script/Engine.BoxComponent'/Game/LevelPrototyping/Interactable/Door/BP_DoorFrame.BP_DoorFrame_C:Box_GEN_VARIABLE'" ExportPath="/Script/Engine.BoxComponent'/Temp/Untitled_1.Untitled_1:PersistentLevel.BP_DoorFrame_C_4.Box'"
Begin Object Class=/Script/Engine.BodySetup Name="BodySetup_0" Archetype="/Script/Engine.BodySetup'/Game/LevelPrototyping/Interactable/Door/BP_DoorFrame.BP_DoorFrame_C:Box_GEN_VARIABLE.BodySetup_0'" ExportPath="/Script/Engine.BodySetup'/Temp/Untitled_1.Untitled_1:PersistentLevel.BP_DoorFrame_C_4.Box.BodySetup_0'"
End Object
End Object
Begin Object Class=/Script/Engine.TimelineComponent Name="Door Control" ExportPath="/Script/Engine.TimelineComponent'/Temp/Untitled_1.Untitled_1:PersistentLevel.BP_DoorFrame_C_4.Door Control'"
Begin Map
Begin Level
Begin Actor Class=/Script/Engine.ExponentialHeightFog Name=ExponentialHeightFog_0 Archetype="/Script/Engine.ExponentialHeightFog'/Script/Engine.Default__ExponentialHeightFog'" ExportPath="/Script/Engine.ExponentialHeightFog'/Temp/Untitled_1.Untitled_1:PersistentLevel.ExponentialHeightFog_0'"
Begin Object Class=/Script/Engine.BillboardComponent Name="Sprite" Archetype="/Script/Engine.BillboardComponent'/Script/Engine.Default__ExponentialHeightFog:Sprite'" ExportPath="/Script/Engine.BillboardComponent'/Temp/Untitled_1.Untitled_1:PersistentLevel.ExponentialHeightFog_0.Sprite'"
End Object
Begin Object Class=/Script/Engine.ExponentialHeightFogComponent Name="HeightFogComponent0" Archetype="/Script/Engine.ExponentialHeightFogComponent'/Script/Engine.Default__ExponentialHeightFog:HeightFogComponent0'" ExportPath="/Script/Engine.ExponentialHeightFogComponent'/Temp/Untitled_1.Untitled_1:PersistentLevel.ExponentialHeightFog_0.HeightFogComponent0'"
End Object
Begin Object Name="Sprite" ExportPath="/Script/Engine.BillboardComponent'/Temp/Untitled_1.Untitled_1:PersistentLevel.ExponentialHeightFog_0.Sprite'"
AttachParent="HeightFogComponent0"
End Object
Begin Map
Begin Level
Begin Actor Class=/Script/Engine.StaticMeshActor Name=Floor_90 Archetype="/Script/Engine.StaticMeshActor'/Script/Engine.Default__StaticMeshActor'" ExportPath="/Script/Engine.StaticMeshActor'/Temp/Untitled_1.Untitled_1:PersistentLevel.Floor_90'"
Begin Object Class=/Script/Engine.StaticMeshComponent Name="StaticMeshComponent0" Archetype="/Script/Engine.StaticMeshComponent'/Script/Engine.Default__StaticMeshActor:StaticMeshComponent0'" ExportPath="/Script/Engine.StaticMeshComponent'/Temp/Untitled_1.Untitled_1:PersistentLevel.Floor_90.StaticMeshComponent0'"
End Object
Begin Object Name="StaticMeshComponent0" ExportPath="/Script/Engine.StaticMeshComponent'/Temp/Untitled_1.Untitled_1:PersistentLevel.Floor_90.StaticMeshComponent0'"
StaticMesh="/Script/Engine.StaticMesh'/Engine/MapTemplates/SM_Template_Map_Floor.SM_Template_Map_Floor'"
bUseDefaultCollision=False
StaticMeshDerivedDataKey="STATICMESH_34081786561B425A9523C94540EA599D_359a029847e84730ba516769d0f19427Simplygon_5_5_2156_18f808c3cf724e5a994f57de5c83cc4b_680318F3495BDBDEBE4C11B39CD497CE000000000100000001000000000000000000803F0000803F00000000000000000000344203030300000000"
MaterialStreamingRelativeBoxes(0)=4294901760
Begin Map
Begin Level
Begin Actor Class=/Script/Engine.StaticMeshActor Name=StaticMeshActor_911 Archetype="/Script/Engine.StaticMeshActor'/Script/Engine.Default__StaticMeshActor'" ExportPath="/Script/Engine.StaticMeshActor'/Game/AdventureGame/deleteme.deleteme:PersistentLevel.StaticMeshActor_911'"
Begin Object Class=/Script/Engine.StaticMeshComponent Name="StaticMeshComponent0" Archetype="/Script/Engine.StaticMeshComponent'/Script/Engine.Default__StaticMeshActor:StaticMeshComponent0'" ExportPath="/Script/Engine.StaticMeshComponent'/Game/AdventureGame/deleteme.deleteme:PersistentLevel.StaticMeshActor_911.StaticMeshComponent0'"
End Object
Begin Object Name="StaticMeshComponent0" ExportPath="/Script/Engine.StaticMeshComponent'/Game/AdventureGame/deleteme.deleteme:PersistentLevel.StaticMeshActor_911.StaticMeshComponent0'"
StaticMesh="/Script/Engine.StaticMesh'/Game/LevelPrototyping/Meshes/SM_Cylinder.SM_Cylinder'"
StaticMeshImportVersion=1
StaticMeshDerivedDataKey="STATICMESH_FD1BFC73B5510AD60DFC65F62C1E933E_228332BAE0224DD294E232B87D83948FQuadricMeshReduction_V2$2e1_6D3AF6A2$2d5FD0$2d469B$2dB0D8$2dB6D9979EE5D2_CONSTRAINED0_100100000000000000000000000100000000000080FFFFFFFFFFFFFFFFFFFFFFFF000000000000803F00000000000000803F0000803F00000000000000003D19FC1626C9B2485E57DB4B8EC731318B8215AE8D46FAD400000000010000000100000000000000010000000100000000000000000000000100000001000000400000000000000001000000000000000000F03F000000000000F03F000000000000F03F0000803F00000000050000004E6F6E65000C00000030000000803FFFFFFFFF0000803FFFFFFFFF0000000000000041000000000000A0420303030000000000000000_RT00_0"
RelativeLocation=(X=-2790.000000,Y=-1610.000000,Z=-0.499892)
Para copiar esse exemplo de bloqueio em um nível vazio, siga estas etapas:
Em um novo nível do tipo Básico, exclua as malhas Floor e PlayerStart para ter um nível que contenha apenas objetos de nível de iluminação.
Clique em Copiar trecho completo.
No Unreal Editor, certifique-se de que a janela de visualização ou o Organizador seja o painel ativo (clique em qualquer lugar da janela de visualização ou do Organizador e pressione Esc) e, em seguida, pressione Ctrl + V.
Repita para todos os cômodos e corredores.
No Organizador, você verá todas as malhas organizadas em pastas com o nome de cada sala e corredor.
O nível de amostra usa convenções de nomenclatura para muitos objetos no Organizador. As malhas de prototipagem de nível são renomeadas dependendo do uso:
As paredes se chamam
SM_WallAs colunas se chamam
SM_ColumneSM_QuarterColumn
Se quiser usar essas convenções de nomenclatura e renomear seus objetos, selecione um grupo de malhas no Organizador, clique com o botão direito do mouse na seleção e vá para Edit > Renomear atores selecionados. Para obter mais informações sobre como trabalhar no Organizador, consulte a documentação sobre o Organizador.
Próxima
Depois de estruturar o rascunho do nível, é hora de começar a adicionar elementos de jogabilidade. Na próxima seção, você verá uma introdução ao script visual de Blueprint na Unreal Engine e aprenderá a criar lógica de jogo em um objeto de nível de blueprint.
O próximo documento desta série de tutoriais envolve o uso da linguagem de script visual da Unreal Engine, o Blueprints. Se você é novo com Blueprints e gostaria de uma introdução ao uso do Blueprints para programar a lógica do jogo, consulte a documentação Fundamentos de Blueprints.
Se você já está familiarizado com o Blueprints, pode prosseguir para o tutorial Criar uma chave: