Python 关键帧之间的旋转

Python 关键帧之间的旋转,python,interpolation,blender,keyframe,Python,Interpolation,Blender,Keyframe,我需要围绕某个对象完全旋转相机,从第1帧开始,到第1147帧结束。要自动插值,我需要使用关键帧。如何在第1帧和第1147帧处插入关键帧,并使用python脚本在这些关键帧之间旋转摄影机?任何帮助都将不胜感激。围绕对象旋转摄影机的简单方法是在与关注对象相同的位置添加一个空镜头,将摄影机设置为空镜头的父对象,使用“轨迹到”约束使摄影机指向对象,然后旋转空镜头 这可以在python中完成,如下所示- import bpy import math scene = bpy.context.scene c

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

围绕对象旋转摄影机的简单方法是在与关注对象相同的位置添加一个空镜头,将摄影机设置为空镜头的父对象,使用“轨迹到”约束使摄影机指向对象,然后旋转空镜头

这可以在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”

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