Autor: Kabeção
GM3D 01 - Primeiros passos
Estou dando inicio as minhas aulas de 3D no Game Maker.
Antes de começarLembrem-se que para estudar esse assunto é preciso saber o suficiente sobre jogos 2D então essas aulas são para usuários mais avançados pois na maioria das vezes não irei explicar os míninos detalhes.
O que pode ser feito em 3D no Game MakerVocê pensa tão alto como o Cérebro?
Então é melhor dar uma calmada e pensar melhor!
O 3D no Game Maker ainda é bem limitado e falta muitas ferramentas que por padrão deveriam estar disponíveis. Embora tudo isso possa ser contornado com uso de DLLs e scripts que tem aos montes feitos pelos próprios usuários do programa, você precisara sempre pesquisar para expandir o que pode ser feito em seu jogo.
O computador do programador deve ter pelo menos uma boa placa de vídeo pois o uso de muitas texturas de tamanho grande podem não funcionar causando o famoso erro “Unexpected error occurred when running the game” que na maioria das vezes é causado porque o jogo está usando um recurso da placa de vídeo que não existe ou usando mais memória do computador do que ele realmente tem.
Considerando também que não vamos fazer uma obra de arte que custará milhões e centenas de pessoas para ser feita em três anos... É como dizem: “O limite e a criatividade do criador.”
A terceira dimensão!Existem muitos tipos de conceitos para explicar o 3D, mas falarei apenas do mais usado.
Você já conhece as duas primeiras dimensões não é? X e Y.
A visão da tela apenas com o X e Y aparenta estar de pé, onde X vai para os lados e Y para cima ou para baixo.
Mas ao inserir a terceira dimensão percebi-se que na verdade a visão esta deitada, pois Z representa a profundidade.
Quanto maior o Z mais alto o ponto vai estar e quanto menor mais baixo ou profundo o ponto.
A terceira dimensão não tem nada de complicado. Basta lembrar que ela é a profundidade, volume ou altura enquanto as outras duas são a largura e o comprimento.
Construindo uma EngineAgora vamos iniciar uma engine. A cada aula diferente você ira completá-la cada vez mais até que o resultado final seja algo parecido com um jogo de corrida.
Por enquanto vamos só aprender a desenhar um cubo na tela.
Abra o GM e vamos começar!
Todo jogo precisa de algo que controle o que o jogador irá ver.
Crie um novo objeto e nomeio como objCamera.
Agora temos que ativar o modo 3D e definir as configurações iniciais.
No evento Create do objCamera coloque:
- Código:
-
d3d_start();
Isso inicia o modo 3D do Game Maker.
- Código:
-
d3d_set_perspective(true);
Ativa a visualização em perspectiva. Isso realça a noção de profundidade dos objetos.
- Código:
-
d3d_set_hidden(true);
Esse é muito útil pois fará com que todos as superfícies desenhadas atrás de outro objeto não apareçam.
- Código:
-
d3d_set_fog(true,c_white,1,1200);
Fog é uma espécie de neblina. Todo que estiver a 1200 pixels da visão do jogador será escondido por ela.
d3d_set_culling(false);
O culling faz a parte de dentro dos objetos, ou seja, o lado de trás das textura não serem desenhados. Se a câmera olhar de dentro de um cubo, as paredes do cubo ficam invisíveis.
- Código:
-
d3d_set_shading(false);
Shading significa sombreamento. Ele melhora a qualidade do efeito da luz nos objetos mas como não usar iluminação nesse exemplo deixe-o como false.
- Código:
-
texture_set_interpolation(true);
Melhora a qualidade das texturas.
- Código:
-
draw_set_color(c_white)
Defina a cor de desenho como branco (c_white).
- Código:
-
z = 48
Todos os objetos tem uma variável x e y por padrão. Mas o z terá sempre que ser criado manualmente. Defina como 48 porque a câmera ficara um pouco acima do chão.
Agora é preciso definir como o jogo vai ser visualizado.
No evento Draw digite:
- Código:
-
Todos os objetos tem uma variável x e y por padrão. Mas o z terá sempre que ser criado manualmente. Defina como 48 porque a câmera ficara um pouco acima do chão.
Agora é preciso definir como o jogo vai ser visualizado.
No evento Draw digite:
Vou explicar essa função de um jeito mais completo na próxima aula pois o objetivo aqui é apenas ensinar a desenhar um cubo na tela.
Agora crie um novo background. Ele vai ser a textura do objeto.
Desenhe qualquer coisa. Servira apenas para visualizar melhor os lados do cubo.
Eu fiz este:
Agora crie outro objeto. Ele será o cubo. Nomeio como obj1.
No evento Create defina:
- Código:
-
z = 0;
A variável z.
- Código:
-
tex = background_get_texture(background0);
Essa função retorna o lugar na memória do computador onde a textura do background0 está armazenada.
Agora no evento Draw:
- Código:
-
d3d_draw_block(x-16,y-16,z-16,x+16,y+16,z+16,tex,1,1)
Com isso desenho cada lado com 32 pixels, defino a textura dele e os dois últimos valores são quantas vezes a textura vai se repetir nas paredes do cubo.
Na próxima vou falar sobre a projeção de cenas, como movimentar e controlar a câmera.
Flw.