关键帧之间的旋转

时间:2015-02-20 06:20:05

标签: python interpolation blender keyframe

我需要在第1帧开始并在第1147帧结束时围绕某个对象完全旋转相机。要自动插值,我需要使用关键帧。如何在第1帧和第1147帧插入关键帧并使用python脚本在这些关键帧之间旋转相机?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

围绕对象旋转相机的简单方法是在与注意对象相同的位置添加空白,将相机添加到空白,使用轨道约束以保持相机指向对象然后旋转空。

这可以在python中完成 -

import bpy
import math

scene = bpy.context.scene
cam = scene.camera

bpy.ops.object.empty_add()
target = bpy.context.active_object
target.name = 'focus point'
target.location = bpy.data.objects['focusObj'].location
cam.parent = target

tc = cam.constraints.new(type='TRACK_TO')
tc.target = target
tc.up_axis = 'UP_Y'
tc.track_axis = 'TRACK_NEGATIVE_Z'

scene.frame_current = 1
target.rotation_euler = (0,0,0)
target.keyframe_insert(data_path="rotation_euler")
scene.frame_current = 1147
target.rotation_euler = (0,0,math.radians(360))
target.keyframe_insert(data_path="rotation_euler")

for fc in target.animation_data.action.fcurves:
    fc.extrapolation = 'LINEAR'
    for kp in fc.keyframe_points:
        kp.interpolation = 'LINEAR'

您需要调整名称“focusObj”。

通过将插值设置为线性,您将获得恒定的旋转速度,而不是在开始和结束时的轻松进出。将外推设置为线性意味着它将继续无限旋转。