Bem vindos!
Todos ns sabemos o quo trabalhoso pode ser o processo de
desenvolvimento de um game, mas com a Blender Game Engine podemos
torn-lo tambm em uma atividade muito divertida. O Blender, utilizando a sua
Blender Game Engine, uma ferramenta completa que nos permite criar
aplicaes interativas 3D de diversos tipos como: Apresentaes 3D, Portflios
Interativos, Aplicaes para projeo 3D estreo e em Domo, e claro,
Games. Tudo isso com muita rapidez e sem escrever uma nica linha de
cdigo em linguagem de programao.
Esta apostila tem por objetivo ser o seu guia e material de consulta para
as aulas ministradas na SEVEN GAME para o mdulo de Blender Game
Engine. Ela foi organizada por captulos, num total de 16 captulos, cada um
relativo a um tema abordado. Se voc j um usurio de Blender/Blender
Game Engine e/ou concluinte do mdulo, pode consult-la no
sequencialmente mas se estiver iniciando agora aconselhvel acompanh-la
durante o prosseguimento das aulas para melhor assimilao dos contedos.
Ao final existe um glossrio com referncias a palavras estrangeiras
incomuns e expresses especficas do ambiente e/ou comunidade Blender.
Espero que vocs se divirtam! E Keep Bleeding !
Pgina 1
Sumrio
Introduo ao Blender
Cap 1 - Apresentao do Blender e BGE
Cap 2 - Iniciando com Blender
Movimento
Sensores
Cap 10 - Sensores
Properties
Cap 11 - Usando propriedades
Atuadores
Cap 12 - Atuadores
Lgica Avanada
Cap 13 Aprofundando em Logic Bricks
Cap 14 - Introduo Linguagem Python
Bonus
Cap Bonus - Materiais
Pgina 2
1) O que o Blender ?
www.Blender.org
Blender 2.04
Pgina 3
No ano de 2000 foi lanada a verso 2.0 do Blender com diversos novos
features assim como integrao de sua Game Engine. Surge assim a primeira
verso da Blender Game Engine com proposta de desenvolvimento para PC e
Playstation2. Em 2001 devido a problemas financeiros a NaN ainda principal
fonte de desenvolvimento e financiamento para o Blender encerrou suas
atividades o que poderia acarretar no fim do Blender, porm era grande o
entusiasmo dos usurios com relao ferramenta tanto os da NaN quanto a
grande comunidade externa que j comeava a se formar. Ton assim decidiu
por criar uma organizao sem fins lucrativos de forma a gerir e dar
continuidade no desenvolvimento do software. Surge ento, em maro de
2002, a Blender Foundation. Em julho do mesmo ano, Os investidores da j
desmantelada NaN, e portanto proprietrios dos direitos autorais do Blender
(que apesar de liberado sob licena freeware ainda possua copyright da NaN)
propem a Ton que fosse levantado a quantia de 100.000 ( 100 mil euros )
para ceder os direitos autorias do software para a comunidade e por
conseguinte liber-lo como um software Open Source sob licena GNU GPL,
uma quantia realmente considervel. Devido ao grande entusiasmo da
comunidade pela proposta de ter uma ferramenta profissional sob licena Open
Source, incrivelmente em apenas 7 semanas foi arrecadado o valor requerido
pelos investidores e em 13 de outubro de 2002 foi lanado sob licena Open
Source a verso 2.2 do Blender. Desde ento, at dezembro de 2011. J
tivemos 27 verses estveis lanadas e vo-se 17 anos de desenvolvimento.
Atualmente o Blender
conta com 60 a 70
desenvolvedores ativos de
toda parte do mundo e mais
de 200 desenvolvedores
ocasionais,
adicionando
novos features, corrigindo
bugs e tornando o Blender o
melhor, mais robusto e
completo software de criao 3D Open Source da atualidade e uma das
melhores ferramentas profissionais all-in-one para produo de contedos
3D. Sua comunidade de aproximadamente 50.000 usurios ativos de todo
mundo participando das comunidades online e fruns e inmeros outros
profissionais e entusiastas. Em outubro de 2011 o principal frum da
comunidade Blender, o BlenderArtist.org possua mais de 95mil usurios
cadastrados e prximo a 2 milhes de posts. No Brasil, possui um papel de
destaque sendo uma das suas comunidades mais antigas e participativas.
O Blender possui, como principal caracterstica ser um software feito de
artistas para artistas. Isso fica evidente na sua origem, quando criado e
utilizado pela NaN como soluo para o desenvolvimento de seus prprios
Blender Game Engine Seven Game
Pgina 4
contedos em 3D. Essa filosofia no se alterou desde ento. Seu workflow foi
desenvolvido para que se tirasse o maior proveito possvel do ambiente de
produo. O uso extensivo de hotkeys e um sistema de controle
Mouse+Teclado eficiente permite que modelos complexos sejam criados de
forma muito produtiva, sua interface recentemente completamente remodelada
totalmente customizvel. Todos os features no Blender so projetados e
desenvolvidos devido a necessidades reais do artista no ambiente de
desenvolvimento. Para as funes que no so implementadas nativamente o
Blender disponibiliza uma poderosa e flexvel API de programao para criao
de ferramentas e add-ons de todos os tipos, centenas destes podem ser
obtidos em seu repositrio oficial ou nas comunidades agregando novos
importers/exporters, ferramentas de modelagem, animao, renderizadores
externos entre outros.
Pgina 5
2) Ferramentas
O Blender agrega diversas ferramentas necessrias no workflow para
produo 3D de imagens, vdeos e aplicaes interativas, incluindo games.
Devido extensa quantidade de ferramentas disponveis iremos agora listar
apenas alguns dos principais features do Blender.
Modelagem e Texturizao
Pgina 6
Rigging e Animao:
Pgina 7
Materiais:
Render e Composio:
Pgina 8
*Burster uma plug-in para web browsers que permitem rodar arquivos .blend da BGE em um
web browser: http://geta3d.com/
** Gamekit um projeto paralelo criado por Erwin Coumans (Atualmente Engenheiro Chefe do
departamento de Simulao Fsica da AMD) para executar arquivos .blend do Blender em PC,
iOS e Android: http://gamekit.org/forum/
Pgina 9
Implementao inicial criada por Erwin Coumans ( criador da API de fsica Bullet ,
terceira mais popular engine de fisica, usada em GTA 4), como parte da NaN.
Atualmente mantida e desenvolvida pela Blender Foundation e colaboradores de todo
o mundo.
Caractersticas e Suporte:
Grficos:
o Baseado em OpenGL 2.1
o Otimizao de Visualizao para Meshes por Display List e VBO
o Suporte completo GLSL 1.4
o Suporte a Shaders de Post Process nativos e definidos pelo usurio por GLSL
Fsica:
o Utiliza a Bullet Engine como API de fsica
o Uso de GPGPU por OpenCL ( Futuramente, em desenvolvimento com a Bullet
)
o
Suporte a Rigid Bodys, Ragdoll, Constraints, Soft Bodys e outros
Animao:
o Animao baseada em Keyframes com suporte a Layers e Blend entre
animaes
o Controle individual de bones por cdigo
o Animao por shape Keys (morph)
o Animao de parmetros como object color.
Audio:
o Utiliza a lib OpenAL (Tambm utilizada na Unity e engines indoor de diversas
empresas como Coodemaster, Id e DICE )
o Som 3D multicanal com efeito Doppler
o Suporte a wav,ogg e mp3
IA:
o Sistema de programao em Layers para criao de Mquinas de Estados
(FSM)
o Path Finder com Avoid Obstacles utilizando as libs Recast e Detator
Network:
o Possibilidade de utilizao da lib Socket do Python para criao de aplicaes
em rede.
Outros:
o Sistema WYSIWYG (What You See Is What You Get ) totalmente integrado
Interface do Blender como editor de cenrio.
o Lightmaps gerados pelo Renderizador interno do Blender.
o Sistema de projeo das aplicaes em ambientes Domo.
o Sistema de projeo estereoscpica ( Side by Side, Anaglifo e outros )
Pgina 10
Yo Frankie
Blender Foundation
http://www.yofrankie.org/
Runas 2.0
Vitor Balbio
http://Blenderartists.org/forum/showthread.php?152668-Ruinas-2.0-Links-Fixed-in-first-page
Pgina 11
Dead Cyborg
Endre Barath
http://deadcyborg.com
Pgina 12
Pgina 13
Blender 2.61
INTEGRAO NA COMUNIDADE:
Existem inmeras comunidades de usurios Blender que o utilizam para diversos fins.
Nelas voc pode postar seus trabalhos, tirar dvidas, criar parcerias para futuros trabalhos
entre outros. Internacionalmente a maior comunidade de usurios Blender a BlenderArtist:
www.Blenderartists.org , se seu ingls est em dia essa realmente uma boa pedida.
OPEN SOURCE:
Ser Open source no significa ser apenas grtis. E sim que qualquer pessoa pode baixar seu
cdigo fonte, criar novas ferramentas, corrigir problemas, e se quiser, retornar essas melhorias
no programa para a Blender Foundation a fim de que estejam, caso aprovadas , na prxima
verso estvel do Blender. Assim o Blender se desenvolve, com um processo colaborativo de
centenas de pessoas ao redor do mundo. Se voc no um programador ainda assim pode
colaborar indicando Bugs e criando tutoriais para a comunidade. Colaborao o esprito por
trs do Blender. Para mais infromaes sobre o processo de desenvolvimento do Blender
acesse o endereo: http://www.Blender.org/development/
Pgina 14
1) Interface
O Blender foi projetado de forma que sua interface possa otimizar o
mximo possvel de espao em tela. Criando uma grande rea de visualizao
para o ambiente e escondendo funes que no so essenciais.
Sua estrutura baseada principalmente em 3 princpios:
Pgina 15
Pgina 16
INTERFACE:
A interface do Blender 2.5x foi recentemente reformulada e possui ferramentas para
permitir melhor uso em mltiplos monitores. Ento se voc dispe de 2 ou mais monitores
interessante separar alguns editores em uma segunda janela. Para isso, segure o boto
,
posicione o ponteiro do mouse nas 3 ranhuras no lado esquerdo do Header do Editor ( quando
estiver posicionado corretamente ele se tornar uma Cruz), Clique e arraste usando
EXPLORE:
A melhor forma de compreender a interface e o funcionamento do Blender explorando,
ento, sinta-se livre para modficar os painis, subdividi-los, etc. Caso voc queria salvar suas
configuraes v em File/Save User Settings.
Para retornar s configuraes originais. V em File/ Load Factory Settings
HEADER:
Cada Editor possui um painel de menus e funes ao lado do seletor de Editor, com opes
e funes especficas desse editor. Explorar as opes dos menus dos Headers a melhor
forma de conhecer muitas funes teis de edio.
Header da 3D view
Pgina 17
2) Seleo
, Clique e
e arraste
Outliner: Use
, Clique e
Pgina 18
3) Cmeras e Transformaes
HOTKEYS:
Rotao:
com
Top View
Pressionando o boto
+ a tecla definida na
tabela ao lado. A cmera ir se posicionar na
Front View
a viso
Right View
Pgina 19
Zoom:
tambm do teclado
Pan:
+ mantendo
Existem outras funes muito teis relativas cmera como por exemplo:
RESETANDO VIEW:
para
Um cenrio pode possuir vrios objetos cmera os quais sero utilizados como
referncia para os renders e para a execuo da aplicao. Mas s existe uma nica
cmera de trabalho da 3Dview a qual, as transformaes de cmera so
executadas. Para trocar entre a cmera objeto ativa e a cmera de trabalho use:
Pgina 20
4) Transformaes de Objeto
Ativa/Desativa Manipuladores
Ativa/Desativa Manipulador de Localizao
Ativa/Desativa Manipulador de Rotao
Ativa/Desativa Manipulador de Escala
Pgina 21
Rotate
Scale
ou
3) As funes
+(
ou
),(
)e(
Exemplos:
Mover o objeto sob o eixo X de coordenada global
+
Mover o objeto sob o eixo X de coordenada local
+
Pgina 22
Pgina 23
5) Parentando Objetos
6) Adicionando Primitivas
O
Blender
possui
diversas
primitivas geomtricas que podem ser
adicionadas ao cenrio, para adicionar
uma dessas pressione
+
com o cursor do mouse sobre a 3DView.
Depois selecione o objeto na lista Mesh
Um fator importante que a
posio inicial do objeto criado ser
sempre o Cursor 3D. Para mudar a sua
posio use
anteriormente.
Pgina 24
1) Game Engines
chamado
WYSIWYG ("What You
See Is What You Get").
Outras
game
engines so apenas
bibliotecas de cdigo em
que voc tem de setar a
posio de todos os
objetos do cenrio por cdigo de programao. Atualmente a grande maioria
das principais game engines possuem editores de cenrio do tipo WYSIWYG.
Blender Game Engine Seven Game
Pgina 25
Pgina 26
Pgina 27
Incio
Ciclo Principal da BGE
Converter
Lgica
Fsica
LoadScene(?)
Load.Blend(?)
Render
Finaliza
EndGame (?)
Pgina 28
possvel tambm
rodar a aplicao na
prpria 3Dview do Blender
usando para isso a tecla
com o ponteiro na
3DView. extremamente
recomendado executar a
BGE dessa forma durante
o
processo
de
desenvolvimento do game
pois permite visualizao
Aplicao da BGE rodando na 3Dview do Blender
do cenrio usando a
cmera default da 3Dview, utilizao de ferramentas de debug e no necessita
a gerao de arquivo .exe (o que demandaria severos segundos a mais no
tempo de abertura)
De forma geral possvel criar um game inteiro sem gerar seu executvel.
Porm para rod-lo o usurio ir necessitar do Blender. Por isso para o game
final recomendamos a criao do stand alone.
Pgina 29
Atualmente o gerador de stand alone da BGE est inativo por default. Para
ativ-lo e exportar sua aplicao siga os seguintes passo:
Pgina 30
ADD-ONS:
O Blender com um sistema muito poderoso de plug-ins baseado em python. Alguns so
disponibilizados junto com o Blender, outros esto organizados em repositrios online. Existem
scripts para todo tipo de funes. De mtricas CAD criao de vegetao. Para conhecer mais
add-ons acesse o site http://wiki.Blender.org/index.php/Extensions:2.5/Py/Scripts
Pgina 31
Pgina 32
Pgina 33
V
E
L
l
Pgina 34
2) Algortmos em Fluxogramas
Pegar
Farinha
Pegar
Ovos
No
Pegar
Outros
Bater na
Batedeira
Manter no
forno
Colocar na
assadeira
Est
pronto?
Sim
Comer
Pgina 35
3) Programao Visual
Pgina 36
Sensor
Lgica De
Controle
Atuador
Pgina 37
Sensor
Keyboard W
Lgica AND
(pass through)
Sensor
Keyboard S
Lgica AND
(pass through)
Sensor
Keyboard A
Lgica AND
(pass through)
Sensor
Keyboard D
Lgica AND
(pass through)
Note que cada cdigo do Logic Bricks relativo apenas 1 objeto, o objeto
ativo na 3DView. Se outro objeto na 3Dview for selecionado o Logic Editor ir
mostrar o cdigo Logic Bricks deste. Caso 2 objetos sejam selecionados ao
mesmo tempo ser mostrado o cdigo Logic Bricks dos 2 objetos com os
cdigos do objeto ativo mais ao alto. Isso permite tambm que sensores e
atuadores de um objeto possam ser conectados a lgicas de outros e vice
versa, solucionando situaes mais complexas como por exemplo quando um
sensor em um objeto ativa o atuador em outro (clssico alavanca e porto)
Pgina 38
Pgina 39
1) No Information Editor existe um menu drag and drop de nome Engine to use
for render que por default est setado para Render Engine que se refere ao
renderizador interno do Blender para Imagens e Animaes. Troque para a
opo Render Game o qual se refere BGE.
Pgina 40
opes
essas
Pgina 41
Pgina 42
Pgina 43
Pgina 44
Pgina 45
Pgina 46
Pgina 47
2) Controlador AND
Pgina 48
3) Atuador Motion
O atuador Motion o
atuador responsvel por aplicar
aos objetos movimentao,
rotao,
fora,
velocidade
angular,
linear e
outros.
Naturalmente todos os objetos
do Blender vem configurados
como estticos ento, somente movimentao e rotao esto disponveis por
default, porm assim que configurados para objetos dinmicos mais opes se
tornam disponveis. Iremos ver mais a respeito no captulo sobre a fsica na
BGE.
Adicionando valores em X,Y ou Z da linha Loc adicionar esse valor
sua localizao atual. Por exemplo adicionando 0.1 X em Loc ir fazer o
objeto se movimentar 0.1 BU(Blender Units) para cada ciclo de processamento
em que esse atuador for ativado.
Adicionando valores em X,Y ou Z da linha Rot adicionar esse valor
sua orientao atual. De forma anloga localizao com Loc
Os botes L no canto direito informam se essas transformaes sero feitas
sob eixo local ou global.
Pgina 49
1) Aprofundando em Sensores
Incio
Ciclo Principal da BGE
Converte
r
Lgic
a
Fsica
LoadScene(?)
Load.Blend(?)
Render
Finaliza
EndGame
(?)
Pgina 50
Pgina 51
abaixo) e Level so utilizadas para ativar atuadores (enviar pulsos) mais vezes
do que apenas nas transies de estado.
EXECUO DE ATUADORES
Algo importante a se frisar que o sensor executado a cada pulso de troca de estado
mais isso no quer dizer que a sua funo aplicada. Somente ele ele ir verificar se sua funo
ou no para ser aplicada conforme o valor que os controladores lhe passarem. Por exemplo
na transio Verdadeiro para Falso de um sensor se o atuador estiver ligado atravs de um
controlador AND o atuador no ir executar a sua funo.
Outro ponto de interesse que cada atuador reage de uma forma diferente com
relao aos pulsos de execuo emitido pelos sensores. Um exemplo o atuador action que
toca animaes. Com ele no possvel utilizar as opes pulse mode True e False j que todo
pulso de execuo iria fazer com que ele reiniciasse a animao do incio.
Pgina 52
1) Aprofundando em Controladores
Pgina 53
CONTROLADORES E SENSORES
O correto entendimento das funes e funcionamento dos sensores e controladores
representa grande parte do entendimento da BGE em si. O domnio das suas particularidades
possibilita a criao de diversas funes complexas e mesmo games inteiros somente atravs
dos Logic Bricks.
PYTHON
A BGE possui toda uma biblioteca de funes que no apenas expandem as possibilidades
dos Logic Bricks mas tambm fornece interface para qualquer lib python abrindo caminho para
uma srie de funcionalidades no includas por default na BGE. Para games mais complexos
altamente recomendado o uso de python ao invs do Logic Bricks, seja pela falta de funes
dos Logic Bricks, saja pela organizao do projeto em si.
Pgina 54
Captulo 8 - Fsica
Agora que j possumos uma viso geral sobre o funcionamento da Logic
Bricks precisamos interromper por um momento o estudo dos blocos lgicos
para introduzir outro importante elemento no desenvolvimento de jogos. A
Fsica.
Nesse captulo iremos compreender como funciona a fsica nos games e
como utilizar ela na BGE.
Pong
Pgina 55
Portal - www.valvesoftware.com
Pgina 56
Pgina 57
Pgina 58
Dynamic/Rigidy Body
Mass : Determina a massa do objeto,
objetos com maior massa empurram objetos
com menor massa com mais facilidade
Form Factor: fator de escala do
Tensor inercial
Velocity Minimum: Escalar da
velocidade mnima que o objeto pode
chegar
Velocidade Maximum: Escalar da
velocidade mxima que o objeto pode
chegar
Damping Translation: Resistncia do
ar para movimentao
Damping Rotation : Resistncia do ar
para movimentao
Look Translation: Impede que o
objeto se movimente em um desses eixos, til quando queremos criar
jogos 2.5D
Blender Game Engine Seven Game
Pgina 59
Soft Body
Position Iterations: fator de
qualidade para resoluo de posio
e colises.
Linear Stiffness: fator de
rigidez do objeto
Friction: fator de atrito do
objeto
Shape Match: Preserva ou
no o formato do objeto
Rigid to Soft Body: Detecta
coliso com Rigid Body
Soft to Soft Body: Detect
coliso entre soft bodies
Pgina 60
3) Bounds
coliso
Cylinder: Utiliza um cilindro como bound de coliso
Sphere: Utiliza uma esfera como bound de coliso
Box: utiliza uma caixa como bound de coliso
Capsule: utiliza uma capsula como bound de coliso, indicado para
personagens
Pgina 61
BOUNDS e EMPTYS
Uma das tcnicas que utilizada para organizar a fsica de personagens e outros elementos
dinmicos do cenrio no aplicar os comandos de movimentao e fsica no objeto do
personagem, mas sim em um objeto empty e posteriormente parentar o objeto que contm a
geometria e animao do personagem esse empty.
ATUADORES E SENSORES
Diversos so os atuadores e sensores que se utilizam dos sistemas de fsica de uma forma
ou de outra, por exemplo o atuador motion apresenta mais opes quando o objeto est
configurado para Dynamic.
BOUNDS e ORIGENS
Um detalhe importante que o bound de um objeto configurado conforme a sua
orientao, escala, rotao e origem. As vezes necessrio resetar a configurao desses
elementos para correo de problemas de coliso. Para isso use:
+
e escolha a
propriedade que deseja resetar. Essa funo aplica as transformaes do mesh para o objeto
retornando Loc,Rot,Scale para seus valores iniciais
Pgina 62
Captulo 9 Fsica 2
No captulo anterior vimos as principais configuraes de fsica da BGE,
nesse captulo iremos aprender o que so e como utilizar constraints para criar
ligaes entre Rigidy Bodies.
1) Constraints
Pgina 63
Pgina 64
JOINS CIRCULARES
Evite o uso de Joins circulares do tipo Obj1 seta como target o Obj2 e o Obj2 seta como
target o Obj1. O mesmo para mais de 2 objetos: Obj1->Obj2->Obj3->Obj1
ATUADOR MOTION
Tenha cuidado com o uso de Loc e Rot pois ele pode quebrar a ligao criada com Joins, ao
invs disso utilize Torque e Force
Blender Game Engine Seven Game
Pgina 65
2) Fsica do Mundo
Pgina 66
Captulo 10 Sensores
Sensores so parte do corao da Blender Game Engine e do seu sistema
de programao Logic Bricks.
Neste captulo iremos descrever o funcionamento dos sensores da Blender
Game Engine, devido grande quantidade de sensores existentes esse ser
um captulo extenso, porm um importante material de consulta.
1) Lista de Sensores
1.1 Touch
O Sensor Touch detecta coliso
entre objetos verificando se o
objeto colidido possui o material
especificado.
Parmetros:
1.2 Ray
O Sensor Ray detecta a
existncia de algum objeto com
a propriedade especificada em
uma certa direo at uma certa
distncia do objeto chamador da
funo.
Parmetros:
Pgina 67
Xray Mode: Quando esta opo est ativa o raio ir ultrapassar objetos
que no possuem a propriedade especificada para verificar se o objeto
desejado est alm desse.
1.3 Random
Aleatoriamente estabelece um
valor verdadeiro ou falso.
Parmetros:
Seed: Nmero base para o calculo de aleatoriedade, Seeds diferentes
estabelecem sequencias aleatrias diferentes.
1.4 Radar
O Sensor Radar detecta a
existncia de um objeto com a
propriedade especificada dentro
de um cone.
Parmetros:
Pgina 68
1.5 Property
O sensor Property verifica se
uma propriedade do objeto
corresponde a uma funo de
verificao (igual, maior que,
menor que...)
Iremos ver melhor sobre
propriedades no captulo a
seguir.
Parmetros:
1.6 Near
O Sensor Near verifica a
existncia de algum objeto com
a propriedade especificada a
uma certa distncia.
Parmetros:
Pgina 69
1.7 Mouse
O sensor Mouse verifica
eventos vindos do mouse
ou outra interface
detectada como isso (por
exemplo tablets) pelo
sistema operacional.
Parmetros:
1.8 Message
O sensor Message verifica
se foi recebido pelo objeto
alguma mensagem com o
texto especificado pelo
campo Subject
Parmetros:
Pgina 70
1.9 Keyboard
O sensor Keyboard
verifica se a tecla
especificada por
pressionada
Parmetros:
1.10 Keyboard
O sensor Delay aguarda
o tempo especificado
depois ativa o sensor.
Parmetros:
Pgina 71
1.11 Collision
O sensor Collision
funciona de forma similar
ao Touch porm possui
mais opes.
Parmetros:
1.12 Always
O sensor Always
funciona como uma
chave sempre ativa e
no possui parmetros
especficos.
1.13 Actuator
O sensor Actuador
ativo quando o atuador
especificado estiver ativo.
Parmetros:
Pgina 72
Captulo 11 - Properties
Nesse captulo iremos aprender o que so e como so utilizadas as
propriedades, alm de vermos como podemos verificar essas propriedades
utilizando controladores expression.
1) O que so properties ?
comum em jogos e outras aplicaes interativas termos de guardar
informaes locais do prosseguimento do jogo. Por exemplo, em um game de
carro, guardaramos informaes relativas ao quanto de combustvel cada um
dos carros possui, quantas voltas ele j completou e quanto de dano ele j
recebeu, em um game de batalha de tanques poderamos guardar informaes
como a vida ainda disponvel em cada player e a quantidade de tiros ainda
disponveis.
Nesses casos, cada um desses elementos uma propriedade do objeto,
ou seja, um valor com significado especfico dentro da mecnica do game
criado.
Propriedades podem serem no somente relativas ao objeto em si, mas
tambm a sistemas mais gerais do game. Por exemplo, Poramos estabelecer
um tempo limite para cada round de um game de luta. Essa propriedade Time
seria ento uma propriedade de um sistema geral e no de um personagem
especfico do cenrio.
De qualquer forma, a sequencia de passos para criao e utilizao de
propriedades a mesma, vide que toda propriedade de um objeto em
especfico, se esse objeto ir ter relao com um personagem ou com o
controle de estados globais do game, isso uma deciso do game design.
Para adicionar uma propriedade a um objeto precisamos acessar o Logic
Editor.
Pgina 73
Assim que a operao for concluda ser criado a essa objeto uma
propriedade com nome default seguindo a auto numerao e de tipo float.
A caixa criada contm as
configuraes especficas de cada
propriedade nica.
Pgina 74
Vide que foi necessrio o uso do Pulse Mode True no sensor j que, a
verificao do atuador motion tem de ocorrer a todo pulso para que ele detecte
atravs do controlador o momento de sua ativao.
Podemos ainda testar uma propriedade atravs do sensor Property.
O sensor Property verifica
o valor atual de um estado e
ativa se a condio for
atingida.
O tipo de verificao pode
ser configurado pela
propriedade Evaluation Type.
A funo default Equal, ou
seja, uma funo de
equivalncia com o valor especificado no campo Value.
O Tipo Not Equal funciona de forma similar porm inversa ativando
quando a propriedade for diferente do valor.
O tipo Interval ativa o
sensor toda vez que o valor da
propriedade verificada estiver
no intervalo entre o mnimo e
mximo especificado
Pgina 75
O ultimo tipo o
Changed, o qual ativa o
sensor toda vez que a
propriedade sobre uma
modificao de qualquer
tipo.
Pgina 76
FALSE
Para propriedades Int e Float e Timer retorna para o valor 0, 0.0 e 0.0
respectivamente
Pgina 77
PROPERTIES
Propriedades so parte fundamental no desenvolvimento de qualquer game. importante
haver uma boa organizao dos objetos para que eles compartilhem a menor quantidade
possvel de propriedades, ou seja, sejam o mais independente possvel para evitar o
excesso de uso do atuador copy. Esse modelo chamado Baixo Acoplamento
Pgina 78
Captulo 12 Atuadores
Atuadores so parte fundamental da estrutura do Logic Bricks, eles so os
responsveis por todas as funes dos objetos. Agora iremos aprender quais
so os tipos de atuadores disponveis e quais so as suas caractersticas.
1) Atuadores
1.1 Visibility
O atuador Visibility
determina se o
objeto e os seus
filhos da relao de
parentesco sero
visveis ou no no game.
Parmetros:
1.2 State
O atuador State
determina o estado
ativo do objeto.
Aprenderemos mais
sobre States em um
captulo futuro.
Parmetros:
Pgina 79
1.3 Sound
O atuador sound
responsvel pelo play de
arquivos de som.
Parmetros:
Play Mode: Seta a forma com que o som ser tocado, Play, Loop ou
Bidirecional.
Volume: Estabelece o volume do Audio
Pitch: Estabelece um valor de distoro de agudo e grave.
3D Sound: Configura parmetos do som 3D estreo.
1.4 Steering
Pgina 80
Parmetros:
1.5 Scene
O atuador Scene
responsvel pelas funes
relativas ao gerenciamento
de cenas na BGE
Parmetros:
Pgina 81
1.6 Random
O atuador Random aplica
um valor aleatrio para a
propriedade especificada de
acordo com a funo de
distribuio configurada
Parmetros:
1.7 Property
O atuador Property responsvel
pelas funes de manipulao e
edio de propriedades
Parmetros:
1.8 Parent
O atuador Parent responsvel
por criao e remoo de
parentesco entre objetos em
tempo de execuo.
Pgina 82
Parmetros:
1.9 Motion
O atuador Motion responsvel
por aplicar operaes relativas
transformao de objeto e fsica.
OBS: As opes da seo
Dynamic Object Settings s
esto disponveis para os tipos
Dynamic, Rigid Body e Soft
Body.
Parmetros:
Pgina 83
1.10 Message
O atuador Message responsvel
pelo envio de mensagens para
outros objetos.
Parmetros:
1.11 Game
O atuador Message responsvel por
funes de manipulao de arquivos
.blend e do fluxo do game
Parmetros:
Pgina 84
1.12 Filter 2D
O atuador Filter 2D responsvel
pela aplicao de efeitos de post
process
Parmetros:
Parmetros:
Pgina 85
1.14 Constraints
O atuador Constraints responsvel
pela criao de constraints em tempo
de execuo
Parmetros:
1.15 Cmera
O atuador cmera faz com que um
objeto cmera siga um outro objeto de
forma automtica.
Parmetros:
Pgina 86
1.15 Action
O atuador Action toca uma animao
do objeto especificado.
Parmetros:
ACTUATORS e PULSOS
Cada atuador funciona de forma diferente com relao aos pulsos recebidos pelos
sensores, fique atento para configuraes diferentes usando Pulse Mode True.
Pgina 87
BOTO
SENSOR COLLISION
PORTA
CONTROLADOR AND
ATUADOR ACTION
Pgina 88
atuadores.
Pgina 89
2) States
Visible configura qual o layer atual visvel para edio. Enquanto Initial
seta o layer inicial quando a aplicao for executada.
So os controladores que gerenciam a visibilidade dos elementos. Por
exemplo no caso hipottico de um programa com 2 controladores (CONT1 e
CONT2) onde Cont1 est no layer 1 e Cont2 est no layer 2. Nesse caso
qualquer sensor conectado a Cont1 s ser visvel e processado caso o layer
ativo atualmente for o layer 1 e vice versa para o controlador Cont2, os
sensores ligados a e ele e o layer 2.
A montagem abaixo exemplifica o caso
Pgina 90
Note que ao lado nome do controlador existe uma opo para troca de
layer, caso essa troca seja efetuada todos os sensores e atuadores ligados a
esse controlador sero tambm transferidos para outro layer.
Naturalmente precisamos realizar trocas entre os layers ativos em tempo
de execuo. Para isso utilizamos o atuador State.
STATES
States podem ser utilizadas como mquinas de estado finitos e/ou como arvore
decisrias economizando assim o uso de propriedades.
Tente sempre utilizar states e no propriedades para qualquer situao em que haja
troca de estados fundamentais por exemplo On/Off da movimentao de um player.
Pgina 91
Append
Pgina 92
Link
Pgina 93
, depois aplique a
Pgina 94
Pgina 95
1) Python na BGE
Pgina 96
O controlador do
tipo Python acessa um
script que pode ser
escrito tanto dentro do
Blender com o Text
Editor quando
arquivos externos no
formato .py .Essas so
as opes Script e Module respectivamente.
Os scripts python criados so baseados no conceito de que iremos, atravs
de cdigos python, acessar os objetos da interface visual do Logic Bricks. Ou
seja atravs do controlador Python, iremos acessar os sensores e atuadores
ligados a ele. importante notar tambm que os scripts python so ativados
pelos sensores exatamente da mesma forma que os atuadores, ou seja, se
nenhum sensor ligado ao Script python for ativado, o script no ser executado.
A API do Blender possui alguns mdulos. O principal deles o mdulo Logic.
Podemos entender resumidamente a estrutura de acesso dos componentes do
mdulo Logic na imagem a seguir.
Objeto
Controlador
Sensores
Logic
Scenes
Atuadores
Objetos
Pgina 97
Pgina 98
Pgina 99
PYTHON
A linguagem python extremamente simples e robusta, ideal para programao de scripts
de games. A API do Blender oferece uma soluo bastante robusta para aqueles que
querem desenvolver seus games para a plataforma PC. Investir no aprendizado de uma
linguagem de programao geralmente algo tedioso para artistas, a linguagem python
entretanto, certamente uma boa porta de entrada para o mundo de programao para
aqueles que desejam aprender essa etapa do desenvolvimento de jogos.
Pgina 100
1) Gerando executveis
Pgina 101
Pgina 102
EXECUTVEIS
Executveis gerados com o Blender s funcionam no SO no qual ele foi gerado. Ou seja,
uma aplicao gerada no Windows no ir rodar no Linux e vice versa.
ARQUIVOS .BLEND
Todas as funes do Blender relativo a arquivos .blend funcionam mesmo que a extenso
do arquivo no seja essa explicitamente. Isso permite que os arquivos .blend possam ser
renomeados para outros formatos por exemplo .scene ou .data aumentando a segurana
da aplicao
Pgina 103
1) Shaders
Pgina 104
1) Shaders na BGE
Pgina 105
Pgina 106
2) Node Editor
Aps isso ative a opo Use Nodes no header do Node Editor ento o
material ativo aparecer no editor.
Pgina 107
X-RAY SHADER
Pgina 108
REFRACTION
OBS: Para uso de refrao necessrio programao por script python usando o
mdulo bge.texture
Pgina 109
Glossrio:
(Ordem alfabtica no de aparecimento no texto)
Bug Expresso muito comum na rea de computao, geralmente se refere
a um problema no software decorrente de uma m implementao.
Keep Blending Uma expresso muito utilizada na comunidade Blender. Em
uma traduo livre tem sentido de continue assim ou siga em frente e em
geral utilizada como incentivo para o prosseguimento de algum trabalho.
Multiplataforma Em engenharia de software se refere a um programa que
opera em diversos sistemas operacionais.
Open Source Em computao se refere a um software em que seu cdigo
fonte disponibilizado para estudo,modificao e redistribuio. Existem vrias
licenas baseadas no conceito de software livre. O Blender utiliza a licena
GNU GPL - http://www.gnu.org/copyleft/gpl.html
Portable Em computao Portable se refere possibilidade de ter uma
aplicao que possa ser transportada e executada em discos mveis como pen
drivers sem necessidade de instalao.
Stand Alone Se refere a uma aplicao auto contida, sem dependncias.
Geralmente um arquivo .exe no ambiente Windows.
Workflow Fluxo de trabalho. Refere-se a seqncia de etapas necessrias
para a execuo de um projeto.
Pgina 110