GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08

» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21


como colocar modelação 3d no game maker

3 participantes

Ir para baixo

como colocar modelação 3d no game maker Empty como colocar modelação 3d no game maker

Mensagem por Spadan_RTicou Seg 24 Jan 2011, 22:04

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 Zangado .
agradeço pelas resposta!!! Happy
Spadan_RTicou
Spadan_RTicou

Data de inscrição : 13/11/2010
Reputação : 1
Número de Mensagens : 71
Prêmios : como colocar modelação 3d no game maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

como colocar modelação 3d no game maker Empty Re: como colocar modelação 3d no game maker

Mensagem por Markituh Seg 24 Jan 2011, 22:15

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
Aí no draw só desenhar com o d3d_model_drawl:
Código:
d3d_model_draw(modelo,x,y,z,textura)
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : como colocar modelação 3d no game maker Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

como colocar modelação 3d no game maker Empty Re: como colocar modelação 3d no game maker

Mensagem por Henrique_GJ Seg 24 Jan 2011, 22:23

crie um script chamado createFromObj e coloque nele o seguinte codigo:

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
Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : como colocar modelação 3d no game maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Java
  • C ou C++


http://sitedosjogos.forumeiros.com

Ir para o topo Ir para baixo

como colocar modelação 3d no game maker Empty Re: como colocar modelação 3d no game maker

Mensagem por Spadan_RTicou Seg 24 Jan 2011, 22:26

ai cara, vwl eu agradeço pacarvalho
eu posso responder algumas das suas duvidas
Spadan_RTicou
Spadan_RTicou

Data de inscrição : 13/11/2010
Reputação : 1
Número de Mensagens : 71
Prêmios : como colocar modelação 3d no game maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

como colocar modelação 3d no game maker Empty Re: como colocar modelação 3d no game maker

Mensagem por Henrique_GJ Seg 24 Jan 2011, 22:35

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
Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : como colocar modelação 3d no game maker Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Java
  • C ou C++


http://sitedosjogos.forumeiros.com

Ir para o topo Ir para baixo

como colocar modelação 3d no game maker Empty Re: como colocar modelação 3d no game maker

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos