Seja bem-vindo(a) ao GameDev: Aprendendo a programar jogos em Unity de hoje! Retornando ao nosso ritmo habitual, daremos continuidade ao processo de configuração dos elementos que farão parte do game Consultório do Doutor Tratanildo com a inserção em cena do modelo tridimensional que servirá de base para a construção dos pacientes que serão atendidos pelo nosso excêntrico médico.
Se esta é a primeira vez que você acessa nossa série, sinta-se convidado a juntar-se a nós neste interessante e divertido processo de aprendizado prático. Por meio do desenvolvimento de diferentes projetos, teremos a oportunidade de aprender mais sobre como a ferramenta Unity pode nos auxiliar a construir games dos mais variados estilos.
Mesmo se, até hoje, você nunca teve experiências com desenvolvimento de jogos, fique tranquilo e permita-se nos acompanhar nesta caminhada. A partir do primeiro tópico da série, são abordados desde os tópicos mais básicos, envolvendo a instalação e configuração da ferramenta em nossos computadores, até os elementos que, de fato, compõem a construção de um game, tais como a criação de cenas, configuração de elementos e codificação de scripts.
Venha conosco nesta caminhada rumo a novos conhecimentos!
Finalmente, o paciente
Em nosso penúltimo encontro, configuramos alguns aspectos da cena que permitiram uma adequada interação do modelo de Doutor Tratanildo com o cenário, impedindo que o nosso querido médico fosse de encontro às profundezas do cenário:
Agora, com a “casa em ordem”, podemos iniciar os processos que levarão a recebermos diferentes pacientes em nosso consultório. Vamos abrir o Unity Hub e clicar 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.
Na aba Hierarchy, clique com o botão direito sobre o item Personagens e, no menu suspenso, selecione a opção Create Empty. Dê o nome Pacientes ao novo GameObject. Iremos utilizá-lo como um “guarda-chuva” para agrupar objetos que representem pacientes no cenário.
Selecione o novo objeto e, na aba Inspector, certifique-se de que todos os valores dos parâmetros Position e Rotation de seu componente Transform sejam iguais a zero.
Na aba Project, abra as pastas Assets, Multimedia, 3D, Pacientes e, por fim, Modelo_base. Dentro dessa pasta, será apresentado um ícone de nome “advancedCharacter”, sem as aspas. Esse ícone representa o modelo inicial que iremos utilizar como base para construir nossos pacientes.
Clique e arraste o ícone em direção ao elemento Pacientes, na aba Hierarchy. Será inserido em cena um novo GameObject (advancedCharacter), conforme exemplificado pela imagem a seguir:
Renomeie o novo objeto para paciente_base. Selecione-o e, na aba Inspector, modifique os valores dos parâmetros de seu componente Transform de acordo com o listado a seguir:
- Position X, Y, Z = 0;
- Rotation X, Y, Z = 0;
- Scale X, Y, Z = 40.
Composição interna do modelo
Em relação ao modelo tridimensional específico que serviu de base para a composição de paciente_base, ao expandirmos a visualização na aba Hierarchy (clicando na seta ao lado esquerdo de paciente_base), veremos que o GameObject em questão é composto por diversos outros objetos:
Cada um dos objetos subordinados a paciente_base circulados em vermelho na imagem anterior representa uma parte específica do corpo do paciente:
- Objetos ArmLeft1 e ArmRight1 representando os braços;
- Objeto Body1 representando o tronco;
- Objeto Head1 representando a cabeça;
- Objetos LegLeft1 e LegRight1 representando as pernas.
Por sua vez, o objeto restante da lista de subordinados a paciente_base (Rig1, destacado em amarelo na imagem anterior) representa o esqueleto do modelo tridimensional.
Embora não seja visível diretamente, o esqueleto de um modelo tridimensional humanoide é de suma importância na etapa de configuração da animação dos GameObjects derivados do modelo, o que iremos realizar posteriormente.
Aplicando materials
Por enquanto, nosso modelo inicial ainda não se assemelha a um personagem humano propriamente dito, sobretudo pela cor acinzentada apresentada na composição do material utilizado no modelo-base, que o torna visualmente mais semelhante a um robô.
Em nosso projeto, já temos alguns materials previamente preparados que serão úteis para dar personalidade a cada tipo de paciente que implementarmos no game. Para visualizá-los, na aba Project, abra as pastas Assets, Multimedia, 3D, Pacientes, Materiais_personagens e, por fim, Advanced.
Note que, para cada material disponível, uma textura é utilizada como referência, contendo informações sobre as diferentes partes do corpo do personagem:
Vamos agora conceder uma aparência de fato para o personagem em questão. Na aba Hierarchy, selecione todos os objetos subordinados a paciente_base, com exceção de Rig1. Observando a aba Inspector, podemos perceber que todos os objetos selecionados apresentam algumas características em comum; dentre elas, destaco a presença do componente Skinned Mesh Renderer, que será responsável pela aplicação do material para cada parte do corpo do paciente.
Modifique o valor de Element 0 do parâmetro Materials para o material de nome skin_adventurer.
Observe que, agora sim, temos um personagem humano de fato:
Repita a operação, trocando o valor de Element 0 do parâmetro Materials dos GameObjects selecionados para o material de nome skin_womanAlternative:
Trocando-se o material dos objetos subordinados a paciente_base, conseguiremos alterar dinamicamente as características visuais dos bonecos que representarão nossos pacientes. Iremos utilizar essa funcionalidade posteriormente para a construção dinâmica de diferentes tipos de personagens.
Experimente efetuar novas trocas utilizando os outros materials presentes na pasta Advanced. É possível também trocar o material de uma parte isolada do corpo de paciente_base, criando variações bem interessantes para o personagem.
Ao término das experimentações, reaplique o material skin_womanAlternative às partes do corpo de paciente_base. 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
Realizamos nosso primeiro contato com o modelo tridimensional que irá representar nossos pacientes dentro do consultório. Verificamos a composição interna do modelo e experimentamos aplicar diferentes materials, modificando as texturas do personagem.
Em nosso próximo encontro, verificaremos como funciona a aplicação de animações a modelos humanoides pela plataforma Unity e daremos prosseguimento ao processo de montagem dos elementos de Consultório do Doutor Tratanildo.
Nosso próximo texto já encontra-se disponível, continue conosco nessa jornada de conhecimento e fique ligado sempre aqui no GameBlast!
Revisão: Davi Sousa