Bem-Vindo, Visitante
Nome de usuário: Senha:
Python

TÓPICO: Como fazer parar instanciar OBJ no blender?

Como fazer parar instanciar OBJ no blender? 07 Mai 2016 17:13 #150181

  • rafag
  • Avatar de rafag
  • Offline
  • Solid
  • Postagens: 22
  • Obrigados Recebidos: 2
  • Karma: 1
salve galera to querendo criar alguns scripts aqui em python, e gostaria de pedir a ajuda de vocês por exemplo eu quero instanciar a câmera da minha cena para usar no pytnho script EG:

cam = blender.scena.camera

e dps poder fazer por EG: cam.locatiin(x=0, y=0, z=0)

isso foi um exemplo hipotetico

não que a GE do blender seja ruim e que eu ja sei um pouco de python e e acho mais fácil programando e ao mesmo tempo VC pode implementar algo mais que bge não forneça
agradeço a ajuda de vcs!
O administrador desabilitou o acesso público de escrita.

Como fazer parar instanciar OBJ no blender? 07 Mai 2016 17:22 #150182

  • rafag
  • Avatar de rafag
  • Offline
  • Solid
  • Postagens: 22
  • Obrigados Recebidos: 2
  • Karma: 1
Em um olhar mais tecnico quais as principais classes da bge para se trabalhar com scripts nos meus projetos em python?
O administrador desabilitou o acesso público de escrita.

Como fazer parar instanciar OBJ no blender? 07 Mai 2016 19:03 #150183

  • Zariel
  • Avatar de Zariel
  • Offline
  • Textured
  • Postagens: 140
  • Obrigados Recebidos: 28
  • Karma: 2
você pode fazer assim:
cam = logic.getCurrentScene().active_camera

ou:
cam = bpy.data.objects['Camera']

Depois Chame:

cam.location = (0, 0, 0)


Falow!!!
"Todo conhecimento existente, ainda seria tolice perante sua imaginação!"

Destemidos episódio 1
Destemidos episódio 2 - Trailer
O administrador desabilitou o acesso público de escrita.
Os seguintes usuários disseram Obrigado: rafag

Como fazer parar instanciar OBJ no blender? 07 Mai 2016 20:25 #150184

  • rafag
  • Avatar de rafag
  • Offline
  • Solid
  • Postagens: 22
  • Obrigados Recebidos: 2
  • Karma: 1
eu copiei e colei no editor de texto mas parece que nao funcionou

import bge

cam = logic.getCurrentScene().active_camera
cam = bpy.data.objects
cam.location = (0, 0, 0)

saida do log >> Falha de script python, observe o console neste momento ...
O administrador desabilitou o acesso público de escrita.

Como fazer parar instanciar OBJ no blender? 07 Mai 2016 21:46 #150185

  • Zariel
  • Avatar de Zariel
  • Offline
  • Textured
  • Postagens: 140
  • Obrigados Recebidos: 28
  • Karma: 2
rafag escreveu:
eu copiei e colei no editor de texto mas parece que nao funcionou

import bge

cam = logic.getCurrentScene().active_camera
cam = bpy.data.objects
cam.location = (0, 0, 0)

saida do log >> Falha de script python, observe o console neste momento ...

Você deve usar 1 ou outro exemplo que postei, e deve vincular a câmera algum sensor e controlador, e claro pra ter efeito deve completar o script.

Por exemplo, o código abaixo de mouselook,serve pra controlar a câmera e ali mostra como instanciar objetos e usalos no Blender:

Salve esse script no editor de texto, depois clique na câmera, e no logicbricks, vincule esse script a câmera, usando um sensor mouse conectado a um controle tipo script...não esqueça de parentear(Control+p) a camera a algum objeto, por exemplo um cubo...procure posicionar a camera na frente desse objeto, no estilo 1º pessoa (Observe os comentários no script)

Edit: Não esqueça de adicionar um plano como se fosse um chão, e no cubo lá em Physics escolha Character e depois marque a opção Actor

'''
name: Mouse Look Script
author: Diego Rangel Trindade
version : 0.1
 
'''
 
#### VARIAVEIS DE CONFIGURACAO #########################
# Sensibilidade horizontal do movimento
SENSIBILIDADE_HORI = 0.01   
# Sensibilidade vertical do movimento
SENSIBILIDADE_VERT = 0.5
# Angulo minimo do movimento vertical
MIN_VERT           = 0.0
# Angulo maximo do movimento vertical
MAX_VERT           = 180.0
 
### SCRIPT MOUSE LOCK ##################################
import bge
import math
 
# Definindo variaveis e objetos importantes
cont = bge.logic.getCurrentController() # Controlador que executou o script
cam = cont.owner # Objeto dono do script (a camera)
obj = cam.parent # Objeto ao qual a camera esta parenteada (o personagem)
mouse = cont.sensors["Mouse"] # Buscando o sensor do tipo mouse com o mesmo nome
mouseX = mouse.position[0] # Posicao do ponteiro do mouse no eixo X
mouseY = mouse.position[1] # Posicao do ponteiro do mouse no eixo Y
mediumX = int(bge.render.getWindowWidth()/2) # Centro da tela no eixo X
mediumY = int(bge.render.getWindowHeight()/2) # Centro da tela no eixo Y
 
# Rotacionando na Horizontal
if (mediumX < mouseX):
    obj.applyRotation([0.0, 0.0, -SENSIBILIDADE_HORI], False)
if (mediumX > mouseX):
    obj.applyRotation([0.0, 0.0, SENSIBILIDADE_HORI], False)
 
#Rotacionando na Vertical
if not('vertical' in bge.logic.globalDict):
    bge.logic.globalDict['vertical'] = 90
vertical = bge.logic.globalDict['vertical']
if (mediumY < mouseY) and (vertical > MIN_VERT):
    vertical = vertical - SENSIBILIDADE_VERT
if (mediumY > mouseY) and (vertical < MAX_VERT):
    vertical = vertical + SENSIBILIDADE_VERT
 
# Aplicando as novas configuracoes    
bge.logic.globalDict['vertical'] = vertical
cam.localOrientation = [math.radians(bge.logic.globalDict['vertical']),0,0]
bge.render.setMousePosition(mediumX, mediumY)

Falow!!!
"Todo conhecimento existente, ainda seria tolice perante sua imaginação!"

Destemidos episódio 1
Destemidos episódio 2 - Trailer
Última Edição: 07 Mai 2016 23:45 por Zariel.
O administrador desabilitou o acesso público de escrita.
Os seguintes usuários disseram Obrigado: rafag

Como fazer parar instanciar OBJ no blender? 08 Mai 2016 00:53 #150186

  • rafag
  • Avatar de rafag
  • Offline
  • Solid
  • Postagens: 22
  • Obrigados Recebidos: 2
  • Karma: 1
draa parece ate ser java hehe, testei aqui e funcionou o seu script mas ...
o que eu quero saber mesmo e quais os modulos que a bge usa se e bge blg bps etc se e que vc me entende .
O administrador desabilitou o acesso público de escrita.

Como fazer parar instanciar OBJ no blender? 08 Mai 2016 14:38 #150188

  • Zariel
  • Avatar de Zariel
  • Offline
  • Textured
  • Postagens: 140
  • Obrigados Recebidos: 28
  • Karma: 2
Se entendi, você deseja saber as classes e funções que a bge oferece

Aqui nesses links, existe bastante documentação sobre isso:

www.blender.org/api/blender_python_api_2_65_9/bge.types.html
www.blender.org/api/blender_python_api_2_65_9/bge.logic.html

Nesse link um exemplo de customização de classe

mogurijin.wordpress.com/2010/07/03/custo...classes-for-the-bge/

E aqui nessa playlist de um Youtuber, apesar de inglês é bem fácil entender como trabalhar com os objetos da BGE

www.youtube.com/playlist?list=PLv9tyGDTQ...8x8e2jbFnThIa_3-8Z68

E você também pode checar os próprios templates que vem com o Blender, escolhendo na opção "templates" do editor de texto

manipular objetos via Python na bge é muito mais fácil do que em outras linguagens voltado a games

Falow!!!
"Todo conhecimento existente, ainda seria tolice perante sua imaginação!"

Destemidos episódio 1
Destemidos episódio 2 - Trailer
O administrador desabilitou o acesso público de escrita.
Tempo para a criação da página:0.073 segundos