Camera nas costas do player
Ir à página 1, 2  Próximo
 
   3D Game Builder - Índice » Tutoriais
Camera nas costas do player
Autor Mensagem
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Camera nas costas do player
Oi pessoal,
A muito tempo atrás tentei fazer isso e ficou bem meia boca, pois não entendia nada sobre ângulos.
Então hoje me deparei com este tutorial:
http://abrindoojogo.com.br/a-matematica-nos-games-rotacao-de-ponto

Aprendi um pouco mais sobre ângulos e agora o exemplo que eu desejava criar finalmente ficou do jeito que eu queria.
Segue o projeto, o código está no MainLoop do mapa e também no Main Create.
http://wsantos.eti.br/3d_game_builder/CameraNasCostas.rar

Smile


Sex Fev 24, 2017 9:01 pm Exibir perfil de usuários
ManoPlayForum
Usuário
Usuário


Registrado: 30/10/15
Mensagens: 344

Parabéns, gostei bastante e o cenário, apesar de não ter a ver com a câmera, estava muito bom.
Sex Fev 24, 2017 9:54 pm Exibir perfil de usuários
ellyo-two
Usuário
Usuário


Registrado: 21/02/09
Mensagens: 669

Muito bom, vou da uma olhada

_________________
Ravy.studios
Ravy.artes

A Nossa Imaginação é sua diversão Idea
Sáb Fev 25, 2017 3:46 pm Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Observem que o projeto é "Dynamic Shooter Game" e não "Third Person Static".
Este exemplo e seu código irão dar mais liberdade ao desenvolvimento permitindo um melhor controle da câmera ou tipo de jogo.
Sáb Fev 25, 2017 6:33 pm Exibir perfil de usuários
Matheus Dantas
Usuário
Usuário


Registrado: 23/04/13
Mensagens: 249
Localização: São Paulo, Mogi das Cruzes

Mas tem como fazer isso apenas usando 4 linhas de código no OnCreate. Qual é a diferença entre os códigos mais simples para esses? É apenas para marcar as posições do ator?

_________________
//Contato

YouTube:
https://www.youtube.com/channel/UCCBpgDU7UrI1V8YvoKg86QA

Wordpress (Projetos):
http://dantasgames.wordpress.com/

Page(Facebook):
https://www.facebook.com/mathdantasgames

Deviantart:
http://dantasgames.deviantart.com/

Profile(Facebook):
https://www.facebook.com/matheus.dantas.1000

Instagram:
matheusdantassantana

Twitter:
@MatheusDantasDG
Sáb Fev 25, 2017 7:57 pm Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Não sei do seu código ou limitações.
Mas esse que fiz, dá para fazer muitas adaptações, como filmar o personagem de frente, ou então filmar ele bem de longe no ângulo que você quiser sem precisar espalhar muitas câmeras pelo cenário, ou então você quer fazer algo e acha que não dá porque escolheu um determinado tipo de projeto e pensa: "Poxa vou ter que criar tudo de novo." ou "Vou deixar sem fazer essa parte porque não dá para fazer, só o tipo de projeto X suporta isso."


Seg Fev 27, 2017 12:42 am Exibir perfil de usuários
Matheus Dantas
Usuário
Usuário


Registrado: 23/04/13
Mensagens: 249
Localização: São Paulo, Mogi das Cruzes

Dê um olhada em meu projeto, e veja se no os comandos trocam de câmera na movimentação, isso sem falar que fiz uma câmera gira suave sem ser travada no ator Wink



_________________
//Contato

YouTube:
https://www.youtube.com/channel/UCCBpgDU7UrI1V8YvoKg86QA

Wordpress (Projetos):
http://dantasgames.wordpress.com/

Page(Facebook):
https://www.facebook.com/mathdantasgames

Deviantart:
http://dantasgames.deviantart.com/

Profile(Facebook):
https://www.facebook.com/matheus.dantas.1000

Instagram:
matheusdantassantana

Twitter:
@MatheusDantasDG
Seg Fev 27, 2017 6:18 am Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Segue o código em três linhas

No evento OnCreate
Código:
SetCameraTarget('Cam0','MainActor');
SetCamera('Cam0');


No evento MainLoop
Aqui mostra 2 linhas mas é quebra de linha do site, no 3D Game Builder fica 1 só.
Código:
SetObjectPosition('Cam0', Sin(DegToRad(GetMainActorRotation(true))) * 2 + GetObjectPositionX('Player'), GetObjectPositionY('Cam0'), Cos(DegToRad(GetMainActorRotation(true))) * 2 + GetObjectPositionZ('Player'));


O código de exemplo ficou grande porque devemos escolher entre código enxuto e código legível.
Outro motivo é que gastei bastante código somente para mostrar informações na tela e para piorar são informações numéricas e elas devem ser convertidas para string antes.
Eu sou do tipo que gosta de código legível, então gosto de pegar cada informação e comentar, mas como podemos ver é possível pegar a informação e jogar diretamente na função, ou seja, fazer uma cascata de funções dentro de funções.

Sem problemas, se já conseguiu parabéns, mas está aí mais uma maneira de se fazer as coisas.
Muitos caminhos levam ao mesmo lugar, agora cabe aos colegas escolherem o que acharem melhor.

Abraço.

Wink
Seg Fev 27, 2017 11:27 am Exibir perfil de usuários
   3D Game Builder - Índice » Tutoriais Ir à página 1, 2  Próximo
Página 1 de 2