NÍVEL: intermediário
TEMA: Game Maker, Modelos animados (.md2).
PRÉVIA:Nesta aula, vamos falar sobre Modelos animados (.md2), que serão renderizados no GM por meio de uma extensão.
DIREITOS: Este tutorial não pode ser copiado nem exibido em outros locais na internet sem a devida autorização do autor.Caso tenha interesse em usá-lo ,contate-me.
INTRODUÇÃO
Bom, começo lhes informando que vamos ter que adotar recursos externos para realizar esta atividade, pois o GM por si só não consegue renderizar os modelos em .md2 , por isso vamos usar o GMSDK,que é uma extensão para o GM, feito pelo jiraya, Colaborador da GMBR.
Muito já se falou da limitação do GM no 3D, com arquivos animados por bones, essa limitação é ainda maior, fiz alguns testes com a velocidade de renderização, e de rotação maior de frames, e o GM não suportou! portanto nem abordarei aqui sobre velocidade de mudança dos frames, visto que o GM não suporta essa ação.
O que vamos fazer será uma engine simples, com um modelo externo .md2 animado.
Então antes de mais nada, baixe o GMSDK.
Aprenda a instalá-lo AQUI.
SEQUÊNCIA
O uso de modelos externos consiste nas etapas:
criação: Onde dizemos ao GM que queremos reservar um espaço na memória para utilizarmos com algo, este espaço será representado por um índice, que usaremos em todas as funções relacionadas a este modelo.
No caso da GMSDK, essa função já vai criar e carregar o modelo para a memória de uma só vez, evitando que usemos duas funções para isso. Por causa dessa função de carregamento ser um tanto quanto pesada e demorada, devemos executá-la apenas uma vez! E é bom que isso seja feito na primeira room do jogo, para depois passarmos às próximas e não voltarmos mais nela.
Iremos usar a função: global.ÍNDICE=d3d_md2_load("nome_do_modelo.md2")
*O modelo deve estar na mesma pasta que o jogo.
*ÍNDICE é a variável que está guardando o id do modelo.
renderização: Nesta parte, o modelo será renderizado na tela!
Por isso devemos usá-la no draw do objeto.
Função: d3d_md2_draw(global.ÍNDICE,x,y,z,background_get_texture(background))
*A background é a textura que o modelo terá.
*ÍNDICE é a var que contém o id do modelo.
PRÁTICA
Abra a nossa primeira engine!
Se nao tem , baixe-a AQUI.
Após abri-la, não se esqueça de ativar a GMSDK para o projeto atual, clicando na "cruzinha verde" do menu, selecionando GMSDK, e dando OK.
Se nao tem , baixe-a AQUI.
Após abri-la, não se esqueça de ativar a GMSDK para o projeto atual, clicando na "cruzinha verde" do menu, selecionando GMSDK, e dando OK.
««Let´s go»»
*Crie uma nova room, coloque o nome dela de load, e ponha ela como a 1ª do jogo.
no creation code dela, coloque:
//inicia a GMSDK no modo 3d
d3d_init()
//carregamos o modelo animado externo (.md2), e guardamos seu índice de criação na var model_char.
global.char=d3d_load_md2("char.md2")
//mudamos de room
room_goto_next()
*Baixe essa textura:
http://dl.dropbox.com/u/43446077/tutoriais/bchar.png
Crie uma background, e coloque ela,ponha o nome de: bchar
*Crie um objeto, e coloque o nome dele de: ochar.
No create dele,coloque:
//definimos a var z=0 para o objeto:
z=25
No draw:
//desenhamos o modelo na posição do objetos na room, com a textura indicada:
d3d_md2_draw(global.char,x,y,z,background_get_texture(bchar))
No Key_Press_Space:
//exibimos uma mensagem, mostrando qual frame está sendo renderizado no momento / quantos frames ele tem,
show_message("
FRAMES: "+string(d3d_md2_frame_index(global.char))+" / "+string(d3d_md2_frames(global.char)))
*Coloque o objeto ochar na 2ª room, que é onde está a câmera, e teste o jogo.
Crie uma background, e coloque ela,ponha o nome de: bchar
*Crie um objeto, e coloque o nome dele de: ochar.
No create dele,coloque:
//definimos a var z=0 para o objeto:
z=25
No draw:
//desenhamos o modelo na posição do objetos na room, com a textura indicada:
d3d_md2_draw(global.char,x,y,z,background_get_texture(bchar))
No Key_Press_Space:
//exibimos uma mensagem, mostrando qual frame está sendo renderizado no momento / quantos frames ele tem,
show_message("
FRAMES: "+string(d3d_md2_frame_index(global.char))+" / "+string(d3d_md2_frames(global.char)))
*Coloque o objeto ochar na 2ª room, que é onde está a câmera, e teste o jogo.
Caminhe até o objeto, e veja que o modelo renderiza a animação perfeitamente!
Se você não conseguiu fazer a engine, aqui vai o link: DOWNLOAD
CRÉDITOS:
Modelo do char e textura: Engine de exemplo da md2.dll .
Até + !
CRÉDITOS:
Modelo do char e textura: Engine de exemplo da md2.dll .
Até + !
Nenhum comentário:
Postar um comentário