(Python)(Blender)如何获取有标记的每个帧的数量?

时间:2016-03-16 17:37:22

标签: python blender

是否可以采用时间轴中有标记的每个帧编号,并将其设置为所选对象上f曲线的噪声修改器 r的起点? / p>

1 个答案:

答案 0 :(得分:1)

标记数据可在scene.timeline_markers

中找到

fcurve数据位于object.animation_data.action.fcurves

如果您想添加一个噪音修改器,从每个标记开始持续10帧,您可以使用 -

import bpy

# data_path='location' with an index=1 is the y location curve
fc = bpy.context.object.animation_data.action.fcurves.find('location', index=1)

for m in bpy.context.scene.timeline_markers:
    nmod = fc.modifiers.new(type='NOISE')
    nmod.strength = 1.5
    nmod.use_restricted_range = True
    nmod.frame_start = m.frame
    nmod.frame_end = m.frame + 10

请注意,此处使用的fcurves.find()仅适用于blender 2.76+,对于早期版本,您需要循环访问fcurves并测试data_path以找到所需的版本。