|
Imagem Ilustrativa |
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.
A função makeScreenshot() é muito simples de ser usado é só 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.
|
Imagem geral do template |
Vamos para a lógica do template:
-Criamos um script python que irá fazer o processo de salvar a imagem de preferência ligado na câmera.
-Associamos um sensor do tipo keyboard(teclado) que irá disparar a função de salvar a imagem.
-Criar uma variável no Add Property que será o nosso contador de fotos.
|
Painel de Logica da BGE |
Tirando várias fotos:
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...
Script Python
____________________________________________________________
# Feito por Marcos Amaral (racom)
# em 27/01/2011
import Rasterizer
#MODULO RESPOSAVEL PELA RENDERIZAÇÃO
import GameLogic
as g
#MODULO DA BGE
cont = g.getCurrentController()
#PARA OBTER OS CONTROLADORES, ACTUADORES E SENSORES
obj = cont.owner
#PROPRIETARIO DOS CONTROLADORES
key = cont.sensors['
key']
#OBTEM O SENSOR DE TECLADO
arquivo='imagem'+str(obj['
contador'])
#CRIA O NOME DO ARQUIVO
# SALVA screenshot
if key.positive:
Rasterizer.makeScreenshot(arquivo)
#FUNCAO QUE SALVA A IMAGEM
obj['
contador'] +=
1 #SOMA MAIS UM AO CONTADOR
____________________________________________________________
Download do template:
screenshot.blend
É isso ai, espero que tenho gostado, em breve mais tutoriais sobre BGE.
Até mais! \o