Caso seja a primeira vez que você acessa esta série, sinta-se à vontade para juntar-se a nós neste divertido processo de aprendizagem. A partir do primeiro tópico da série, você terá a chance de desenvolver projetos de montagem e codificação de jogos, aprendendo na prática sobre como é possível utilizar a ferramenta Unity para tirar do papel jogos de diversos estilos e gêneros mesmo não tendo experiência prévia na área.
No tópico anterior da série, configuramos o projeto Unity de nosso novo título, Consultório do Dr. Tratanildo, em nossas máquinas.
Por meio da inserção de alguns elementos na cena ConsultorioScene, começamos a entender também um pouco mais sobre as características dos assets tridimensionais que normalmente fazem parte da composição de games ambientados em mundos 3D. Venha conosco e vamos juntos nesta caminhada rumo a novos conhecimentos!
Planejamento interno do cenário
Na primeira etapa do desenvolvimento do novo projeto iremos assumir o papel de “arquitetos virtuais” de nossos games, pois, assim como os referidos profissionais fazem na vida real, iremos planejar e construir a ambientação interna de nossa aventura.
Vamos iniciar esta etapa abrindo o Unity Hub e clicando duas vezes sobre o item referente ao projeto Consultório do Dr. Tratanildo. Na interface inicial do Unity, na aba Project, abra a pasta Assets, Scenes e, por fim, clique duas vezes no ícone da cena ConsultorioScene.
Note que, após aberta a cena, na aba Hierarchy são exibidos poucos elementos; dentre eles dois itens cujos nomes são apresentados na cor azul: Doutor_rindo e cenarioModular:
Os dois GameObjects em questão são derivados dos modelos 3D que inserimos na cena em nosso último encontro. Eles são destacados em cor azul pois, para o Unity, são objetos que apresentam comportamento semelhante aos GameObjects derivados de prefabs.
Em nossos projetos anteriores, nós chegamos a transformar alguns objetos em prefabs, fazendo com que suas informações fossem armazenadas em arquivos presentes dentro da estrutura da pasta Assets.
Os arquivos que armazenam modelos 3D são bem parecidos com prefabs, pois eles apresentam armazenados em suas estruturas internas informações sobre diversos aspectos que chegamos a observar preliminarmente em nosso encontro anterior, como a composição dos itens, materials utilizados, texturas e parâmetros.
Iremos começar a elaborar o cenário, utilizando como base os componentes subordinados ao GameObject cenarioModular. A primeira tarefa que iremos realizar será o “desempacotamento” (unpacking) do objeto em questão, para que ele perca o vínculo com seu arquivo de origem e permita, dentre outras coisas, que realizemos a exclusão, duplicação e reorganização de alguns de seus objetos subordinados.
Para tal, na aba Hierarchy, clique com o botão direito sobre cenarioModular, selecione a opção Prefab e, por fim, Unpack Completely.
Observe, agora, que seu item na aba Hierarchy perdeu a cor azul. O elemento já não tem uma ligação direta com o arquivo de origem, podendo ser livremente editado.
A primeira alteração que iremos realizar concretamente em nossa cena hoje será referente à localização global dos elementos do cenário. Primeiramente, iremos renomear o GameObject cenarioModular para CenarioFixo, clicando com o botão direito sobre seu item na aba Hierarchy, selecionando a opção Rename e inserindo o novo nome.
Todos os elementos que irão compor o cenário serão inseridos posteriormente como objetos subordinados a CenarioFixo. Seria interessante, então, posicioná-lo no centro da cena, de forma a considerarmos o objeto em questão como sendo o ponto de referência principal para os demais elementos.
Vamos modificar o posicionamento de CenarioFixo, selecionando-o na aba Hierarchy e, na aba Inspector, modificando os valores de seu atributo Transform para o que se segue:
- Position X, Y e Z =0;
- Rotation X, Y e Z = 0; e
- Scale X, Y e Z = 1.
Ponto de vista e rotações de visualização
Antes de iniciarmos de fato a modificar os parâmetros dos elementos de composição de nosso cenário, é importante saber de fato como “navegar” com teclado e mouse dentro do ambiente virtualizado que o Unity nos oferece, por meio da aba Scene de seu editor.
Por vezes, teremos que ampliar nosso campo de visão ou nos aproximar de um objeto em específico para verificar se ele está posicionado corretamente, e sem uma boa navegação pelo cenário fica bem difícil de se observar certas nuances na composição de um cenário tridimensional.
Logo abaixo dos menus da janela principal do Unity, existem alguns botões que permitem ao usuário a realização de certas ações específicas com o mouse, como movimentar objetos em cena, rotacioná-los ou, o que será interessante para nós neste momento, permitir movimentações e alterações do ponto de vista da visualização que temos acesso por meio da aba Scene.
Trata-se do ícone em formato de mão, destacado na imagem a seguir, que iremos selecionar, permitindo nossa navegação pela cena usando o mouse sem alterar os parâmetros de posicionamento dos objetos.
Veja que, com o referido modo ativado, a seta do mouse se transforma em uma “mãozinha” ao se passar sobre a janela da aba Scene. Podemos clicar e arrastar livremente a imagem da janela para posicioná-la da forma que seja mais conveniente a nós.
Para rotacionar a visualização da cena, permitindo que vejamos detalhes dos objetos sob outros ângulos, realizemos a mesma ação descrita há pouco (clicar e arrastar), pressionando ao mesmo tempo a tecla Alt do teclado.
Note que, nessa situação, a seta do mouse se transforma em um “olho”, indicando que estamos prestes a rotacionar a visualização da cena, sem interferir no posicionamento de fato dos elementos.
Já para aplicar zoom em um determinado ponto da cena, basta usar o scroll do mouse ou clicar duas vezes sobre um elemento da aba Hierarchy.
Posicionando chão e quinas
Agora que já sabemos como nos movimentar adequadamente em relação à visualização da aba Scene, que tal começarmos a modificar alguns dos elementos de CenarioFixo?
O primeiro elemento a sofrer alterações em seus parâmetros será o GameObject Plane. Na aba Hierarchy, selecione o referido objeto, renomeie-o para Chao e, na aba Inspector, altere os parâmetros de seu componente Transform para o que se segue:
- Position X, Y e Z =0;
- Rotation X = 270, Y e Z = 0; e
- Scale X, Y e Z = 100.
Com o chão devidamente posicionado, vamos começar a posicionar os elementos verticais da cena, começando pelas quinas do consultório.
Na aba Hierarchy, selecione agora o objeto Wall_Corner. Iremos renomeá-lo para Quina_1 e modificaremos os atributos de seu componente Transform conforme o que se segue:
- Position X = -14, Y = 5 e Z = 13;
- Rotation X, Y e Z = 0; e
- Scale X, Y, e Z = 100.
Clique com o botão direito sobre Quina_1 na aba Hierarchy e selecione a opção Duplicate. Repita a operação três vezes, renomeando as cópias dos objetos como Quina_2, Quina_3 e Quina_4, respectivamente. Reorganize os itens na aba Hierarchy para que eles estejam sequencialmente listados, conforme imagem a seguir:
Vamos posicionar os objetos em cada canto do cenário. Para Quina_2, altere os seguintes parâmetros de seu componente Transform:
- Position X = 29; e
- Rotation Y = 90.
Já para Quina_3, os parâmetros a seguir de seu componente Transform deverão receber os valores descritos:
- Position X = 29, Z = -23; e
- Rotation Y = 180.
Por fim, os parâmetros a terem seus valores alterados para Quina_4 são os descritos a seguir:
- Position Z = -23; e
- Rotation Y = 270.
Aos poucos, iremos compor todos os elementos pertencentes à cena. Não se esqueça de salvar a cena (menu File, opção Save) e o projeto (menu File, opção Save Project) antes de fechar o editor.
Próximos passos
Demos início ao processo de elaboração do consultório do doutor, posicionando adequadamente o chão e as quinas das paredes.
Em nossos próximos encontros vamos dar sequência a essa composição, organizando o posicionamento das paredes, teto, janelas, portas, mobílias de decoração e afins, além de ajustarmos parâmetros referentes aos materials de alguns dos elementos 3D e outros atributos importantes.
Nosso próximo texto já encontra-se disponível, continue conosco nessa jornada de conhecimento e fique ligado sempre aqui no GameBlast!
Revisão: Ives Boitano