Página inicial English version of this page Quindigo Curriculum Vitae Pós-graduação em Games Pixel Pocketknife QuindiGUI Todopano Desenhos - Truco! Desenhos - Projeto Terrinha Desenhos - LíGia Desenhos - Habilidades Auditivas Desenhos - Acerte Sempre Desenhos - Caderno Ilustrado de Verbos Desenhos - Miscelânea

Drone

Powered by Unity

Instruções

Nesta cena, o veículo é indestrutível e os controles dependem do modo em que ele estiver operando.

Em modo carro

  • [Seta para cima] e [Seta para baixo], enquanto pressionadas, aceleram as rodas para frente ou para trás;
  • [Seta para esquerda] e [Seta para direita], enquanto pressionadas, giram as rodas no eixo Y (para o veículo fazer curvas);
  • [Control] + [Seta para cima] ou [Seta para baixo] giram propulsores em torno do eixo X (possibilitando direcionar impulso para frente, cima, trás ou baixo);
  • [Control] + [Seta para esquerda] ou [Seta para direita], enquanto pressionadas, giram propulsores em torno do eixo Y (possibilitando direcionar impulso para direita ou esquerda);
  • [X] e [Z] aumentam e diminuem a força dos propulsores (neste modo, a força de todos os propulsores é igual).

Em modo drone

  • [Seta para cima] e [Seta para baixo], enquanto pressionadas, inclinam hélices um tiquinho para a frente ou para trás (visam acelerar drone na direção escolhida);
  • [Seta para esquerda] e [Seta para direita], enquanto pressionadas, inclinam hélices dianteiras um tiquinho para um lado e as hélices traseiras um tiquinho para o lado oposto (visam girar o drone na direção escolhida);
  • [Control] + [Seta para cima] ou [Seta para baixo], enquanto pressionadas, alteram força dos propulsores (visam fazer o drone ganhar ou perder altitude).

Em qualquer modo

  • [Enter] alterna modo de funcionamento do veículo;
  • [1], [2] e [3] escolhem modo da câmera.

Sobre o projeto

A proposta do exercício era empregar a física da Unity e pelo menos duas das abordagens vistas em sala de aula para movimentar corpos ou veículos. As explicações dos comandos acima estão meio complicadas porque elas dizem o que é feito de fato, não o resultado que você vai efetivamente ter sobre o veículo. Eu criei essa geringonça usando apenas formas primitivas da Unity (cubo, cilindro, cápsula e esfera) e com estas características:

  • O veículo é composto por um chassi com rigidbody que se apóia em quatro suportes de rodas;
  • Cada suporte, por sua vez, tem rigidbody próprio e está apoiado em uma roda;
  • Cada roda possui seu rigidbody e está presa ao suporte por duas hinge joints para maior estabilidade;
  • Para o veículo andar no terreno, apenas aplico torque às rodas - a física da Unity faz todo o resto: gravidade, colisão das rodas com o terreno, atrito e deslocamento de todas as partes;
  • Os propulsores com hélice fazem parte do chassi. Aplico forças de propulsão nos pontos centrais das cápsulas vermelhas dos propulsores. A direção e o sentido das forças dependem de para onde as hélices estão viradas (cada propulsor funciona como se fosse um torpedo);
  • Enquanto carro, o jogador pode girar, ligar e desligar os propulsores. Ele decide como tirar proveito do impulso extra;
  • Enquanto drone, a direção e intensidade das forças de propulsão das hélices são controladas por script. O jogador indica para onde quer ir e o script deveria manipular forças visando conseguir o resultado desejado (esta parte não ficou boa);
  • Quando na água, aplico empuxo no veículo e também uma força que atua como resistência ao movimento. Se as hélices estiverem desligadas, o veículo deve flutuar.

Concentrei esforços no script de voo do drone, mas o resultado ficou ruim. O script deveria manter o veículo estabilizado no ar, dosando as forças aplicadas nos pontos de apoio dos propulsores para alcançar o movimento desejado pelo jogador. Aí ficou uma oportunidade para melhoria que demanda um tempinho. Outra coisa que dá para melhorar é a distribuição de massas para aumentar a estabilidade nas curvas (modo carro). A geometria do veículo influencia diretamente a capacidade de manobras.