<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blender Game Engine</title>
	<atom:link href="http://game.proceduralbase.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://game.proceduralbase.org</link>
	<description>A game engine e seus prazeres - The game engine and its pleasures</description>
	<lastBuildDate>Sun, 13 Dec 2009 13:16:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Configurações Básicas de Câmera</title>
		<link>http://game.proceduralbase.org/11/07/2007/configuracoes-basicas-de-camera/</link>
		<comments>http://game.proceduralbase.org/11/07/2007/configuracoes-basicas-de-camera/#comments</comments>
		<pubDate>Wed, 11 Jul 2007 15:39:33 +0000</pubDate>
		<dc:creator>Diego Rangel (OmegaX)</dc:creator>
				<category><![CDATA[Iniciante]]></category>

		<guid isPermaLink="false">http://game.proceduralbase.org/11/07/2007/configuracoes-basicas-de-camera/pt/</guid>
		<description><![CDATA[Neste pequeno artigo vou mostrar 4(quatro) maneiras de se configurar a câmera no game engine blender para interagir com a personagem do seu jogo.
1º -- Câmera parenteada com o objeto:
Posicione a câmera na posição que você deseja que ela siga o objeto. Selecione a câmera e com o SHIFT pressionado, selecione o objeto. Agora aperte [...]]]></description>
			<content:encoded><![CDATA[<p>Neste pequeno artigo vou mostrar 4(quatro) maneiras de se configurar a câmera no game engine blender para interagir com a personagem do seu jogo.</p>
<p><strong>1º -- Câmera parenteada com o objeto:</strong><br />
Posicione a câmera na posição que você deseja que ela siga o objeto. Selecione a câmera e com o <strong>SHIFT</strong> pressionado, selecione o objeto. Agora aperte <strong>CTRL+P</strong>.</p>
<p><strong>2º -- Objeto como câmera:</strong></p>
<p>O seu objeto pode ser configurado para interagir como uma câmera. Para isso, temos que considerar que a frente deste objeto será o <strong>eixo Z negativo</strong><font style="position: absolute;overflow: hidden;height: 0;width: 0"><a href="http://www.videnov.com/">&#1093;&#1086;&#1090;&#1077;&#1083;&#1089;&#1082;&#1086; &#1086;&#1073;&#1079;&#1072;&#1074;&#1077;&#1078;&#1076;&#1072;&#1085;&#1077;</a></font>.<br />
Selecione o objeto e aperte <strong>CTRL+0</strong>.</p>
<p><strong>3º -- Câmera parenteada com os vértices de um objeto:</strong></p>
<p>A câmera irá seguir de um a três vértices, e não o objeto como um todo.<br />
Selecione o objeto e entre em modo de edição(<strong>TAB</strong>). Selecione de um a três vértices. Com o botão <strong>CTRL</strong> pressionado, e sem sair do modo de edição, selecione a câmera. Feito isso, aperte <strong>CTRL+P</strong> para criar o parentesco.</p>
<p><strong>4º -- Atuador Camera</strong></p>
<p>Selecione a câmera e adicione um sensor <strong>Always</strong>, um controlador <strong>And</strong>, e um atuador <strong>camera</strong>. Ligue esses tijolos lógicos.<br />
No campo <strong>OB</strong> do atuador do tipo camera, coloque o nome do objeto que você deseja que ela siga. No campo <strong>Height</strong>, coloque a altura da câmera. <strong>Min</strong> é a distância mínima do objeto e <strong>Max</strong> é a distância máxima. </p>
<p>Até a próxima!!</p>
]]></content:encoded>
			<wfw:commentRss>http://game.proceduralbase.org/11/07/2007/configuracoes-basicas-de-camera/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Caixa de Texto</title>
		<link>http://game.proceduralbase.org/31/05/2007/caixa-de-texto/</link>
		<comments>http://game.proceduralbase.org/31/05/2007/caixa-de-texto/#comments</comments>
		<pubDate>Fri, 01 Jun 2007 01:12:23 +0000</pubDate>
		<dc:creator>Diego Rangel (OmegaX)</dc:creator>
				<category><![CDATA[Intermediário]]></category>
		<category><![CDATA[Mapeamento UV]]></category>

		<guid isPermaLink="false">http://game.proceduralbase.org/31/05/2007/caixa-de-texto/pt/</guid>
		<description><![CDATA[Desde que fui apresentando à Game Engine do Blender, uma dúvida que vejo com uma certa freqüência   nos fóruns de discussão e de algumas pessoas que me procuram  é sobre como criar uma caixa de textos. Porém, essa dúvida não era só deles, era minha também&#8230;após já ter criado gigantescos scripts python [...]]]></description>
			<content:encoded><![CDATA[<p>Desde que fui apresentando à Game Engine do Blender, uma dúvida que vejo com uma certa freqüência   nos fóruns de discussão e de algumas pessoas que me procuram  é sobre como criar uma caixa de textos. Porém, essa dúvida não era só deles, era minha também&#8230;após já ter criado gigantescos scripts python que faziam esse papel, descobri que a tão árdua caixinha de texto era uma das coisas mais simples de serem implantadas na engine.<br />
Para evitar que muitas entusiastas do blender passem pelo mesma situação que passei, vou ensinar neste artigo, como criá-la.</p>
<p><strong>Definição:</strong><br />
 A caixa de textos consiste em um campo que captura os caracteres digitado no teclado, armazenando a sequência e mostrando-a na tela.</p>
<p><strong>Como Fazer:</strong><br />
A primeira coisa a se fazer é criar um texto do game engine. Caso haja alguma dúvida sobre como fazer, visite esse meu outro artigo sobre <a href="http://game.proceduralbase.org/17/05/2007/trabalhando-com-textos-e-fontes/pt/">Textos no Game Engine</a><br />
.
<ol>
<img src="http://game.proceduralbase.org/wp-content/uploads/2007/05/plano03.jpg" alt="" /></ol>
<p>Nosso objeto texto já tem uma variável com o nome de <strong>Text</strong>. Vamos criar outra variável do tipo lógico(boolean) com um nome qualquer.<br />
Adicione um sensor do tipo <strong>Keyboard</strong>  e deixe o botão &#034;<strong>All Keys</strong>&#034; ativado<br />
. No campo &#034;<strong>LogToggle</strong>&#034;, coloque o nome da nossa variável lógica que criamos. No campo &#034;<strong>Target</strong>&#034;, coloque a variável <strong>Text</strong>. </p>
<p>Prontinho faça o teste. Aperte (P) e digite alguma coisa. Como você pode ver, o que for digitado irá para variável <strong>Text</strong> enquanto a variável lógica define se a caixa de texto esta ativa ou não: Se o valor for <strong>True </strong>ela funciona, se for <strong>False </strong>não.</p>
<p>Veja na figura abaixo como ficaria nossa configuração:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img011.jpg' alt='img011.jpg' /></ol>
<p>Agora é só dar uma implementada ao seu gosto!</p>
]]></content:encoded>
			<wfw:commentRss>http://game.proceduralbase.org/31/05/2007/caixa-de-texto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Textos Bitmap com Suporte a Lingua Portuguesa</title>
		<link>http://game.proceduralbase.org/29/05/2007/textos-bitmap-com-suporte-a-lingua-portuguesa/</link>
		<comments>http://game.proceduralbase.org/29/05/2007/textos-bitmap-com-suporte-a-lingua-portuguesa/#comments</comments>
		<pubDate>Tue, 29 May 2007 20:25:41 +0000</pubDate>
		<dc:creator>Diego Rangel (OmegaX)</dc:creator>
				<category><![CDATA[Intermediário]]></category>

		<guid isPermaLink="false">http://game.proceduralbase.org/29/05/2007/textos-bitmap-com-suporte-a-lingua-portuguesa/pt/</guid>
		<description><![CDATA[Alguns dias atrás me vi obrigado há modificar um projeto já terminado para alterar um texto errado. Na ocasião, usei o Blender versão 2.44, e, meu projeto tinha sido feito na versão 2.43, na qual havia o suporte a caracteres especiais (ç, é, ó, etc&#8230;), se fosse acessado via python. Até ai tudo bem, mas [...]]]></description>
			<content:encoded><![CDATA[<p>Alguns dias atrás me vi obrigado há modificar um projeto já terminado para alterar um texto errado. Na ocasião, usei o Blender versão 2.44, e, meu projeto tinha sido feito na versão 2.43, na qual havia o suporte a caracteres especiais (ç, é, ó, etc&#8230;), se fosse acessado via python. Até ai tudo bem, mas quando gerei o arquivo executável, percebi que as letras comumente usadas em nosso idioma haviam sumido! Verifiquei novamente o arquivo blend e cheguei conclusão que essa nova versão do blender havia perdido esse suporte&#8230;</p>
<p>      Decidi não ficar esperando uma boa alma entre os desenvolvedores do blender  incorporar a suporte no game engine do nosso idioma e procurei uma solução mais rápida, que se resume basicamente em editar a imagem da fonte, substituindo as letras que não vão ser usadas pelas que eu preciso usar.<br />
      Neste tutorial simples, irei substituir o caractere <strong>#</strong>(ao qual não me interessa, pelo menos para mim), pelo <strong>ç</strong> (que quase sempre preciso usar) utilizando o programa de edição de imagens Gimp. Então quando quiser escrever por exemplo a palavra “<strong>esperança</strong>” no game engine, a nova grafia usada será “<strong>esperan#a</strong>”.</p>
<p>Então vamos lá:<br />
1º Passo: Crie uma fonte bitmap para o game engine do blender, mas é necessário que seja uma fonte no formato português. Caso haja alguma dúvida, dê uma olhada neste artigo sobre como criar textos para o Game Engine do Blender<a href="http://game.proceduralbase.org/17/05/2007/trabalhando-com-textos-e-fontes/pt/"><strong>Texto no Game Engine</strong> </a></p>
<p>2º Passo: Abra o arquivo da fonte bitmap no Gimp e com a ferramenta para seleção de regiões retangulares (<strong>atalho:R</strong>), selecione o caractere especial, no meu caso, eu selecionei o <strong>ç</strong>:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img01.JPG' alt='img01.JPG' /></ol>
<p>3º Passo: Copie e cole a seleção. Vai ser criada uma “<strong>Seleção Flutuante</strong>”, aperte o ícone da folha, como indica a figura, para transformar em uma camada.</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img021.jpg' alt='img021.jpg' /></ol>
<p>4º Passo: Agora com a ferramenta de “<strong>Mover camadas e seleções</strong>” (<strong>atalho: M</strong>), mova a caractere até sobrepor (<strong>#</strong>) o outro caractere que será substituído, certifique-se que esteja bem alinhado com as outras letras.</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img031.jpg' alt='img031.jpg' /></ol>
<p>5º Passo: Agora, na janela de camadas, selecione a camada onde se encontra a letra <strong>ç</strong> com o botão direito e clique na opção “<strong>Merge Down</strong>”.</p>
<p>Faça as mesmas operações para as outras letras que você deseja substituir. Agora é só salvar o arquivo (<strong>Atalho: Ctrl+S</strong>)!</p>
<p>Até a próxima!!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://game.proceduralbase.org/29/05/2007/textos-bitmap-com-suporte-a-lingua-portuguesa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Criando Texturas UV-Mapeadas a partir da Radiosity</title>
		<link>http://game.proceduralbase.org/26/05/2007/criando-texturas-uv-mapeadas-a-partir-da-radiosity/</link>
		<comments>http://game.proceduralbase.org/26/05/2007/criando-texturas-uv-mapeadas-a-partir-da-radiosity/#comments</comments>
		<pubDate>Sat, 26 May 2007 04:03:04 +0000</pubDate>
		<dc:creator>Diego Rangel (OmegaX)</dc:creator>
				<category><![CDATA[Avançado]]></category>
		<category><![CDATA[Mapeamento UV]]></category>
		<category><![CDATA[Radiosity]]></category>
		<category><![CDATA[Texturização]]></category>

		<guid isPermaLink="false">http://game.proceduralbase.org/26/05/2007/criando-texturas-uv-mapeadas-a-partir-da-radiosity/pt/</guid>
		<description><![CDATA[Requisitos: Conhecimentos em Radiosity e Mapeamento UV
Versão do Blender: 2.44
Uma das maiores dificuldades na hora de se criar texturas para jogos é conseguir um efeito de sombreamento convincente. No game engine, para conseguir esse efeito sem usar lâmpadas, pode-se usar radiosity, mas, seu uso em excesso pode causa queda de desempenho. Neste artigo iremos aprender [...]]]></description>
			<content:encoded><![CDATA[<p>Requisitos: Conhecimentos em Radiosity e Mapeamento UV<br />
Versão do Blender: 2.44</p>
<p>Uma das maiores dificuldades na hora de se criar texturas para jogos é conseguir um efeito de sombreamento convincente. No game engine, para conseguir esse efeito sem usar lâmpadas, pode-se usar radiosity, mas, seu uso em excesso pode causa queda de desempenho. Neste artigo iremos aprender a criar uma textura  UV-Mapeada a partir da Radiosity. </p>
<p>Vamos usar como exemplo a personagem low poly da figura abaixo, mas essa técnica pode ser usada também para cenários:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img01.jpg' alt='img01.jpg' />
</ol>
<p>Faça o mapeamento UV do objeto normalmente:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img02.jpg' alt='img02.jpg' /></ol>
<p>Após terminar o mapeamento, Adicione uma nova cena com uma cópia completa do objeto (Full Copy). Nesta cena iremos realizar a Radiosity. Se for em um cenário, coloque a emissão de luz normalmente como você faria. Se for em personagem, você deverá colocar a emissão de luz com o “emit” no máximo em todos os lados do objeto,  e não esqueça de aplicar materiais os conforme o seu gosto, como na figura:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img03.jpg' alt='img03.jpg' /></ol>
<p>Aplique a Radiosity e apague as fontes de luz. Nosso macaco de teste ficou assim:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img04.jpg' alt='img04.jpg' /></ol>
<p>Entre no modo de seleção de faces (F), selecione todas as faces(A). Abra uma janela de “UV/Image Editor”. Como você pode ver, o mapeamento UV que você fez continua nesse novo modelo.<br />
 Agora na janela “UV/Image Editor”, nos menus, vá em “UVs” -> “Scripts”  -> “UV Painter”.  A mágica da conversão de Radiosity para Mapeamento UV está neste script.<br />
O único problema neste script é que ele costuma fazer algumas barberagens na hora de salvar a imagem no HD. Eu recomendo que em vez de salvar por ele, faça um Screenshot(print screen) da imagem e depois edite em seu programa de edição de imagens preferido.<br />
Abaixo a imagem do script em ação:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img05.jpg' alt='img05.jpg' /></ol>
<p>Após ter editado a imagem num programa de edição qualquer, vá à nossa primeira cena, onde está o personagem inicial, e mapeie-o com a imagem criada. Agora vamos acertar os vértices no UV/Image Editor, que deve estar um pouco fora do lugar, mais ou menos como a imagem abaixo:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img06.jpg' alt='img06.jpg' /></ol>
<p>Se isso acontecer (e provavelmente vai acontecer), trabalhe em cima dos vértices de forma que acerte o mapeamento em cima da imagem:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/img07.jpg' alt='img07.jpg' /></ol>
<p>Prontinho! Agora para ficar mais legal, é só colocar os detalhes na sua imagem. Até a próxima!</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/01.jpg' alt='01.jpg' /></ol>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/uv2.jpg' alt='uv2.jpg' /></ol>
]]></content:encoded>
			<wfw:commentRss>http://game.proceduralbase.org/26/05/2007/criando-texturas-uv-mapeadas-a-partir-da-radiosity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Textos no Game Engine</title>
		<link>http://game.proceduralbase.org/17/05/2007/trabalhando-com-textos-e-fontes/</link>
		<comments>http://game.proceduralbase.org/17/05/2007/trabalhando-com-textos-e-fontes/#comments</comments>
		<pubDate>Thu, 17 May 2007 18:42:16 +0000</pubDate>
		<dc:creator>Diego Rangel (OmegaX)</dc:creator>
				<category><![CDATA[Intermediário]]></category>
		<category><![CDATA[Mapeamento UV]]></category>

		<guid isPermaLink="false">http://game.proceduralbase.org/17/05/2007/trabalhando-com-textos-e-fontes/pt/</guid>
		<description><![CDATA[No Blender, temos a possibilidade de escrever textos no Game Engine usando uma imagem no formato targa(tga) com a textura da fonte desejada. Criar essa imagem usando um editor de imagens é um pouco complicado, já que existem algumas regrinhas básicas que devem ser seguidas para que não haja problemas (A imagem tem que ser [...]]]></description>
			<content:encoded><![CDATA[<p>No Blender, temos a possibilidade de escrever textos no Game Engine usando uma imagem no formato targa(tga) com a textura da fonte desejada. Criar essa imagem usando um editor de imagens é um pouco complicado, já que existem algumas regrinhas básicas que devem ser seguidas para que não haja problemas (A imagem tem que ser em 8 bits, em tons de cinza etc&#8230;).  Abaixo um exemplo de como ficaria essa imagem:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/arialbd.jpg' alt='arialbd.jpg' /></ol>
<p><strong>Criando sua fonte bitmap</strong><br />
Já existe uma ferramenta chamada ftBlender, que cria essa imagem a partir de uma fonte True Type. Esse programa é executado em linha de texto, através de parâmetros, e a fonte que você deseja converter tem que estar no mesmo diretório do programa.<br />
 Para algumas pessoas, que não estão acostumadas a trabalhar em linha de comando, o ftBlender se torna um pouco complicado. Pensando nessas pessoas, desenvolvi uma interface gráfica para esse programa: “Ftblender Interface”.  Ele, em conjunto com o ftBlender, consegue criar as texturas sem ter que digitar uma linha de comando. Lembrando que o FtBlender Interface, como o próprio nome já disse, é apenas  uma interface, sendo que o mérito da conversão fica todo para o FtBlender.<br />
Abaixo uma imagem do programa em ação:</p>
<ol>
 <img src="http://game.proceduralbase.org/wp-content/uploads/2007/05/ftblender-interface.jpg" alt="" />
</ol>
<p>Ele é totalmente alto explicativo, bastando apenas seguir as instruções para criar sua fonte com sucesso!<br />
O link para download do programa:<br />
<a href="http://www.meusdownloads.com.br/product.jsp?hosted=true&#038;ppID=01c5">Download FtBlender Interface</a></p>
<p><strong>Inserindo Textos no Game Engine</strong></p>
<p>1 -- Adicione um plano (Plane);</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/plano01.jpg' alt='plano01.jpg' /></ol>
<p>2 – Agora você vai fazer um mapeamento UV deste plano usando a textura que você criou com o Programa “FtBlender”. O mapeamento deverá ficar em cima do primeiro caractere arroba, conforme as imagens abaixo:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/plano02.jpg' alt='plano02.jpg' /></ol>
<p>O plano deverá ficar assim:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/plano03.jpg' alt='plano03.jpg' /></ol>
<p>3- Nos botões “Texture Face” (F9), abilite as opções “Tex”, “Text” e “Alpha”:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/plano04.jpg' alt='plano04.jpg' /></ol>
<p>4 – Agora adicione uma propriedade com o nome de “Text” (com a primeira letra em Maiúscula). Essa propriedade pode ser de qualquer tipo (float, integer, string etc&#8230;), ela é que vai definir o texto que será escrito. No nosso caso, criamos a propriedade do tipo String e colocamos o se valor como “Testando”:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/plano05.jpg' alt='plano05.jpg' /></ol>
<p>Faça o teste (P). Pode acontecer de sua imagem ficar com as letras viradas, como na figura:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/plano06.jpg' alt='plano06.jpg' /></ol>
<p>Se isso acontecer, você deve selecionar o plano e em “Modo de Edição”, rotacionar a malha de forma que fique na posição correta. </p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/plano07.jpg' alt='plano07.jpg' /></ol>
<p>Criamos nosso texto no game engine. Para você modificar esse texto em tempo real, é só criar um logicbrick de forma que modifique o valor da propriedade.</p>
]]></content:encoded>
			<wfw:commentRss>http://game.proceduralbase.org/17/05/2007/trabalhando-com-textos-e-fontes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Simulação de Partículas</title>
		<link>http://game.proceduralbase.org/15/05/2007/simulacao-de-particulas-no-game-engine/</link>
		<comments>http://game.proceduralbase.org/15/05/2007/simulacao-de-particulas-no-game-engine/#comments</comments>
		<pubDate>Tue, 15 May 2007 19:11:42 +0000</pubDate>
		<dc:creator>Diego Rangel (OmegaX)</dc:creator>
				<category><![CDATA[Efeitos Especiais]]></category>
		<category><![CDATA[Intermediário]]></category>

		<guid isPermaLink="false">http://game.proceduralbase.org/15/05/2007/simulacao-de-particulas-no-game-engine/pt/</guid>
		<description><![CDATA[Requisitos: Conhecimentos mínimos em mapeamento UV, Curvas IPO e LogicsBricks.
Primeiros Passos – A Partícula Solitária
 -- Para criarmos as partículas no Game Engine, vamos precisar de uma imagem semelhante a essa (não é necessário ter o canal alpha);


- Adicione um plano (Add -> Mesh -> Plane);
- Em modo de Edição (TAB), rotacione o plano de [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Requisitos:</strong> Conhecimentos mínimos em mapeamento UV, Curvas IPO e LogicsBricks.</p>
<p><strong>Primeiros Passos – A Partícula Solitária</strong></p>
<p> -- Para criarmos as partículas no Game Engine, vamos precisar de uma imagem semelhante a essa (não é necessário ter o canal alpha);</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/particula.jpg' alt='Particula.jpg' /></ol>
<p>- Adicione um plano (Add -> Mesh -> Plane);<br />
- Em modo de Edição (TAB), rotacione o plano de forma que a face com a normal visível fique virada para o eixo –X (eixo x negativo). Esta operação é muito importante para o funcionamento da partícula;<br />
- Mapeie o plano com nossa imagem;<br />
- Na aba “Texture Face”, habilite os botões “Tex”, “Halo” e “Add”;</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/texture_face.jpg' alt='Texture_Face.jpg' /></ol>
<p>- Nomeie o plano como “Particula”.<br />
- Agora adicione os seguintes logicBricks na particula:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/logicbricks01.jpg' alt='LogicBricks01.jpg' />
</ol>
<p>As configurações iniciais da nossa partícula já estão prontas, você já tem uma partícula solitária. Faça um teste (P). Se a partícula ficar virada sempre na direção da câmera, independente de onde ele esteja significa que você realizou todos os passos da forma correta.</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/particula_teste_01.jpg' alt='Particula_Teste_01.jpg' /></ol>
<p><strong>Emissão de Partículas</strong><br />
Já criamos nossa partícula, agora vamos aprender a fazer com que um objeto(Empty) passe a emitir várias partículas.<br />
- Mova a partícula para um layer diferente (M) e oculte este layer;<br />
- No layer visível, adicione um Empty;<br />
- Configure os seguintes logicbricks no Empty:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/logicbricks02.gif' alt='LogicBricks02.gif' /></ol>
<p>Observação: No atuador “Edit Object” do tipo “Add Object”, “OB” é o nome do objeto que vai ser adicionado na cena e “Time” é o tempo de vida deste objeto. Então em nosso exemplo, o novo objeto criado vai ficar em cena um pouco mais de dois segundos (levando em conta que está configurado por padrão que cada vinte e cinco frames corresponde a um segundo).</p>
<p>Nossa partícula já está funcionando, faça um teste (P). Essas são as configurações básicas para que ela se torne funcional. Os próximos passos agora são incrementar para transformá-la em efeitos mais vistosos, de acordo com a imaginação do “desenvolvedor”. Mas para facilitar a sua vida, ai vão algumas dicas muito úteis:</p>
<p><strong>Dica 01: Cintilância.</strong><br />
O Efeito de Cintilância dá a impressão de que as partículas estão piscando. Esse efeito pode se atingido de duas maneiras, ou se preferir a união das duas.<br />
A primeira maneira é adicionar uma curva IPO na partícula que vai aumentar e diminuir seu tamanho em um determinado espaço de tempo. Depois adicionar um atuador “IPO” do tipo “Play” que vai executar essa animação constantemente. Como já temos um sensor “Always”, é só ligar em seu respectivo Controller.<br />
A segunda maneira é idêntica à primeira, a diferença é que em vez da fazê-la no objeto “Particula”, vamos aplicá-la no objeto “Empty”.<br />
Nos dois casos, a curva IPO ficaria mais ou menos assim: </p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/ipo_curve01.jpg' alt='IPO_Curve01.jpg' /></ol>
<p>E nosso atuador assim:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/logicbricks03.jpg' alt='LogicBricks03.jpg' /></ol>
<p>Resultado animando o “Empty&#034;:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/particula_teste_02.jpg' alt='Particula_Teste_02.jpg' /></ol>
<p><strong>Dica 2: Velocidade de Emissão de Partículas.</strong><br />
Até agora, em nossos exemplos, a quantidade de emissão partículas está no máximo, mas se você quiser dar uma diminuída, para causar um efeito melhor ou até mesmo para melhorar o desempenho, faça o seguinte: No sensor “Always” do “Empty” existe uma opção representada pela letra “f” com o valor padrão de 0. Esta opção representa o delay que o Sensor vai sofrer para executar sua ação. Se o valor fosse 5, então irá imitir a partícula a cada 5 frames.<br />
No meu caso, coloquei o valor 15, o resultado foi esse:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/particula_teste_03.jpg' alt='Particula_Teste_03.jpg' /></ol>
<p><strong><br />
Dica 3: Colorindo as Partículas</strong><br />
As partículas podem assumir várias cores, inclusive mudar de cor gradativamente (isso é muito útil se queremos fazer um efeito simulando fogo, já que sua base é vermelha e o topo é amarelado). Para conseguirmos trabalhar com as cores, vamos ter que usar curvas IPO. Selecione o objeto “Particula”, e em suas curvas IPO, localize os canais ColR, ColG, ColB(que representam respectivamente os canais Vermelho, Verde e Azul). Selecione os canais e, na janela, segure CTRL e clique aonde você quer criar uma Chave IPO correspondente a aquela cor.<br />
Observer a figura:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/ipo_curve02.jpg' alt='IPO_Curve02.jpg' /></ol>
<p>Em nosso exemplo, colocamos todos os canais com o valor de 1.00. Esse é o valor máximo. Como nos sabemos, a união de todas as cores formam o branco, então se colocar todos os canais com o valor 1.00, a partícula vai ficar branca. Se quisermos que a partícula fique com o valor máximo vermelho, então teremos que configurar da seguinte maneira: ColR:1.00, ColG:0.00, ColB:0.00.</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/particula_teste_04.jpg' alt='Particula_Teste_04.jpg' /></ol>
<p>Animando esses canais de cores, podemos conseguir efeitos bem legais:</p>
<ol>
<img src='http://game.proceduralbase.org/wp-content/uploads/2007/05/particula_teste_05.jpg' alt='Particula_Teste_05.jpg' /></ol>
<p>Coloquei aqui apenas algumas dicas de como melhorar nossa partícula, mas existem muitas outras coisas que podem ser feitas, vai da criatividade de cada um. Grande parte do que foi posto neste artigo não é regra, pode e deve ser modificado, dependendo de sua necessidade.</p>
<p>Bom divertimento!</p>
]]></content:encoded>
			<wfw:commentRss>http://game.proceduralbase.org/15/05/2007/simulacao-de-particulas-no-game-engine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Hierarquia no Game Engine</title>
		<link>http://game.proceduralbase.org/14/05/2007/hierarquia-no-game-engine-python-script/</link>
		<comments>http://game.proceduralbase.org/14/05/2007/hierarquia-no-game-engine-python-script/#comments</comments>
		<pubDate>Mon, 14 May 2007 16:48:27 +0000</pubDate>
		<dc:creator>Diego Rangel (OmegaX)</dc:creator>
				<category><![CDATA[Iniciante]]></category>
		<category><![CDATA[Python Script]]></category>

		<guid isPermaLink="false">http://game.proceduralbase.org/14/05/2007/hierarquia-no-game-engine-python-script/pt/</guid>
		<description><![CDATA[Requisitos: Conhecimento mínimo em programação python para Game Engine.
Uma dúvida que deixa de cabelos brancos a todos os iniciantes no python para o Game Engine, é como acessar objetos via programação. Neste artigo, vou ensinar o conceito básico sobre a hierarquia usada nos jogos   do Blender.
Observe a figura abaixo:

Na verdade este diagrama está [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Requisitos:</strong> Conhecimento mínimo em programação python para Game Engine.</p>
<p>Uma dúvida que deixa de cabelos brancos a todos os iniciantes no python para o Game Engine, é como acessar objetos via programação. Neste artigo, vou ensinar o conceito básico sobre a hierarquia usada nos jogos   do Blender.</p>
<p>Observe a figura abaixo:<br />
<img src="http://i4.photobucket.com/albums/y113/Omegal/HierarquiaPrimriaPythonScript.jpg" height="550" width="641" /></p>
<p>Na verdade este diagrama está bem simplificado, pois existem outros itens que podemos incluir na hierarquia, mas vamos tomá-lo como um padrão.</p>
<p>Para que se consiga atingir o destino desejado, será necessário percorrer a hierarquia. Você pode fazer esse percurso tanto do nível mais alto para o mais baixo como também o inverso. Então podemos dividir a programação python  em dois tipos: Crescente e Decrescente.</p>
<p><strong>Programação Crescente</strong></p>
<p>Esta é o tipo de programação mais usado. Ele vai subindo o diagrama até chegar no ponto mais alto possível.<br />
A primeira coisa que precisa saber e que todo script python do game engine está ligado a um Controlador. O script python é a parte mais baixa da hierarquia.</p>
<p>Vejamos este LogicBrick:<br />
<img src="http://i4.photobucket.com/albums/y113/Omegal/LogicBricks01.jpg" /></p>
<p>Neste exemplo existe um controlador do tipo python, dois sensores(CaixaEntrada e Teclado) e  dois atuadores(AdicionarJogador e Mensageiro). Todos estão nomeados devidamente. Lembrando que é muito importante nomear os seus logicbricks para que fique mais fácil de localizar via programação.</p>
<p>Vamos imaginar que queremos buscar o Atuador AdicionarJogador para trabalhar com ele. Pelo nosso diagrama, o caminho seria este: Script Python -&gt; Controlador -- &gt; Atuador.</p>
<p>Vamos implantar isso em Python Script:</p>
<div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">#-----------------------------------------------------------------</span><br />
<span style="color: #808080; font-style: italic;">#importando o módulo GameLogic. Este é o módulo mais importante</span><br />
<span style="color: #808080; font-style: italic;">#do game engine. Em nosso diagrama principal ele não &nbsp;está</span><br />
<span style="color: #808080; font-style: italic;">#ligado a nada, mas todos os componentes de jogo de alguma forma</span><br />
<span style="color: #808080; font-style: italic;">#estão ligados a ele.</span><br />
<span style="color: #ff7700;font-weight:bold;">import</span> GameLogic<br />
<br />
<span style="color: #808080; font-style: italic;">#Como todo script começa na fonte mais baixa (Script Python)</span><br />
<span style="color: #808080; font-style: italic;">#e como também já &nbsp;estamos nesta fonte. Teremos que buscar</span><br />
<span style="color: #808080; font-style: italic;">#o próximo degrau da hierarquia: o Controlador</span><br />
<br />
<span style="color: #808080; font-style: italic;">#A função getCurrentController() busca o controlador que</span><br />
<span style="color: #808080; font-style: italic;">#executou o script</span><br />
controlador = GameLogic.<span style="color: black;">getCurrentController</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<br />
<span style="color: #808080; font-style: italic;">#Agora que já temos nosso controlador, temos que buscar</span><br />
<span style="color: #808080; font-style: italic;">#nosso atuador através da função getActuator(“nome_do_atuador”)</span><br />
atuador = controlador.<span style="color: black;">getActuator</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;AdicionarJogador&quot;</span><span style="color: black;">&#41;</span><br />
<span style="color: #808080; font-style: italic;">#----------------------------------------------------------------</span></div></td></tr></tbody></table></div>
<p>Prontinho, já temos nosso atuador armazenado em uma variável de igual nome (atuador). Agora você já pode trabalhar ela usando suas funções e procedimentos (temas para um próximo artigo).</p>
<p>Mas agora, se desse mesmo logicbricks, quisermos buscar o sensor teclado? Como ficaria nosso código? Pelo nosso diagrama, o caminho seria este: Python -&gt; Controlador -- &gt; Sensor.</p>
<p>Então o código ficaria assim:</p>
<div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">#------------------------------------------------</span><br />
<span style="color: #ff7700;font-weight:bold;">import</span> GameLogic<br />
controlador = GameLogic.<span style="color: black;">getCurrentController</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<span style="color: #808080; font-style: italic;">#Agora que já temos nosso controlador, temos que buscar</span><br />
<span style="color: #808080; font-style: italic;">#nosso sensor através da função getSensor(“nome_do_sensor”)</span><br />
sensor = controlador.<span style="color: black;">getSensor</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Teclado&quot;</span><span style="color: black;">&#41;</span><br />
<span style="color: #808080; font-style: italic;">#------------------------------------------------------------</span></div></td></tr></tbody></table></div>
<p>Já vimos com acessar os sensores e atuadores, agora vamos acessar o objeto que executou o script: Script Python -&gt; Controlador -- &gt; Objeto.</p>
<div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">#------------------------------------------------------------------</span><br />
<span style="color: #ff7700;font-weight:bold;">import</span> GameLogic<br />
controlador = GameLogic.<span style="color: black;">getCurrentController</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<span style="color: #808080; font-style: italic;">#vamos buscar o objeto ao qual pertence o controlador que executou</span><br />
<span style="color: #808080; font-style: italic;">#o script pela função getOwner()</span><br />
proprietario = controlador.<span style="color: black;">getOwner</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<span style="color: #808080; font-style: italic;">#------------------------------------------------------------------</span></div></td></tr></tbody></table></div>
<p>Prontinho, temos o objeto armazenado na variável proprietário. No game engine, costumamos chamar o objeto que executou o script de proprietário, porque ele é dono de todos os controladores, sensores e atuadores que estão ligados a ele.</p>
<p>Como podemos ver, conseguimos alcançar todas as instancias “possíveis” usando o método de programação Crescente.</p>
<p><strong><br />
Programação Decrescente</strong></p>
<p>A programação decrescente, embora menos comum, é usada em projetos em que objetos têm que interagir entre eles. Ela permite que script que esteja sendo executado em um objeto A possa acessar um objeto B.<br />
Como exemplo, vamos imaginar que se tenha três objetos em cena, nos quais você devidamente os re-nomeou como: bola, quadrado e triangulo. Existe um script no objeto bola que você deseja que acesse o objeto quadrado.  Para isso teremos que começar de cima para baixo, de acordo com o nosso diagrama: Cena -- &gt; Objeto.<br />
O script Python para acessar o objeto quadrado ficaria assim:</p>
<div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">#------------------------------------------------------------------</span><br />
<span style="color: #ff7700;font-weight:bold;">import</span> GameLogic<br />
<br />
<span style="color: #808080; font-style: italic;">#Buscando a cena que esta sendo executada no jogo</span><br />
cena = GameLogic.<span style="color: black;">getCurrentScene</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<br />
<span style="color: #808080; font-style: italic;">#Buscando o objeto “quadrado” através da função getObjectList()</span><br />
objeto = cena.<span style="color: black;">getObjectList</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;OBquadrado&quot;</span><span style="color: black;">&#93;</span><br />
<span style="color: #808080; font-style: italic;">#----------------------------------------------------------------</span></div></td></tr></tbody></table></div>
<p>Observações:<br />
A função getObjectList() retorna uma lista de todos os objetos que estão em cena. Quando você a usa definindo o nome ( getObjectList()["OBquadrado"]), ela busca somente o objeto em questão.<br />
No Game Engine, mesmo que você re-nomeie seu objeto, o blender sempre vai acrescentar o prefixo “OB” no inicio.</p>
<p><strong>Considerações finais:</strong></p>
<p>Como se pode perceber, em ambos os métodos, nenhum alcança os extremos. Os dois só chega até o nível objeto, mas é bom saber que a união deles pode se tornar uma arma poderosa no game engine.</p>
]]></content:encoded>
			<wfw:commentRss>http://game.proceduralbase.org/14/05/2007/hierarquia-no-game-engine-python-script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Its Time!</title>
		<link>http://game.proceduralbase.org/28/11/2006/itstime/</link>
		<comments>http://game.proceduralbase.org/28/11/2006/itstime/#comments</comments>
		<pubDate>Tue, 28 Nov 2006 23:44:51 +0000</pubDate>
		<dc:creator>dreamkatana</dc:creator>
				<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://game.proceduralbase.org/2006/11/28/itstime/</guid>
		<description><![CDATA[Welcome to the Blog of the Blender Game Engine.
Each week we will place News and Guardianships on the world of GE.
For those who do not know Blender, we will a little bit of it history , only a little because the objective of this blog is to be your new guide for the Game Engine.
In [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the Blog of the<strong> Blender Game Engine</strong>.<br />
Each week we will place News and Guardianships on the world of <strong>GE</strong>.<br />
For those who do not know Blender, we will a little bit of it history , only a little because the objective of this blog is to be your new guide for the Game Engine.</p>
<p>In 1988, Ton Roosendaal co-founded the Dutch animation studio NeoGeo. NeoGeo quickly became the largest 3D animation house in the Netherlands. NeoGeo did award winning productions (European Corporate Video Awards 1993 &#038; 1995) for electronics company Philips. Within NeoGeo, Ton was responsible for both art direction and internal software development. After careful deliberation it was decided that the current in-house 3D toolset for NeoGeo needed to be rewritten from scratch. In 1995 this rewrite began and was destined to become the 3D software tool we all now know as Blender.<br />
In the next week, we will speak of the characteristics of the <strong>Game Engine</strong> and its functioning with the <strong>Blender.</strong><br />
CYA!</p>
]]></content:encoded>
			<wfw:commentRss>http://game.proceduralbase.org/28/11/2006/itstime/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nossa História (KGB V1)</title>
		<link>http://game.proceduralbase.org/21/11/2006/historia/</link>
		<comments>http://game.proceduralbase.org/21/11/2006/historia/#comments</comments>
		<pubDate>Wed, 22 Nov 2006 01:52:44 +0000</pubDate>
		<dc:creator>dreamkatana</dc:creator>
				<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://game.proceduralbase.org/2006/11/21/historia/pt/</guid>
		<description><![CDATA[Bem-vindo ao Blog sobre a Game Engine do Blender.
Cada semana colocaremos notícias e tutorias sobre o mundo da GE.
Vamos falar um pouco da história do Blender, só um pouco porque o objetivo desse blog é ser sua fonte para a Game Engine.
Em 1988, Ton Roosendaal co-fundou o estúdio holandês NeoGeo Animation. NeoGeo transformou-se rapidamente a [...]]]></description>
			<content:encoded><![CDATA[<p>Bem-vindo ao Blog sobre a Game Engine do Blender.</p>
<p>Cada semana colocaremos notícias e tutorias sobre o mundo da GE.</p>
<p>Vamos falar um pouco da história do Blender, só um pouco porque o objetivo desse blog é ser sua fonte para a Game Engine.</p>
<p>Em 1988, Ton Roosendaal co-fundou o estúdio holandês NeoGeo Animation. NeoGeo transformou-se rapidamente a maior casa de animação 3D dos Países Baixos. NeoGeo concedeu produções ganhando (European Corporate Video Awards 1993 &#038; 1995) para a companhia de eletrônica Philips. Dentro da NeoGeo, a Ton era responsável pela direção de arte e o desenvolvimento interno de software. Depois que cuidadoso estudo foi decidido que o sotware 3D atual deveria ser reescrito do zero. Em 1995 esta reescrita começou e foi assim que ela começõu a transformar-se na ferramenta de software 3D que todos nós conhecemos agora como o Blender.<br />
Bem pesosal, NeoGeo não aquele vídeo-game e sim o nome da empresa mesmo, e para finalizar a história a NeoGeo estava falindo e Ton solicitou a comunidade doações para que assim pode-se liberar o fonte do Blender sobre a licensa GNU, e assim começou a era Blender…</p>
<p>Na próxima semana, falaremos sobre um pouco das características da Game Engine e de seu funcionamento com o Blender.</p>
<p>Até lá.</p>
]]></content:encoded>
			<wfw:commentRss>http://game.proceduralbase.org/21/11/2006/historia/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
