Cambalinho
Membro
Membro
Autor
Mensagens: 59
Registrado em: Qui Jul 20, 2017 9:59 am
Karma: 25

como desenhar 3D 1 objecto usando sprites?

Sáb Ago 19, 2017 1:52 pm

veja esta imagem:
Imagem

ao observar esta imagem, nós podemos ver diversas subimagens para movimentos  e a volta do monstro.
sem falar da animação... como posso juntar algumas subimagens para desenhar o monstro em 3D?
(assim, com a camara podia ver o monstro por completo)

Tags:
 
Avatar do usuário
J_Marlon
Membro
Membro
Mensagens: 39
Registrado em: Dom Ago 23, 2015 1:37 am
Karma: 66

Re: como desenhar 3D 1 objecto usando sprites?

Seg Ago 21, 2017 3:53 am

Existia um tutorial de FPS feito para o antigo Game Maker e em um dos processos ensinava a técnica para desenhar os sprites dos monstros 2D em ambiente 3D.

Imagem

O site original onde o tutorial estava (sandbox) já não existe mais mas você ainda pode encontrar os arquivos para download aqui:
https://enigma-dev.org/edc/games.php?game=43

Os editáveis foram feitos para o Game Maker 7, portanto você precisa ativar a opção "Used for 3D" nas properties dos Sprites e Backgrounds caso for usar o GameMaker: Studio.
 
Cambalinho
Membro
Membro
Autor
Mensagens: 59
Registrado em: Qui Jul 20, 2017 9:59 am
Karma: 25

Re: como desenhar 3D 1 objecto usando sprites?

Seg Ago 21, 2017 6:22 am

desculpa, só usam o sprite frontal e não usam, tambem, lateral e trás.
a minha questão é: como posso desenhar esse monstro dando 1 efeito 3D(incluir frente, trás e lateral)?
 
Avatar do usuário
WellingtonBecker
Membro
Membro
Mensagens: 57
Registrado em: Seg Mai 16, 2016 8:28 pm
Karma: 113

Re: como desenhar 3D 1 objecto usando sprites?

Seg Ago 21, 2017 10:02 am

Você poderia fazer isso com o blender no qual se modela em 3D, em seguida, cria-se sprites do angulo que quiser.
No link abaixo uma simples demonstração de como faze-lo.
https://www.youtube.com/watch?v=cCCO_thw164
 
Cambalinho
Membro
Membro
Autor
Mensagens: 59
Registrado em: Qui Jul 20, 2017 9:59 am
Karma: 25

Re: como desenhar 3D 1 objecto usando sprites?

Seg Ago 21, 2017 10:24 am

wellingtonBecker, como voce viu, eu tenho as imagens o meu problema é como as desenho para dar o efeito 3D.
como era o Doom? não era assim ou usavam modelos?
 
Avatar do usuário
J_Marlon
Membro
Membro
Mensagens: 39
Registrado em: Dom Ago 23, 2015 1:37 am
Karma: 66

Re: como desenhar 3D 1 objecto usando sprites?

Ter Ago 22, 2017 2:24 am

Nesse caso, você precisa encontrar uma forma de calcular uma variável angulo (Em relação ao player e direção de movimento do monstro) para indexar as sprites/subimagens de acordo.

Well, eu gostaria de ser mais especifico mas não conheço muito bem o funcionamento do 3D no GMS.
 
Cambalinho
Membro
Membro
Autor
Mensagens: 59
Registrado em: Qui Jul 20, 2017 9:59 am
Karma: 25

Re: como desenhar 3D 1 objecto usando sprites?

Qua Ago 23, 2017 6:45 pm

eu consegui alguma coisa, mas ainda noto erros:
//evento Create:
z=40;
p=64;
w=64;
h=64;
image_speed=0;
angle=point_direction(x, y, objCamera.x, objCamera.y)
image_index=angle*(image_number)/360 *10;

//evento Step:
angle=point_direction(x, y, objCamera.x, objCamera.y)
image_index=ceil(angle*(image_number)/360 *10);

//evento Draw:
d3d_transform_set_identity();
d3d_transform_add_rotation_z(point_direction(x, y, objCamera.x, objCamera.y)+90);
d3d_transform_add_translation(x, y, z)
d3d_draw_wall(0+64,0+64, 0+64, 0, 0, 0, sprite_get_texture(sprCacodemon,image_index),1,1);
d3d_transform_set_identity();

erros:
1 - os ângulos ainda não estão correctos, a imagem pode variar mais do que devia;
2 - falta fazer com que a primeira imagem corresponda á direcção do monstro(a face).
podes me ajudar a corrigir esses cálculos?
 
Avatar do usuário
J_Marlon
Membro
Membro
Mensagens: 39
Registrado em: Dom Ago 23, 2015 1:37 am
Karma: 66

Re: como desenhar 3D 1 objecto usando sprites?

Qua Ago 23, 2017 10:33 pm

O objCamera somente desenha a view ou também é o player?

Também não entendi o porquê do *10 ou do ceil no código. 

Sugiro as seguintes alterações:

Create
z=40;
p=64;
w=64;
h=64;

image_speed = 0;
angle = point_direction(x, y, objCamera.x, objCamera.y);
image_index = angle*image_number/360;


Step
angle = point_direction(x, y, objCamera.x, objCamera.y);
image_index = angle*image_number/360;


Quanto a face do monstro, imagino que será necessário organizar a colocação das subimagens da sprite para exibir corretamente.
1
 
Avatar do usuário
Mega
Programador
Programador
Mensagens: 71
Registrado em: Dom Mai 22, 2016 6:20 pm
Karma: 104

Re: como desenhar 3D 1 objecto usando sprites?

Qua Ago 23, 2017 10:53 pm

Não sei ao certo oque você quer,mas eu fiz oque eu entendi (e nem me pergunte como eu fiz '-',eu simplesmente estava inspirado :sorrir:)
Obs :Tem 2 gifs uma com a opção "Interpolate colors between pixels" ativada e outra desativada só pra ver a diferença
Obs2:Esqueci de tirar o mouse :P
Fazer uma breve explicação aqui.
O Personagem ai tem 8 sprites viradas para 8 direções,o propio personagem tem uma direção só dele,mas dependendo de onde a camera (jogador) estiver ele muda de sprite (mas continua á olhar a direção propia).
Edit:Eu durmo cedo então se for isso mesmo oq vc procura envia a mensagem e tentarei responder o mais rapido possivel (eu estudo a tarde 13:00 até as 17:30) o resto desse tempo estou em casa (ae depende da internet xD)

Gif 1  (com "Interpolate colors between pixels")
Imagem
Gif 2  (sem "Interpolate colors between pixels")
Imagem
 
Cambalinho
Membro
Membro
Autor
Mensagens: 59
Registrado em: Qui Jul 20, 2017 9:59 am
Karma: 25

Re: como desenhar 3D 1 objecto usando sprites?

Qui Ago 24, 2017 5:35 am

sim Mega, é mesmo isso ;)
J_Marlon o '*10' é por causa de ter 1 numero superior a zero, porque esse calculo da-me numeros reais.
1

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante