[GM:S] Importar modelos .OBJ?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[GM:S] Importar modelos .OBJ?

Mensagem por gabrielsch em Sex 15 Fev 2013, 09:43

Faz algum tempo que o Game Maker Studio foi lançado e até agora não vi nenhuma maneira de importar um modelo 3D com a extensão .obj. O motivo pelo qual eu preciso importar esse tipo de modelo é que ele é facil de se encontrar em sites de modelos 3D gratuitos e a maioria dos modeladores aceitam esse tipo de extensão.

Há alguns scripts que eram usados nas versões anteriores do Game Maker e que não utilizam DLLs, esses conseguem importar os modelos em um jogo feito no GM:S mas as texturas ficam erradas, é como se não tivesse feito um UV Map nelas. Gostaria de saber se alguém conhece algum jeito de carregar esse tipo de modelo (por script ou por dll mesmo), nem que seja de forma um pouco lenta.

OBS: Tentei usar uma DLL que se não me engano foi feita pelo Jiraya mas ela não funcionou nas outras versões, já nas antigas elas é rápida e importa as texturas corretamente.
OBS²: Todos os modelos em que testei estavam com o UV Map correto.

Flw! sorrindo2

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por peixoto em Sex 15 Fev 2013, 11:15

Cara se houver como fazer isso só com uma extensão(e até agora não vi nenhuma para fazer tal coisa também).

OBS: Tentei usar uma DLL que se não me engano foi feita pelo Jiraya mas ela não funcionou nas outras versões, já nas antigas elas é rápida e importa as texturas corretamente.

Evite usar Dlls.Elas podem funcionar em um sistema, mas se você for exportar para mais um(por exemplo:Windows e android) ela pode não funcionar, e dar problemas no jogo.

Como o GMS ainda está engatinhando, por enquanto é melhor usar só extensões, ok? afro

peixoto

Ranking : Nota D
Número de Mensagens : 911
Idade : 21
Data de inscrição : 14/02/2010
Notas recebidas : D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por gabrielsch em Sex 15 Fev 2013, 11:21

No meu caso vou exportar apenas para Windows, só quero utilizar o 3D no Game Maker: Studio porque é muito mais rapido que as outras versões, não quero ter que voltar para o GM 8 e enfrentar dificuldades com o desempenho.

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por peixoto em Sex 15 Fev 2013, 11:52

Bem acho que o melhor é esperar lançarem alguma Dll que ajude a importar os modelos .obj, ou pedir ao jiraya que atualize a dll Razz

peixoto

Ranking : Nota D
Número de Mensagens : 911
Idade : 21
Data de inscrição : 14/02/2010
Notas recebidas : D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por Super Maker em Sex 15 Fev 2013, 12:20

Você já tentou usar o incluided files?

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por Rodrigo Santiago em Sex 15 Fev 2013, 12:28

Gente e muito facil ler .obj!!!
A formatacao e basica, o problema com uv e pq o obj e em grupos e nao so uma textura, as uvs deveriam ficar somente na sua textura, mas como so exist uma elas erram.
Eu criei um programa que transforma varias em uma so! Vai no meu tutorial em Perguntas e respostas(errei o topico)k mas o problema e que a versao do meu programa que upei so le txt(que e quase obj) mas e so converter com o milkshape.
(obs o prog ta na apostila medium)

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por gabrielsch em Sex 15 Fev 2013, 15:40

#Peixoto

É quem sabe o Jiraya possa dar uma ajuda...

#Super Maker

Os arquivos .obj estão nos Included Files assim como qualquer DLL que eu tentei utilizar, as texturas estão em background/sprites e eu apenas as defino como textura em uma variável.

#Rodrigo Santiago

Na realidade eu pretendo usar modelos com apenas uma textura, até onde sei só achei uma engine que conseguia importar múltiplas texturas usando o arquivo .mtl do modelo, mas era muito extenso e tinha alguns bug ao carregar alguns com muitos polígonos.

Flw! sorrindo2

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por Jiraya em Sex 15 Fev 2013, 16:55

vc pode converter o modelo .obj para .d3d nativo do game maker, assim carregara muito mais rapido...

Posso tentar fazer uma extensão compativel com todas plataformas, mas só no final de
semana...

Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por JoaoVanBlizzard em Sex 15 Fev 2013, 18:14

Eu uso um programa chamado "Model creator for game maker" tipo eu importo para ele um modelo no formato obj. (eu conserto a textura nele mesmo) e depois exporto no formato" gmmod " ,para ler esse formato no gm é o mesmo sistema do" D3D ".

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por gabrielsch em Sex 15 Fev 2013, 19:03

#JoaoVanBlizzard

Sim, eu tenho ele aqui e acabei de arrumar a textura de um barril para meu jogo e logo depois exportei como .gmmod, coloquei no jogo e funcionou perfeitamente!

#Jiraya

Sim, eu já tinha feito isso mas o problema é que vou comprar um pacote com mais de 100 modelos low-poly e eles vem em .obj com uma textura para cada modelo. Eu poderia muito bem pegar esses 100 modelos e ir arrumando o UV Map deles se necessário e exportar para .gmmod mas isso ia demorar bastante por isso pedi alguma forma de importa-los no Game Maker. Agradeço muito se fizer essa extensão, além de me ajudar nesse problema vai ajudar muitas outras que estão com o mesmo problema.

Flw! sorrindo2

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por Jiraya em Sab 16 Fev 2013, 14:27


Código:

//LoadWaveFront(filename)
var a=argument0,b=ds_list_create(),c,d=ds_list_create(),e=ds_list_create(),f=ds_list_create(),g=ds_list_create(),h=ds_list_create(),i=ds_list_create(),j=ds_list_create(),k=ds_list_create(),l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,E,F,G,H,I,J,K,L;
ds_list_add(b,0)ds_list_add(d,0)ds_list_add(e,0)ds_list_add(f,0)ds_list_add(g,0)ds_list_add(h,0)ds_list_add(i,0)ds_list_add(j,0)ds_list_clear(k)l=file_text_open_read(a)for(L=0;file_text_eof(l)==false;L++){m=file_text_read_string(l)m=string_replace_all(m,"  "," ")if(string_char_at(m,1)=="v" && string_char_at(m,2)==" "){
m=string_delete(m,1,string_pos(" ",m))n=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))o=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))p=real(string_copy(m,1,string_length(m)))ds_list_add(b,n)ds_list_add(d,o)ds_list_add(e,p)}
if(string_char_at(m,1)=="v" && string_char_at(m,2)=="n"){m=string_delete(m,1,string_pos(" ",m))q=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))r=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))s=real(string_copy(m,1,string_length(m)))ds_list_add(f,q)ds_list_add(g,r)ds_list_add(h,s)}
if(string_char_at(m,1)=="v" && string_char_at(m,2)=="t"){m=string_delete(m,1,string_pos(" ",m))t=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))u=real(string_copy(m,1,string_length(m)))ds_list_add(i,t)ds_list_add(j,u)}
if(string_char_at(m,1)=="f" && string_char_at(m,2)==" "){m=string_replace_all(m,"  "," ")m=string_delete(m,1,string_pos(" ",m))if(string_char_at(m,string_length(m))==" ")m=string_copy(m,0,string_length(m)-1)v=string_count(" ",m)w=1;A[0]=0;
for(H=0;H<v;H+=1){f=string_copy(m,1,string_pos(" ",m))m=string_delete(m,1,string_pos(" ",m))A[w]=f;w++}
f=string_copy(m,1,string_length(m))A[w]=f;if(w==3){K=A[2];J=A[3];I=A[1];ds_list_add(k,K)ds_list_add(k,J)ds_list_add(k,I)}else{K=A[2];J=A[3];I=A[1];ds_list_add(k,K)ds_list_add(k,J)ds_list_add(k,I)
for(t=0;t<w-3;t+=1){K=A[4+t];J=A[1];I=A[3+t];ds_list_add(k,K)ds_list_add(k,J)ds_list_add(k,I)}}}file_text_readln(l)}file_text_close(l)
B=d3d_model_create()C=0;d3d_model_primitive_begin(B,pr_trianglelist)for(H=0;H<ds_list_size(k)H++){F=ds_list_find_value(k,H)if(string_count("/",F)==0){G=F;D=-1;E=-1}
if(string_count("/",F)==1){G=string_copy(F,1,string_pos("/",F)-1)F=string_delete(F,1,string_pos("/",F))D=string_copy(F,1,string_length(F))E=-1}
if(string_count("/",F)==2 && string_count("//",F)==0){G=string_copy(F,1,string_pos("/",F)-1)F=string_delete(F,1,string_pos("/",F))D=string_copy(F,1,string_pos("/",F)-1)F=string_delete(F,1,string_pos("/",F))E=string_copy(F,1,string_length(F))}
if(string_count("/",F)==2 && string_count("//",F)==1){F=string_replace(F,"//","/")G=string_copy(F,1,string_pos("/",F)-1)F=string_delete(F,1,string_pos("/",F))D=-1;E=string_copy(F,1,string_length(F))}
n=ds_list_find_value(b,floor(real(G)))o=ds_list_find_value(d,floor(real(G)))p=ds_list_find_value(e,floor(real(G)))
if(floor(real(E))!=-1 && ds_list_size(f)>=1){q=b*ds_list_find_value(f,floor(real(E)))r=b*ds_list_find_value(g,floor(real(E)))s=b*ds_list_find_value(h,floor(real(E)))}else{q=0;r=0;s=0;}
if(floor(real(D))!=-1 && ds_list_size(i)>=1){t=ds_list_find_value(i,floor(real(D)))u=ds_list_find_value(j,floor(real(D)))}else{t=0;u=0;}
d3d_model_vertex_normal_texture(B,n,o,p,q,r,s,t,u)C+=1;if(C==999){C=0;d3d_model_primitive_end(B)d3d_model_primitive_begin(B,pr_trianglelist)}}d3d_model_primitive_end(B)
ds_list_destroy(d)ds_list_destroy(e)ds_list_destroy(f)ds_list_destroy(g)ds_list_destroy(h)ds_list_destroy(i)ds_list_destroy(j)ds_list_destroy(k)
return B;
LoadWaveFront:

//LoadWaveFront(filename)
var a=argument0,b=ds_list_create(),c,d=ds_list_create(),e=ds_list_create(),f=ds_list_create(),g=ds_list_create(),h=ds_list_create(),i=ds_list_create(),j=ds_list_create(),k=ds_list_create(),l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,E,F,G,H,I,J,K,L;
ds_list_add(b,0)ds_list_add(d,0)ds_list_add(e,0)ds_list_add(f,0)ds_list_add(g,0)ds_list_add(h,0)ds_list_add(i,0)ds_list_add(j,0)ds_list_clear(k)l=file_text_open_read(a)for(L=0;file_text_eof(l)==false;L++){m=file_text_read_string(l)m=string_replace_all(m," "," ")if(string_char_at(m,1)=="v" && string_char_at(m,2)==" "){
m=string_delete(m,1,string_pos(" ",m))n=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))o=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))p=real(string_copy(m,1,string_length(m)))ds_list_add(b,n)ds_list_add(d,o)ds_list_add(e,p)}
if(string_char_at(m,1)=="v" && string_char_at(m,2)=="n"){m=string_delete(m,1,string_pos(" ",m))q=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))r=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))s=real(string_copy(m,1,string_length(m)))ds_list_add(f,q)ds_list_add(g,r)ds_list_add(h,s)}
if(string_char_at(m,1)=="v" && string_char_at(m,2)=="t"){m=string_delete(m,1,string_pos(" ",m))t=real(string_copy(m,1,string_pos(" ",m)))m=string_delete(m,1,string_pos(" ",m))u=real(string_copy(m,1,string_length(m)))ds_list_add(i,t)ds_list_add(j,u)}
if(string_char_at(m,1)=="f" && string_char_at(m,2)==" "){m=string_replace_all(m," "," ")m=string_delete(m,1,string_pos(" ",m))if(string_char_at(m,string_length(m))==" ")m=string_copy(m,0,string_length(m)-1)v=string_count(" ",m)w=1;A[0]=0;
for(H=0;Hf=string_copy(m,1,string_length(m))A[w]=f;if(w==3){K=A[2];J=A[3];I=A[1];ds_list_add(k,K)ds_list_add(k,J)ds_list_add(k,I)}else{K=A[2];J=A[3];I=A[1];ds_list_add(k,K)ds_list_add(k,J)ds_list_add(k,I)
for(t=0;tB=d3d_model_create()C=0;d3d_model_primitive_begin(B,pr_trianglelist)for(H=0;Hif(string_count("/",F)==1){G=string_copy(F,1,string_pos("/",F)-1)F=string_delete(F,1,string_pos("/",F))D=string_copy(F,1,string_length(F))E=-1}
if(string_count("/",F)==2 && string_count("//",F)==0){G=string_copy(F,1,string_pos("/",F)-1)F=string_delete(F,1,string_pos("/",F))D=string_copy(F,1,string_pos("/",F)-1)F=string_delete(F,1,string_pos("/",F))E=string_copy(F,1,string_length(F))}
if(string_count("/",F)==2 && string_count("//",F)==1){F=string_replace(F,"//","/")G=string_copy(F,1,string_pos("/",F)-1)F=string_delete(F,1,string_pos("/",F))D=-1;E=string_copy(F,1,string_length(F))}
n=ds_list_find_value(b,floor(real(G)))o=ds_list_find_value(d,floor(real(G)))p=ds_list_find_value(e,floor(real(G)))
if(floor(real(E))!=-1 && ds_list_size(f)>=1){q=b*ds_list_find_value(f,floor(real(E)))r=b*ds_list_find_value(g,floor(real(E)))s=b*ds_list_find_value(h,floor(real(E)))}else{q=0;r=0;s=0;}
if(floor(real(D))!=-1 && ds_list_size(i)>=1){t=ds_list_find_value(i,floor(real(D)))u=ds_list_find_value(j,floor(real(D)))}else{t=0;u=0;}
d3d_model_vertex_normal_texture(B,n,o,p,q,r,s,t,u)C+=1;if(C==999){C=0;d3d_model_primitive_end(B)d3d_model_primitive_begin(B,pr_trianglelist)}}d3d_model_primitive_end(B)
ds_list_destroy(d)ds_list_destroy(e)ds_list_destroy(f)ds_list_destroy(g)ds_list_destroy(h)ds_list_destroy(i)ds_list_destroy(j)ds_list_destroy(k)
return B;
Use isso como um quebra galho...

o código foi otimizado por mim para executar mais rápido...


Última edição por Jiraya em Sab 16 Fev 2013, 14:37, editado 2 vez(es)

Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Re: [GM:S] Importar modelos .OBJ?

Mensagem por Conteúdo patrocinado Hoje à(s) 01:50


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum