Вы находитесь на странице: 1из 110

Prefcio

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 !

Runas 2.0 por Vitor Balbio

Blender Game Engine Seven Game

Pgina 1

Sumrio

Introduo ao Blender
Cap 1 - Apresentao do Blender e BGE
Cap 2 - Iniciando com Blender

Introduo ao Logic Bricks

Cap 3 Iniciando com Blender Game Engine


Cap 4 - Introduo Programao Visual e Logic Bricks
Cap 5 - Introduo Logic Bricks II

Movimento

Cap 6 - Bricks Bsicos


Cap 7 - Aprofundando em Sensores e Controladores
Cap 8 - Fsica 1
Cap 9 - Fsica 2

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

Asset Management e Executveis


Cap 15 Asset Management
Cap 16 - Gerando executveis

Bonus
Cap Bonus - Materiais

Blender Game Engine Seven Game

Pgina 2

Captulo 1 - Apresentao do Blender e BGE


Nesse captulo iremos aprender o que o Blender, a Blender Game Engine.
assim como sua histria, filosofia e uma viso geral sobre suas ferramentas.

1) O que o Blender ?

www.Blender.org

Blender um software, Open Source e Multiplataforma que prov solues


de Modelagem, Animao, Texturizao, Renderizao, Composio e Edio
para produo de imagens e vdeos. Alm disso integrado a seu core uma
Game Engine para produo de aplicaes Interativas 3D diversas, incluindo
games.
Foi concebido inicialmente entre 1995 e 1998 por Ton Roosendaal como
uma soluo indoor do Studio NeoGeo e posteriormente da a NaN (Not a
Number) empresa criada tambm por Ton. Seu objetivo inicial era criar uma
ferramenta de qualidade profissional e torn-la acessvel ao pblico geral, num
mercado em expanso porm j dominado por softwares comerciais
financeiramente inacessveis para estudantes e pequenos estdios como o
Autodesk 3Dmax R2 e o Alias Maya em sua verso 1.0 (posteriormente em
2005 esse viria a ser adquirido tambm pela Autodesk)

Blender 2.04

Blender Game Engine Seven Game

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.

Interface do Blender reformulada com a srie 2.5x

Blender Game Engine Seven Game

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

Modelo criado por Dono

Modelagem baseada em Poligonos, NURBs, Bezier, B-spline,Curvas, Metaballs e


Vector Fonts.
Subdiviso baseada em Catmull-Clark
Sculpt basedo em multiresolution subdivision com diversos Brushes procedurais
Modificadores
Soft Selection para modelagem orgnica.
UV unwrapping automtico baseado em ngulos
Edio de UVs com Transformaes Interativas em tempo real
UV unwrapping baseado em Seams
Multiplos UV Layers
Minimizador automtico de stretch

Blender Game Engine Seven Game

Pgina 6

Rigging e Animao:

Pintura interativa de Weighmaps


Deformao baseadas Quartenion
Deformao Volumtrica baseada em estrutura de
grade
Bone Layers
IK/FK Solver
Constraints baseados em cdigo Python
Editor No Linear de aes
Walkclycle automtico por caminho baseado em
spline
Morphing/Shape Keys animation
Efeitos procedurais de animao
Efeitos de Fsica como Fluidos, Gases, Rigid Body
e Soft Body.

Sintel Open Movie http://www.sintel.org

Blender Game Engine Seven Game

Pgina 7

Materiais:

Diversos sombreadores e especulares pr definidos como Lambert, Minnaert, Toon e


Oren-Nayar
Criao de materias baseado em sistema de Node.
Preview de Materiias em GLSL na view3D
SSS,Refrao e Reflexo por Raytrace
Normal e Bump maps

Render e Composio:

Sintel Open Movie http://www.sintel.org

Renderizador Interno baseado em CPU (BI)


Renderizador Unbiased por CPU/GPU com suporte a OpenCL e CUDA (em desenvolvimento)
Oversampling, motion blur, post-production effects
Render Bake ( Render to Texture)
AO e Indirect Light
Suporte renderizadores externos como Vray,LuxRender,YafaRay,Matsuda entre muitos outros.

Blender Game Engine Seven Game

Pgina 8

3) Blender Game Engine


Blender Game Engine ou BGE (como passar a ser chamada de agora em
diante ) , como seu nome sugere, uma Game Engine integrada ao ambiente
Blender para o desenvolvimento de aplicaes 3D. Apesar de seu foco inicial
para o desenvolvimento de games, possvel com ela desenvolver diversas
aplicaes interativas 3D como aplicaes cientfica, passeios virtuais, Demo
Scenes, Portflios interativos, Aplicaes Web em 3D (com o plug-in Bruster)
etc.
Assim como o Blender a BGE multiplataforma e pode gerar programas
Stand Alone (executveis completamente independentes do Blender) para
Windows,Linux e MacOS. Recentemente foi adicionado atravs de plug-ins
externos o suporte para web browsers*, e alguns projetos paralelos pretendem
portar seus arquivos fontes para funcionarem em iOS e Android**.
Grande parte da ideologia por trs da BGE ser uma ferramenta robusta o
suficiente para portar as necessidades das aplicaes com ela gerada, tambm
possuir uma rpida curva de aprendizagem e um workflow que torne rpido e
eficiente a criao de suas aplicaes. Para isso ela conta com um sistema
nico de programao visual chamado Logic Bricks, alm de uma API em
python para funes mais robustas. Tambm possui total integrao com as
ferramentas de criao de Materiais por Nodes e com grande parte das
funes da IDE do Blender.

Imagem do game Lucy and The Time Machine Vitor Balbio

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

Blender Game Engine Seven Game

Pgina 9

Algumas das caractersticas da BGE so:

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 )

Nas pginas seguintes voc pode conferir alguns games e


demonstraes grficas interativas e games criados com Blender Game Engine

Blender Game Engine Seven Game

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

Blender Game Engine Seven Game

Pgina 11

Dead Cyborg
Endre Barath
http://deadcyborg.com

Vrias Demonstraes Grficas


Martins Upitis
http://www.martinsh.co.nr/

Blender Game Engine Seven Game

Pgina 12

4) Baixando e Instalando o Blender


Em nosso curso iremos utilizar o Blender sob o OS Windows. Porm o
processo similar para todos os ambientes. Para a referida plataforma o
Blender distribudo em forma de Instalador (.exe) ou Portable (.zip).
Atualmente o Blender possui entre 20Mb e 40Mb para download e
aproximadamente 90Mb quando instalado. Nenhum outro aplicativo externo
necessrio para o funcionamento do Blender j que a partir da srie 2.5x ele
engloba mesmo as libs python antes externas aplicao.

1) Acesse o site: http://www.Blender.org/download/get-Blender/

2) Clique na verso desejada no nosso caso Windows 32 ou 64 bits


3) Aguarde a finalizao do Download
4) Realize a descompresso ou instalao, dependendo da verso baixada.
5) Execute o Blender.exe na pasta criada ou no atalho da rea de trabalho caso tenha
optado pela verso com instalador. A tela que voc ver ser como essa caso esteja
utilizando a verso 2.61

Blender Game Engine Seven Game

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/

Blender Game Engine Seven Game

Pgina 14

Captulo 2 Iniciando com Blender


Um correto entendimento das funes bsicas do Blender essencial para
se tirar proveito de suas facilidades de utilizao e tornar o ambiente de
trabalho mais produtivo. Neste captulo iremos entender o funcionamento da
interface, formas de seleo, criao de primitivas, transformaes de Objeto e
de cmera.

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:

Sem Sobreposio: Todas as ferramentas do Blender so visveis ao


mesmo tempo sem necessidade de arrastar ou empurrar janelas.

Sem Bloqueio: minimizado o uso de pop-ups que peam a insero


de dados e bloqueiem o funcionamento de outras partes do programa

Sem Interrupo: Todas as funes do Blender podem ser acessadas


sem interrupo das funes. possvel por exemplo modelar enquanto
se est tocando uma animao.

Blender Game Engine Seven Game

Pgina 15

Podemos entender a interface do Blender como um conjunto de Blocos,


encaixados de forma a no deixar nenhum espao entre eles. A cada um
desses blocos alocado um Editor. Cada editor possui um conjunto de
ferramentas diferentes

possvel realizar algumas operaes com os Blocos/Editores como


aumentar seu tamanho relativo (o qual diminui o dos outros), Torn-lo uma
janela indepentende (muito til para uso em mltiplos monitores) alm de
Subdividir e remover um Editor.
possvel tambm intercambiar entre o tipo de editor ativo em cada bloco
clicando no boto no canto esquerdo de seu cabealho.
Os editores disponveis so:

3DView: Tela de apresentao 3D


Timeline: Linha do tempo para animao
Graph Editor: editor de curvas para animao
DopeSheet: editor de Keyframes para animao
NLA Editor: editor de de aes para animao
UV/Image Editor: editor de imagens e UVs
Vide Sequence Editor: editor de Vdeo
Text Editor: editor de texto e scripts
Node Editor: editor de matrias, composio e texturas procedurais
Logic Editor: editor visual de scripts
Properties: painel com as principais propriedades dos objetos
Outliner: Organizador Hierrquico da Cena
User Preferences: editor de preferncias do Blender
Info; Informaes e funes de arquivo histrico, cena e UI ativa.
File Browser: Navegador de arquivos e diretrios
Python Console: Console python interativo

Blender Game Engine Seven Game

Pgina 16

Com essas funes possvel editar a interface do Blender e deix-la da


forma que se sinta mais confortvel.
Algumas configuraes pr determinadas j esto definidas no Handler do
editor Informations. Porm voc pode adicionar novas configuraes e/ou
remover alguma no utilizada.

Opes para Cmera


Opes para Lmpadas
Opes para Meshes

importante notar que no


Blender todos os painis e
menus
so
sensveis
a
contexto, isso fica evidente no
editor Properties. Onde s so
mostrada as opes especficas
de configurao de cada objeto:

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

Blender Game Engine Seven Game

Pgina 17

2) Seleo

O Blender possui uma forma de seleo muito particular que a princpio


pode confundir usurios acostumados com outros softwares ou ao ambiente
Windows.
As principais formas de seleo no Blender so:

Seleo Direta: No editor 3D view, Use


selecionado

Seleo Conjunta por regio: No editor 3D view Use


mantenha pressionado

, Clique e

e arraste

Seleo Conjunta por Brush: No editor 3D view Use


mantenha pressionado
selecionar.

Sob o objeto a ser

Outliner: Use

, Clique e

e arraste sobre os objetos que voc deseja

sob o nome do objeto no Outliner Editor

Voc sempre pode adicionar objetos para a seleo usando

Para limpar a seleo use


Note que o ltimo objeto
selecionado ser o objeto Ativo,
isso um fato importante j que
todas as funes de contexto
sero relativas a ele, como por
exemplo, as opes disponveis
no painel Properties. Quando h
mais de um objeto selecionado e
um objeto ativo, os objetos
selecionados ficam em laranja
escuro e o ativo em um tom mais claro de laranja
Algumas outras opes de seleo tambm esto disponveis no Header
da 3Dview

Blender Game Engine Seven Game

Pgina 18

3) Cmeras e Transformaes

O Blender se utiliza de um sistema de cmeras similar a muitos dos


programas de edio 3D. Com ele voc pode realizar operaes de Rotao,
Zoom e Pan, alm de utilizar projees Ortogrficas e Perspectiva.

HOTKEYS:

Como j dito anteiormente o Blender um programa projetado para se utilizar ao


mximo a configurao Mouse+Teclado para manipulao do ambiente, de forma a
alcanar o mximo de velocidade de produo nas mos de um usurio experiente.
Todas as funes que iremos listar aqui e durante todo o nosso curso possuem outras
formas de acesso, porm iremos focar no uso de HotKeys. Isso pode tornar a curva de
aprendizado mais complicada ao incio porm com a prtica os benefcios desse
sistema sob o mtodo convencional (botes iconizados na interface ) se mostram
evidente

Uma das funes mais simples de todo programa de edio 3D so as trs


operaes de transformao de cmera: Rotao, Zoom e Pan.

Rotao:

Para rotacionar a cmera default da 3Dview ( a qual iremos chamar a partir


de agora de cmera de trabalho) pressione e mantenha pressionado
o ponteiro do mouse sobre a 3Dview e arraste.

com

Existem algumas funes de rotao de cmera pr definidas, elas se


situam no teclado numrico. (NumPad):

Top View

Pressionando o boto
+ a tecla definida na
tabela ao lado. A cmera ir se posicionar na

Front View

posio oposta. Por exemplo


inferior

a viso

Right View

Blender Game Engine Seven Game

Pgina 19

Zoom:

Para executar a funo de Zoom mova


3Dview. Voc tambm pode usar as teclas
numrico.

com o ponteiro do mouse na


e

tambm do teclado

Pan:

A funo de Pan executada pressionando


pressionado

+ mantendo

com o ponteiro do mouse sobre a 3D view.

Existem outras funes muito teis relativas cmera como por exemplo:

Troca entre viso Perspectiva e Ortogrfica

Centraliza a cmera no objeto ativo

RESETANDO VIEW:

Caso voc se perca com a orientao da cmera pressione


centralizar toda a cena na view3D

para

CMERA DE TRABALHO E OBJETO CMERA:

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:

Para posicionar os objetos cmera, utilize as funes de Fly Navigation com


+

ou use transformaes de Objeto.

Blender Game Engine Seven Game

Pgina 20

4) Transformaes de Objeto

Manipular objetos pelo cenrio parte fundamental da CG 3D. Iremos


mostrar agora como executar as trs formas de manipulao de objetos. Tenha
em mente que apesar de aplicarmos estas transformaes apenas em nvel de
objeto, elas tambm valem para manipulao de vrtices, arestas, faces,
pontos de controles em curvas e qualquer outra operao em que estas
transformaes se fazem presentes. No apenas na 3DView mas em todos os
editores.
Com o Blender possvel realizar manipulao de Objetos por duas
formas. Por manipuladores e por Hotkeys.
Manipuladores so estruturas visuais que permitem mover, rotacionar e
escalonar os objetos com o Mouse. Eles se encontram no header da 3D view.

Ativa/Desativa Manipuladores
Ativa/Desativa Manipulador de Localizao
Ativa/Desativa Manipulador de Rotao
Ativa/Desativa Manipulador de Escala

Cada uma dessas opes adiciona mais


controladores 3Dview. Para executar a operao,
pressione e mantenha pressionado
sob o eixo e
controlador desejado na 3Dview e arraste.
As operaes realizadas com manipuladores possuem
coordenadas definidas pelo menu Orientation. As mais
utilizadas so: View (Coordenada da cmera), Local
(Coordenada local ao objeto selecionado ) e Global (
Coordenada do mundo )

Blender Game Engine Seven Game

Pgina 21

Como j informado anteriormente, o Blender um programa projetado


para o ambiente Mouse+Teclado de forma a obter o mximo de produtividade.
No processo de transformaes geomtricas o Blender conta com um sistema
de Hotkey Seqencial organizado da seguinte forma:

1) Primeiro selecione a funo base com o ponteiro do mouse sobre a 3DView:


Grab

Rotate

Scale

Se o ponteiro do mouse for movido nesse momento ser realizada a operao


default de cada operador
Grab: Mover o objeto sob XY da coordenada View
Rotate: Rotacionar o objeto sob Z da coordenada View
Scale: Escalonar o objeto em XYZ global
2) Se ao invs de executar a funo default voc desejar travar um eixo podese adotar 2 formas:

Trava de Eixo Direta


Utilize as teclas

ou

para selecionar o eixo desejado

Trava de Eixos Indireta


Utilize

3) As funes

+(

para coordenadas locais utilize (

ou

) para remover o eixo indesejado

acima, travam o eixo sob a coordenada Global,


+

),(

)e(

Exemplos:
Mover o objeto sob o eixo X de coordenada global
+
Mover o objeto sob o eixo X de coordenada local
+

Blender Game Engine Seven Game

Pgina 22

Mover o objeto sob os eixos XY de coordenada global


+

Escalonar o objeto sob os eixos ZY de coordenada local


+

No Blender todas as manipulaes de objetos so


feitas a partir do seu centro. O centro do objeto uma
entidade a parte de seus meshes e determina a partir de
qual ponto a operao de transformao ser executada.
O centro representado por um ponto laranja maior que
os vrtices e sempre visvel no objeto
Quando existem vrios objetos selecionados a operao de
transformao ser realizada de acordo com a configurao do menu Pivot
Point no header da 3Dview. Ele possui as seguintes opes:

Active Element: Executa a operao usando como


base o elemento ativo ( o ultimo selecionado ).
Median Point: Utiliza como referncia o ponto
mdio entre todos os centros
Individual Origins: Executa a operao para todos
os centros individualmente
3D Cursor: Utiliza como referncia o Cursor 3D, o
qual pode ser apontado para uma posio usando
na 3Dview
Bounding Box Center: utiliza como referncia o centro de um BoundBox
virtual que englobe todos os objetos selecionados

Blender Game Engine Seven Game

Pgina 23

5) Parentando Objetos

Dois objetos podem ser parentados, assim toda transformao de objeto


realizada no pai, ser propaga ao filho. Para parentar objetos, selecione os
objetos filho, por ultimo o pai e use
+
com o ponteiro do mouse na
3DView. E selecione Object no menu que surgir

SUPORTE A OUTRAS FORMAS DE NAVEGAO E MANIPULAO

O Blender tem suporte diversas outras ferramentas de manipuo alm do


mouse, como o Magic Pad da Apple, SpaceNav 3dconnexion e diversos tablets..

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.

Blender Game Engine Seven Game

na 3D View como dito

Pgina 24

Captulo 3 Iniciando com Blender Game Engine


Nesse captulo iremos aprender mais a fundo sobre o que so game
engines, iniciar o estudo sobre a BGE e introduzir sobre a programao nos
jogos.

1) Game Engines

O Desenvolvimento de games requer a agregao de diversas


ferramentas para o gerenciamento da grande variedade de tecnologias que o
compem. Precisamos de um gerenciador e controlador dos recursos grficos
para mostrar os objetos,cenrios e personagens na tela de forma eficiente;
precisamos de gerenciadores de som, fsica, entrada de dados por
keyboard,mouse,gamepads etc; precisamos de gerenciadores de comunicao
web para games multiplayer. A lista extensa e varia conforme as
necessidades do game. A Game Engine o conjunto de ferramentas que
agregam todas as funcionalidades necessrias para a criao de um game.
Cada Game Engine contm um conjunto de solues que podem ter
pontos em comum entre si. Por exemplo, duas game engines podem utilizar o
mesmo sistema de gerenciamento de grfico, como o OpenGL. De fato muitas
o fazem, e esta a biblioteca padro da indstria de games para aplicaes 3D
interativas.
Algumas engines
como a BGE possuem
editores
visuais
de
cenrio, ou seja, com ele
voc pode posicionar
todos os objetos do seu
game visualmente, esse
sistema

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

Editores de cenrio de Game Engines geralmente possuem funes


muito bsicas para criao de modelos 3D. Isso se deve ao fato de que eles
no so geradores de contedo e sim agregadores. Geralmente os modelos
so gerados em softwares de modelagem 3D como Blender, Maya e 3DMax e
ento exportados para as Engines sob formatos de arquivo comuns aos 2
como o COLLADA ou FBX
Na BGE, isso no necessrio. Pois, seu editor de cenrios e criador de
contedo o prprio Blender, ou seja, possvel executar todas as etapas de
desenvolvimento do game (Modelagem,Texturizao,Animao, Organizao
dos cenrios, Programao e execuo) dentro do mesmo IDE. Isso evita
incompatibilidades e problemas inerentes da troca de arquivos entre
programas, alm de agilizar o processo de desenvolvimento.

BGE utiliza o Blender como editor de cenrio

Entretanto, nada impede que todo o contedo seja criado em outros


softwares 3D, importados para o Blender e utilizados na BGE se assim for
desejado. (vide sobre Asset Management no cap 15 ).
Nesta apostila iremos cobrir apenas as funes relativas ao
funcionamento da BGE e no das tcnicas de criao de modelos 3D no
Blender. Presumimos assim que voc j possua conhecimentos para
desenvolvimento dos seus modelos 3D no Blender ou outro software externo.
Aplicaes Interativas 3D so softwares que funcionam em formato cclico
ininterrupto ao contrrio de outras aplicaes. Um software de calculadora, por
exemplo, desenha sua interface na tela apenas uma vez e atualiza a imagem
de suas caixas de texto toda vez que um boto pressionado. S h
Blender Game Engine Seven Game

Pgina 26

atualizao na interface, portanto, quando h interao. Games e outras


aplicaes interativas no funcionam geralmente desse modo. Geralmente elas
desenham a imagem na tela tantas vezes quanto possvel independente de
haver interao externa ou no. A taxa com que a placa de vdeo consegue
renderizar um certo cenrio criado por uma game engine medida em FPS (
Frames per Second ou quadros por segundo) e isso mede tambm o
desempenho do game em um sistema. Se um sistema consegue processar
uma grande quantidade de quadros por segundo torna a exibio do game
mais fluida no mesmo sentido de que um vdeo com mais quadros por segundo
mais fluido.
O processo de funcionamento da game engine portanto cclico. Iniciando
pela construo dos modelos, processando os dados de entrada, fsica,
programao e depois mostrando o resultado na tela. Em cada uma dessas
etapas milhares de operaes matemticas e lgicas so feitas e quanto mais
otimizado forem esses processos, maior ser o FPS obtido.

2) Blender Game Engine

A Blender Game Engine possui um funcionamento similar a muitas outras


Game Engines com sistema WYSIWYG, o que a torna familiar a quem j
trabalhou com outras engines, porm seu sistema de programao baseado
em Logic Bricks torna o processo de programao dos componentes da
aplicao (personagens, inimigos, entidades animadas, sistemas etc... ) muito
mais simples para um usurio pouco experiente em linguagens de
programao do que a maioria das outras engines. Isso a torna tambm
perfeita para prototipagem e criao de aplicaes interativas em geral, como
passeios virtuais.
A BGE possui um sistema de programao Orientado a Objeto, isso quer
dizer que cada objeto 3D possui suas prprias funes independentes. Por
exemplo um personagem tem sua programao independente da do inimigo.
Cada objeto Roda seu prprio programa por assim dizer. Quando necessrio
objetos podem compartilhar informaes entre eles atravs de troca de
mensagens ou compartilhando uma varivel acessvel aos 2.
possvel tambm criar objetos que controlam outros objetos ou a prpria
execuo do game, como por exemplo trocar entre cenrios (fases), abrir e
fechar HUDs etc.

Blender Game Engine Seven Game

Pgina 27

importante nesse ponto compreender o fluxo de funcionamento da BGE.


Desde que o usurio inicia a BGE at a sua finalizao o ciclo de
processamento da BGE tem o seguinte funcionamento:

Incio
Ciclo Principal da BGE

Converter

Lgica

Fsica

LoadScene(?)
Load.Blend(?)

Render
Finaliza

EndGame (?)

Incio: Nessa etapa so carregadas todas as funes bsicas da


engine.

Converter: Assim que a BGE iniciada iniciada a etapa de converso.


Nessa etapa todos os objetos do arquivo .blend do Scene inicial so
convertidos para o formato da BGE. So carregadas tb em memria as
texturas, scripts de programao e efeitos.

Lgica: A partir dessa etapa se inicia o ciclo principal da BGE, se


nenhuma funo de troca de cenrio for chamada a BGE se manter
nela at a finalizao do programa. Nessa etapa so processadas todas
as chamadas das funes lgicas. So executados os scripts python e
as funes definidas pelo Logic Bricks. Aqui processada toda a
programao dos scripts do game.

Fsica: Nessa etapa a BGE utiliza as funes da Bullet Engine para


processar a fsica. Calcula colises, aplica fora gravitacional nos
objetos etc...

Render: Nessa etapa a cena j est configurada e so chamadas as


funes do OpenGL para apresent-las na tela. So processados aqui

Blender Game Engine Seven Game

Pgina 28

tambm os efeitos de Post Process e as chamas python de funes


OpenGL do mdulo bgl.

Como j dito anteriormente a BGE possui integrao total com o Blender,


porm ele um software relativamente parte. Enquanto o Blender
desenvolvido sobre a linguagem de programao estruturada C, o core da BGE
(chamado internamente de Ketsji) escrita em C++, uma linguagem de
programao Orientada Objeto. Isso torna mais simples a criao e
manuteno do cdigo j que a BGE possui suas funcionalidades orientadas
Objeto. Essa separao permite a separao do programa Blender para o
BlenderPlayer que o core da BGE em formato Stand Alone.
Para Windows quando se deseja gerar um executvel final da aplicao
(.exe) possvel agregar todos os cenrios e arquivos dentro do BlenderPlayer
criando um nico grande arquivo .exe. A outra alternativa deixar os arquivos
.blend separados e cham-lo atravs do BlenderPlayer.exe , geralmente a
segunda forma a mais utilizada por questes de licena comercial e facilidade
de manuteno. Outras formas hibridas tambm so comuns, com partes
embutidas no BlenderPlayer (geralmente um launcher) e partes externas.

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.

Blender Game Engine Seven Game

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:

1) Precisamos primeiramente ativar o plug-in de exportao para arquivos da


BGE, para isso v em File/ User Preferences. Clique ento na Guia Add-nos
na barra superior.

2) Selecione a guia Game Engine na lateral direita e depois marque o add-on


Save Game as Game Engine Runtime

3) Agor v em File/Export/Save Game as Runtime


4) Selecione as opes Copy Python e Copy Dlls caso no estejam
marcadas, selecione o diretrio e clique em Save Game as Runtime

Veja mais dicas no cap16 sobre gerao de executveis

Blender Game Engine Seven Game

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

SEGURANA DOS ARQUIVOS:


Atualmente os arquivos .blend no possuem sistema de segurana interno. Ou seja, se
em alguma aplicao os arquivos .blend estiverem expostos qualquer usurio com Blender
pode abri-lo, criar modificaes, pegar modelos etc... Salvar os arquivos dentro do
BlenderPlayer uma soluo trivial para isso. A outra e mais recomendada simplesmente
mudar as extenses dos arquivos .blend para outra extenso qualquer ou mesmo deix-lo sem
extenso. O BlenderPlayer consegue ler os arquivos .blend mesmo que sua extenso tenha sido
removida. possvel tambm compactar todas as texturas dentro dos arquivos .blend, no
deixando-os assim expostos. Para isso v em File/External Data/Pack in .blend File

Blender Game Engine Seven Game

Pgina 31

Captulo 4 Introduo Programao Visual e Logic Bricks


No captulo anterior tivemos uma viso geral do funcionamento interno da
BGE e sua integrao com o Blender. Vimos que uma das etapas
fundamentais do processo o processamento dos scripts e funes do game.
Neste captulo iremos comear o estudo a respeito de linguagens de
programao e o sistema de programao visual da BGE, o Logic Bricks.

1) Softwares de Computador e Linguagens de Programao

Games em geral so fundamentalmente diferentes de outras mdias como


vdeos e imagens. Enquanto estes so arquivos, games so softwares. Ou
seja, so constitudos por um conjunto de instrues que informam ao
computador ou console o que deve ser feito passo a passo.
Para comunicarmos ao hardware o que deve ser processado ou feito
necessrio uma linguagem. Atravs dessa linguagem damos instrues
sequenciais. O conjunto das instrues o cdigo do programa o qual
posteriormente traduzido em uma linguagem que o console compreende ou
seja: um conjunto de dados binrios, que so ento traduzidos como sinais
eltricos e processados no processador.
Um mesmo conjunto de instrues podem ser escritos em linguagens
diferentes assim com ns, humanos, utilizamos diferentes linguagens para nos
comunicarmos. Por isso um cdigo sem linguagem definida chamado
algoritmo. a ideia base por trs do cdigo sem a definio de uma sintaxe
especfica.
Por exemplo o algoritmo para fazer um bolo poderia ser algo como:
Pegar a Farinha;
Pegar os ovos;
Pegar os outros ingredientes;
Bater tudo na batedeira;
Colocar em uma assadeira;
Se o bolo estiver pronto;
Comer
Se no;
Continuar esperando;

Blender Game Engine Seven Game

Pgina 32

Repare que essa uma estrutura linear de passos, geralmente assim


tambm que criamos os scripts para os games. Por exemplo um algoritmo para
movimentar um personagem poderia ser assim:
Se o player apertar a tecla W
Toca animao 1;
Move o Player, uma unidade no eixo X;
Se o player apertar a tecla S
Toca animao 2
Move o Player, menos uma unidade no eixo X
Se o player apertar a tecla A
Toca animao 3
Move o Player, menos uma unidade no eixo Y
Se o player apertar a tecla D
Toca animao 3
Move o Player, uma unidade no eixo Y

Em linguagem python teramos algo como:


If Key(W).positive:
Player1.playAnimation(1)
Player1.localPosition = [1,0,0]
elif Key(S).positive:
Player1.playAnimation(2)
Player1.localPosition = [-1,0,0]
elif Key(A).positive:
Player1.playAnimation(3)
Player1.localPosition = [0,-1,0]
elif Key(D).positive:
Player1.playAnimation(4)
Player1.localPosition = [0,1,0]

Essa no exatamente a sintaxe correta das funes na BGE, mas


reparem que apesar de utilizar linguagens diferentes a estrutura de execuo
a mesma. O correto entendimento da lgica de programao permite que se
programe em qualquer linguagem, basta para isso conhecer a sua sintaxe e
conjunto de funes prprias.
Outro ponto importante sobre o nvel de uma certa linguagem. Quanto
maior o Nvel maior a facilidade com que podemos escrever o cdigo porm
mais lento e menos flexvel ele . Quanto menor o nvel, temos mais acesso
direto ao hardware, maior controle sobre a aplicao porm mais complexa a
programao.

Blender Game Engine Seven Game

Pgina 33

Linguagens de alto nvel so escritas e/ou funcionam com base em


linguagens de menor nvel. Isso faz com que as aplicaes sejam escritas em
camadas. Por exemplo, os scripts de um game feito com a BGE podem ser
criados em linguagem Python ou Logic Bricks. A BGE em si escrita em C++ e
utiliza funes disponibilizadas por suas libs. Aproximadamente como na
estrutura abaixo:

Scripts Python e Logic Bricks. Possuem somente


funes relativas ao game. Usa as funes definidas
pela BGE
BGE (Escrito em C++). Possui as funes de
gerenciamento de todo o game. Usa as funes
definidas nas suas libs
Libs da BGE ( Bullet Engine, OpenGL, OpenAL etc.. )
Escritos em C++, Gerenciam cada parte do sistema.
Usam as funes fornecidas pelo sistema Operacional

V
E
L
l

Sistema Operacional ( Windows, MacOS, Linux )


Escritos em C++/ C. Gerenciam todos os programas.
Usam as funes fornecidas pelo processador
Processador: S interpreta funes da linguagem
Assembly (x86,MMX,SSE...)

Nosso nico interesse aqui utilizar a BGE e no desenvolv-la ( disso


cuidam os desenvolvedores da comunidade ) ento iremos utilizar em nossas
aplicaes somente a primeira camada, a de nvel mais alto.

Blender Game Engine Seven Game

Pgina 34

2) Algortmos em Fluxogramas

A melhor forma de entendermos sobre a lgica de programao


atravs de fluxogramas. Assim como as linguagens de programao os
fluxogramas tambm representam um conjunto de passos que no caso podem
ser de instrues que o programa deve executar.
Aqui iremos representar aes com caixas e controles de condio com
Crculos. Por exemplo o mesmo exemplo do bolo em formado de fluxograma:

Pegar
Farinha

Pegar
Ovos

No

Pegar
Outros

Bater na
Batedeira

Manter no
forno

Colocar na
assadeira

Est
pronto?
Sim

Comer

Notem que em alguns momentos as instrues retornam a elas mesmas


como por exemplo na sequncia: Manter no Forno - Est pronto Manter no
Forno. Essas estruturas de repetio so chamadas Loops.
J a pergunta Est Pronto? controla a sequncia do programa. Esses
so chamados comandos condicionais.

Blender Game Engine Seven Game

Pgina 35

3) Programao Visual

Programao Visual qualquer sistema que permite a criao de scripts


de programao baseado em componentes visuais e no em texto. Geralmente
so baseados tambm em fluxogramas.
Linguagens de programao visual so muito teis para a criao de
scripts. Por scripts nos referimos geralmente a pequenos programas
relacionados diretamente ao processo final. Por exemplo um pequeno
programa para controlar a movimentao do personagem seria um script do
personagem. Todo cdigo de Python ou Logic Bricks da BGE um script.
Em game engines comum a utilizao de programao visual de
diversas formas. Por exemplo a UDK conta com o Kismet, uma linguagem de
programao visual baseada em fluxogramas. Existe tambm outras como o
Kodu da Microsoft e o sistema de scripts do Game Maker da YoyoGames.

Kodu Microsoft Research

Nesse ponto precisamos criar uma separao entre Game Engines e


Game Makers. Game Engines fornecem as ferramentas para a criao de
qualquer tipo de game, geralmente Game Makers como o produzido pela
YoyoGames ou o RPG Maker so plataformas mais limitadas, tanto pelos
games que podem ser criados quanto pelas funcionalidades. A BGE no um
Game Maker, e sim uma Game Engine que possui alm de sua API em python
uma linguagem de programao visual. A Logic Bricks, a qual, iremos introduzir
a seguir.

Blender Game Engine Seven Game

Pgina 36

4) Introduo Logic Bricks

Logic Bricks um sistema de programao visual projetado e presente


na BGE desde sua primeira verso. Ao contrrio de outras linguagens de
programao visual integradas a outras engines o Logic Bricks no uma
adio parte ou implementao simplificada de uma linguagem estruturada,
ela o core de toda a programao em BGE. Mesmo em se utilizando scripts
escritos em python ainda necessrio a criao de Logic Bricks para gerir
esses scripts e fornecer a ele algumas funes.

Logic Bricks Editor

O sistema foi projetado para funcionar no como um fluxograma mas


como uma estrutura de Blocos com fluxo fixo de dados entre Sensores,
Controladores e Atuadores.
Podemos entender seu sistema como uma estrutura de ao e reao,
mediados por uma lgica seguindo a seguinte estrutura:

Sensor

Lgica De
Controle

Atuador

Sensor: Definem um Trigger que levar a realizar uma ao. Por


exemplo o apertar de uma tecla do teclado ou a coliso do objeto com
outro de um certo tipo.

Lgica de Controle: Define que tipo de lgica ir tratar os sinais


recebidos pelos sensores. Por exemplo, voc pode querer ativar um
atuador quando um sensor E o outro estiverem ativos, ou quando um
sensor OU o outro estiverem, ou mesmo quando NENHUM deles
estiver. E, OU,NENHUM so controladores lgicos. Voc tambm pode
definir aqui utilizar expresses mais complexas ou scripts em linguagem
python.

Blender Game Engine Seven Game

Pgina 37

Atuador : Atuadores so as funes executadas depois que passam pela


lgica de controle. Podem ser relativas ao prprio objeto como o atuador
de movimentao. Ou podem se referir ao game em si como o atuador
que troca de cenrio.

Esse sistema apesar de simples muito robusto j que diversas


configuraes de Sensores, Controladores e Atuadores podem ser criadas.
Dois ou mais sensores podem ser ligados a um controlador e um sensor pode
ser reutilizado ligando-o a diversos controladores.
Por exemplo : A lgica para controle de um personagem seria como na
configurao abaixo:

Sensor
Keyboard W

Lgica AND
(pass through)

Atuador De Movimento adicionando (1,0,0)


posio atual

Sensor
Keyboard S

Lgica AND
(pass through)

Atuador De Movimento adicionando ( -1,0,0)


posio atual

Sensor
Keyboard A

Lgica AND
(pass through)

Atuador De Movimento adicionando ( 0,0,1)


rotao atual

Sensor
Keyboard D

Lgica AND
(pass through)

Atuador De Movimento adicionando (0,0,-1)


rotao atual

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)

Blender Game Engine Seven Game

Pgina 38

Note tambm que assim como dissemos anteriormente a BGE possui um


ciclo principal onde ela se manter a no ser que exista uma interrupo para
troca de cena ou finalizao do game. Todos os cdigos Logic Bricks so
processados nessa etapa, geralmente a uma taxa fixa de 60 vezes por
segundo, independentes do FPS com que o grfico est sendo mostrado na
tela.
O entendimento de todos as funes do Logic Bricks demanda tempo, no
captulo seguinte iremos comear a compreender mais a fundo o processo de
desenvolvimento com Logic Bricks.

Blender Game Engine Seven Game

Pgina 39

Captulo 5 Introduo Logic Bricks II


No captulo anterior tivemos uma viso geral do funcionamento de
linguagens de programao, programao visual e o Logic Bricks, nesse
captulo iremos ver sobre o fluxo de trabalho para o desenvolvimento de
aplicaes usando o Logic Bricks. Ao final do captulo teremos um objeto
interativo no cenrio com sua movimentao controlada pelo teclado assim
como mostrado nos diagramas do captulo anterior.

1) Workflow Para Desenvolvimento em BGE e Logic Bricks

Para termos um ambiente interativo 3D utilizando Blender e BGE


precisamos realizar algumas configuraes no ambiente de trabalho. A primeira
e mais importante indicar para a Interface do Blender que agora estamos
lidando no com seu ambiente para Animao e sim com a BGE.
Para isso siga os seguintes passos:

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.

Com isso novas configuraes podero ser vistas no Properties Editor.


Nada impede que voc desenvolva seu game sem realizar essa modificao de
antemo, porm muitas configuraes da BGE s estaro disponveis quando
o fizermos.

Blender Game Engine Seven Game

Pgina 40

Ao lado temos o painel Render aps


informarmos ao Blender que estamos trabalhando
com a BGE pelo editor informations.
Nessa tela iremos configurar
relativas Viewport e opes de Debug.

opes

Na Aba Game o boto Start inicia a BGE na


view 3D tem o mesmo efeito do hotkey
, para
interromper a BGE e voltar ao Blender aperte
.
Em Standalone Player iremos setar opes
relativas ao tamanho da tela e se usaremos full
screen ou no.
O Painel Stereo configura opes relativas
projeo 3D (esteroscopia) e em Domo.
Em Performance temos opes de Debug e
configurao grfica assim como em Dysplay.
O comando Framerate and Profile
importante pois nos permite analisar o FPS do
game e custo de processamento gasto em cada
rea (som, render, fsica etc.. )
Por enquanto iremos deixar
configuraes na configurao default.

essas

Opes diferentes para outros painis tambm


estaro disponveis. O painel World possui opes
relativas ao mundo como cor ambiente, definio
de nvoa e alguns controles para a engine de
fsica como o valor da gravidade no mundo. Aqui
tambm as opes default iro bastar no
momento.

Blender Game Engine Seven Game

Pgina 41

O segundo passo tornar visvel o Logic Editor, este no est ativo na


tela default do Blender e temos de organizar nossa interface para se adequar
melhora ao tipo de trabalho que estamos realizando, no caso, o uso da BGE.
Para isso podemos trocar o editor TimeLine pelo Logic Editor j que
no iremos trabalhar com animao ou outras funes que necessitem da linha
do tempo no momento. Configure a interface at conseguir aproximadamente
esse aspecto:

Voc pode utilizar o boto


na interface.

sob a 3Dview para aplicar Zoom e Pan

Como visto no captulo anterior o Logic Bricks uma linguagem de


programao baseada em fluxogramas estruturados. Na interface do Blender
essas estruturas so dividias em colunas que separam os sensores,
controladores e atuadores.

Blender Game Engine Seven Game

Pgina 42

Note que o Logic Editor sensvel ao contexto apenas dos objetos


selecionados, caso voc selecione outro objeto o Logic Editor ir apresentar a
programao apenas deste.

Para adicionar um sensor


clique no boto Add Sensor, uma
lista ir surgir com as opes de
sensores
disponveis.
Cada
sensor serve como trigger para
um
evento
especfico,
por
exemplo: Keyboard trata entrada
de dados do teclado enquanto
Collision trata da coliso entre
objetos.

Assim que o sensor for


escolhido este aparecer abaixo em
uma caixa com suas opes. Por
exemplo o sensor Keyboard possui
opes para escolha da tecla qual o
sensor ir reagir, opo para uso ou
no de modificadores (CTRL,SHIFT) e
outros. Iremos ver a funo de cada
sensor com mais detalhes no captulo
seguinte.

O mesmo procedimento adiciona Controladores e Atuadores.

Blender Game Engine Seven Game

Pgina 43

Agora precisamos definir as ligaes entre os Blocos (sensores,


controladores, atuadores ) assim como fazemos com um fluxograma. No Logic
Bricks os dados sempre vo do Sensor em direo ao controlador e do
controlador em direo ao Atuador, no possvel fazer o caminho inverso por
exemplo ligado um atuador a um controlador diretamente. Porm possvel
utilizar um sensor Actuador que ativo quando um atuador ativo.

Para ligar 2 blocos pressione e mantenha pressionado


sob o
marcador circular preto direita do bloco e ligue no marcador circular
esquerda do outro. Uma linha branca ir seguir o ponteiro do mouse e quando
a ligao for concluda se tornar preta.

Para remover uma ligao pressione e deixe pressionado


passe ento o cursor sobre a ligao que voc deseja remover.

Vamos analisar a seguinte configurao:

Como voc pode observar o sensor Keyboard est transmitindo suas


informaes para o controlador And que processa esses dados e envia para o
atuador Motion que ento executa a ao.
possvel adicionar quantos sensores forem necessrios a um
controlador, mas todos eles devem possuir nomes nicos. O mesmo para
atuadores. Tambm possvel adicionar quantos conjuntos de SensorControlador-Atuador forem necessrios, como na imagem abaixo:

Blender Game Engine Seven Game

Pgina 44

De forma a tornar mais visvel e organizada nossa rea de trabalho,


possvel deixar visvel apenas o header de um bloco clicando no triangulo
branco na esquerda superior do bloco. A mesma estrutura ento seria vista
dessa forma:

Remodelando com Logic Bricks a estrutura do captulo anterior teramos:

Blender Game Engine Seven Game

Pgina 45

Repare que agora os sensores possuem as teclas a serem acionadas e


os atuadores os valores. No captulo seguinte iremos aprender sobre, sensores
e atuadores relativos movimentao.

Blender Game Engine Seven Game

Pgina 46

Captulo 6 Bricks Bsicos


No captulo anterior tivemos uma viso geral do fluxo de trabalho com
Logic Bricks, nesse captulo iremos entender melhor sobre os sensores,
controladores e atuadores bsicos.

1) Sensores Always, Keyboard e Mouse

Em games mais simples geralmente temos personagens que se


movimentam basicamente de 2 formas: O personagem principal se move
conforme os controles de teclado/mouse e os inimigos se movimentam todo o
tempo. Na BGE podemos disparar aes (atuadores) tambm a partir desses
eventos.
O sensor Always o mais simples dos sensores no Logic Bricks,
basicamente ele uma chave
sempre
ligada.
Qualquer
atuador ligado a ele por um
controlador AND ir estar
sempre ativo.
Como voc pode ver algumas opes ainda esto disponveis no sensor
Always assim como em todos os sensores. No captulo especfico sobre
sensores iremos falar sobre essas opes.
Temos ainda como j visto
no captulo anterior o sensor
Keyboard que ativado sempre
que
a
tecla
do
teclado
correspondente ao sensor
acionada.
Na caixa Key possvel
configurar a tecla qual o sensor
ir reagir, clique na caixa em
branco direita e clique na tecla
do teclado que deseja.
Se a opo All Keys estiver ativa qualquer tecla do teclado ir ativar
esse atuador, isso til quando queremos tratar muitos eventos com 1 s
programa python ou para situaes do tipo press any key to start

Blender Game Engine Seven Game

Pgina 47

Alm do Keyboard podemos


tambm
ativar
atuadores
atravs do sensor Mouse. No
menu Mouse Event podemos
configurar a que evento do
mouse o sensor ir reagir.
Left,Midle,Right
Button
se
referem aos botes do mouse.
Wheel Up e Down so os
eventos de scrool, Mouse Over
ativo quando o ponteiro do
mouse est sob o objeto dono
do Logic Bricks; Mouse Over
Any faz o mesmo mas para
qualquer objeto do cenrio.
Movement trata os eventos de movimentao do mouse, como existem poucas
opes para Movement ele mais usado com scripts python para criar
cmeras em primeira pessoa etc.
Atravs desses 3 sensores podemos criar quase todos os movimentos
dentro de um game simples.

2) Controlador AND

O controlador AND (e aditivo)


geralmente o controlador mais
utilizado e um dos mais simples.
Iremos ter um entendimento mais aprofundado sobre controladores no captulo
posterior, para ns agora apenas interessante notar 2 coisas:
- Quando ligado apenas 1 sensor o controlador AND um pass
through ou seja, sempre que o sensor estiver ativo o atuador tambm estar.
- Quando ligado em 2 ou mais sensores o controlador AND s ativar o
atuador quando TODOS os sensores forem ativos.
Uma sintaxe que podemos usar para descrever seu funcionamento :
O controlador AND ativa o Atuador quando x E y E w E...n entradas
estiverem ativas

Blender Game Engine Seven Game

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.

LIGAO DIRETA ENTRE SENSOR E ATUADOR


Como comentamos anteriormente os controladores AND quando ligados somente 1
sensor so considerados como pass through ou seja, sempre que o sensor estiver ativo o
atuador tambm estar. Podemos tirar proveito disso na interface da BGE. Podemos ligar
diretamente um sensor com um atuador sem a necessidade de criar um controlador AND.
Quando a ligao realizada o controlador criado automaticamente.

No captulo seguinte iremos aprofundar no estudo dos sensores e


controladores.

Blender Game Engine Seven Game

Pgina 49

Captulo 7 Aprofundando em Sensores e Controladores


Nos dois captulos anteriores tivemos uma viso geral prtica do
funcionamento do Logic Bricks e de alguns sensores e controladores. Agora
iremos aprofundar no estudo destes de forma a compreender e tirar proveito de
suas caractersticas internas.

1) Aprofundando em Sensores

Como j vimos anteriormente em Logic Bricks, Sensores so triggers


para ativao de aes no game, por exemplo: A ativao de um movimento
quando uma tecla for pressionada ou a ativao de uma animao quando um
objeto colidir com outro. Pressionar uma tecla ou deteco de coliso de fato
so aes detectveis. Existem diversas aes detectveis pelos sensores na
BGE. Mas antes de ver quais so as aes detectadas precisamos entender
como os sensores detectam essas aes e como passam a informao para os
controladores.
Vamos tomar como
objeto de estudo o sensor
mais simples. O sensor
Always:
Como dissemos anteriormente o sensor Always trabalha como uma
chave sempre ligada. Isso quer dizer que qualquer atuador ligado a ele por
uma porta AND estar sempre ativo, contanto que ele seja o nico sensor
ligado a esse controlador. Mas como isso de fato acontece?
Para isso precisamos revisar a estrutura de funcionamento da BGE:

Incio
Ciclo Principal da BGE

Converte
r

Lgic
a

Fsica

LoadScene(?)
Load.Blend(?)

Render

Finaliza
EndGame
(?)

Blender Game Engine Seven Game

Pgina 50

Assim que apertamos P ou executamos o executvel de uma aplicao


criada com BGE iniciado o processo de converso, nessa etapa os objetos
do arquivo .blend so convertidos para objetos da BGE. Aps isso entramos no
loop principal da aplicao que composto pelo processamento de Fsica,
Lgica e Render. Em nossa aplicao de teste no configuramos nenhum
objeto como reagindo a fsica nem utilizamos nenhum sensor de coliso ou que
necessite de tratamento de fsica ento seguimos para a etapa seguinte,
Lgica.
Na etapa de Lgica todos os Logic Bricks so processados e o resultado
desse processamento aplicado aos objetos. Por exemplo: se o resultado de
nosso programa teste for que o objeto tm de se mover 1 unidade para frente
ento isso aplicado ao objeto e mostrado na tela na etapa seguinte Render.
Com relao aos sensores, cada um deles s pode armazenar um
estado por ciclo de processamento, ou verdadeiro ou falso. Esse estado
atualizado a cada ciclo de processamento conforme o resultado da condio
que ele verifica. A troca de estado (verdadeiro para falso ou falso pra
verdadeiro ) principal causa da ativao de um controlador no importando se
a direo para ativao ou desativao. Note que o atuador s executado
quando todos os sensores so processados. Quando um atuador executado
ele ir verificar o estado dos sensores/controladores e ir executar sua funo
ou no.
Por
exemplo,
o
diagrama ao lado representa
13 ciclos de processamento da
BGE e os resultados de um
sensor Keyboard qualquer.
Inicialmente, nos ciclos 1 e 2 o sensor est com valor Falso pois a tecla
no est pressionada. No ciclo 3 detectado a tecla como pressionada ento
atualizado o seu valor para Verdadeiro e emitido um pulso para o
controlador/atuador j que houve uma troca de estado. Nos ciclos 4 a 10 a
tecla ainda est pressionada ento o valor continua positivo, porm no so
emitidos outros pulsos para reexecutar o operador, a operao que ele realizou
(ou no dependendo da lgica do controlador) vai prosseguir sendo executada.
No ciclo 11 a tecla solta e seu estado reconfigurado para False e um
novo pulso emitido para executar o atuador devido a troca de estado.

As opes Pulse (3 pontos


no lado acima e 3 pontos no

Blender Game Engine Seven Game

Pgina 51

abaixo) e Level so utilizadas para ativar atuadores (enviar pulsos) mais vezes
do que apenas nas transies de estado.

Pulse Mode TRUE envia pulsos todos os ciclos em que o valor do


sensor verdadeiro
Pulse Mode FALSE envia pulsos todos os ciclos em que o valor
do sensor falso

A opo freq. Configura a frequncia em que esses pulsos so


enviados. O valor 0 representa que ele ser enviado a todos os pulsos, 1 seria
um pulso sim e outro no; 2 seria um sim a cada 2 no. No final a frequncia
de envio igual a 60/freq. 1 pulso por segundo ento o valor 60 em freq.
Existem mais 3 opes padro dos sensores. Level faz com que o
sensor emita um pulso a cada troca de state (iremos ver states mais adiante).
A opo Tap reseta o estado do sensor para falso aps a transio
para um estado verdadeiro. Isso til quando por exemplo queremos que a
pessoa no possa deixar a tecla pressionada para reexecutar uma funo.

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.

Blender Game Engine Seven Game

Pgina 52

1) Aprofundando em Controladores

Como dissemos anteriormente toda vez


que o sensor emite um pulso o atuador ir
verificar se ele deve ou no ser ativado, quem
determina isso so os controladores. Existem
atualmente 6 operadores lgicos, um gerador
de expresso e a opo de usar programas
python.

AND Sada verdadeira somente se todos as entradas forem


verdadeiras
OR - Sada verdadeira se alguma das entradas forem verdadeiras
NAND Sada verdadeira se alguma das sadas for falsa
NOR Sada falsa se alguma das entradas for verdadeira
XOR Sada verdadeira se apenas 1 das entradas for verdadeira e as
outras falsas
XNOR Sada falsa se apenas 1 das entradas for verdadeira e as
outras falsas

Com o controlador Expression podemos escrever expresses mais


complexas por exemplo
((Sensor1 AND Sensor2) AND (NOT sensor3)) OR Sensor 4
Note que Sensor1... Sensor4 so nomes de sensores reais. Os nomes
dos sensores podem ser configurados no campo sensor name do sensor.
Podemos ainda usar operaes de comparao (<,<=,>.>=,==) e
matemticos (+,-,*,/) quando utilizando propriedades. Iremos ver sobre
propriedades mais adiante.
Com o controlador Python podemos criar programas em linguagem
python para controlar as aes. Para isso precisamos ter conhecimento sobre a
API da Blender Game Engine. Essa documentao pode ser encontrada no site
oficial www.Blender.org
Todo atuador possui mais uma opo chamada Use Priority
Essa opo determinar que esse controlador tem de ser executado
anteriormente aos outros. Isso interessante para operaes que tem de ser
executadas antes de outras no incio do game. Por exemplo para executar um
arquivo de configurao.

Blender Game Engine Seven Game

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.

Blender Game Engine Seven Game

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.

1) A Fsica nos Games


Os Games de diversas formas tentam recriar propriedades do mundo
real, seja atravs dos grficos seja atravs dos sons. Mas no somente estes
podem ser reproduzidos nos ambientes virtuais mas tambm a fsica do mundo
real.

Pong

A fsica nos jogos no um elemento novo, de


fato ela est presente desde os primrdios dos
jogos eletrnicos. Tomemos por exemplo o
game Pong de 1972, o primeiro game
comercial lucrativo que se tem notcia. Mesmo
esse simples game possui elementos de fsica
sendo processados como por exemplo a
coliso da bola com as barras e daquela com
as laterais da tela.

Com o tempo outros elementos alm


da coliso simples foram sendo adicionados
como por exemplo gravidade quando o
player executa um pulo, nos jogos de
plataforma 2D como Prince of Persia, mas
por muito tempo a maioria das melhorias na
rea de fsica se resumiam a formas mais
rpidas e melhores de se processar as
colises, de fato essa ainda uma das reas
de pesquisa em games que mais tm se
desenvolvido.

Blender Game Engine Seven Game

Prince of Persia - 1989

Pgina 55

Em Novembro de 2004 foi lanado


o game Half Life 2 da Valve e sua
game engine Source. O game e a
engine
se
tornaram
muito
populares por conta de suas
inovaes
grficas
e
fsica
revolucionria. Com ela grande
parte dos elementos de cenrio
como barris etc possuam fsica de
reao a coliso ento caiam,
Half Life 2/ Source Engine www.valvesoftware.com
rolavam, podiam ser inclusive
utilizadas como armas contra os
inimigos do cenrio. A partir da comearam a surgir diversos games que
exploravam as possibilidades de fsica como seu principal atrativo. Um dos
mais populares foi o game Portal tambm da Valve e tambm utilizando a
Source como Game Engine. No game a protagonista controla uma mquina
capaz de criar portais no espao com isso tem de superar diversos cenrios
projetados como experincias cientficas. O game recebeu em 2011 uma
continuao.

Portal - www.valvesoftware.com

Com a crescente complexidade da fsica nos jogos tambm foi


necessrio que novas formas de processamento para eles fossem criadas.
Atualmente a tendncia que utilizemos a prpria placa de vdeo para
processar alm dos grficos tambm a fsica. Um exemplo disso a
Blender Game Engine Seven Game

Pgina 56

Tecnologia PhysiX da Nvidia. Porm outras plataformas livres tambm vem


ganhando fora nessa rea como por exemplo a utilizao do padro OpenCL
para processamento de fsica em GPU sem estar limitado s placas Nvidia.
Atualmente contamos com sistemas de processamento de fsica muito
prximos ao comportamento real dos objetos, da simples coliso entre eles at
o comportamento de fluidos gasosos e lquidos, de simples projteis de armas
at centenas de milhares de partculas de uma exploso. De arranhes nos
ambientes at a completa destruio de prdios. Podemos nos games controlar
a gravidade, correr, voar, nadar etc, assim como no mundo real ou em qualquer
lei dos mundos imaginrios que se quer recriar. Tudo isso possvel atravs do
processamento de fsica.

2) A Fsica da BGE Bullet Engine


A Blender Game Engine tambm possui sua engine de fsica integrada.
A Bullet Engine (http://bulletphysics.org). A Bullet est totalmente integrada no
somente Blender Game Engine como tambm ao Blender podendo assim ser
recriados animaes realistas para filmes. Tambm existem implementaes
da Bullet para outros softwares como Maya e Cinema4D. Diversos filmes como
Shrek 4 e Como Treinar seu Drago utilizaram Bullet em momentos da
produo.
Na BGE a Bullet Engine mostra sua integrao atravs de vrios painis
e opes diferentes e o correto entendimento de suas opes crucial para se
atingir o resultado esperado.
Alguns conceitos de fsica bsica tambm sero necessrios para se
utilizar a Bullet em todo seu potencial j que as propriedades que iremos
configurar so de fato propriedades fsicas dos objetos assim como seriam no
mundo real como massa, resistncia do ar, frico etc.
Para acessar as propriedades fsicas de um objeto primeiro necessrio
setar a interface do Blender para o modo Blender Game como indicado
anteriormente. As propriedades de fsica
se mostram na aba Physics do Properties
Editor.

Blender Game Engine Seven Game

Pgina 57

Este painel ir apresentar apenas a


opes referentes ao tipo de fsica que
estiver selecionado na opo Physics
Type. Atualmente existem as seguintes
opes:
No Collision: Nenhum tipo de
fsica processado para esse objeto,
ele no pode detectar nenhum objeto
com sensores que utilizem fsica nem
pode ser detectado por nenhum deles.
Qualquer objeto pode transpassar por
ele e ele pode transpassar por qualquer outro objeto. o mais
recomendado para qualquer elemento do cenrio ou do game que no
tenha contato diretamente com o player pois no causa custo nenhum
para a etapa de processamento de fsica.

Static: Principalmente utilizado para elementos de cenrio que precisam


de coliso com o personagem mas que no se movimentam. Eles
podem detectar coliso mais no reagem a ela. Quando um objeto
dinmico colide com um esttico ele reage coliso ( no entra para
dentro do objeto esttico )

Dynamic: Principalmente utilizado para elementos que se movimentam


pelo cenrio, precisam detectar coliso e reagir a ela alm. Eles tambm
reagem gravidade do mundo. Porm no aplicado a eles momento
de alavanca ou torque das colises.

Rigid Body: O mesmo dos objetos Dynamic porm a eles aplicado


torque das colises.

Soft Body: Simulam corpos com deformao elstica como cordas,


roupas etc, so os mais complexos de serem processados por isso sua
utilizao tem de ser feita com cautela.

Occlude: No so de fato propriedades fsicas do objeto, quando um


objeto setado para Occude sua fsica passa a ser assim como No
Collision porm qualquer objeto atrs deste no ser processado na
etapa de renderizao. Isso til para otimizao quando temos muitos
objetos dentro de um local que no visvel do lado de fora.

Sensor: Funciona como um No Collision porm pode detectar as


colises, a melhor escolha para casos como triggers e chaves de
contato.

Blender Game Engine Seven Game

Pgina 58

Navegation Mesh: Tambm no se trata de uma configurao fsica,


este utilizado como caminho para o sistema de inteligncia artificial
PathFinder A* da Blender Game Engine.

Vamos analisar agora as principais opes relativas a cada um dos tipos de


reao fsica diferentes onde a fsica tem relevncia. Comeando pelo mais
simples.
Static

Actor : Alguns sensores como o


Radar s detectam objetos com a opo
Actor acionada.
Ghost: Essa opo permite que
objetos setados como Dynamic passem por
dentro desse objeto.
Invisible: O objeto se torna invisvel
na etapa de renderizao, no exatamente
relativo fsica mas sim etapa de render.
Radius: Utilizado quando o bound setado para Sphere, determina o
raio da esfera de coliso
Anisotropic Friction: Aplica diferentes valores de frico conforme o eixo
de movimentao.

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

Look Rotation: Impede que o objeto rotacione em um desses eixos.

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

Blender Game Engine Seven Game

Pgina 60

3) Bounds

Como dito anteriormente uma das principais reas de processamento


das engines de fsica com relao deteco de coliso e formas de tornar
esse processo mais gil. Uma das formas encontradas para isso o uso de
simplificaes ao invs do uso da geometria do objeto em si.
Um personagem de um game da gerao atual pode ter por volta de
12~15K polgonos, processar a fsica dessa grande quantidade de polgonos
seria algo extremamente custoso para a engine de fsica. O que se faz ento
utilizar uma aproximao geomtrica simplificada do objeto que se quer testar a
coliso. Por exemplo para testarmos a coliso de uma parede cheia de tijolos
poderamos testar a coliso com um paraleleppedo que a envolvesse. A essa
simplificao chamamos Bound.
Um efeito indesejvel dessa simplificao que por vezes partes no
envoltas pelo Bound do personagem atravessam partes de paredes e outros
objetos, porm a reduo do custo de processamento compensa esses
eventuais problemas.
Na Blender podemos utilizar bounds para objetos configurados como
Static, Dynamic, Rigidy Body, Soft Body e Sensor. Para isso precisamos setar
a opo Collision Bounds. As seguintes configuraes de Bounds para
objetos:
Triangle Mesh: A prpria geometria ser o
seu bound, a mais precisa porm mais custosa.
Essa a opo mais indicada para terrenos. Se
nenhum bound for configurado essa ser a opo
selecionada.
Convex Hull: Ser criado um mesh convexo a
partir do modelo atual e este ser o bound de
coliso. Mais indicado para casos em que
necessrio uma coliso acurada e o objeto no
cncavo.
Cone: Utiliza um cone como bound de

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

Blender Game Engine Seven Game

Pgina 61

Abaixo est uma representao dos objetos e seus bounds

A estrutura de grade em magenta em volta do objeto o seu bound ou seja,


ser a esse objeto que a coliso ir reagir. Reparem que como Box e Cylinder
o bound muito maior do que o objeto porm em Cone grande parte do objeto
fica sem coliso. A melhor opo nesse caso parece ser Convex Hull ou
Triangle Mesh, porm dependendo do caso as opes capsule ou sphere
podem servir. Cada modelo tem de ser analisado individualmente conforme a
necessidade de coliso.

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

Blender Game Engine Seven Game

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

Constraints so estruturas que permitem criar eixos fixos em objetos


configurados como Rigid Body. Alm disso possvel fixar esses eixos outros
objetos criando assim ligaes entre eles. Com isso podemos criar mquinas
mecnicas que reagem naturalmente fsica ou mesmo Ragdolls

University of Arizona - Leang Sang, Physics in


Animation/ Video Games

Blender Game Engine Seven Game

Ragdoll Ragdolls so estruturas


que simulam o comportamento fsico
dos corpos de seres vivos em
games quando estes no possuem
nenhuma sustentao, geralmente
so
utilizados
quando
os
personagens morrem ou perdem a
conscincia.
No devem ser
confundidos com os bones de
animao. Mesmo que possam ser
estruturas
parecidas
possuem
funes
diferentes.
Bones
determinam
animaes,
os
envelopes de ragdoll determinam
reaes fsicas.

Pgina 63

Para adicionar um Join a


um objeto precisamos acessar o
painel
Object
Constraints
e
adicionar um constraint do tipo
Rigid Body Join.
Como pode ser observado
existem vrios outros tipos de
constraints porm eles no possuem
compatibilidade com a BGE.

Assim que o constraint for adicionado uma tela de configurao ir


aparecer, note que voc pode adicionar quantos constraints desejar para o
objeto. Abaixo esto descritas as principais funes dos constraints quando
relativos BGE.

Target: Especifica o objeto qual o Join


est vinculado, se nenhum objeto for
selecionado como Target o Join ser feito em
relao ao mundo.
Display Pivot : Torna visvel na 3D View
o eixo de rotao
Pivot : Estabelece a posio do pivot
em relao origem (centro) do objeto
Linked Collision : Desabilita a coliso
entre objetos conectados.

Pivot Type: Determina o tipo de movimentao que o pivot


limita/estabelece

Blender Game Engine Seven Game

Pgina 64

Hinge: Funciona como uma dobradia

Ball: Age como uma ligao esfrica:

Cone: funciona como o Ball, porm permite limitar os ngulos.


Generic 6 Dof : Permite estabelecer limites em todos os eixos de orientao e
posio. til quando se deseja travar a movimentao em um eixo ou rotao
em um ngulo dentro de uma faixa de valores.

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

Na BGE podemos configurar ainda


parmetros de fsica do mundo para
isso precisamos acessar o painel world
com a opo Game Blender setada no
Informations Editor. Alm de opes
grficas como o valor de fundo do
mundo, iluminao ambiente e neblina
temos a disposio diversas opes de
fsica:

Physics Engine: Atualmente a


nica engine de fsica da BGE a
Bullet, mas podemos desliga-la setando
esse parmetro para None
Gravity: Valor de gravidade
aplicado a todos os objetos do mundo
Physics Steps
o Max: Valor que mantem a
fsica sincronizada mesmo quando o
FPS do game cai.
o Substeps: Nmero de
subpassos para cada interao fsica.
Valores maiores permitem melhor
sincronizao mais pesam mais a aplicao.
o FPS: Taxa de atualizao da fsica independente da dos grficos
Logic Steps
o Max: Valor que mantem a lgica sincronizada mesmo quando o
FPS do game cai.
Occlusion Culling:
o Liga e desliga o sistema de otimizao de grficos quando
objetos esto atrs de outros ( e portanto no so visveis )
o Resolution: Valor de preciso para o calculo

Blender Game Engine Seven Game

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:

Material: Determina o material, o qual o objeto detectado tem de possuir


para ativar o sensor.

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:

Property: Determina a propriedade, a qual o objeto detectado tem de


possuir para ativar o sensor.
Eixo: Estabelece para qual eixo ser emitido o raio de verificao
Range: Estabelece qual a distncia mxima de verificao

Blender Game Engine Seven Game

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:

Property: Determina a propriedade, a qual o objeto detectado tem de


possuir para ativar o sensor.
Axis: Estabelece para qual eixo ser emitido o raio de verificao
Angle: Estabelece o ngulo mximo do cone de verificao
Distance: Estabelece a distncia mxima de verificao do sensor

Blender Game Engine Seven Game

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:

Evaluation Type: Determina a funo de ativao e verificao para a


propriedade
o Equal Igual a x ?
o Not Equal Diferente de x ?
o Interval Tem valor sob o intervalo x - y?
o Changed A propriedade foi modificada ?
Property: Determina a propriedade, a qual o objeto detectado tem de
possuir para ativar o sensor.
Value: Valor com o qual a propriedade ser comparada.

1.6 Near
O Sensor Near verifica a
existncia de algum objeto com
a propriedade especificada a
uma certa distncia.

Parmetros:

Reset Distance: Distncia com a qual o sensor no encontra mais o


objeto aps a sua deteco.
Distance: Distancia com o qual o sensor detecta o objeto inicialmente

Blender Game Engine Seven Game

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:

Mouse Event: Determina o evento de mouse que ir ativar o sensor


o Left Button Boto Esquerdo
o Right Button Boto Direito
o Middle Button Boto do Meio
o Wheel Up Scrool do Mouse para cima
o Wheel Down Scrool do Mouse para baixo
o Moviment Movimentao do Mouse
o Mouse Over Ponteiro do mouse est sobre o objeto
o Mouse Over Any Ponteiro do mouse est sobre qualquer
objeto da tela

1.8 Message
O sensor Message verifica
se foi recebido pelo objeto
alguma mensagem com o
texto especificado pelo
campo Subject

Parmetros:

Subject: A mensagem tem de possuir o texto especificado para tornar


ativo o sensor.

Blender Game Engine Seven Game

Pgina 70

1.9 Keyboard
O sensor Keyboard
verifica se a tecla
especificada por
pressionada

Parmetros:

Key: Tecla verificada para ativar o sensor


All Keys: Verifica todas as teclas
First Modifier: Segunda tecla que tem de estar pressionada juntamente
com a primeira para ativar o sensor
Second Modifier: Terceira tecla que tem de estar pressionada
juntamente com a primeira e segunda para ativar o sensor
Log Toggle: Toda vez que a tecla pressionada adiciona o valor
pressionado
Target: Para que propriedade o valor ser enviado

1.10 Keyboard
O sensor Delay aguarda
o tempo especificado
depois ativa o sensor.

Parmetros:

Delay: Tempo de aguardo antes de ativar o sensor


Duration: Especifica por quanto tempo o sensor ir permanecer ativo
Repeat: Especifica se o processo ser repetido indefinidamente

Blender Game Engine Seven Game

Pgina 71

1.11 Collision
O sensor Collision
funciona de forma similar
ao Touch porm possui
mais opes.

Parmetros:

Pulse: Torna o sensor sensvel a outras colises mesmo que a atual


ainda esteja em curso
M/P: Especifica se o fator de ativao para a coliso ser a propriedade
ou o material ( se o campo for deixado em branco, a coliso com
qualquer objeto ir ativar o sensor )
Property/Material: Especifica o material/propriedade especfico para
verificao.

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:

Actuator: Atuador que ser verificado

Blender Game Engine Seven Game

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.

Blender Game Engine Seven Game

Pgina 73

No Logic Editor possvel observar na lateral esquerda uma barra de


nome Properties.
Para adicionar uma propriedade clique no boto Add Game Properties

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.

Prop Name: Estabelece o nome da propriedade, aconselhvel utilizar


um nome de fcil identificao, por exemplo HP para a vida do
personagem, ou Voltas para o nmero de voltas de um carro.

Type: Estabelece o tipo da propriedade. Atualmente existem 5 tipos


disponveis:
o Timer: Funciona como um relgio que ativado assim que se
inicia a execuo do programa. (O relgio pode ser zerado a
qualquer momento atravs de atuadores )
o String: Estabelece uma propriedade de texto para um objeto.
o Float: Estabelece uma propriedade numrica de ponto flutuante
para o objeto. Por exemplo: 0.5, 10.09, 9.12312312
o Integer: Estabelece uma propriedade numrica inteira para o
objeto. Por exemplo: 0,10,9
o Boolean: Estabelece uma propriedade Lgica para o objeto.
Propriedades Lgicas s possuem 2 valores: Verdadeiro ou Falso

Value: O Valor inicial da propriedade


Print Debug: Apresenta o valor da propriedade no Debug da 3Dview
quando executando a aplicao.

O uso mais simples de testar uma propriedade atravs do uso de


controladores do tipo expression.
Por exemplo, se quisermos representar a seguinte lgica:
Mover 0.1 unidade no eixo X quando a propriedade time for maior do que 4
segundos

Blender Game Engine Seven Game

Pgina 74

Podemos construir esse sistema atravs de um sensor Always, um


controlador expression e o relativo atuador.

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

Blender Game Engine Seven Game

Pgina 75

O ultimo tipo o
Changed, o qual ativa o
sensor toda vez que a
propriedade sobre uma
modificao de qualquer
tipo.

O mesmo exemplo anterior poderia ser reescrito da seguinte forma


utilizando sensores:

Note que o valor mximo configurado para 9999999 corresponde ao tempo


de aproximadamente 2778 horas o que virtualmente uma especificao de
infinito j que dificilmente uma aplicao interativa ir rodar todo esse tempo.
Note tambm que no foi necessrio a utilizao do Pulse Mode True, j
que o sensor ir enviar ao atuador o pulso de verificao no momento que sua
propriedade trocar de estado (no caso, quando ela for ativada)
Podemos ainda, alm de verificar propriedades, aplicar valores a
propriedades em tempo de execuo. Por exemplo, atualizar o nmero de
voltas de um carro.
Para isso precisamos utilizar o atuador Property.
O atuador
Property funciona
adicionando ou
alterando valores
de propriedades do
objeto.

Blender Game Engine Seven Game

Pgina 76

Existem atualmente 4 operaes com propriedades executadas pelo


atuador, elas esto dispostas na propriedade Mode.

Toggle: Tem funes especficas para cada tipo de propriedade.


Para propriedades Booleanas
o modo Toggle troca entre os
valores Verdadeiro e Falso.
Para propriedades string
reseta o texto atual para o texto

FALSE
Para propriedades Int e Float e Timer retorna para o valor 0, 0.0 e 0.0
respectivamente

Copy: Em muitos casos interessante compartilhar valores de


propriedades entre objetos, apesar
disso ser uma prtica pouco
recomendada em alguns casos
necessria. O atuador Copy
funciona copiando o valor de uma
propriedade de outro objeto, para a
sua propriedade especificada.

Add: Adiciona um valor para a propriedade especificada, Note que


adicionar um valor no
necessariamente corresponde a
incrementar um valor. Pode-se utilizar
um valor negativo em Value para
decrementar o valor de uma
propriedade.

Assign: Assinala um valor para a propriedade especificada.

Blender Game Engine Seven Game

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

Blender Game Engine Seven Game

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:

Visible: Seta a visibilidade do objeto


Occlusion: Determina se o objeto agir como uma mscara de ocluso
para os outros ou no.
Children: Estabelece se os filhos da relao de parentesco tero as
mesmas propriedades de visibilidade e ocluso.

1.2 State

O atuador State
determina o estado
ativo do objeto.
Aprenderemos mais
sobre States em um
captulo futuro.

Parmetros:

Operation: Seta a operao realizada


o Change state: Muda para o estado especificado
o Remove state: Remove o estado especificado da lista de
execuo
o Add state: Adiciona o estado especificado na lista de execuo

Blender Game Engine Seven Game

Pgina 79

o Set State: Muda para o estado especificado removendo os


outros.
Layers: Estabelece a qual State a operao ir se referenciar.

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

O atuador sterring responsvel


pelo sistema de IA pathfinding
implementado na BGE.

Blender Game Engine Seven Game

Pgina 80

Parmetros:

Behavior: Define um dos seguintes comportamentos para o sistema:


o Seek: Segue o objeto Target
o Flee: Foge de um objeto Target
o Path Following: Segue um objeto por um caminho especificado
Target Object: Determina o objeto alvo do sistema
Nevigation Mesh: Estabelece qual o mesh de navegao por onde o
objeto poder se locomover (Note que o NavMesh tem de estar pr
configurado )
Dist: Mxima distncia em que o alvo considerado encontrado
Velocity: Velocidade do objeto
Acceleration: Acelerao do objeto
Turn speed: Velocidade de giro do objeto.
Facing/Axis: Liga/Desliga e estabelece o eixo em que ser aplicado
Self Terminated: Desativa o atuador quando o objeto for encontrado
Visualize: Apresenta um Debug visual do comportamento do objeto

1.5 Scene
O atuador Scene
responsvel pelas funes
relativas ao gerenciamento
de cenas na BGE

Parmetros:

Scene: Configura a funo a ser executada:


o Resume Scene: Reabre uma Scene previamente suspensa.
o Suspend Scene: Suspende uma Scene temporariamente.
o Remove Scene: Remove uma Scene da memria definitivamente
o Add Background Scene: Adiciona uma Scene como Background
da atual
o Add Overlay Scene: Adiciona uma Scene a frente da atual
o Set Camera: Estabelece o objeto cmera ativo da cena atual.
o Set Scene: Troca a Scene atual pela Scene especificada
o Restart: Reinicializa a cena atual.

Blender Game Engine Seven Game

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:

Seed: Valor base para o calculo de aleatoriedade


Distribution: Funo de aleatoriedade
Property: Propriedade a ser setada

1.7 Property
O atuador Property responsvel
pelas funes de manipulao e
edio de propriedades

Parmetros:

Mode: Configura a funo aplicada a propriedade.


o Assign: Aplica o valor especificado
o Add: Adiciona o valor especificado propriedade
o Copy: Copia o valor de uma propriedade de outro objeto para
uma sua
o Toggle: Reseta/Inverte o valor da propriedade.
Value: Valor aplicado operao

1.8 Parent
O atuador Parent responsvel
por criao e remoo de
parentesco entre objetos em
tempo de execuo.

Blender Game Engine Seven Game

Pgina 82

Parmetros:

Scene: Configura a funo aplicada a propriedade.


o Set Parent: Cria parentesco com o objeto especificado
o Remove Parent: Remove parentesco com o objeto especificado
Parent Object: Objeto alvo da funo
Compound: Configura o bound de fsica do objeto para o tipo
compound
Ghost: Configura a fsica do objeto para o tipo Ghost

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:

Motion Type: Configura o tipo de movimentao


o Simple Motion: Movimento aplicado diretamente
Loc: Operao de translao simples
Rot: Operao de rotao simples
Force: Aplicao de Fora
Torque: Aplicao de Torque
Linear Velocity: Aplicao de Velocidade Linear
Angular Velocity: Aplicao de Velocidade Angular
Damping Frames: Quantidade de frames para se obter a
velocidade aplicada.
o Servo Control: Movimento relativo
Object Reference: Objeto de referncia para o calculo de
velocidade
Linear Velocity: Velocidade Linear aplicada ao objeto
X,Y,Z: Configura o limite de fora aplicada a cada um dos
eixos.

Blender Game Engine Seven Game

Pgina 83

1.10 Message
O atuador Message responsvel
pelo envio de mensagens para
outros objetos.

Parmetros:

To: Especifica o objeto que ir receber a mensagem. ( Em branco


significa uma mensagem em broadcast )
Subject: Ttulo da mensagem
Body: Pode conter um texto ou o valor de uma propriedade

1.11 Game
O atuador Message responsvel por
funes de manipulao de arquivos
.blend e do fluxo do game

Parmetros:

Game: Especifica a funo a ser executada:


o Start Game From File: Especifica o arquivo .blend a ser
carregado ( O arquivo .blend pode ser renomeado para qualquer
outro formato, .data .cenarrio etc.. e ainda sim ser lido
corretamente )
o Restart Game: Reinicializa o arquivo .blend atual
o Quit Game: Fecha a aplicao ( Mesma funo do Esc
configurado por default )
o Save GlobalDict: Salva um dicionrio de dados
o Load GlobalDict: Abre um dicionrio de dados

Blender Game Engine Seven Game

Pgina 84

1.12 Filter 2D
O atuador Filter 2D responsvel
pela aplicao de efeitos de post
process
Parmetros:

Filter 2D Type: Especifica a funo a ser aplicada

1.13 Add Object


O atuador Add Object responsvel
pela manipulao de objetos em
tempo de execuo.

Parmetros:

Edit Object: Configura a funo a ser aplicada.


o Add Object: Adiciona o objeto no cenrio com o tempo de vida e
velocidades angular e linear especificados. ( OBS: O objeto
adicionado tem de estar em um layer diferente do objeto que o
chama )
o End Object: Remove o objeto do cenrio
o Replace Mesh: Troca o mesh do objeto atual, pelo mesh
especificado
o Track To: Atualiza a orientao do objeto para que aponte para o
objeto especificado
o Dynamics: Liga, Desliga e Restaura opes de Fsica.

Blender Game Engine Seven Game

Pgina 85

1.14 Constraints
O atuador Constraints responsvel
pela criao de constraints em tempo
de execuo

Parmetros:

Constraints Mode: Configura a funo a ser aplicada.


o Location Constraints: Adiciona uma constraint para limitao de
movimentao do objeto no eixo especificado
o Distance Constraints: Adiciona uma constraint para limitao de
movimentao em relao a outro objeto.
o Orientation Constraints: O mesmo que location porm aplicado
orientao
o Force Field Constraint: Cria um campo de fora fsica que o
afasta de qualquer objeto detectado na direo especificada.

1.15 Cmera
O atuador cmera faz com que um
objeto cmera siga um outro objeto de
forma automtica.

Parmetros:

Cmera Object: Especifica o objeto alvo da funo


Height: Especifica a altura que a cmera estar do objeto
Axis: Especifica o eixo preferencial

Blender Game Engine Seven Game

Pgina 86

1.15 Action
O atuador Action toca uma animao
do objeto especificado.

Parmetros:

Function: Especifica a funo de player a ser executada


Action: Especifica a animao a ser executada
Continue: Continua a animao do ultimo quadro tocado quando a
animao ligada/desligada
Start: Quadro inicial da animao
End: Quadro final da animao
Child: Toca a animao de todos os filhos tambm
Blendin: Nmero de frames mixados na troca de animaes
Priority: Prioridade de execuo dessa animao
Layer: Layer dessa animao
Layer Weight: O quanto o layer anterior mixa com o atual
Frame Property: Joga o ndice do keyframe atual para a propriedade
especificada

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.

Blender Game Engine Seven Game

Pgina 87

Captulo 13 Aprofundando em Logic Bricks


Nesse ponto ns j vimos todas as principais funes relativas aos Logic
Bricks. Podemos agora ento compreender o funcionamento de caractersticas
muito importantes e que iro possibilitar a construo de programas mais
complexos. Estes so Logic Bricks compartilhados e sistemas de States.

1) Logic Bricks Compartilhados

Uma das caractersticas mais importantes do Logic Bricks a


capacidade de compartilhar blocos lgicos (sensores, controladores e
atuadores ) entre objetos de forma que assim consigamos criar lgicas mais
complexas.
Imagine a seguinte situao hipottica em que precisamos que ao
encostar em um boto (uma caixa no cenrio) seja tocada uma animao em
uma porta (outro objeto independente). Da forma que vimos at o momento
possvel realizar a comunicao entre eles atravs de mensagens (atuador e
sensor Message), porm existe outra forma mais simples e menos custosa de
realizar essa operao, que utilizando uma caracterstica fundamental dos
Logic Bricks que o compartilhamento de blocos lgicos.
Nessa caso exemplificado podemos imaginar a estrutura de
funcionamento da lgica da seguinte forma.

BOTO
SENSOR COLLISION
PORTA
CONTROLADOR AND

Blender Game Engine Seven Game

ATUADOR ACTION

Pgina 88

O sistema Logic Bricks nos permite realizar exatamente esse tipo de


operao ligando um atuador ou sensor de um objeto no controlador de outro.
Assim quando o sensor Collision do objeto boto for ativado enviar um pulso
para atuador Action do objeto Porta.
Para realizar esse tipo de operao necessrio somente selecionar os
2 objetos desejados. Desse modo ser apresentado o Logic Bricks dos 2
objetos ao mesmo tempo no Logic Editor. Os blocos lgicos so separados por
um cabealho que indica a qual objeto eles se referem. O primeiro da lista
sempre o objeto ativo e a ele pode-se adicionar sensores, controladores e

atuadores.

Um ponto a ser observado que possvel ligar no somente 2, mas


um ilimitado numero de objetos dessa forma ao mesmo tempo. Porm
devemos tambm ter em mente que essa prtica s recomendada nos casos
em que os 2 objetos possuem um vinculo em toda a execuo da aplicao.

Blender Game Engine Seven Game

Pgina 89

2) States

Podemos entender o sistema de estados de Logic Bricks como um


conjunto de Layers para programao, onde somente ser executado as
operaes dos Layers ativos.
Esse sistema muito til quando um elemento do game possui vrias
funcionalidades diferentes dependendo do seu estado. Por exemplo um player
possui diferentes comportamentos quando est sob a superfcie e quando est
embaixo dagua.
Com o sistema de states podemos separar esses 2 eventos em Layers
diferentes aplicando a eles operaes de transio.
Para tornar visvel as opes de states da BGE clique no boto + no
lado esquerdo do menu Add Controller. Aparecer uma srie de layers como
na imagem abaixo.

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

Blender Game Engine Seven Game

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.

Blender Game Engine Seven Game

Pgina 91

Captulo 14 Asset Management


A conversao de arquivos entre softwares 3D um ponto crucial para
reutilizao de trabalho e para o gerenciamento de grandes projetos. Nesse
captulo iremos aprender como trabalhar com vrios arquivos .blend e como
importar modelos de outros softwares de edio 3D como Maya, 3DMax e/ou
Zbrush

1) Append e Link de arquivos .blend


Uma das principais caractersticas do Blender a possibilidade de se
trabalhar com vrios arquivos .blend em conjunto para o desenvolvimento do
game. Podemos assim ento separar elementos do game em arquivos
individuais.
Podemos fazer a juno de objetos em arquivos .blend separados de
duas formas. Atravs das funes Append e Link.

Append

A funo Append funciona criando uma cpia do elemento do arquivo


especificado e o adiciona no seu cenrio atual. Podemos assim importar
objetos, scenes, texturas, materiais, cmeras e outros de outros arquivos
.blend para o atual.
Atualmente a funo Append est disponvel no menu File/Append do
painel Informations. Assim que a opo selecionada a interface do Blender
apresenta o editor file browser.

Blender Game Engine Seven Game

Pgina 92

Note que assim que um arquivo .blend selecionado so


mostrados vrias pastas. Os arquivos .blend so organizados
de modo que possvel internamente separar os seus vrios
elementos como materiais, texturas, objetos etc. Alguns desses
elementos herdam outros quando importados. Por exemplo: Em
se importando um material, as suas texturas sero importadas
tambm. Ou se importando um objeto todas as seus materiais
sero tambm importados.

Link

A funo Link age de forma similar ao Append adicionando o elemento


importado no cenrio atual, porm ele no cria uma cpia. Apenas uma
referncia para o arquivo original, de modo que no possvel editar o
elemento editado no .blend destino.
O Uso de um gerenciamento de modelos do tipo Link importante quando
um mesmo objeto ou estrutura ser usado em vrios scenes diferentes, assim
realizando uma modificao no original, as modificaes sero propagadas
para todos os outros arquivos.

2) Formatos externos padres

Atualmente o Blender tem suporte a importao e exportao uma grande


gama de arquivos. Alguns esto disponveis por default, outros so passveis
de serem habilitados atravs de add-ons. Estes esto disponveis atravs da
aba addons do menu File/User Preferences.
Podemos encontrar importers e exporters para os principais formatos como
COLADA (.dae) , FBX (.fbx), Autocad (.dxf), Wavefront (.obj) e outros mais
especficos como UDK (.psk/.psa), Blizzard M3 (.m3), GIMP Layers (.xcf)

Blender Game Engine Seven Game

Pgina 93

3) Dicas de Resoluo de Problemas

Ocasionalmente alguns problemas podem surgir na converso de arquivos


entre softwares. Os nveis de compatibilidade dependem tanto da
implementao do importer no Blender quanto da implementao do exporter
no software origem. Alguns problemas mais comuns so listados abaixo.

O Modelo est com as normais invertidas

Entre no modo de edio do objeto com a tecla

, depois aplique a

funo para recalcular as normais com o hotkey

O Modelo foi convertido para tringulos.

Para converter um modelo para Quad. Entre no modo de edio do objeto


com a tecla

, depois aplique a funo

Blender Game Engine Seven Game

Pgina 94

Problemas com materiais e texturas

Na maioria dos formatos as texturas e UVs so importadas com eficincia


porm, quase sempre necessrio a recriao do material para que o modelo
funciona de forma correta na BGE

Blender Game Engine Seven Game

Pgina 95

Captulo 15 Introduo a BGE API


Uma das principais caractersticas da BGE a possibilidade de criao de
games inteiros sem a necessidade de escrita de scripts em linguagem de
programao. Porm isso no exclui a possibilidade de utilizarmos esta em
conjunto com os logic bricks para criar comportamentos mais complexos e
acessar bibliotecas de funes externas. Nessa captulo ser descrito uma
introduo programao em Python para a BGE. Esse o nico captulo da
apostila voltado programadores e para sua melhor leitura e compreenso
recomendado que se tenha conhecimentos bsicos em programao
estruturada e orientada a objeto.

1) Python na BGE

Python uma linguagem de programao, interpretada que amplamente


utilizada no Blender e na BGE. No Blender podemos utiliz-la para definir
elementos da interface visual, para a criao de ferramentas bem como outros
tipos de add-ons como importers/exporters e conexo com aplicaes
externas. Na BGE podemos utiliz-la juntamente com os logic bricks para criar
a programao dos jogos.
A linguagem Python tem algumas vantagens em relao a outras
linguagens de programao. Principalmente com relao legibilidade de
cdigo, facilidade de utilizao, e a extensa gama de bibliotecas build-in nativa
que o permite sem muitas complicaes acesso ao SO, comunicao por
Socket entre outros.
Como vimos no decorrer de todo o curso. O centro da programao na
BGE o sistema Logic Bricks. Para utilizarmos scripts python temos de
entreg-los ento aos logic Bricks. Isso feito atravs do controlador do tipo
Python.

Blender Game Engine Seven Game

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

Blender Game Engine Seven Game

Atuadores

Objetos

Pgina 97

O programa abaixo apresenta alguns conceitos da programao em python da


BGE
# A funo import bge, importa a API do Blender
import bge
# getCurrentController retorna o controlador que est chamando este programa (o mesmo obj
controlador do logic bricks)
cont = bge.logic.getCurrentController()
# a partir do controlador podemos retornar os sensores, atuadores e objeto (owner) que o
contm
obj = cont.owner
s1 = cont.sensors*Sensor1+
act = cont.actuators*Motion1+
#podemos agora aplicar funes ao objeto, realizar a leitura de um sensor e/ou
#ativar/desativar um atuador.
print(obj.worldPosition) # Mostra a posio do objeto no console
if s1.positive: # Testa se o sensor 1 est ativo
print(Sensor 1 ativo) # Caso esteja mostra a mensagem no console
cont.activate(act) # Ativa tambm o atuador act
else: # caso no esteja ativo
cont.deactivate(act) #Desativa o atuador

Podemos ainda acessar outros objetos e realizar operaes de cena


retornando a Scene ativa com bge.logic.getCurrentScene()
A BGE possui outros mdulos documentados que so:

bge.render : contm opes relativas janela de exibio e posies


relativas na tela como posio do mouse etc. tambm possvel realizar
configuraes em tempo de execuo para modos de renderizao e
outros.
bge.texture : permite a manipulao de texturas em tempo de execuo
como troca de texturas, player de vdeo como texturas, texturas
reflexivas em tempo real e outros.
bge.events : contm funes de gerenciamento de eventos de mouse e
teclado de forma mais robusta.
bge.constraints: permite a criao e destruio de constraints em tempo
de execuo.

Podemos encontrar a documentao para todos os mdulos do Blender em


http://www.blender.org/development/

Blender Game Engine Seven Game

Pgina 98

Podemos ainda importar e utilizar libs build-in da linguagem python como


zipfile para compactao, descompactao de arquivos zip, a lib socket para
comunicao TCP/UDP em rede e outras.
Podemos ainda definir efeitos em linguagem GLSL tanto para materiais
quanto para efeitos de post process. No caso especfico de materiais
precisamos adicionar algumas configuraes. Um exemplo de cdigo GLSL de
material aplicado por Logic Bricks e python est abaixo.
Simple Texture GLSL
By Vitor Balbio
import bge
VertexShader = """
uniform float timer;
uniform float Vel;
uniform float deform;
varying vec4 texCoords;
void main() {
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();
}
"""
FragmentShader = """
varying vec4 texCoords;
uniform sampler2D diff;
void main() {
vec4 color = texture2D(diff, gl_TexCoord[0].st);
gl_FragColor = color;
}
"""
obj = bge.logic.getCurrentController().owner
mesh = obj.meshes[0]
mat = mesh.materials[0]
shader = mat.getShader()
shader.setSource(VertexShader, FragmentShader,1)
shader.setSampler("diff",0)

Blender Game Engine Seven Game

Pgina 99

Abaixo est um exemplo de


cdigo GLSL para utilizao com o
sistema de post process da BGE.
Para isso utilize o atuador 2D
configurado para Custom Shader

uniform sampler2D bgl_RenderedTexture;


uniform float vignette_size;
const float tolerance = 0.6;
void main(void)
{
vec2 powers = pow(abs(gl_TexCoord[3].st - 0.5),vec2(2.0));
float radiusSqrd = pow(vignette_size,2.0);
float gradient = smoothstep(radiusSqrd-tolerance, radiusSqrd+tolerance,
powers.x+powers.y);
gl_FragColor = mix(texture2D(bgl_RenderedTexture, gl_TexCoord[0].st), vec4(0.0),
gradient);
gl_FragColor.a = 1.0;
}

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.

Blender Game Engine Seven Game

Pgina 100

Captulo 16 Finalizando um Game

Nesse captulo iremos aprender como gerar executveis stand alone de


modo que nossas aplicaes possam ser executadas em qualquer PC sem a
necessidade do Blender estar instalado na mquina. Alm de outras dicas com
relao a organizao de arquivos de projeto.

1) Gerando executveis

Para gerar um arquivo executvel precisamos habilitar um addon


disponvel de forma build-in no Blender.
Para isso acessamos o
editor User preferences
no menu File no editor Info.
Agora basta habilitar o
addon Save Game as
Runtime. Podemos filtrar
facilmente esse addon
ativando o filtro Game
Engine

Quando esse addon estiver habilitado uma


nova opo estar disponvel no meu
Export.
Acionando essa opo abrimos a tela de
exporter de aplicaes.
Selecione ento o diretrio, nome da
aplicao e exportar

Blender Game Engine Seven Game

Pgina 101

Quando o processo terminar ser criado um arquivo executvel


contendo em seu interior o arquivo .blend atual de forma compactado. Sero
tambm copiados todas as dependncias de sistema como DLLs e as
bibliotecas python.
Note que texturas, outros .blends e scripts externos no sero copiados.
Voc ter de executar essa operao manualmente.
Uma prtica comum utilizar um arquivo Main.blend com apenas um
empty chamando os outros .blends do game em si. E gerar o executvel a
partir deste.
possvel tambm no gerar executveis contendo arquivos .blend e
sim utilizar o blenderplayer para executar .blends externos. Isso pode ser feito
atravs de arquivos .bat

Blender Game Engine Seven Game

Pgina 102

2) Paths e Pack de Texturas

Um dos problemas mais comuns com a criao de arquivos executveis


finais a perda de referncia das texturas. Por default toda textura possui
referncia absoluta. Ou seja, caso seu aplicativo seja transferido para outro PC,
provavelmente perder o path da textura.
Para tornar os paths relativos use a
funo Make All Paths Relative no
meu File/ External Data.
Esse menu disponibiliza outras
funes relativas ao gerenciamento de
paths. Um muito importante a funo
Pack into .blend file
Isso ir fazer com o que o arquivo
.blend encapsule todas as texturas da aplicao. Isso evita que as texturas
fiquem em pastas soltas e visveis e d mais segurana aos arquivos da
aplicao.

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

Blender Game Engine Seven Game

Pgina 103

Captulo Bonus Materiais

Uma das habilidades mais interessantes em se tratando da BGE a


possibilidade de edio de materiais baseados em shaders, de modo visual.
Nesse captulo bnus iremos aprender como funciona o sistema de materiais
da BGE.

1) Shaders

Antes de inciar o estudo de materiais na Blender Game Engine,


precisamos compreender como funciona os sistemas de materiais em
aplicaes em tempo real.
Basicamente material o conjunto de propriedades de um objeto ou
geometria que define a forma com que ele reage a iluminao. Materiais
podem ser mais ou menos reflexivos, translcidos, terem cores diferentes ou
mesmo simular geometrias inexistentes. Essas propriedades podem ser
calculadas atravs de 2 modelos de sombreamento (shading). O modelo per
vertex e o modelo per pixel.
No modelo per vertex a iluminao calculada para cada vrtice do
objeto atravs da formula de Lambert I = Dot(NL) sendo I a intensidade da luz
Dot o produto interno entre vetores/matrizes, N o vetor normal do vrtice e L o
vetor posio da luz. Ou seja. Cada vertex ter um valor relativo a sua
iluminao, a face ir ento interpolar os valores dos vrtices em um dgrad
de modo que no existam descontinuidades.
Esse modelo foi muito utilizado durante muito tempo, porm logo de
imediato se detectou um problema, a saber. Quanto maior a qualidade da
iluminao calculada no objeto maior tem de ser a quantidade de polgonos.
Isso era um problema, pois, aumentando bruscamente a quantidade de
polgonos estaramos aumentando o custo de processamento. Era necessrio
um modelo de sombreamento que independente da quantidade de vrtices
mantivesse a mesma qualidade. Assim surgiu o shader e o modelo de
iluminao per pixel.

Blender Game Engine Seven Game

Pgina 104

O Modelo de iluminao per pixel atua de forma similar, porm no


calcula a iluminao baseado na normal do vrtice e sim na normal do pixel
relativo ao objeto.
Toda vez que o processo de renderizao encontra um pixel relativo a
um objeto que possui nele um shader associado. Esse shader processado e
retorna o valor de iluminao do pixel. O shader portanto um programa de
computador, executado pela GPU que tem como nica funo calcular a forma
com que os objetos reagem a iluminao.
Abaixo podemos ver a diferena em um modelo de poucos polgonos da
aparncia em se utilizando os modelos de iluminao per vertex e per pixel.

1) Shaders na BGE

Podemos habilitar o uso de shaders na View3D e na


BGE atravs do menu Properties da 3Dview ( Boto
) e em seguida na guia Display/ Shading.
Para habilitar a visualizao na 3D view precisamos
ainda setar a interface para o modo de visualizao
de texturas. Essa opo se encontra no Header da
3Dview

Blender Game Engine Seven Game

Pgina 105

Nesse momento a interface do Blender3D e a BGE j esto trabalhando


com o modelo de sombreamento per pixel.
Uma das vantagens do Blender que no precisamos definir os cdigos
GLSL dos shaders. O Blender tem um sistema interno de criao de materiais
que automaticamente converte o material configura na interface para
linguagem de cdigo.
Esse editor de materiais est disponvel no painel Materials do editor
Properties.
Vamos listar aqui as principais funes quando
trabalhando com a configurao Blender Game
da interface.
Difuse: Pigmentao do modelo, modelo
de iluminao e intensidade com que o modelo
reflete a luz vinda at ele.
Specular: Highlights de reflexo do
modelo.
Shading:
o Emit: Valor de auto-iluminao do
objeto
o Shadeless: No aplica nenhum
modelo de iluminao somente as texturas
aplicadas.
Game Settings:
o Backface Culling: Remove as
faces de trs dos objetos pois estas no esto
visveis no momento, aumentando assim a
velocidade de processamento.
o Invisible: Faces com esse material
no estaro visveis.
o Text: Faces com esse material
usaro o sistema de texto buildin da BGE
o Alpha Blend: Configura o modo
com que os Objetos gerenciam a transparncia.
Opaque para objetos sem transparncia, Alpha
Blend para objetos com mapa de transparncia
em degrad e Clip Alpha para mapas de
transparncia binrios (pixel est transparente
ou no )

Blender Game Engine Seven Game

Pgina 106

o Face Orientation: Aplica funes de transformao de face por


exemplo Billboard e outros.
Physics: Funes relativas fsica do material como Frico,
Elasticidade e outros.
Options:
o Object Color: Mixa a cor do material com o object Color
(configurado no painel Object)
o Use Mist: Habilita o mix da cor do material com o sistema de Fog
da BGE
Transparency: Configura a transparncia do objeto. Necessrio o uso de
Ztransp quando se utilizando de mapas com alpha.

2) Node Editor

Outra caracterstica do sistema de materiais do Blender/BGE a


possibilidade de configurar materiais utilizando o sistema de Node.
Para isso necessrio dividir um editor e adicionar o editor Node Editor
em um dos lados.

Aps isso ative a opo Use Nodes no header do Node Editor ento o
material ativo aparecer no editor.

Blender Game Engine Seven Game

Pgina 107

Aps isso selecione a que material esse


Node se refere.
Note que voc pode adicionar operaes no
percurso entre a sada do material e a entrada do
Output.
Abaixo esto alguns exemplos de materiais e
efeitos criados com o Node Editor, alguns deles
utilizando tambm o mdulo VideoTexture.

REALTIME CAR SHADER

X-RAY SHADER

Blender Game Engine Seven Game

Pgina 108

REFRACTION

OBS: Para uso de refrao necessrio programao por script python usando o
mdulo bge.texture

Blender Game Engine Seven Game

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.

Blender Game Engine Seven Game

Pgina 110

Вам также может понравиться