Cursos / Jogos Digitais / Matemática Aplicada a jogos / Aula

arrow_back Aula 05 - Transformações

6. A matemática em ação: Movimentação de Elementos

No universo dos jogos, as transformações são essenciais para toda movimentação a ser feita, seja de personagens, inimigos, cenários ou qualquer outro elemento. Em engines poderosas como a Unity, a base de todo elemento é um objeto chamado transform. Esse elemento contém informações da posição $x, y$ e $z$ (denotadas com letras maiúsculas na ferramenta) de um objeto, os valores de suas rotações em torno dos eixos e o valor da escala de cada um dos objetos na direção dos eixos. Um exemplo pode ser visto na Figura 15.

Captura de tela do software demonstrando os elemento <span class='italico'>transform</span> de um objeto no Unity.

Como podemos imaginar, esse elemento é de extrema importância para todos os objetos envolvidos, uma vez que é através dele que podemos posicioná-los na tela e realizar grande parte das interações que forem necessárias. Um exemplo simples disso é a movimentação de personagens ao longo de caminhos pré-definidos.

Quando um personagem está presente em uma cena de um jogo e precisa se mover, algumas transformações precisam ser aplicadas a ele para que essa movimentação seja feita de maneira adequada. Imagine que esse personagem esteja na borda do cenário, talvez observando por uma janela. Em uma visão de cima da cena, teríamos algo como pode ser visto na Figura 16:

Personagem quadrado olhando pela janela.

Agora, caso desejemos mover o personagem para a porta, devemos aplicar algumas transformações para que isso aconteça de maneira mais natural possível. Com os objetos pretos representando espaços onde não é possível o personagem estar, um caminho possível seria o demonstrado em vermelho na Figura 17:

Caminho a ser percorrido pelo personagem.

Percebam que a primeira transformação necessária a ser feita pelo personagem é uma rotação de 180 graus, uma vez que o personagem está de frente para a janela (indicado pela seta). Com a rotação feita, a movimentação poderia então ser iniciada na direção correta, como indicado na Figura 18:

Personagem com a orientação correta, pronto para iniciar a movimentação.

Uma vez que a orientação correta esteja definida devido à rotação realizada, podemos então iniciar a movimentação do personagem através de pequenas translações do objeto percorrendo a linha vermelha, até que uma nova rotação seja necessária.

Para gerar uma animação adequada, as translações, que serão feitas a cada frame, deverão ser de uma magnitude adequada para que não haja pulos, criando assim uma sensação maior de fluidez do movimento.

Então utilizamos rotações para orientar corretamente nosso personagem e translações para movê-lo. Essas ações seriam suficientes? Provavelmente não! Ainda falta passar ao jogador a sensação de que o personagem está vivo e se movendo de fato. Uma maneira de fazer isso, que funciona bem para os jogos 2D com visão top-down, é a utilização da escala do objeto para dar a ideia de movimento. Observe o GIF na Figura 19:

Escala do personagem para dar a ideia de movimento.

Perceba que a única modificação que está sendo feita no personagem para passar a ideia de que ele está “vivo” ou “respirando” é a utilização da escala. Essa técnica é comum em animações e, apesar de não ser uma obra de arte, passa a ideia necessária. Você já ouviu falar em programmers art? Quem sabe essa é uma boa hora para buscar mais informações sobre isso!

Assim, concluímos a nossa aplicação dos conteúdos vistos! É importante entender que a utilização de transformações adequadamente é a base para muitas partes de um jogo.

Versão 5.3 - Todos os Direitos reservados