Conectar-se
Quem está conectado
16 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 16 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 20/08/2010
Número de Mensagens : 167
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Como colocar Sprites em jogos em 3D?

em Qui 23 Dez 2010, 13:47
Eu aprendi a criar um jogo em 3D mas ele so ensinou a colocar um cubo, mas ai eu tento colocar sprites no logar do cubo ai o sprite do personagem se multiplica em cubo e fica 1 em cada lado do cubo!

Se puderem me ensinar a por sprites e a colocar objetos numa room em 3D ou me mandar uma engine (de preferência com o link direto pois o GMBR não ta funcionando bem aqui no meu PC!).

Agradeço!
avatar
Ranking : Nota A
Notas recebidas : A+A
Data de inscrição : 20/03/2010
Número de Mensagens : 1134
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuáriohttps://www.facebook.com/seito.washiro.7

Re: Como colocar Sprites em jogos em 3D?

em Qui 23 Dez 2010, 13:59
caso esteja usando d3d_draw_block
vc pode modificar as vezes que a textura se repete nos ultimos 2 argumentos

a sprite age como uma textura nos modelos 3d
por tanto um modelo "bloco" tem seus devidos 6 lados cada lado com uma cordenada de textura semelhante ao do floor/wall
entao se vc quer aplicar uma textura uniforme no modelo voce precisar criar seu proprio modelo com suas proprias coordenadas
vc pode usar
Código:

d3d_model_primitive_begin(ind,tex);
e com o d3d_vertex_texture voce add vertices ao seu modelo com as coordenas xtex e ytex para modificar a posiçao da textura
voce tbm pode optar por usar modelos externos
como os do wavefront/x/md2/3ds
procure por scripts que carregam esses tipos de modelos para o game maker, pois assim vc pode criar seu modelo num editor 3d e fazer o uvmap dele e carregar no game maker.
;]


Última edição por Jiraya em Qui 23 Dez 2010, 14:06, editado 1 vez(es)
avatar
Data de inscrição : 20/08/2010
Número de Mensagens : 167
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como colocar Sprites em jogos em 3D?

em Qui 23 Dez 2010, 14:04
não entendi?
avatar
Data de inscrição : 20/08/2010
Número de Mensagens : 167
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como colocar Sprites em jogos em 3D?

em Qui 06 Jan 2011, 10:03
Me ajudem por favoooorrrr!!!!!!!!!!
avatar
Data de inscrição : 30/12/2009
Número de Mensagens : 1344
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://sitedosjogos.forumeiros.com

Re: Como colocar Sprites em jogos em 3D?

em Qui 06 Jan 2011, 10:32
ps.: ó o flood e post duplo desnecessario (OO)


se eu entendi o jiraya não entendeu. seu o jiraya entendeu eu é que não entendi anh!

o jiraya pensou que vc simplesmente quer usar a sprite como textura, ou seja, vc tem um quadrado e ele pensa que vc quer colocar a sprite como imagem dos lados desse quadrado

mas na verdade acho que vc quer colocar um obj 3d que vc criou em outro soft pra dentro do gm certo?

existe um script, postado no forum de scripts e extensões, é o utilizado pra isso, mas eu tentei e não consegui pois o script que ta la ele ta errado, falta algumas coisas e talz intão eu to precisando da resposta tbm

a terceira dimensão do gm é muito limitada '--
avatar
Data de inscrição : 20/08/2010
Número de Mensagens : 167
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como colocar Sprites em jogos em 3D?

em Qui 06 Jan 2011, 11:15
ps.: ó o flood e post duplo desnecessario (OO)


se eu entendi o jiraya não entendeu. seu o jiraya entendeu eu é que não entendi anh!

o jiraya pensou que vc simplesmente quer usar a sprite como textura, ou seja, vc tem um quadrado e ele pensa que vc quer colocar a sprite como imagem dos lados desse quadrado

mas na verdade acho que vc quer colocar um obj 3d que vc criou em outro soft pra dentro do gm certo?

existe um script, postado no forum de scripts e extensões, é o utilizado pra isso, mas eu tentei e não consegui pois o script que ta la ele ta errado, falta algumas coisas e talz intão eu to precisando da resposta tbm

a terceira dimensão do gm é muito limitada '--
é isso msm.
avatar
Data de inscrição : 30/12/2009
Número de Mensagens : 1344
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://sitedosjogos.forumeiros.com

Re: Como colocar Sprites em jogos em 3D?

em Qui 06 Jan 2011, 11:27
1° vc cria um script e nomeia ele de "createFromObj" ai vc coloca o seguinte script:

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

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 cria um objeto e coloca no create

Código:
modelo = createFromObj("nomedoobjeto.obj"); //Seleciona um modelo do seu computador
textura = background_get_texture(back_textura); //Adiciona uma textura ao seu modelo

agora quando vc quizer desenhar o objeto vc digita no draw:

Código:
d3d_model_draw(modelo,x,y,z,textura); //Desenha o modelo na room

pronto, mas não deu certo aqui em casa '--

esse script é de claudio bruno e foi postado por TKNF1995
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como colocar Sprites em jogos em 3D?

em Qui 06 Jan 2011, 11:41
É de Claudio Bruno? Sei não hein, vi esse script na GMC, é chamado Mosaic Light. Mas há uma possibilidade de ele ter postado lá study
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/11/2010
Número de Mensagens : 429
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como colocar Sprites em jogos em 3D?

em Sab 08 Jan 2011, 01:29
Se vocês querem fazer bonito,
Estudem isso aqui:
UV mapping

Só assim se aprende a fazer sprites no tamanho e formato ideal pra um modelo 3D.[spoiler][center


Última edição por Shadow10 em Qui 14 Abr 2011, 18:54, editado 1 vez(es)
avatar
Data de inscrição : 20/08/2010
Número de Mensagens : 167
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como colocar Sprites em jogos em 3D?

em Sab 08 Jan 2011, 12:25
Po cara isso ñ funcionou aki tb!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum