Como colocar Sprites em jogos em 3D?

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

Como colocar Sprites em jogos em 3D?

Mensagem por M.F-Sasuke 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!

M.F-Sasuke

Número de Mensagens : 167
Idade : 19
Data de inscrição : 20/08/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como colocar Sprites em jogos em 3D?

Mensagem por Jiraya 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)

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: Como colocar Sprites em jogos em 3D?

Mensagem por M.F-Sasuke em Qui 23 Dez 2010, 14:04

não entendi?

M.F-Sasuke

Número de Mensagens : 167
Idade : 19
Data de inscrição : 20/08/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como colocar Sprites em jogos em 3D?

Mensagem por M.F-Sasuke em Qui 06 Jan 2011, 10:03

Me ajudem por favoooorrrr!!!!!!!!!!

M.F-Sasuke

Número de Mensagens : 167
Idade : 19
Data de inscrição : 20/08/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como colocar Sprites em jogos em 3D?

Mensagem por Henrique_GJ 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 '--

Henrique_GJ

Número de Mensagens : 1344
Idade : 19
Data de inscrição : 30/12/2009
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://sitedosjogos.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Como colocar Sprites em jogos em 3D?

Mensagem por M.F-Sasuke 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.

M.F-Sasuke

Número de Mensagens : 167
Idade : 19
Data de inscrição : 20/08/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como colocar Sprites em jogos em 3D?

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

Henrique_GJ

Número de Mensagens : 1344
Idade : 19
Data de inscrição : 30/12/2009
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://sitedosjogos.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Como colocar Sprites em jogos em 3D?

Mensagem por Markituh 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

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como colocar Sprites em jogos em 3D?

Mensagem por Shadow10 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)

Shadow10

Ranking : Nota C
Número de Mensagens : 429
Data de inscrição : 07/11/2010
Notas recebidas : C
Reputação : 19
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como colocar Sprites em jogos em 3D?

Mensagem por M.F-Sasuke em Sab 08 Jan 2011, 12:25

Po cara isso ñ funcionou aki tb!

M.F-Sasuke

Número de Mensagens : 167
Idade : 19
Data de inscrição : 20/08/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como colocar Sprites em jogos em 3D?

Mensagem por Conteúdo patrocinado Hoje à(s) 00:04


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