Blender Italia forums Coding Script, addon e temi integrazione Blender-Matlab Re:integrazione Blender-Matlab

cocci
Membro
  • Blenderista
  • Post sul Forum 11
@cocci
#208516

Allora, grazie al vostro aiuto sto iniziando a capire come funziona il GE.

Sono riuscito a settare il Logic Editor come suggerito da {Genesis}, ma quando premo P non succede nulla. Se invece eseguo il file con il tasto Run Script la nave si muove.

Ora mi chiedo: lo script per poter essere eseguito dal GE deve avere qualche import o qualcosa di particolare?

Vi metto qui lo script in modo da verificare meglio se sto sbagliando qualcosa (nello script si muovono due oggetti… ma nn credo che questo faccia alcuna differenza):

Code:
import bpy
obj1=[bpy.data.objects.get(“nave1”)] #oggetto da animare
obj2=[bpy.data.objects.get(“nave2”)] #oggetto da animare
file_componenti = open(“matlab.txt”,”r”)
i=file_componenti.readline() #legge una riga di file
f=0
# Recupero la scena
scene=bpy.context.scene
while(i):
scene.frame_set(f) #setta il frame
LocRot=list(map(float,i.split())) #separa i dati della rotazionbe e li converte in float
# Settaggio posizioni oggetto 1
obj1[0].location.x = LocRot[0] #Posizione x
obj1[0].location.y = LocRot[1] #Posizione y
obj1[0].location.z = LocRot[2] #Posizione z
# Si settano gli angoli di Eulero oggetto 1
obj1[0].rotation_euler[0]=LocRot[3] #controllare se gli assi calcolati sono coincidenti
obj1[0].rotation_euler[1]=LocRot[4]
obj1[0].rotation_euler[2]=LocRot[5]
# Settaggio posizioni oggetto 2
obj2[0].location.x = LocRot[6] #Posizione x
obj2[0].location.y = LocRot[7] #Posizione y
obj2[0].location.z = LocRot[8] #Posizione z
# Si settano gli angoli di Eulero oggetto 2
obj2[0].rotation_euler[0]=LocRot[9] #controllare se gli assi calcolati sono coincidenti
obj2[0].rotation_euler[1]=LocRot[10]
obj2[0].rotation_euler[2]=LocRot[11]

bpy.data.objects[“nave1”].select=True
bpy.data.objects[“nave2”].select=True
# imposta il keyframe
bpy.ops.anim.keyframe_insert_menu(type='Location', confirm_success=False, always_prompt=False)
bpy.ops.object.select_all(action='TOGGLE') #deseleziona l`oggetto
i=file_componenti.readline()
f=f+1 # avanza di un frame