How to move a camera in Blender 2.61 with Python

guerda picture guerda · Jan 14, 2012 · Viewed 19.2k times · Source

I'm searching for a simple script to move a camera in Blender 2.61 with Python. I thought this would be an easy task, but the Camera object has no properties like loc or something similar.

I only found scripts online for Blender 2.49 but they don't work anymore because of the immense API changes with Blender 2.5.

I would appreciate any hints.

Answer

roho picture roho · May 18, 2012

furtelwart's answer was quite usefull. I did some more digging so you can also set some other very usefull properties regarding the camera and render.

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

I'm using this script to make batch rendering. You can check it out here: http://code.google.com/p/encuadro/source/browse/renders/marker/model/marker_a4.py

It will be improved later to take command line arguments. I'm new to python and blender so this may be kind of amateur but it works.