Domanda

Sto cercando un semplice script per spostare una fotocamera in Blender 2.61 con Python. Ho pensato che sarebbe stato un compito facile, ma l'oggetto della fotocamera non ha proprietà come LOC o qualcosa di simile.

Ho trovato solo script online per Blender 2.49 ma non funzionano più a causa degli immensi cambiamenti dell'API con Blender 2.5.

Apprezzerei qualsiasi suggerimento.

È stato utile?

Soluzione 2

UN Utente amichevole su Reddit mi ha indicato una soluzione corretta: il trucco è recuperare la fotocamera come un Object, non come a Camera. In questo modo, è possibile impostare la posizione tramite il modo standard e impostare i frame chiave.

Se vuoi impostare Camera oggetti specifici, devi recuperarlo tramite bpy.data.cameras.

import bpy

if(len(bpy.data.cameras) == 1):
    obj = bpy.data.objects['Camera'] # bpy.types.Camera
    obj.location.x = 0.0
    obj.location.y = -10.0
    obj.location.z = 10.0
    obj.keyframe_insert(data_path="location", frame=10.0)
    obj.location.x = 10.0
    obj.location.y = 0.0
    obj.location.z = 5.0
    obj.keyframe_insert(data_path="location", frame=20.0)

Altri suggerimenti

La risposta di Furtelwart è stata abbastanza utile. Ho fatto un po 'più di scavo in modo da poter anche impostare alcune altre proprietà molto utili per quanto riguarda la fotocamera e il rendering.

import bpy

tx = 0.0
ty = 0.0
tz = 80.0

rx = 0.0
ry = 0.0
rz = 0.0

fov = 50.0

pi = 3.14159265

scene = bpy.data.scenes["Scene"]

# Set render resolution
scene.render.resolution_x = 480
scene.render.resolution_y = 359

# Set camera fov in degrees
scene.camera.data.angle = fov*(pi/180.0)

# Set camera rotation in euler angles
scene.camera.rotation_mode = 'XYZ'
scene.camera.rotation_euler[0] = rx*(pi/180.0)
scene.camera.rotation_euler[1] = ry*(pi/180.0)
scene.camera.rotation_euler[2] = rz*(pi/180.0)

# Set camera translation
scene.camera.location.x = tx
scene.camera.location.y = ty
scene.camera.location.z = tz

Sto usando questo script per fare il rendering batch. Puoi controllarlo qui:http://code.google.com/p/encuadro/source/browse/renders/marker/model/marker_a4.py

Sarà migliorato in seguito per prendere gli argomenti della riga di comando. Sono nuovo in Python e Blender, quindi questo potrebbe essere un po 'dilettante ma funziona.

Forse le piattaforme della fotocamera al fondo di questa pagina Potrebbe essere un bel punto di partenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top