GameDev

Aprendendo a programar jogos em Unity: começando a interagir com o modelo dos pacientes

Iniciaremos a análise de fatores importantes na construção dos objetos que representarão os clientes do consultório.

em 25/08/2024
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

Entendo videogames como sendo uma expressão de arte e lazer e, também, como uma impactante ferramenta de educação. No momento, doutorando em Sistemas da Informação pela EACH-USP, desenvolvendo jogos e sistemas desde 2020. Se quiser bater um papo comigo, nas redes sociais procure por @RodrigoGPontes.
Este texto não representa a opinião do GameBlast. Somos uma comunidade de gamers aberta às visões e experiências de cada autor. Escrevemos sob a licença Creative Commons BY-SA 3.0 - você pode usar e compartilhar este conteúdo desde que credite o autor e veículo original.