<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5740393479595741817</id><updated>2011-11-27T16:03:45.132-08:00</updated><title type='text'>Blender Tutoriais</title><subtitle type='html'>Este blog é voltado para o desenvolvimento do Blender Game Engine, com tutoriais sobre python e técnicas de desenvolvimento de jogos.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-1381803881001358269</id><published>2011-02-15T18:31:00.000-08:00</published><updated>2011-02-15T18:31:06.257-08:00</updated><title type='text'>NeoTextureEdit gerador de textura Open Source</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;a href="http://neotextureedit.sourceforge.net/images/screenshots/nte0.5.1a_screen_small.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://neotextureedit.sourceforge.net/images/screenshots/nte0.5.1a_screen_small.png" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; line-height: 21px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 11px; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;a href="http://neotextureedit.sourceforge.net/" style="color: #2277dd; text-decoration: none;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: inline; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: inline; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;NeoTextureEdit&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: inline; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: inline; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="color: #444444;"&gt;&amp;nbsp;&lt;/span&gt;é um programa open source (GNU LGPL v. 3) fácil de usar gráfico baseado em textura perfeita editor processual.&lt;/span&gt;&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: inline; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Usando funções de base contínua pode gerar imagens de resolução arbitrária, sem degradação da qualidade.&lt;/span&gt;&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: inline; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Sua principal finalidade é produzir texturas de alta qualidade para aplicações de renderização em tempo real que podem ser armazenadas em alguns KB e sintetizada na inicialização do aplicativo.&lt;/span&gt;&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: inline; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Mas também pode ser usado para gerar imagens-off line.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 11px; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: inline; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: inline; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; line-height: 21px;"&gt;Opinião do Blogger:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; line-height: 21px;"&gt;Vale a pena conferir o site do desenvolvedor e baixar a ferramenta, muito útil e simples de usar.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-1381803881001358269?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/1381803881001358269/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2011/02/neotextureedit-gerador-de-textura-open.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/1381803881001358269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/1381803881001358269'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2011/02/neotextureedit-gerador-de-textura-open.html' title='NeoTextureEdit gerador de textura Open Source'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-4516986269908674638</id><published>2011-02-15T18:18:00.000-08:00</published><updated>2011-02-15T18:18:00.935-08:00</updated><title type='text'>Como se tornar um profissional da indústria de games</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://olhardigital.uol.com.br/uploads/acervo_imagens/2011/02/20110215105721.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="172" src="http://olhardigital.uol.com.br/uploads/acervo_imagens/2011/02/20110215105721.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #707070; font-family: arial; font-size: x-small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #707070; font-family: arial; font-size: 13px; font-style: italic;"&gt;O co-fundador da desenvolvedora brasileira Mojjo.de dá dicas sobre como entrar nesse mercado e preparar seu próprio jogo.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #707070; font-family: arial; font-size: 13px; font-style: italic;"&gt;Uma matéria muito interessante sobre profissionais em Game, confira &lt;a href="http://olhardigital.uol.com.br/jovem/games/noticias/quais_os_primeiros_passos_para_se_fazer_um_jogo_de_videogame"&gt;aqui&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-4516986269908674638?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/4516986269908674638/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2011/02/como-se-tornar-um-profissional-da_15.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/4516986269908674638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/4516986269908674638'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2011/02/como-se-tornar-um-profissional-da_15.html' title='Como se tornar um profissional da indústria de games'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-3241623586781253625</id><published>2011-02-04T10:50:00.000-08:00</published><updated>2011-02-06T19:10:30.958-08:00</updated><title type='text'>Função de ScreenShot durante o jogo - ScreenMaker</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TUxIw6BOsiI/AAAAAAAAAS8/GOVaIy9DLdQ/s1600/tela2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="243" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TUxIw6BOsiI/AAAAAAAAAS8/GOVaIy9DLdQ/s320/tela2.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Imagem Ilustrativa&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Muitas vezes gostaríamos de salvar imagens durante um jogo ou passeio virtual 3d no blender, mas muitos inclusive eu não tinham idéia de como fazer. Dando uma olhada na API da BGE achei uma função chamada 'makeScreenshot()' do módulo Rasterizer que trata da renderização da imagem e tem muitas funções interessantes como coordenadas do mouse, tamanho da tela em pixel e por ai vai.&lt;br /&gt;A função makeScreenshot() é muito simples de ser usado é só &amp;nbsp;colocar o nome do arquivo que será salvo no parâmetro da função Ex: Rasterizer.makeScreenschot('minha_imagem') e pronto. A imagem será salva na extensão jpg.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TUxJQq9pBeI/AAAAAAAAATA/dTEFaKLJNGo/s1600/tela1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="297" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TUxJQq9pBeI/AAAAAAAAATA/dTEFaKLJNGo/s640/tela1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Imagem geral do template&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Vamos para a lógica do template:&lt;br /&gt;-Criamos um script python que irá fazer o processo de salvar a imagem de preferência ligado na câmera.&lt;br /&gt;-Associamos um sensor do tipo keyboard(teclado) que irá disparar a função de salvar a imagem.&lt;br /&gt;-Criar uma variável no Add Property que será o nosso contador de fotos.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TUxJbfpFpeI/AAAAAAAAATE/16DbxNkkzIM/s1600/tela3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="174" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TUxJbfpFpeI/AAAAAAAAATE/16DbxNkkzIM/s640/tela3.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Painel de Logica da BGE&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Tirando várias fotos:&lt;br /&gt;O script que desenvolvi tem a função de salvar um arquivo de imagem sempre que uma determinada tecla for pressionada e salva a imagem com um nome diferente em ordem crescente Ex: imagem0, imagem1 etc...&lt;br /&gt;&lt;br /&gt;Script Python&lt;br /&gt;____________________________________________________________&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# Feito por Marcos Amaral (racom)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# em 27/01/2011&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;import&lt;/span&gt; Rasterizer &lt;span class="Apple-style-span" style="color: #274e13;"&gt;#MODULO RESPOSAVEL PELA RENDERIZAÇÃO&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;import&lt;/span&gt; GameLogic &lt;span class="Apple-style-span" style="color: #990000;"&gt;as&lt;/span&gt; g &lt;span class="Apple-style-span" style="color: #274e13;"&gt;#MODULO DA BGE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;cont = g.getCurrentController() &lt;span class="Apple-style-span" style="color: #274e13;"&gt;#PARA OBTER OS CONTROLADORES, ACTUADORES E SENSORES&lt;/span&gt;&lt;br /&gt;obj = cont.owner &lt;span class="Apple-style-span" style="color: #274e13;"&gt;#PROPRIETARIO DOS CONTROLADORES&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;key = cont.sensors['&lt;span class="Apple-style-span" style="color: #990000;"&gt;key&lt;/span&gt;']&lt;span class="Apple-style-span" style="color: #274e13;"&gt; #OBTEM O SENSOR DE TECLADO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;arquivo='imagem'+str(obj['&lt;span class="Apple-style-span" style="color: #990000;"&gt;contador&lt;/span&gt;']) &lt;span class="Apple-style-span" style="color: #274e13;"&gt;#CRIA O NOME DO ARQUIVO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# SALVA screenshot&lt;/span&gt;&lt;br /&gt;if key.positive:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Rasterizer.makeScreenshot(arquivo) &lt;span class="Apple-style-span" style="color: #274e13;"&gt;#FUNCAO QUE SALVA A IMAGEM&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;obj['&lt;span class="Apple-style-span" style="color: #990000;"&gt;contador&lt;/span&gt;'] += &lt;span class="Apple-style-span" style="color: #073763;"&gt;1&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #274e13;"&gt;#SOMA MAIS UM AO CONTADOR&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;____________________________________________________________&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;Download do template&lt;/b&gt;: &amp;nbsp;&lt;a href="http://dl.dropbox.com/u/11203757/screenshot.blend"&gt;screenshot.blend&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;É isso ai, espero que tenho gostado, em breve mais tutoriais sobre BGE.&lt;br /&gt;Até mais! &amp;nbsp;\o&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-3241623586781253625?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/3241623586781253625/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2011/02/funcao-de-screens-durante-o-jogo.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/3241623586781253625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/3241623586781253625'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2011/02/funcao-de-screens-durante-o-jogo.html' title='Função de ScreenShot durante o jogo - ScreenMaker'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qHh7MoHJw-o/TUxIw6BOsiI/AAAAAAAAAS8/GOVaIy9DLdQ/s72-c/tela2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-7731675016473799870</id><published>2011-02-03T10:24:00.000-08:00</published><updated>2011-02-03T10:24:37.123-08:00</updated><title type='text'>Template Game Engine</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TUryyifUdYI/AAAAAAAAAS4/my3R2ciX62s/s1600/scrip_python.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TUryyifUdYI/AAAAAAAAAS4/my3R2ciX62s/s320/scrip_python.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Estou disponibilizando um template criado por mim e usado na oficia do IV Conferência Nacional Blender Pro. Ele trata de funções básicas para se fazer um jogo utilizando Python Script. O código contém comentários para facilitar o entendimento do mesmo. Bons estudos e bom divertimento.&lt;br /&gt;&lt;br /&gt;Download do arquivo:&amp;nbsp;&lt;a href="http://dl.dropbox.com/u/11203757/script_python.blend"&gt;script_python.blend&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-7731675016473799870?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/7731675016473799870/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2011/02/template-game-engine.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/7731675016473799870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/7731675016473799870'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2011/02/template-game-engine.html' title='Template Game Engine'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qHh7MoHJw-o/TUryyifUdYI/AAAAAAAAAS4/my3R2ciX62s/s72-c/scrip_python.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-3053403424579693784</id><published>2010-12-30T08:22:00.000-08:00</published><updated>2010-12-30T08:22:24.427-08:00</updated><title type='text'>Desenvolvimento de IA com BGE</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TRypUkAxHRI/AAAAAAAAARg/Z69AA7VHWwQ/s1600/Palestra+IA.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TRypUkAxHRI/AAAAAAAAARg/Z69AA7VHWwQ/s320/Palestra+IA.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Esse material é parte da Palestra que ministrei na IV Conferência  Nacional - Blender Pro, fala sobre lógica de programação, Pathfinder  (encontrar o caminho) para jogos e um arquivo .blend demonstrativo.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TRysQ3BH-yI/AAAAAAAAARk/GfrfmUb1AAk/s1600/Palestra+IA-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TRysQ3BH-yI/AAAAAAAAARk/GfrfmUb1AAk/s640/Palestra+IA-1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TRysRj7ChrI/AAAAAAAAARo/KbkiKNipZt4/s1600/Palestra+IA-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TRysRj7ChrI/AAAAAAAAARo/KbkiKNipZt4/s640/Palestra+IA-2.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysS3ads7I/AAAAAAAAARs/WgSyWyIMgz4/s1600/Palestra+IA-3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysS3ads7I/AAAAAAAAARs/WgSyWyIMgz4/s640/Palestra+IA-3.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysTvYsldI/AAAAAAAAARw/iewMGXIxYD0/s1600/Palestra+IA-4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysTvYsldI/AAAAAAAAARw/iewMGXIxYD0/s640/Palestra+IA-4.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysURKjvhI/AAAAAAAAAR0/_3D6POfpy0c/s1600/Palestra+IA-5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysURKjvhI/AAAAAAAAAR0/_3D6POfpy0c/s640/Palestra+IA-5.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysVq9RNUI/AAAAAAAAAR4/a77xL66TfTM/s1600/Palestra+IA-6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysVq9RNUI/AAAAAAAAAR4/a77xL66TfTM/s640/Palestra+IA-6.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysWueaIQI/AAAAAAAAAR8/443WWpVXZIY/s1600/Palestra+IA-7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysWueaIQI/AAAAAAAAAR8/443WWpVXZIY/s640/Palestra+IA-7.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TRysXeQt6iI/AAAAAAAAASA/tw__JegX7oE/s1600/Palestra+IA-8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TRysXeQt6iI/AAAAAAAAASA/tw__JegX7oE/s640/Palestra+IA-8.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TRysYVkT7LI/AAAAAAAAASE/pZULvlB7OQQ/s1600/Palestra+IA-9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TRysYVkT7LI/AAAAAAAAASE/pZULvlB7OQQ/s640/Palestra+IA-9.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TRysZDaAy6I/AAAAAAAAASI/KV4pMJYbdqE/s1600/Palestra+IA-10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TRysZDaAy6I/AAAAAAAAASI/KV4pMJYbdqE/s640/Palestra+IA-10.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TRysZ6FBojI/AAAAAAAAASM/4kFdXx9ey1Q/s1600/Palestra+IA-11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TRysZ6FBojI/AAAAAAAAASM/4kFdXx9ey1Q/s640/Palestra+IA-11.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysauigQRI/AAAAAAAAASQ/gg-P3i6WbKY/s1600/Palestra+IA-12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysauigQRI/AAAAAAAAASQ/gg-P3i6WbKY/s640/Palestra+IA-12.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TRysbTpwG9I/AAAAAAAAASU/-0z8Lh91tUw/s1600/Palestra+IA-13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TRysbTpwG9I/AAAAAAAAASU/-0z8Lh91tUw/s640/Palestra+IA-13.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TRyscV3_tHI/AAAAAAAAASY/9XjunIigRFo/s1600/Palestra+IA-14.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TRyscV3_tHI/AAAAAAAAASY/9XjunIigRFo/s640/Palestra+IA-14.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysdWBJVDI/AAAAAAAAASc/69kSgQ9NJPM/s1600/Palestra+IA-15.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TRysdWBJVDI/AAAAAAAAASc/69kSgQ9NJPM/s640/Palestra+IA-15.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TRyseDMlvaI/AAAAAAAAASg/GVIe1LCNkNs/s1600/Palestra+IA-16.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TRyseDMlvaI/AAAAAAAAASg/GVIe1LCNkNs/s640/Palestra+IA-16.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;link &lt;a href="http://dl.dropbox.com/u/11203757/RTS.blend"&gt;RTS.blend&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-3053403424579693784?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/3053403424579693784/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2010/12/desenvolvimento-de-ia-com-bge.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/3053403424579693784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/3053403424579693784'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2010/12/desenvolvimento-de-ia-com-bge.html' title='Desenvolvimento de IA com BGE'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qHh7MoHJw-o/TRypUkAxHRI/AAAAAAAAARg/Z69AA7VHWwQ/s72-c/Palestra+IA.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-1546816861319844899</id><published>2010-12-16T19:05:00.000-08:00</published><updated>2010-12-16T19:09:16.050-08:00</updated><title type='text'>Movimento de Câmera vista de cima</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i13.photobucket.com/albums/a258/jpaloma/Docs/AOE3-NavalBattle.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://i13.photobucket.com/albums/a258/jpaloma/Docs/AOE3-NavalBattle.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Em jogos de RPG ou de RTS se utiliza muito a visão de cima, a navegação pelo cenario com a câmera pode ser uma dificuldade há mais. A proposta aqui é a movimentação da câmera pelas bordas da área de visão, como no video abaixo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2sOJiWQcR5Q?version=3"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/2sOJiWQcR5Q?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Você pode reparar que ao movimentar o cursor do mouse para perto das bordas da janela, "o cenário se desloca", isto é a câmera se desloca em relação ao cenário.&lt;br /&gt;&lt;br /&gt;Como funciona o template?&lt;br /&gt;Precisamos criar um script python que saiba da localização do cursor mouse e as&amp;nbsp;dimensões&amp;nbsp;da janela, em seguida comparar a posição atual do cursor em relação aos limites da tela, então criamos aréas de ação do cursor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TQq6VuZO_TI/AAAAAAAAARQ/Ulzqbs3ZAVs/s1600/imagen1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TQq6VuZO_TI/AAAAAAAAARQ/Ulzqbs3ZAVs/s320/imagen1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Assim que o cursor atingir umas das área de ação a câmera se desloca na direção da área ativa e quando sai da área para o deslocamento.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TQrOxBT4LyI/AAAAAAAAARU/alDtilA5u5Q/s1600/Captura_de_tela.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="323" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TQrOxBT4LyI/AAAAAAAAARU/alDtilA5u5Q/s640/Captura_de_tela.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Os elementos do template:&lt;br /&gt;Ativos - Câmera ligada(parenteada) ao Empty, no qual vai no Painel de Lógica um sensor do tipo Always e outro de Mouse/Moviment, ligados ao Controlador Python.&lt;br /&gt;&lt;br /&gt;O Script Python:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;import&lt;/span&gt; Rasterizer&lt;br /&gt;Rasterizer.showMouse(&lt;span class="Apple-style-span" style="color: blue;"&gt;1&lt;/span&gt;)&lt;br /&gt;w = Rasterizer.getWindowWidth()&lt;br /&gt;h = Rasterizer.getWindowHeight()&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;import&lt;/span&gt; GameLogic &lt;span class="Apple-style-span" style="color: #990000;"&gt;as&lt;/span&gt; g&lt;br /&gt;from GameLogic &lt;span class="Apple-style-span" style="color: #990000;"&gt;import&lt;/span&gt; *&lt;br /&gt;&lt;br /&gt;cont = getCurrentController()&lt;br /&gt;ow = cont.owner&lt;br /&gt;&lt;br /&gt;mousesensor = cont.sensors[&lt;span class="Apple-style-span" style="color: #990000;"&gt;'move'&lt;/span&gt;]&lt;br /&gt;campos = ow.position&lt;br /&gt;&lt;br /&gt;x = mousesensor.position[&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;]&lt;br /&gt;y = mousesensor.position[&lt;span class="Apple-style-span" style="color: blue;"&gt;1&lt;/span&gt;]&lt;br /&gt;&lt;br /&gt;screenposx = &lt;span class="Apple-style-span" style="color: blue;"&gt;1.0&lt;/span&gt;*(x - w/&lt;span class="Apple-style-span" style="color: blue;"&gt;2&lt;/span&gt;) / w&lt;br /&gt;screenposy = &lt;span class="Apple-style-span" style="color: blue;"&gt;1.0&lt;/span&gt;*( ( h - y ) - h/&lt;span class="Apple-style-span" style="color: blue;"&gt;2&lt;/span&gt; ) / h&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;#deltax = campos[2]/1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;#deltay = campos[2]/1&lt;/span&gt;&lt;br /&gt;deltax = campos[&lt;span class="Apple-style-span" style="color: blue;"&gt;2&lt;/span&gt;]/&lt;span class="Apple-style-span" style="color: blue;"&gt;1.265&lt;/span&gt;&lt;br /&gt;deltay = campos[&lt;span class="Apple-style-span" style="color: blue;"&gt;2&lt;/span&gt;]/&lt;span class="Apple-style-span" style="color: blue;"&gt;1.84&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;newposx = campos[&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;] + screenposx * deltax&lt;br /&gt;newposy = campos[&lt;span class="Apple-style-span" style="color: blue;"&gt;1&lt;/span&gt;] + screenposy * deltay&lt;br /&gt;newposz = &lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;newpos = [newposx,newposy,newposz]&lt;br /&gt;&lt;br /&gt;print y&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;#print L,l&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;#print screenposx, screenposy&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;#print newposx,newposy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;#DETECTA OS LIMITES DE AÇAO DA TELA&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;if&lt;/span&gt; y &amp;lt; &lt;span class="Apple-style-span" style="color: blue;"&gt;50&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;up="on"&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;else&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;up="off"&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;if&lt;/span&gt; y &amp;gt; h-&lt;span class="Apple-style-span" style="color: blue;"&gt;50&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;down="on"&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;else&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;down="off"&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;if&lt;/span&gt; x &amp;lt; &lt;span class="Apple-style-span" style="color: blue;"&gt;50&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;left="on"&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;else&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;left="off"&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;if&lt;/span&gt; x &amp;gt; w-&lt;span class="Apple-style-span" style="color: blue;"&gt;50&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;right="on"&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;else&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;right="off"&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;vel&lt;/span&gt; = &lt;span class="Apple-style-span" style="color: blue;"&gt;0.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;if&lt;/span&gt; up==&lt;span class="Apple-style-span" style="color: #990000;"&gt;"on"&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;ow.applyMovement([&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;,vel,&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;],&lt;span class="Apple-style-span" style="color: blue;"&gt;1&lt;/span&gt;)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;print &lt;span class="Apple-style-span" style="color: #990000;"&gt;"up"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# down&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;elif&lt;/span&gt; down==&lt;span class="Apple-style-span" style="color: #990000;"&gt;"on"&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;ow.applyMovement([&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;,-vel,&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;],&lt;span class="Apple-style-span" style="color: blue;"&gt;1&lt;/span&gt;)&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;#print "down"&lt;/span&gt;&lt;span class="Apple-tab-span" style="color: #990000; white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# left&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;elif&lt;/span&gt; left==&lt;span class="Apple-style-span" style="color: #990000;"&gt;"on"&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;ow.applyMovement([-ve&lt;span class="Apple-style-span" style="color: blue;"&gt;l&lt;/span&gt;,&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;,&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;],&lt;span class="Apple-style-span" style="color: blue;"&gt;1&lt;/span&gt;)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;print &lt;span class="Apple-style-span" style="color: #990000;"&gt;"left"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# right&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #990000;"&gt;elif&lt;/span&gt; right==&lt;span class="Apple-style-span" style="color: #990000;"&gt;"on"&lt;/span&gt;:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;ow.applyMovement([vel,&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;,&lt;span class="Apple-style-span" style="color: blue;"&gt;0&lt;/span&gt;],&lt;span class="Apple-style-span" style="color: blue;"&gt;1&lt;/span&gt;)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;print &lt;span class="Apple-style-span" style="color: #990000;"&gt;"right"&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Conclusão:&lt;br /&gt;Esse template demonstra os princípios do funcionamento de Movimento de câmera, com ele você pode usar de base para seus projetos e incrementar mais funções.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Download do template: &lt;a href="http://dl.dropbox.com/u/11203757/moveCamera.blend"&gt;aqui&lt;/a&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-1546816861319844899?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/1546816861319844899/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2010/12/movimento-de-camera-vista-de-cima.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/1546816861319844899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/1546816861319844899'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2010/12/movimento-de-camera-vista-de-cima.html' title='Movimento de Câmera vista de cima'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i13.photobucket.com/albums/a258/jpaloma/Docs/th_AOE3-NavalBattle.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-1616429379488015028</id><published>2010-12-09T07:19:00.000-08:00</published><updated>2010-12-16T05:57:36.198-08:00</updated><title type='text'>Drag and Drop - Arrastar e Largar</title><content type='html'>Drag and Drop 3D - Arrastar e Largar&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TQDmDukNGzI/AAAAAAAAAQs/AzkRkkWqxz0/s1600/Logo1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TQDmDukNGzI/AAAAAAAAAQs/AzkRkkWqxz0/s320/Logo1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Conceito&lt;br /&gt;Nas &lt;a class="mw-redirect" href="http://pt.wikipedia.org/wiki/Interfaces_gr%C3%A1ficas" title="Interfaces gráficas"&gt;interfaces gráficas&lt;/a&gt; de &lt;a href="http://pt.wikipedia.org/wiki/Computador" title="Computador"&gt;computadores&lt;/a&gt;, &lt;i&gt;&lt;b&gt;drag-and-drop&lt;/b&gt;&lt;/i&gt;  (arrastar e largar) é a ação de clicar em um objeto virtual e  "arrastá-lo" a uma posição diferente ou sobre um outro objeto virtual.  De maneira geral, ele pode ser usado para invocar diversos tipos de  ações, ou criar vários tipos de associações entre dois objetos  abstratos.&lt;br /&gt;&lt;br /&gt;A seqüência básica de ações relacionadas ao &lt;i&gt;drag-and-drop&lt;/i&gt; é:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Clicar, e manter o botão do &lt;a class="mw-redirect" href="http://pt.wikipedia.org/wiki/Mouse" title="Mouse"&gt;mouse&lt;/a&gt; ou outro dispositivo semelhante apertado, para "agarrar" o objeto,&lt;/li&gt;&lt;li&gt;"Arrastar" (&lt;i&gt;drag&lt;/i&gt;) o objeto/&lt;a href="http://pt.wikipedia.org/wiki/Cursor" title="Cursor"&gt;cursor&lt;/a&gt; à posição ou localização desejada,&lt;/li&gt;&lt;li&gt;"Largar" (&lt;i&gt;drop&lt;/i&gt;) o objeto, soltando o botão pressionado.&lt;/li&gt;&lt;/ul&gt;Neste Tutorial iremos abordar um Drag and Drop um pouco diferente, por se tratar de um&amp;nbsp; Drag and Drop 3D, isso quer dizer que diferentemente de um porcedimento 2D onde só um angulo de visão é permitido podemos posicionar nossa camera em qualquer ângulo para deslocar o objeto.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TQDrTNwmYGI/AAAAAAAAAQw/prA_ADoUEkI/s1600/imagem-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="496" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TQDrTNwmYGI/AAAAAAAAAQw/prA_ADoUEkI/s640/imagem-2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Vamos para a lógica do template.&lt;br /&gt;Consiste basicamente em o ponteiro do mouse estar sobre o objeto que se deseja deslocar.&lt;br /&gt;Ao clicar com o botão esquerdo do mouse, uma função pega as propriedades do objeto e verifica se este possui tal propriedade para permitir o deslocamento.&lt;br /&gt;Se este apresentar esta propriedade sua posição será a aposição do mouse, enquanto o botão do mouse permanecer precionado, assim que solto o botão do mouse o objeto fica na posição atual.&lt;br /&gt;&lt;br /&gt;Construindo o Template.&lt;br /&gt;&lt;br /&gt;1º Passo - Adicionar o objeto ou objetos, adicione uma propriedade no objeto no painel &lt;b&gt;Game Logic (F4)&lt;/b&gt; em &lt;b&gt;Add Property&lt;/b&gt; com o nome de &lt;b&gt;ativo&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TQDynC03oeI/AAAAAAAAAQ0/Ey13gEYH5uc/s1600/imagem3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TQDynC03oeI/AAAAAAAAAQ0/Ey13gEYH5uc/s640/imagem3.png" width="505" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;2º Passo - Criar um script Python como descrito abaixo e liga-lo a câmera.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;import&lt;/span&gt; Rasterizer &lt;br /&gt;Rasterizer.showMouse(&lt;span style="color: blue;"&gt;1&lt;/span&gt;) &lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;import&lt;/span&gt; GameLogic &lt;span style="color: red;"&gt;as&lt;/span&gt; g &lt;br /&gt;&lt;span style="color: red;"&gt;from&lt;/span&gt; GameLogic &lt;span style="color: red;"&gt;import&lt;/span&gt; * &lt;br /&gt;&lt;br /&gt;cont = getCurrentController() &lt;br /&gt;own = cont.owner &lt;br /&gt;mouseover = cont.sensors[&lt;span style="color: red;"&gt;'MOverAny'&lt;/span&gt;] &lt;br /&gt;lmb = cont.sensors[&lt;span style="color: red;"&gt;'LMB'&lt;/span&gt;] &lt;br /&gt;&lt;br /&gt;hitLoc = mouseover.hitPosition &lt;span style="color: #274e13;"&gt;#COORDENADAS DA POS DO MOUSE &lt;/span&gt;&lt;br /&gt;hitObj = mouseover.hitObject &lt;span style="color: #274e13;"&gt;#OBJ Q ESTA SOB O MOUSE &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;hitLoc=hitLoc &lt;br /&gt;posx=hitLoc[&lt;span style="color: blue;"&gt;0&lt;/span&gt;] &lt;br /&gt;posy=hitLoc[&lt;span style="color: blue;"&gt;1&lt;/span&gt;] &lt;br /&gt;posz=hitLoc[&lt;span style="color: blue;"&gt;2&lt;/span&gt;] &lt;br /&gt;&lt;br /&gt;cena=g.getCurrentScene().objects &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;if&lt;/span&gt; hitObj.has_key(&lt;span style="color: red;"&gt;'ativo'&lt;/span&gt;) and lmb.positive: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #274e13;"&gt;#print hitObj&amp;nbsp; #Use o print para visualizar o obj na linha de comando&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj=hitObj &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj.position = [posx,posy,&lt;span style="color: blue;"&gt;1&lt;/span&gt;]&lt;br /&gt;&lt;br /&gt;3º Passo&amp;nbsp; - Adcionando sensores a câmera:&lt;br /&gt;Adicione um sensor Mouse do tipo Mouse over any.&lt;br /&gt;Um sensor Mouse do tipo Movement.&lt;br /&gt;Um sensor Mouse do tipo Left button.&lt;br /&gt;Ligue-os ao controlador Python como descrito na figura abaixo.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TQEBd21mpkI/AAAAAAAAAQ4/ZeVrOZ3UZDE/s1600/imagem-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="459" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TQEBd21mpkI/AAAAAAAAAQ4/ZeVrOZ3UZDE/s640/imagem-4.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Agora é só testar teclando P e clicar e manter precionado sobre o objeto, mova o mouse e solte o clique, se tudo estiver certo vocề terá deslocado o objeto de lugar.&lt;br /&gt;Esse template poderá ser a base para algum jogo ou parte dele em seus projetos.&lt;br /&gt;Bom proveito!&lt;br /&gt;&lt;br /&gt;Download template: &lt;a href="http://dl.dropbox.com/u/11203757/drag_and_drop-game.blend"&gt;aqui&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-1616429379488015028?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/1616429379488015028/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2010/12/drag-and-drop-arrastar-e-largar.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/1616429379488015028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/1616429379488015028'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2010/12/drag-and-drop-arrastar-e-largar.html' title='Drag and Drop - Arrastar e Largar'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qHh7MoHJw-o/TQDmDukNGzI/AAAAAAAAAQs/AzkRkkWqxz0/s72-c/Logo1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-2440383781451325720</id><published>2010-09-07T21:45:00.000-07:00</published><updated>2010-09-07T22:01:48.591-07:00</updated><title type='text'>Editando Materiais e Texturas para BGE</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcLBcce8kI/AAAAAAAAANU/0tivMCkEIg0/s1600/chanada" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcLBcce8kI/AAAAAAAAANU/0tivMCkEIg0/s320/chanada" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;style type="text/css"&gt; &lt;!--  @page { margin: 2cm }  P { margin-bottom: 0.21cm } --&gt; &lt;/style&gt;  &lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;u&gt;&lt;b&gt;MATERIAS E TEXTURAS&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Por Marcos Amaral&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;1-Materiais:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;O que são materiais?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Para responder essa pergunta temos de refletir sobre o mundo real. Um objeto real é composto por algum tipo de material, como vidro, plástico, pedra e por ai vai.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Todos eles tem suas características, físicas e visuais. Vamos ficar a princípio com as características visuais.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;O Blender trata da mesma forma e tenta imitar os materiais reais, não é uma tarefa das mais fáceis, já que precisamos ter uma boa noção da realidade e saber passar essas característica para o virtual.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Vamos criar o nosso material.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;-Primeiro apague o cubo que já é criado quando inicializamos um novo arquivo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;-Agora adicione um objeto qualquer, como um cubo ou uma esfera.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;-Tecle &lt;b&gt;F5&lt;/b&gt;, esse é o atalho para &lt;b&gt;Material Buttons&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="LEFT" class="western" style="margin-bottom: 0cm;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcMY-hnw7I/AAAAAAAAANc/va9Uioi3NGU/s1600/figura-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcMY-hnw7I/AAAAAAAAANc/va9Uioi3NGU/s400/figura-01.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Na janela Link and Pipeline clique em ADD new para adicionar um novo material.&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" class="western" style="margin-bottom: 0cm;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcNdz1L9XI/AAAAAAAAANk/5Jz8j71JD-U/s1600/figura-02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="129" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcNdz1L9XI/AAAAAAAAANk/5Jz8j71JD-U/s640/figura-02.png" width="640" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Painel &lt;b&gt;Shading Material Buttons&lt;/b&gt;, com uma prévia do lado esquerdo.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Todas as modificações são geradas na janela Preview.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcOCc54cAI/AAAAAAAAANs/0vWUtUksMg8/s1600/figura-03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcOCc54cAI/AAAAAAAAANs/0vWUtUksMg8/s320/figura-03.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Na janela Material há 3 características básicas de cor a serem aplicadas no objeto.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TIcOY_yBhaI/AAAAAAAAAN0/ntn_r6QjtCE/s1600/figura-04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="282" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TIcOY_yBhaI/AAAAAAAAAN0/ntn_r6QjtCE/s400/figura-04.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;Nas caixas de cor você seleciona a cor do seu objeto.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Col&lt;/b&gt; – Cor principal do material.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Spe&lt;/b&gt; – Cor das reflexões.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Mir&lt;/b&gt; – Cor dos espelhamentos.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcPIVYwr9I/AAAAAAAAAN8/dObbXcM4QfU/s1600/figura-05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="492" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcPIVYwr9I/AAAAAAAAAN8/dObbXcM4QfU/s640/figura-05.png" width="640" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;Resultado obtido com a mudança de cor.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;2-Múltiplos materiais em um objeto&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Você pode precisar colocar mais de um material em um objeto, para isto usaremos um cubo como exemplo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Este processo é um pouco chato, mas vamos la! &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Vá no painel &lt;b&gt;Editing&lt;/b&gt;(tecla &lt;b&gt;F9&lt;/b&gt;), na janela &lt;b&gt;Link and Materials&lt;/b&gt;. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcPzvZ0egI/AAAAAAAAAOE/P0w-w8FxjEw/s1600/figura-06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcPzvZ0egI/AAAAAAAAAOE/P0w-w8FxjEw/s320/figura-06.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;Os materiais para múltiplos objetos são selecionados aqui.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;Entre no modo edit(&lt;b&gt;TAB&lt;/b&gt;), selecione somente uma face, clique em &lt;b&gt;New&lt;/b&gt;, note que o seletor de cores incrementou um númeno, por exemplo,&lt;b&gt; 2 Mat 2&lt;/b&gt;, significa que ele criou outro material.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcQcpzxw7I/AAAAAAAAAOM/lDi3tybWVMI/s1600/figura-07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="243" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcQcpzxw7I/AAAAAAAAAOM/lDi3tybWVMI/s640/figura-07.png" width="640" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;Na caixa de cor, troque a cor por outra e depois clique em &lt;b&gt;Assign&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;3-Espelhamento e Sombreamento (Shaders&lt;/b&gt;):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Na janela &lt;b&gt;Shading&lt;/b&gt; em Material &lt;b&gt;Buttons-Shaders&lt;/b&gt;, encontramos mais opções relativas a materiais, são os algoritmos de materiais, como Reflexão (&lt;b&gt;Ref&lt;/b&gt;) e Specula(&lt;b&gt;Spec&lt;/b&gt;), teste todos e veja os resultados.Espelhamento e Sombreamento (Shaders):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Na janela Shading em Material Buttons-Shaders, encontramos mais opções relativas a materiais, são os algoritmos de materiais, como Reflexão (&lt;b&gt;Ref&lt;/b&gt;) e Specula(&lt;b&gt;Spec&lt;/b&gt;), teste todos e veja os resultados. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcRJ63QNXI/AAAAAAAAAOU/CRCgdESyvpI/s1600/figura-08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcRJ63QNXI/AAAAAAAAAOU/CRCgdESyvpI/s400/figura-08.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;A parte de cima é para reflexo e a de baixa para especular.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;4-Aplicando Texturas por mapeamento UV nos objetos&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Essa é uma parte muito importante para o desenvolvimento de um game, pois consiste em dar uma roupagem para os objetos, isto é: Temos um gramado, mas para que possamos identificar melhor, não basta a cor e sim uma imagem de grama, o que dará mais realismo ao jogo. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;*Observação: Mas dependendo da proposta do game não há necessidade de texturas, elas apenas torna o ambiente mais próximo do real.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Primeiramente separe uma imagem do tipo grama ou outra qualquer em seu computador para o exercício.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TIcRoONATKI/AAAAAAAAAOc/Ftt3qGGrTZA/s1600/figura-09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TIcRoONATKI/AAAAAAAAAOc/Ftt3qGGrTZA/s320/figura-09.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Agora vamos preparar o as janelas do blender para trabalharmos com Texturas.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;No blender temos a possibilidade de criar subdivisões de janelas para facilitar a visualização simultânea de vários itens.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcSgQoJLSI/AAAAAAAAAOk/DE_9DxSAsWg/s1600/figura-10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="476" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcSgQoJLSI/AAAAAAAAAOk/DE_9DxSAsWg/s640/figura-10.png" width="640" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Escolha Split Area, ajusta o local da divisão e clique com o botão esquerdo do mouse pra confirmar.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcTEC5-FmI/AAAAAAAAAOs/vq_YFCrXp04/s1600/figura-11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcTEC5-FmI/AAAAAAAAAOs/vq_YFCrXp04/s640/figura-11.png" width="640" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Agora clique em &lt;b&gt;Display Current Window&lt;/b&gt; e escolha a opção &lt;b&gt;UV/Image Editor&lt;/b&gt;, pronto já temos nossa janela para texturas.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Para colar uma imagem no objeto precisamos preparar o mesma para tal, nas versões 2.45 e anteriores é necessário usar um modo chamado&lt;b&gt; UV/Face&lt;/b&gt; pela tecla F, que já não é mais utilizado, nas versões posteriores é usado o modo edit(edição-&lt;b&gt;TAB&lt;/b&gt;) para a seleção de das faces, que irão receber a texturas.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;O procedimento a seguir é o mesmo para os dois modos. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;No modo &lt;b&gt;edit&lt;/b&gt; selecione as faces que irão receber a texturas e tecle &lt;b&gt;U&lt;/b&gt; e no menu escolha a opção &lt;b&gt;Unwrap&lt;/b&gt;. Isso fara com que as faces fiquem disponíveis para o mapeamento &lt;b&gt;UV/texture&lt;/b&gt;, que é visualizado na janela &lt;b&gt;UV/image Edit&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcTqzhIKRI/AAAAAAAAAO0/ckwL9fn4h5w/s1600/figura-12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcTqzhIKRI/AAAAAAAAAO0/ckwL9fn4h5w/s640/figura-12.png" width="640" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Após o &lt;b&gt;Unwrap&lt;/b&gt;, vamos buscas nossa imagem que sera usada. Clique me &lt;b&gt;Image-&amp;gt;Open&lt;/b&gt; e navegue no browser para selecionar sua imagem.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Uma coisa que é um pouco ruim é a interface do navegador de arquivos, para aqueles que não estão acostumados pode ser um pouco difícil no inicio, mas é só ter um pouco de curiosidade que você consegue. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Após a seleção da imagem tecle &lt;b&gt;TAB&lt;/b&gt; para sair do modo edição e mude o modo &lt;b&gt;Solid&lt;/b&gt; para &lt;b&gt;Textured&lt;/b&gt; em &lt;b&gt;Draw&lt;/b&gt; &lt;b&gt;Type&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcUIH0-hOI/AAAAAAAAAO8/BZg0lY8V7pg/s1600/figura-13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcUIH0-hOI/AAAAAAAAAO8/BZg0lY8V7pg/s640/figura-13.png" width="640" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Sair do modo Edição&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ir para o modo Textura&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Bibliografias&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Guia do usuário para uso do Blender 3d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;de Bruno Maia de Andrade&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-2440383781451325720?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/2440383781451325720/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2010/09/editando-materiais-e-texturas-para-bge.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/2440383781451325720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/2440383781451325720'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2010/09/editando-materiais-e-texturas-para-bge.html' title='Editando Materiais e Texturas para BGE'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcLBcce8kI/AAAAAAAAANU/0tivMCkEIg0/s72-c/chanada' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-6316595447126775259</id><published>2010-09-07T20:43:00.000-07:00</published><updated>2010-09-07T20:43:55.859-07:00</updated><title type='text'>Classes em PYTHON</title><content type='html'>Este é um pequeno artigo que fiz para mostrar a linguagem PYTHON e uso de classes para os colegas do curso de Tecnólogo em Sistemas para Internet - (Faculdade Atlântico Sul - Rio Grande-RS - Anhaguera).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcC-uWoHBI/AAAAAAAAAME/zyuwX5ZVm7k/s1600/Classes+em+Python.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcC-uWoHBI/AAAAAAAAAME/zyuwX5ZVm7k/s640/Classes+em+Python.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcDxN4yBdI/AAAAAAAAAMU/CgmO0-gyThc/s1600/Classes+em+Python-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcDxN4yBdI/AAAAAAAAAMU/CgmO0-gyThc/s640/Classes+em+Python-2.png" width="640" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TIcD_IukMHI/AAAAAAAAAMc/rYQ0L0tjRU4/s1600/Classes+em+Python-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TIcD_IukMHI/AAAAAAAAAMc/rYQ0L0tjRU4/s640/Classes+em+Python-3.png" width="640" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcEQPzhbgI/AAAAAAAAAMk/YYlhs9_L-Ow/s1600/Classes+em+Python-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcEQPzhbgI/AAAAAAAAAMk/YYlhs9_L-Ow/s640/Classes+em+Python-4.png" width="640" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcEie_QUkI/AAAAAAAAAMs/BHouH8Mfvqs/s1600/Classes+em+Python%3D5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcEie_QUkI/AAAAAAAAAMs/BHouH8Mfvqs/s640/Classes+em+Python%3D5.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcFClJLo5I/AAAAAAAAAM0/mDJWpQsZOMg/s1600/Classes+em+Python-6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcFClJLo5I/AAAAAAAAAM0/mDJWpQsZOMg/s640/Classes+em+Python-6.png" width="640" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcFVIdisDI/AAAAAAAAAM8/LkktzBWpb-Q/s1600/Classes+em+Python-7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcFVIdisDI/AAAAAAAAAM8/LkktzBWpb-Q/s640/Classes+em+Python-7.png" width="640" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcFwz_knoI/AAAAAAAAANE/I5u1p6O8OUw/s1600/Classes+em+Python-8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TIcFwz_knoI/AAAAAAAAANE/I5u1p6O8OUw/s640/Classes+em+Python-8.png" width="640" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcF2Pi1uZI/AAAAAAAAANM/GMDYWWZgc3g/s1600/Classes+em+Python-9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TIcF2Pi1uZI/AAAAAAAAANM/GMDYWWZgc3g/s640/Classes+em+Python-9.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;Como falei no início este é uma breve apresentação sobre PYTHON, mas pode servir de motivação para aqueles que não conhecem a linguagem ainda.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-6316595447126775259?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/6316595447126775259/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2010/09/classes-em-python.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/6316595447126775259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/6316595447126775259'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2010/09/classes-em-python.html' title='Classes em PYTHON'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qHh7MoHJw-o/TIcC-uWoHBI/AAAAAAAAAME/zyuwX5ZVm7k/s72-c/Classes+em+Python.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-2649302067065148893</id><published>2010-07-12T14:55:00.000-07:00</published><updated>2010-07-12T14:55:39.866-07:00</updated><title type='text'>Tutorial Animação Bones(ossos) para BGE</title><content type='html'>Este tutorial tem a finalidade de desenvolver técnicas de animação para a Game Engine do Blender, mas pode ser utilizado também para produção de animações em vídeo, necessita conhecimento básico do Blender 3d. Vamos ao tutorial e bons estudos!&lt;br /&gt;Esse tipo de animação é muito utilizado em personagens, pois se assemelha muito ao mundo real, por usar um corpo movimentado por ossos.&lt;br /&gt;Vamos criar um corpo para se animado, tanto para renderização quanto para utilização na BGE. Mude a visualização para a visão lateral, tecle num3.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TDqXgvd2A-I/AAAAAAAAAJ8/gXT8BpKW1Ts/s1600/Fig-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TDqXgvd2A-I/AAAAAAAAAJ8/gXT8BpKW1Ts/s320/Fig-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;Vá para o modo de edição e crie duas extrusões uma para a direita e outra para a esquerda como na imagem acima. Saia do modo de edição, vá para o modo objeto e adicione um objeto do tipo Armature.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDqYCgLJO7I/AAAAAAAAAKE/9KSUZF_0LN8/s1600/Fig-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDqYCgLJO7I/AAAAAAAAAKE/9KSUZF_0LN8/s320/Fig-2.png" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TDqYE9R95AI/AAAAAAAAAKM/R_DGMumR8I4/s1600/Fig-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TDqYE9R95AI/AAAAAAAAAKM/R_DGMumR8I4/s320/Fig-3.png" /&gt;&lt;/a&gt;&lt;/div&gt;Coloque em modo edição e selecione os nós para movê-los na na posição conforme a figura abaixo:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDqY5_D4I2I/AAAAAAAAAKU/pa-38r9K76c/s1600/Fig-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDqY5_D4I2I/AAAAAAAAAKU/pa-38r9K76c/s320/Fig-4.png" /&gt;&lt;/a&gt;&lt;/div&gt;Esse objeto se comporta como um osso, com isso podemos montar um esqueleto, suas pontas são as articulações, assim como utilizamos a ferramenta de extrusão para criar novas faces e vértices, podemos criar novas articulações e ossos. Selecione um nó e &lt;b&gt;tecle E&lt;/b&gt; de extrusão. Veja a figura abaixo:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TDqZeaSrRTI/AAAAAAAAAKc/MBH_-4XXJMU/s1600/Fig-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TDqZeaSrRTI/AAAAAAAAAKc/MBH_-4XXJMU/s320/Fig-5.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Agora vamos lincar o corpo com os ossos, saia do modo edição e selecione o cubo, logo após selecione o objeto armature, pressione &lt;b&gt;ctrl+p&lt;/b&gt; e escolha a opção &lt;b&gt;Make Parente To&lt;/b&gt; → &lt;b&gt;Armature e Create From Bone Heat.&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qHh7MoHJw-o/TDqbYfZXKRI/AAAAAAAAAKk/d2DCRP9dN0s/s1600/Fig-6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/TDqbYfZXKRI/AAAAAAAAAKk/d2DCRP9dN0s/s320/Fig-6.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TDqbdmTcpII/AAAAAAAAAKs/G1pQQuQT_po/s1600/Fig-7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TDqbdmTcpII/AAAAAAAAAKs/G1pQQuQT_po/s320/Fig-7.png" /&gt;&lt;/a&gt;&lt;/div&gt;Mude agora para o modo pose, conforme a figura acima. Nesse modo podemos testar e manipular os ossos e influenciando a malha, será aqui que também faremos a animação. Selecione um nó e&lt;b&gt; tecle G&lt;/b&gt; para mover, veja o resultado, a malha acompanha o osso.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDqbyea-PvI/AAAAAAAAAK0/FD0b9PSCtgs/s1600/Fig-8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDqbyea-PvI/AAAAAAAAAK0/FD0b9PSCtgs/s320/Fig-8.png" /&gt;&lt;/a&gt;&lt;/div&gt;Crie outros objetos e experimente para ver os resultados, estenda os objetos e os ossos, lembrando que o nó do osso deve influenciar diretamente a malha. Agora vamos criar nossa animação.&lt;br /&gt;Divida a tela do &lt;b&gt;3d view&lt;/b&gt; e selecione o modo da janela para &lt;b&gt;Action Editor&lt;/b&gt;.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TDuLbA0RsRI/AAAAAAAAAK8/H4togUIFpHQ/s1600/Fig-9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TDuLbA0RsRI/AAAAAAAAAK8/H4togUIFpHQ/s320/Fig-9.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Vamos utilizar o método de chaves para criar nossa animação, através da time line,&lt;br /&gt;coloque o osso na posição inicial desejada, no frame 1 e&lt;b&gt; tecle I&lt;/b&gt; e escolha a opção&lt;br /&gt;&lt;b&gt;LOCROT&lt;/b&gt;, com isso criamos nossa primeira chave da animação.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDuL6WqBquI/AAAAAAAAALE/T3EMzuxjt70/s1600/Fig-10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDuL6WqBquI/AAAAAAAAALE/T3EMzuxjt70/s320/Fig-10.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Próximo passo, mude o frame para 50 por exemplo, desloque um dos nós e repita o&lt;/div&gt;&lt;div&gt;processo de criar chave descrito anteriormente.&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDuMmjKo9KI/AAAAAAAAALM/1a5pMHk-tXo/s1600/Fig-11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDuMmjKo9KI/AAAAAAAAALM/1a5pMHk-tXo/s320/Fig-11.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Volte para o frame 1 e tecle&lt;b&gt; alt+a&lt;/b&gt; para rodar a animação.&lt;/div&gt;&lt;div&gt;Pronto nossa animação já esta funcionando e pronta para ser usada. Agora podemos&lt;/div&gt;&lt;div&gt;escolher se queremos usá-la para renderização ou para a game-engine do blender.&lt;/div&gt;&lt;div&gt;Para utilizar na renderização ou seja criar um vídeo, tecle &lt;b&gt;F10&lt;/b&gt; para mudar a janela&lt;/div&gt;&lt;div&gt;Buttons para o modo Scene, onde primeiramente escolheremos qual o formato de saído&lt;/div&gt;&lt;div&gt;queremos, logo após o tempo de duração e por fim a renderização.&lt;/div&gt;&lt;div&gt;-No formato de saída podemos escolher imagens do tipo jpeg ou formato vídeo em mpeg&lt;/div&gt;&lt;div&gt;dentre várias outras opções a gosto.&lt;/div&gt;&lt;div&gt;-Na duração de frames vamos colocar o início como 1 e o final como 50, já que nossa&lt;/div&gt;&lt;div&gt;animação possui este número como último frame.&lt;/div&gt;&lt;div&gt;-Para renderizar clique no botão &lt;b&gt;ANIM&lt;/b&gt; e aguarde o termino do processo e tecle &lt;b&gt;PLAY&lt;/b&gt;&lt;/div&gt;&lt;div&gt;para ver o resultado.&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDuNEX_1imI/AAAAAAAAALU/MYARlBDtZmk/s1600/Fig-12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/TDuNEX_1imI/AAAAAAAAALU/MYARlBDtZmk/s320/Fig-12.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Agora iremos controlar nossa animação para Game-Engine do Blender.&lt;/div&gt;&lt;div&gt;Para isso usaremos o bloco de lógica, no qual não vamos entrar em detalhes de&lt;/div&gt;&lt;div&gt;funcionamento e sim maior atenção ao Actuators Action que é o diferencial para que possa&lt;/div&gt;&lt;div&gt;funcionar nossa animação em um jogo. Siga os passo de montagem de acordo com a&lt;/div&gt;&lt;div&gt;imagen abaixo, tecle &lt;b&gt;F4&lt;/b&gt;, selecione o objeto Armature e adicione um sensor, um&lt;/div&gt;&lt;div&gt;controlador e um actuators ligue-os entre si.&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/TDuNVMHV64I/AAAAAAAAALc/3wTMBrA1stY/s1600/Fig-13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="55" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/TDuNVMHV64I/AAAAAAAAALc/3wTMBrA1stY/s320/Fig-13.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;No sensor ligue o botão de repetição e no Actuators mode de Motion para Action:&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TDuNlzZtV3I/AAAAAAAAALk/UFqQFA6J64c/s1600/Fig-14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TDuNlzZtV3I/AAAAAAAAALk/UFqQFA6J64c/s320/Fig-14.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Mude no &lt;b&gt;Action&lt;/b&gt; de Play para Loop End e digite em &lt;b&gt;AC&lt;/b&gt;: Action que é nossa ação criada&lt;br /&gt;na time line Editor Action, mude End: 1 para 50.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TDuNzMjgWVI/AAAAAAAAALs/nOekJBSWZak/s1600/Fig-15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TDuNzMjgWVI/AAAAAAAAALs/nOekJBSWZak/s320/Fig-15.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Feito esse processo, vamos testar nossa animação na game-engine do blender. Tecle &lt;b&gt;P&lt;/b&gt;&lt;/div&gt;&lt;div&gt;com o mouse na janela &lt;b&gt;3d View&lt;/b&gt;, assim estaremos em modo jogo e a animação deverá&lt;/div&gt;&lt;div&gt;estar rodando.&lt;/div&gt;&lt;div&gt;Um possibilidade interessante de se testar é a ação controlada da animação, experimente&lt;/div&gt;&lt;div&gt;trocar no sensor &lt;b&gt;Always&lt;/b&gt; por &lt;b&gt;Keybords&lt;/b&gt;, que é um sensor do tipo teclado, no campo &lt;b&gt;Key&lt;/b&gt;&lt;/div&gt;&lt;div&gt;clique com o botao direito do mouse e tecla barra de espaço ou outra tecla que você&lt;/div&gt;&lt;div&gt;quiser, essa tecla será o acionador da animação durante o jogo, esse recurso é muito&lt;/div&gt;&lt;div&gt;usado para animação de personagens em jogos.&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qHh7MoHJw-o/TDuOKRvDGyI/AAAAAAAAAL0/2bWCuhsscRE/s1600/Fig-16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qHh7MoHJw-o/TDuOKRvDGyI/AAAAAAAAAL0/2bWCuhsscRE/s320/Fig-16.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Espero que tenha conseguido ajudar nos princípios básicos de animação de ossos, claro&lt;/div&gt;&lt;div&gt;que existem muito mais recursos no blender para animação de ossos, mas com esse&lt;/div&gt;&lt;div&gt;tutorial você pode começar a se aventurar nessa área.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-2649302067065148893?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/2649302067065148893/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2010/07/tutorial-animacao-bonesossos-para-bge.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/2649302067065148893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/2649302067065148893'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2010/07/tutorial-animacao-bonesossos-para-bge.html' title='Tutorial Animação Bones(ossos) para BGE'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qHh7MoHJw-o/TDqXgvd2A-I/AAAAAAAAAJ8/gXT8BpKW1Ts/s72-c/Fig-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-1890911604651328448</id><published>2010-04-01T06:38:00.000-07:00</published><updated>2010-04-01T06:38:41.985-07:00</updated><title type='text'>Desenvolvendo Jogos - Game Design</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://3.bp.blogspot.com/_qHh7MoHJw-o/S7SeiYdnoNI/AAAAAAAAAIU/_9jtpDOfDdk/s1600/Blender+Desenvolvimento.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/S7SeiYdnoNI/AAAAAAAAAIU/_9jtpDOfDdk/s400/Blender+Desenvolvimento.JPG" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Começando seu projeto de Game!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Antes que se inicie os trabalhos de desenvolvimento de um jogo, deve-se passar por etapas de elaboração, as quais irão determinar o como serão os trabalhos e prazos para a criação do game.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Um bom exemplo desse processo é a criação de um filme, como os de hollywood, onde é impossível para uma só pessoa fazer esse trabalho, mas divide-se em equipes especializadas nas diversas áreas.Durante muito tempo desenvolvi meus projetos sozinho, mas como o passar do tempo e com o aprimoramento das técnicas ficou praticamente impossível faze-lo sozinho assim criei um grupo para que possamos juntos poder desenvolver nossos projetos com o máximo de qualidade possível, para isso dividi o grupo em áreas de produção as quais vou tentar descrever logo abaixo.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Aqui vão algumas idéias básicas de como vamos fazer esse trabalho:&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;P&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;RODUÇÃO&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;- Pré-produção:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Consiste em um processo chamado BRAINSTORMINGS, como o nome sugere, é onde a equipe se reuni para &amp;nbsp;debates sobre o projeto, onde surge ideias e conceitos para o projeto.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;- Produção:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;É a parte em que o se coloca a ''mão na massa'', onde a equipe trabalha e desenvolve o projeto.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;- Pós-produção:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;São realizados&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt; melhorias e correções de Bugs, conteúdo adicional para download e patches.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Áreas de desenvolvimento&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Como comentado no início do texto, aqui você terá uma ideia de qual área você se identifica e poderá escolher para trabalhar no desenvolvimento do jogo.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Gráfico&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Envolve-se com todo o visual do jogo e é subdividido em algumas sub-áreas.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- Conceito Visual: é basicamente a guia para todos os trabalhos de gráficos, definindo estilos, cores, traços e criação de storeboards.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- Criação de Texturas e shaders: trabalha com a criação de imagens para o jogo, como ambiente, aparência dos objetos e personagens, inclui também iluminação do cenário.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Modelagem 3D&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Cria os objetos de um jogo em 3d ou pseudo 3d, necessários para o jogo, como personagens, inimigos etc... A Modelagem 3D para jogos requer o usa de uma técnica chamada de Lowpoly, que quer dizer poucos polígonos para um objeto 3d, para que haja um desempenho maior por parte da CPU. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Animação&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Tem como objetivo dar vida aos objetos e personagens do jogo, usando movimentos que imitem a realidade ou movimentos estilizados, para aqueles que acham que é brincadeira dar vida a esses objetos, não se engane existem muito material para estudo nessa área e exige muita dedicação, mas o resultado é prático e prazeroso.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Temática e Historia&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Envolve criar uma história para o jogo e coloca-lo em um ambiente, uma boa história ajuda muito para que o game se torne mais emocionante. Também tem a questão da continuidade e desenvolvimento das fases.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Interface e jogabilidade&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;É fundamental para um bom fluxo do jogo, verifica-se onde ficam os botões do menu e de que maneira o jogador deve interagir com o personagem ou com o jogo, não tem nada pior que um jogo com combinações de botões ruins ou pressionar milhares de vezes os botões sem necessidade.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Efeitos sonoros e trilha sonora&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Um jogo sem sons e música não tem a mesma emoção, então esta parte ajuda muito a trazer emoções para jogo, mas deve-se ter em mente o público alvo para não errar na receita de sons e prejudicar o game, uma música ruim ou um som muito repetitivo devem ser evitados a todo custo.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Lógica e programação&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;É o que traz a vida ao jogo, sem essa etapa não há interação. O programador deve ter em mente que a lógica vem em primeiro lugar, desenvolver a lógica é importante para o bom desenvolvimento dos scripts. Jogos exigem muito tempo de desenvolvimento, mesmo jogos considerados simples, ou casuais tem sempre um alto índice de complexidade, exigindo do programador vastos conhecimentos em estruturas-computacionais.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Bem pessoal, acho que consegui resumir como é o processo de criação de jogos, independente de que plataforma seja, os processos são os mesmo, claro há muito mais coisas para se ver mas esse é um ponto de partida.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-1890911604651328448?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/1890911604651328448/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2010/04/desenvolvendo-jogos-game-design.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/1890911604651328448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/1890911604651328448'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2010/04/desenvolvendo-jogos-game-design.html' title='Desenvolvendo Jogos - Game Design'/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qHh7MoHJw-o/S7SeiYdnoNI/AAAAAAAAAIU/_9jtpDOfDdk/s72-c/Blender+Desenvolvimento.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5740393479595741817.post-3616559116509828058</id><published>2009-06-23T10:14:00.000-07:00</published><updated>2009-06-23T10:55:04.525-07:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qHh7MoHJw-o/SkEWMNuAIoI/AAAAAAAAAHU/daI8DAWAxSc/s1600-h/python.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 113px; height: 99px;" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/SkEWMNuAIoI/AAAAAAAAAHU/daI8DAWAxSc/s320/python.jpeg" alt="" id="BLOGGER_PHOTO_ID_5350582231389708930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qHh7MoHJw-o/SkEWMOCz1sI/AAAAAAAAAHM/GDwhLxyJPb0/s1600-h/python-logo-master-v3-tm-flattened.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 108px;" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/SkEWMOCz1sI/AAAAAAAAAHM/GDwhLxyJPb0/s320/python-logo-master-v3-tm-flattened.jpg" alt="" id="BLOGGER_PHOTO_ID_5350582231476983490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;Tutorial de Python Script na Game Engine do Blender&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Pré-Requisitos&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Conhecimento em:&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Game Engine do Blender, bem como o seu Bloco de Lógica&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Noções basicas de Python Script&lt;/span&gt;&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Esse tutorial se destina para aqueles que desejam ir além dos Blocos de Lógica da GE do Blender, para isso precisam entrar para o mundo da programação na linguagem Python. Para quem não sabe ainda, python é o script usado no blender para tanto para o ambinte do blender como para GE, onde podemos expandir em muito as possibilidades utilizando essa linguagem.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Em muitas vezes quando começamos a desenvolver um jogo na GE utilizando o bloco de lógica as coisas no princípio parecem fáceis, mas depois com o desenvolv&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;imento do projeto começa a ficar muito confuso com a grande quantidade de bloco de logica interagindo entre si, sem falar nas limitações que o próprio sistema  tem. Por exemplo se criarmos um projeto utilizando scripts Python, podemos reduzir consideravelmente a quantidade de blocos de lógica e aumentando as possibilidades de desenvolvimento do projeto.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;  &lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Controle de rotação&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Como o título acima sugere, vamos fazer um pequeno programa &lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;de controle de rotação que pode ser adaptado de várias maneiras, rotação, deslocamento, animação e etc... Mais adiante vou demonstrar como proceder para utilizar das maneiras já descritas. Vamos botar a mão na massa.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Antes de sair digitando o script vamos a alguns conceito importantes sobre como o blender usa python.&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0cm;" align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qHh7MoHJw-o/SkEPt86KNPI/AAAAAAAAAG0/tcaNf07jCGw/s1600-h/imagem.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 460px; height: 301px;" src="http://1.bp.blogspot.com/_qHh7MoHJw-o/SkEPt86KNPI/AAAAAAAAAG0/tcaNf07jCGw/s320/imagem.JPG" alt="" id="BLOGGER_PHOTO_ID_5350575114411455730" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Com o blender aberto vamos dividir a tela para podermos visualizar o modo texto onde será feito o script. Crie um novo arquivo de texto e salve-o com o nome de script por exemplo.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Primeiramente precisamos ligar o script ao objeto, para que o mesmo possa ser controlado pelo mesmo. Para isso adicione um controlador do tipo python e nomeo com o mesmo nome que foi dado ao script.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Depois ligar os sensores ao script, no nosso caso sensores de teclado.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qHh7MoHJw-o/SkEPuGtgAUI/AAAAAAAAAG8/SKHHMHmevbU/s1600-h/imagem-01.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 432px; height: 109px;" src="http://4.bp.blogspot.com/_qHh7MoHJw-o/SkEPuGtgAUI/AAAAAAAAAG8/SKHHMHmevbU/s320/imagem-01.JPG" alt="" id="BLOGGER_PHOTO_ID_5350575117042712898" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;E ligar os atuadores ao script, que irão fazer o objeto rotacionar.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Vamos ao script:&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qHh7MoHJw-o/SkEPuaPiyrI/AAAAAAAAAHE/2xIBk2T5Upw/s1600-h/imagem-02.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 374px; height: 266px;" src="http://3.bp.blogspot.com/_qHh7MoHJw-o/SkEPuaPiyrI/AAAAAAAAAHE/2xIBk2T5Upw/s320/imagem-02.JPG" alt="" id="BLOGGER_PHOTO_ID_5350575122285775538" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Para obter um controlador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;import GameLogic&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;cont = GameLogic.getCurrentController()&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Para obter o objeto associado a este controlador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;own = cont.getOwner()&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Para obter um sensor associado a este controlador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;up = cont.getSensor('up')&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;down = cont.getSensor('down')&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Para obter um atuador ligado ao controlador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;act = cont.getActuator("rot")&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Definindo valores para o atuador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;act.setDRot(0,0,+0.1,1)&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Ativando um atuador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;if up.isPositive():&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt; GameLogic.addActiveActuator(act,1)&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;elif down.isPositive():&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt; GameLogic.addActiveActuator(act,0)&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;A primeira parte do script se refere a inicialização do modulo da Game Logic, import GameLogic e a linha seguinte se refere aos controles ligados ao script, cont = GameLogic.getCurrentController() a variavel cont é apenas um nome sugerido podendo ser trocado por qualquer outro nome.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm; font-weight: bold;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;*Obs: O sinal de # serve para inserir comentários no script.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Para obter o objeto associado a este controlador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;own = cont.getOwner() se refere ao objeto e suas propriedades, por exemplo suas variáveis, own também é uma variável que pode ter seu nome alterado.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm; font-weight: bold;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;*Obs: As variáveis em python são atribuidas com o sinal de =, exemplo: raiz=5, a variável raiz recebeu o valor de 5.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Para obter um sensor associado a este controlador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;up = cont.getSensor('up')&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;down = cont.getSensor('down')&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Adicione um sensor do tipo teclado e set uma tecla por exemplo seta p/ cima.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Para ligar um sensor ao script precisamos nomealo com o mesmo nome tanto no Bloco de Logica quanto no scritp, já o nome da variável não afeta o funcionamento.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Exemplo:  up = cont.getSensor('up') ou setap/cima = cont.getSensor('up')&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Para obter um atuador ligado ao controlador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;act = cont.getActuator("rot")&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Este é responsável por ligar o actuador motion ao script, lembre-se de colocar o mesmo nome no script e no atuador do bloco de lógica.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Definindo valores para o atuador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;act.setDRot(0,0,+0.1,1)&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Aqui esta uma parte muito importante, pois é aqui que definimos o que vamos fazer com o actuador ligado ao script, neste casso escolhi o setDRot(0,0,0,0) para a variável act, mas você pode escolher setDLoc(0,0,0,0) que serve para incrementar o deslocamento do objeto. A lista de zeros indica o valor das variáveis X,Y,Z e o último se é local on = 1 ou local off = 0.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm; font-weight: bold;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;*Dica: Para que você possa utilizar todas as possibilidades que o blender lhe da é fundamental consultar a API do blender, onde se visualiza as opções em python para você desenvolver seu projeto. &lt;/span&gt; &lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;#Ativando um atuador&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;if up.isPositive():&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt; GameLogic.addActiveActuator(act,1)&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;elif down.isPositive():&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt; GameLogic.addActiveActuator(act,0)&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Aqui é a parte lógica, basicamente é o seguinte: &lt;/span&gt; &lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;se a tecla up for pressionada faça:&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;act,1 – ou seja, ativa o act&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;e se a tecla down for pressionada faça:&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;act,0 – ou seja, desliga o act&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Pronto! Agora vá para a janela do 3DView e tecle P, e teste as teclas para ver o funcionamento.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Conclusão;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Este é um ponto de partida para se compreender a forma de utilização do python na GE do blender e desenvolver seus projetos de forma mais eficiente e profissional.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Projetos feitos em python expandem em muito o poder do blender, trazendo toda uma nova game de possibilidades.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Espero que este tutorial tenha lhe sido útil. &lt;/span&gt; &lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Meu email para contato e sugestões de melhoria e tutoriais.&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="mailto:marcosamaralrg@hotmai"&gt;marcosamaralrg@hotmal.com&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5740393479595741817-3616559116509828058?l=blendertutoriais.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blendertutoriais.blogspot.com/feeds/3616559116509828058/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://blendertutoriais.blogspot.com/2009/06/tutorial-de-python-script-na-game.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/3616559116509828058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5740393479595741817/posts/default/3616559116509828058'/><link rel='alternate' type='text/html' href='http://blendertutoriais.blogspot.com/2009/06/tutorial-de-python-script-na-game.html' title=''/><author><name>Realidade Virtual</name><uri>http://www.blogger.com/profile/13539026720382055405</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_qHh7MoHJw-o/S8nKfm5UpWI/AAAAAAAAAJY/BxSZhPhGxOY/S220/eu-02.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qHh7MoHJw-o/SkEWMNuAIoI/AAAAAAAAAHU/daI8DAWAxSc/s72-c/python.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
