Páginas

terça-feira, 14 de junho de 2011

usando objetos 3D parte 2

Manipulação de Objetos 3D.

Seguindo o Post anterior vamos falar um pouco mais sobre a incersão de Objetos 3D no ambiente de jogo.

Ja aprendemos como importar os objetos e colocar a textura agora é hora de movelos e animalos.

Caso você queira fazer o objeto mover-se sobre o ambiente obviamente que você ira usar os comando TurnEntity e MoveEntity, que deve ser posto após o While Not KeyHit(1)

;Para Girar um objeto qualquer sobre seu proprio eixo se usa o TurnEntity.

If KeyDown (203) TurnEntity nome_do_objeto,0,2,0

;Para mover um objeto qualquer se usa o MoveEntity.

If KeyDown (208) MoveEntity corpo, 0,0,0.5

se deve indentificar a posção em que ela deve ser movida ou girada logicamente, em x,y e z.

ANIMANDO OBJETOS 3D

Bora fazer o incrivel dos jogos as animações.

O blitz como ja disse suporta modelos animados como o .x e o .md2
Arquivos animados em 3D se encontram de monte hoje em dia no google é só dar uma pesquisada que você encontrara modelos bem bacanas.

Exemplo em MD2.
As animações veem em frames é no blitz você apenas deve fazer o objeto animar de um frame ao outro e assim em diante.

por exemplo;
;carregamos a textura do objeto
textura=LoadTexture( "textura_do_modelo.bmp" )

;carregamos o objeto animado
objeto=LoadMD2( "objeto.md2" )

;ligamos a textura ao objeto
EntityTexture objeto,textura

;definimos sua posição
PositionEntity objeto,0,0,0

Para animar o objeto vem o comando AnimateMD2.

Adicione o comando apois o While Not KeyHit(1)

;insira o botão que vai ser precionado para animar, e em seguida o comando e seus atributos.
;Velocidade da animação, inicio de frame e termino de frame

If KeyDown(203) AnimateMD2 objeto,0,0,0,0

Abraços a Todos até o proximo tuto.

sábado, 22 de janeiro de 2011

usando objetos 3D parte 1

No blitz 3D você pode importar alguns tipos de formatos 3D (por exemplo: .x , .md2, .3ds)

Para criação de um jogo final é necessario aprender a dominar a modelagem 3D ou pelo menos o básico que é o que chama a atenção do gamer alem da proposta do jogoo emfim... vamos aprender um pouco.

Eu acho muito interreçante criar um jogo em dupla ou grupo pq?
geralmente uma pessoa vai ter mais habilidade em uma coisa mais que a outra.
Eu digo isso tambem pq é muito cansativo criar uma engine para o jogo, criar os objetos 3D e as animações alem de criar musicas exclusivas para seu jogo usando um mixer da internet.

Trabalhar criando objetos 3D pode ser até divertido mas exige uma pratica onde mais para frente vou ensinar a criar um modelo basico de um personagem ou objeto. aconselho todos a usarem o wings 3D um programa gratuito, simples de usar e muito poderoso.

Agora trabalhar com desenvolvimento de animações é chato, mas trás um resultado muito satisfatorio depois de feito com sucesso.
Aconselho a usar o Character Fx para animações até porque ele tem suporte b3d para o blitz e tem comando que são de facio compreendimento.

Logicamente um é decorrente do outro onde você cria o objeto 3D já imaginando como ele ficara posteriormente animado na segunda etapa.
Não precisamente um objeto 3D deve ser animado. Ele pode ser estavel ( uma cadeira, uma caixa ) e esses modelos são os .3ds
Personagens, Inimigos , passaros, animais em geral tudo que tem animação usa a extenção .x, .md2 ou o b3d.

Para você importar um objeto 3D para o jogo é muito simples basta trocar a entidade que você ja sabe fazer por exemplo CreateCube() pela função LoadMesh()

um exemplo bem basico:

Graphics3D 800,600,32,0
SetBuffer BackBuffer()

camera=CreateCamera()
CameraViewport camera,0,0,800,600
PositionEntity camera,1,1,2
personagem=LoadMesh( "objeto.formato" )
PositionEntity personagem,1,1,2


While Not KeyHit(1)

UpdateWorld
RenderWorld
Flip
Wend
End

Ta explicitamente explicado para colocar no lugar da parte colorida o nome do objeto e sua extenção na frente néh. xD

Assim você ja carrega um objeto 3D para seu game e caso o objeto venha com uma textura é simplesmtente usar o comando LoadTexture e EntityTexture nos seus devidos lugares por exemplo.

blablabla...

Texturadochao=LoadTexture ("imagem.bmp")
personagem=LoadMesh( "objeto.formato" )
PositionEntity personagem,1,1,2
EntityTexture personagem, texturadochao

...blablabla(8)

Na segunda parte vamos aprender sobre como usar suas propriedade e manipula-las.
Usar todos os tipos de codigos para se familiarizar com o projeto.

Frmza! Abraços a Todos que estão seguindo as aulas
Qualquer duvida estamos ai
Flows

quarta-feira, 19 de janeiro de 2011

nova interface do blog e oportunidade.

ja estava cansado daquele preto então coloquei algo mais suave aos olhos de quem enxerga =0 kkk

Estou criando um game para mandar para a GameLoft Brasil.

Se alguem quiser se juntar ao meu projeto estaremos sempre de portas abertas a novas ideias e opniões.

Membros até agora:

Mako182 ( Marcos Batista ) Programador 1
-Vaga aberta - Programador 2
-Vaga aberta - Programador 3
-Vaga aberta - Programador 4

Danilex ( Danilo Solza ) Enredo 1
-Vaga aberta - Enredo 2
-Vaga aberta - Enredo 3

DCS ( Daniel Carvalho ) Designer 3D 1
-Vaga aberta - Designer 3D 2
-Vaga aberta - Designer 3D 3
-Vaga aberta - Designer 3D 4

O game que estamos criando se chama Armored Mersenaries um jogo de ação e aventura em que você controla Lex um agora mersenario em busca de vingança contra a morte de sua familia que foi violentamente destruida um dia antes do natal.
No game você tem a disposição tank's de guerra, carros, gipes e tudo a vir.
muitos quebra cabeças e desenrolares de historia aconteceram na trama.

Previsão da Beta em agosto.

terça-feira, 18 de janeiro de 2011

Reflexo e Transparencia

Uma coisa legal de um jogo é seu visual e nada como um reflexo uma transparencia para deixar um charme no game.

peguem o ultimo tutorial ou crie um novo basico e adicionem o script CreateMirror()

Por exemplo definam uma variavel para o CreateMirror e defina suas propriedades.

reflexo=CreateMirror()
PositionEntity reflexo,x,y,z

vamos a um script facio e então adicionaremos uma transparencia para percebemos o reflexo:

Na entidade do chao adicione o comando EntityAlpha onde você define a entidade que vai ter a opacidade e sua opacida de uma escala de .0 a .9

EntityAlpha chao,.8


obs: no caso se você usar a engine da aula anterior, o x,y,z da posição do reflexo é

PositionEntity m,0,-1.93,0

Baixe a Engine

Pulo só no chao 2.0

Uma coisa legal em um game é o seu visual, imagina o reflexo de seu personagem no chao?
Legal né, então blz vamos começar.

Obs o pulo no chao da aula passada estava muito JAPA ( termo usado para muita gambiarra para nada, ou seja complicada. então criei um pulo só no chao mais tranquilo )

MEU EU SEI QUE DA PREGUISSA MAS É NECESSARIO PARA COMEÇAR A SE ACOSTUMAR PARA DEPOIS CRIAR SEU PROPRIO GAME ENGINE. E OUTRA COISA NÃO VOU FICAR EXPLICANDO MUITO SOBRE CADA SCRIPT ENTÃO QUALQUER DUVIDA VEJA OS PRIMEIROS TUTOS OU COMENTE SUA DUVIDA.

Crie um game basico, DIGITE o script a seguir:

;CRIE UM GRAFICO BASICO EM JANELA MESMO

Graphics3D 800,600,32,0
SetBuffer BackBuffer()

;CRIE UMA CAMERA E LUZ, E DEFINA SUA POSIÇÃO X,Y,Z

camera=CreateCamera()
PositionEntity camera,0,1,-4

light=CreateLight()
AmbientLight 50,50,50

;CRIE UM OBJETO CONTROLAVEL( UM PERSONAGEM )

personagem=CreateCube()
PositionEntity personagem,0,1,7
EntityType personagem,ESFERA

;CRIE UM CHAO PARA QUE POSTERIORMENTE VC ANDE EM CIMA

chao=CreateCube()
PositionEntity chao,0,-2,10
ScaleEntity chao,10,0.1,10

;AGORA DEFINA COMO SERA MOVIDO O PERSONAGEM ( CONTROLES )

While Not KeyHit(1)

If KeyDown(17) Then
MoveEntity personagem,0,0,0.05

EndIf

If KeyDown(31) Then
MoveEntity personagem,0,0,-0.05
EndIf

If KeyDown(30) Then
TurnEntity personagem,0,1,0
EndIf

If KeyDown(32) Then
TurnEntity personagem,0,-1,0
EndIf


; AGORA CARREGUE O JOGO E RENDERIZE-O

UpdateWorld
RenderWorld

; INULTILIDADE PARA ESCREVER ALGO NA TELA

Text 1,1,"criando reflexo e pulo"
Flip

; FINALIZE O SCRIPT

Wend
End

oks teste o jogo apertando F5 ou clique no fuguetinho xD
...emfim ta uma engine com um quadrado que da para controlar com o teclado e um chao, então vamos colocar uma gravidade, PULO SÓ NO CHAO 2.0.

Volte ao script e após definir no inicio o grafico escreva o seguinte:

Const CUBO=1 ;
Const ESFERA=2
nochao=0

;no personagem defina na linha abaixo dele assim
o entitytype associa o objeto a uma variavel nesse caso vai associar o personagem a ESFERA

EntityType personagem,ESFERA

;no chao defina na linha abaixo dele assim

EntityType chao,CUBO

;e logo depois crie a colisão escrevendo o script a seguir

Collisions ESFERA,CUBO,2,2

;em baixo de onde ficam os controles coloque um comando para pular, perceba que nele esta definido que para pular vc devera estar no chao ( chao =1 )

If KeyDown(57) And nochao=1 Then
MoveEntity personagem,0,1,0
EndIf

; isso porque definiremos que se o personagem colidir com o cubo(chao) ele estara no chao entaum ele podera pular caso o contrario caso ele esteja no ar, ele não podera pular mais.

If EntityCollided(personagem,CUBO) Then
nochao=1
EndIf

If Not EntityCollided(personagem,CUBO) Then
nochao=0
EndIf

PRONTO TESTEM. caso deu algo errado ai baixem aqui

sexta-feira, 7 de janeiro de 2011

BORA VOLTAR A APRENDER??

Iae galera quem ta comigo??
estou disposto a escrever aulas do geito que vocês pedirem
gogo!
estou criando um game 3D e isso esta me motivando

Abraços quem quiser aprender tem que deixar recadinho aqui enh euhsuheuhsuheuhs
chamem amigos pra aprender tambem, quanto mais gente melhor!

Pesquisar