Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
como colocar modelação 3d no game maker
3 participantes
Página 1 de 1
como colocar modelação 3d no game maker
já to quase criando um jogo de tiro, mas o que não me cala é saber como colocar modelação 3d no game maker utilisando o d3d_draw_model .
agradeço pelas resposta!!!
agradeço pelas resposta!!!
Spadan_RTicou- Data de inscrição : 13/11/2010
Reputação : 1
Número de Mensagens : 71
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como colocar modelação 3d no game maker
Bom, primeiro você precisa de um script que importa o arquivo. Tem um chamado MosaicLight, que você pode encontrar na própria GMC. Ele carrega arquivos .obj, então exporte no seu modelador para este formato. O MosaicLight retorna o modelo num formato legível para o Game Maker, então chame o script numa variável, desta forma:
- Código:
modelo = createFromObj("modelo.obj")
textura = background_get_texture(background_que_contem_a_textura
- Código:
d3d_model_draw(modelo,x,y,z,textura)
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como colocar modelação 3d no game maker
crie um script chamado createFromObj e coloque nele o seguinte codigo:
depois no create coloque o codigo
modelo = createFromObj("nome do modelo.obj")
textura = background_get_texture(back) ou sprite_get_texture(sprite,subimg)
depois no draw
d3d_model_draw(modelo,x,y,z,textura)
prontu
mas lembre-se que o codigo no create trava o jogo por alguns segundos, então não é aconselhavel importar durante o jogo, coloque no game_start e crie um barra de carregand o e talz que fica bom
- Código:
filename=argument0;
flipnormals = 1;
if (argument1>0) flipnormals=-1;
vertex_list1=ds_list_create();ds_list_clear(vertex_list1);ds_list_add(vertex_list1,0);
vertex_list2=ds_list_create();ds_list_clear(vertex_list2);ds_list_add(vertex_list2,0);
vertex_list3=ds_list_create();ds_list_clear(vertex_list3);ds_list_add(vertex_list3,0);
normal_list1=ds_list_create();ds_list_clear(normal_list1);ds_list_add(normal_list1,0);
normal_list2=ds_list_create();ds_list_clear(normal_list2);ds_list_add(normal_list2,0);
normal_list3=ds_list_create();ds_list_clear(normal_list3);ds_list_add(normal_list3,0);
texture_list1=ds_list_create();ds_list_clear(texture_list1);ds_list_add(texture_list1,0);
texture_list2=ds_list_create();ds_list_clear(texture_list2);ds_list_add(texture_list2,0);
faces_list=ds_list_create();ds_list_clear(faces_list);
fp=file_text_open_read(filename);
for (i=0;file_text_eof(fp)==false;i+=1) {
row=file_text_read_string(fp);row=string_replace_all(row," "," ");
if (string_char_at(row,1)=="v" && string_char_at(row,2)==" ") {
row=string_delete(row,1,string_pos(" ",row));
vx=real(string_copy(row,1,string_pos(" ",row)));
row=string_delete(row,1,string_pos(" ",row));
vy=real(string_copy(row,1,string_pos(" ",row)));
row=string_delete(row,1,string_pos(" ",row));
vz=real(string_copy(row,1,string_length(row)));
ds_list_add(vertex_list1,vx);
ds_list_add(vertex_list2,vy);
ds_list_add(vertex_list3,vz);
}
if (string_char_at(row,1)=="v" && string_char_at(row,2)=="n") {
row=string_delete(row,1,string_pos(" ",row));
nx=real(string_copy(row,1,string_pos(" ",row)));
row=string_delete(row,1,string_pos(" ",row));
ny=real(string_copy(row,1,string_pos(" ",row)));
row=string_delete(row,1,string_pos(" ",row));
nz=real(string_copy(row,1,string_length(row)));
ds_list_add(normal_list1,nx);
ds_list_add(normal_list2,ny);
ds_list_add(normal_list3,nz);
}
if (string_char_at(row,1)=="v" && string_char_at(row,2)=="t") {
row=string_delete(row,1,string_pos(" ",row));
tx=real(string_copy(row,1,string_pos(" ",row)));
row=string_delete(row,1,string_pos(" ",row));
ty=real(string_copy(row,1,string_length(row)));
ds_list_add(texture_list1,tx);
ds_list_add(texture_list2,ty);
}
if (string_char_at(row,1)=="f" && string_char_at(row,2)==" ") {
row=string_replace_all(row," "," ");
row=string_delete(row,1,string_pos(" ",row));
if (string_char_at(row,string_length(row))==" ") row=string_copy(row,0,string_length(row)-1);
face_num=string_count(" ",row);
face_division=1;
temp_faces[0]=0;
for (fc=0;fc<face_num;fc+=1) {
f=string_copy(row,1,string_pos(" ",row));
row=string_delete(row,1,string_pos(" ",row));
temp_faces[face_division]=f;
face_division+=1;
}
f=string_copy(row,1,string_length(row));temp_faces[face_division]=f;
if (face_division==3) {
f1=temp_faces[2];
f2=temp_faces[3];
f3=temp_faces[1];
ds_list_add(faces_list,f1);
ds_list_add(faces_list,f2);
ds_list_add(faces_list,f3);
} else {
f1=temp_faces[2];
f2=temp_faces[3];
f3=temp_faces[1];
ds_list_add(faces_list,f1);
ds_list_add(faces_list,f2);
ds_list_add(faces_list,f3);
for (t=0;t<face_division-3;t+=1) {
f1=temp_faces[4+t];
f2=temp_faces[1];
f3=temp_faces[3+t];
ds_list_add(faces_list,f1);
ds_list_add(faces_list,f2);
ds_list_add(faces_list,f3);
}
}
}
file_text_readln(fp);
}
file_text_close(fp);
tm=d3d_model_create();
tsn=0;
d3d_model_primitive_begin(tm,pr_trianglelist);
for (fc=0;fc<ds_list_size(faces_list);fc+=1) {
sub_face=ds_list_find_value(faces_list,fc);
if (string_count("/",sub_face)==0) {
f_index=sub_face;
t_index=-1;
n_index=-1;
}
if (string_count("/",sub_face)==1) {
f_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
sub_face=string_delete(sub_face,1,string_pos("/",sub_face));
t_index=string_copy(sub_face,1,string_length(sub_face));
n_index=-1;
}
if (string_count("/",sub_face)==2 && string_count("//",sub_face)==0) {
f_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
sub_face= string_delete(sub_face,1,string_pos("/",sub_face));
t_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
sub_face= string_delete(sub_face,1,string_pos("/",sub_face));
n_index=string_copy(sub_face,1,string_length(sub_face));
}
if (string_count("/",sub_face)==2 && string_count("//",sub_face)==1) {
sub_face=string_replace(sub_face,"//","/");
f_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
sub_face= string_delete(sub_face,1,string_pos("/",sub_face));
t_index=-1;
n_index=string_copy(sub_face,1,string_length(sub_face));
}
vx=ds_list_find_value(vertex_list1,floor(real(f_index)));
vy=ds_list_find_value(vertex_list2,floor(real(f_index)));
vz=ds_list_find_value(vertex_list3,floor(real(f_index)));
if (floor(real(n_index))!=-1 && ds_list_size(normal_list1)>=1) {
nx=flipnormals*ds_list_find_value(normal_list1,floor(real(n_index)));
ny=flipnormals*ds_list_find_value(normal_list2,floor(real(n_index)));
nz=flipnormals*ds_list_find_value(normal_list3,floor(real(n_index)));
} else {
nx=0;
ny=0;
nz=0;
}
if (floor(real(t_index))!=-1 && ds_list_size(texture_list1)>=1) {
tx=ds_list_find_value(texture_list1,floor(real(t_index)));
ty=ds_list_find_value(texture_list2,floor(real(t_index)));
} else {
tx=0;
ty=0;
}
d3d_model_vertex_normal_texture(tm,vx,vy,vz,nx,ny,nz,tx,ty);
tsn+=1;
if (tsn==999) {
tsn=0;
d3d_model_primitive_end(tm);
d3d_model_primitive_begin(tm,pr_trianglelist);
}
}
d3d_model_primitive_end(tm);
return tm;
depois no create coloque o codigo
modelo = createFromObj("nome do modelo.obj")
textura = background_get_texture(back) ou sprite_get_texture(sprite,subimg)
depois no draw
d3d_model_draw(modelo,x,y,z,textura)
prontu
mas lembre-se que o codigo no create trava o jogo por alguns segundos, então não é aconselhavel importar durante o jogo, coloque no game_start e crie um barra de carregand o e talz que fica bom
Re: como colocar modelação 3d no game maker
ai cara, vwl eu agradeço pacarvalho
eu posso responder algumas das suas duvidas
eu posso responder algumas das suas duvidas
Spadan_RTicou- Data de inscrição : 13/11/2010
Reputação : 1
Número de Mensagens : 71
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como colocar modelação 3d no game maker
ps.: esse script que falei, se vc fizer o modelo no blender a imagem fica pequena .-. e em outros editores as vezes da erro
mas é facil, pega o anim8or, importa o modelo nele, e exporta denovo, e pronto
mas é facil, pega o anim8or, importa o modelo nele, e exporta denovo, e pronto
Tópicos semelhantes
» Como colocar um modelo 3D no game maker?
» Tem como colocar link no Game Maker?
» Como colocar um video no game maker?
» Como colocar os créditos nos jogos no Game Maker 8.0
» como colocar contador de pontos game maker 8.1?
» Tem como colocar link no Game Maker?
» Como colocar um video no game maker?
» Como colocar os créditos nos jogos no Game Maker 8.0
» como colocar contador de pontos game maker 8.1?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos