A câmera em um jogo 3D representa o tipo de visão que o jogador terá de tudo o que acontece. Longe ou perto, em primeira ou terceira pessoa, inclinada, superior e por aí vai…
Nesse post iremos aprender a configurar a câmera do 3D GameStudio para seguir o personagem, em situações que variam desde o FPS clássico (só com os braços do personagem aparecendo) até visões de terceira pessoa com seres humanizados ou veículos. Pra quem já gosta de matemática, mamão com açúcar! Para quem não gosta… só posso dizer que está passando da hora de parar com a cara feia e comer logo desse brócolis! Brincadeiras a parte… vamos nessa!
Aí você pode pensar: tá bom… eu configuro a câmera com o mesmo posicionamento e rotação do personagem e está pronto. Sim… e não! O problema está no fato de que na maioria das vezes afastamos um pouco a câmera do personagem, para podermos mostrar um pouco dele. É nessa hora, ao girar, que a câmera (até então com posicionamento fixo) começará a focalizar áreas em que o personagem não está, conforme grafico abaixo, que representa a questão vista de cima.
.
.
Para corrigirmos isso, precisaremos sempre reposicionar a câmera, de forma que o personagem continue centralizado na visão apresentada. Para isso vamos usar o Teorema de Pitágoras (Professora de matemática da quinta série! Bem que a senhora falou que um dia eu precisar ia disso!). Vejamos abaixo o que fazer, antes de implementar o script.
.
.
Considerando a distância sempre fixa entre a câmera e o personagem, e que ela poderá girar por todos os ângulos, teremos que esse valor corresponde ao raio da circunferência para o movimento obtido.
Para acharmos as coordenadas correspondentes trataremos esse tal raio de hipotenusa (H). A distância vertical entre o personagem e a câmera será tratada como cateto adjacente (CA), pois ajuda a formar o ângulo (que está na cor branca). A distância horizontal é o cateto oposto (CO). Pronto! Já temos nosso triângulo retângulo esperando!
Considerando que CA = H * seno(angulo) e CO = H * cosseno(angulo), teremos calculados os valores horizontal e vertical. Com isso em mãos, basta subtraí-los dos valores atuais do personagem. Abaixo deixo um exemplo disso aplicado a um protótipo que desenvolvi.
.
.
Espero que todos tenham conseguido! Um abraço… e até a próxima!
Ahhh… e participem do blog, postando comentários, críticas, sugestões etc.
Fui.
.
.
4 Comentários
RSS Comentários URI identificador de trackback





Gostei bastante =D
amigo vc teria um script wdl de camera 3rd pessoa de um jogo de corrida que esteja funcionando ,estou com problemas ao cria a camera p seguir o carro. estou utilizando a dinamica de friccçao do wdl da jogosemultimidia (youtube video da fisica de carro) Abraços gostei muito do site espero poder mandar exemplares em z3d ou 3ds p vcs caso queiraqm algum…
[...] A implementação é bem simples, e para facilitar ainda mais, vou utilizar como referência um post que deixei aqui, falando sobre “câmera seguindo personagem”. Este: http://jogosdigitais.wordpress.com/2009/12/01/camera-no-3d-gamestudio-seguindo-o-personagem [...]
aff. tem que escrever esse codigo ai todin? tou morreno de cançado!