How do I add a camera and script it so that it moves along a path while focusing on one object? I would also like to know how to have it rotating around the origin where one of the main objects of interest sits.
$\begingroup$
$\endgroup$
3
-
1$\begingroup$ Hundreds of options, I think this is the way to go... $\endgroup$– brockmannCommented Mar 5, 2020 at 15:46
-
$\begingroup$ HI. Are you specifically wanting to do this as a script or did you just mention that because you think it's a possible solution? $\endgroup$– Ray MairlotCommented Mar 5, 2020 at 16:11
-
$\begingroup$ Yes specifically as a script. But thank you for the link anyway! $\endgroup$– JennyCommented Mar 5, 2020 at 16:29
Add a comment
|
1 Answer
$\begingroup$
$\endgroup$
Basic example using a circle based on Cegaton's setup from here.
Add the primitives and a camera. Assign each object reference to a new variable and add a Follow Path and Track To constraint using Object.constraints.new()
method. Finally set all the constraint properties, eg. assign the variables to the FollowPath.target
or set TrackTo.up_axis
to 'UP_Y'
:
import bpy
# Add Suzanne
bpy.ops.mesh.primitive_monkey_add(size=2)
suzanne = bpy.context.object
# Add Circle
bpy.ops.curve.primitive_bezier_circle_add(radius=10)
circle = bpy.context.object
# Add Camera
bpy.ops.object.camera_add(location=(0, 0, 0))
camera = bpy.context.object
# Follow Path Constraint
fp_constraint = camera.constraints.new('FOLLOW_PATH')
fp_constraint.target = circle
# Animate Button
bpy.ops.constraint.followpath_path_animate({
'constraint':camera.constraints["Follow Path"]
}, constraint='Follow Path')
# Track-To Constraint
tt_constraint = camera.constraints.new('TRACK_TO')
tt_constraint.target = suzanne
tt_constraint.up_axis = 'UP_Y'
tt_constraint.track_axis = 'TRACK_NEGATIVE_Z'