BGE

Exemplo – Script Print Screen

Postado em

Possivelmente muitos iniciantes devem ter se perguntado como tirar um print screen na bge(Blender Game Engine)? Pois bem existe uma função do modulo “bge.render” que se chama “makeScreenshot(filename)”. Essa função tira uma print da tela do jogo(via Python é claro). Para demonstrar fiz um simples exemplo, segue o link para download clicando aqui. O script checa se a pasta existe se existe ele salva a imagem da tela, do contrario ele cria a pasta e salva. O script também contem duas variáveis de configurações.


prefix = # Nome do prefixo da imagem a ser salva

folder_name = # Nome da pasta onde as imagens serão salvas

Para que o script funcione basta adicionar um sensor keyboard com a tecla que quiser e ligar o mesmo em um controlador Python em modo de ‘Modulo’ e colocar o nome do script .main exemplo “Screenshot.main”. Veja a imagem a baixo.

Logic Screenshot
Logic Screenshot

A baixo o script completo mais o link para download.

##############################################
# Script Screenshot.py
# By Walberti Evaristo
# Info https://criacoesblender.wordpress.com
# Veja os comentarios para mais configuracoes
##############################################

import bge
import os

prefix = 'Img_' # Prefixo do nome da imagem a salvar
folder_name = 'Screenshots' # Nome da pasta

def main():
	cont = bge.logic.getCurrentController()
	sensor = cont.sensors[0]

	if sensor.positive:
		local_path = bge.logic.expandPath('//')
		path = (local_path + '/' + folder_name)
		os.chdir(local_path)

		if not os.path.exists(path):
			os.makedirs(path)

		file_count = str(len(os.listdir(path)) - 1)
		bge.render.makeScreenshot('//' + folder_name + '/' + prefix + file_count + '.png')

Download

Anúncios

Caracteres Especiais – BGE

Postado em Atualizado em

 Até um tempo atras não era possível exibir textos com caracteres especiais usando o modulo BLF. Mas a gora se você usar a codificação # -*- coding: latin-1 -*- isso sera possível. Para demostar isso fiz um pequeno exemplo para baixar clique aqui.

GLParticles – Particle System BGE

Postado em Atualizado em

Esses dias estive brincando um pouco com partículas na BGE(Blender Game Engine), e acabei criando um modulo capaz de criar partículas em tempo real usando o modulo bgl. Por enquanto só é possível mudar a posição da emissão partículas de cor sólida, tamanho, tamanho randômico. Mas logo implementarei métodos para mudar acor a direção que emitira as partículas etc… Para testar uma versão simples clique aqui.

Simples Fogo
Simples Fogo
Simples Fogo
Simples Fogo
Simples Fumaça
Simples Fumaça

Grade na BGE com o módulo BGL

Postado em Atualizado em

Há diferentes métodos de se criar uma grade na BGE. O mais comum é usar um plano com textura de grade. Mais hoje vou mostrar como fazer uma grade de verdade com o OpenGL integrado da BGE. Bem vamos lá, a baixo temos o script que cria a grade.

################################################
# Script Grid.py
# By Walberti Evaristo
# Info https://criacoesblender.wordpress.com
################################################

import bge
import bgl

# As seguintes variaveis devem ser alteradas para atender melhor as
#nesicidades do usuario

Size = 20 # Tamanho da grade
LineWidth = 1 # Largura da linha
LineSmooth = False # Remove o serrilhado da linha
ShowAxis = True # Mostrar eixos ou nao
Color = [0.051, 0.051, 0.051, 1] # Cor da grade [Vermelho, Verde, Azul, Transparencia]

def drawGrid():
	bgl.glEnable(bgl.GL_BLEND)
	bgl.glBlendFunc(bgl.GL_SRC_ALPHA, bgl.GL_ONE_MINUS_SRC_ALPHA)
	bgl.glDisable(bgl.GL_LIGHTING)

	if LineSmooth:
		bgl.glEnable(bgl.GL_LINE_SMOOTH)

	bgl.glLineWidth(LineWidth)
	bgl.glPushMatrix()

	bgl.glBegin(bgl.GL_LINES)

	for Index in range(-Size, Size + 1):
		bgl.glColor4f(Color[0], Color[1], Color[2], Color[3])

		if ShowAxis:
			if Index == int(Size - Size):
				bgl.glColor4f(1, 0, 0, 1)

		bgl.glVertex3f(Size, Index, 0)
		bgl.glVertex3f(-Size, Index, 0)

		if ShowAxis:
			if Index == int(Size - Size):
				bgl.glColor4f(0, 1, 0, 1)

		bgl.glVertex3f(Index, Size, 0)
		bgl.glVertex3f(Index, -Size, 0)

	bgl.glEnd()

	bgl.glPopMatrix()
	bgl.glEnable(bgl.GL_LIGHTING)
	bgl.glLineWidth(1)
	bgl.glDisable(bgl.GL_LINE_SMOOTH)

def main():
	Scene = bge.logic.getCurrentScene()
	Scene.post_draw.append(drawGrid)

main()

Para que o script funcione basta ligar um sensor “Always” em um controlador “Python” como na imagem a baixo.

Logíca
Logica

Vejam a imagem de como fica a grade.

Grid
Grid

O script tem as seguintes variáveis “Size, LineWidth, LineSmooth, ShowAxis, Color que são as configurações da grade, basta ler os comentários no script. Aqui

Non-Game Engine Physics in Blender

Postado em Atualizado em

Já pensou em quanto estiver editando um cenário e ao mesmo tempo na 3D View os objetos caiem, rolem, esbarem um ao outro repelindo o mesmo? Pois isso e possível com um Add-On que usa a física ODE na 3D View sem rodar ou executar(P) o motor de jogos do Blender (BGE). Você pode conferir a matéria completa clicando a  aqui.

Blender Logo Tipo
Blender Logo Tipo
ODE
ODE

 

 

 

 

 

Fonte: Blender Nation

Estudo de animação baseado em fisica

Postado em Atualizado em

Vejá o link para a matéria completa em Blender Nation.com.

Fonte: Blender Nation

Simulação de Fluidos na BGE – Atualização

Postado em

Ian Johnson está desenvolvendo um sistema de simulação de fluidos na BGE, com a tecnologia OpenCL. Duas semanas a trás ele postou uma atualização. Agora é possível canalizar as partículas, também atualizou a colisão etc…  Esta cada vez mais perto de ser implementado esse sistema na BGE. Vejam o vídeo a baixo.