Blender Python问题:无法删除或访问脚本设置的关键帧
解决Blender Python关键帧删除无效的问题
我可以通过Python脚本给混合颜色节点添加关键帧,动画运行正常:
# 在自定义帧"start_frame"设置混合着色器因子的值 mix_colour.inputs[0].default_value = 0 mix_colour.inputs[0].keyframe_insert(data_path='default_value', frame=float(start_frame))
但尝试删除这些关键帧时,比如用以下代码毫无效果:
mix_colour.inputs[0].keyframe_delete(data_path='default_value')
手动能选中删除,但Python脚本操作失效。
正确的关键帧删除方法
1. 指定要删除的关键帧帧号
keyframe_delete方法如果不指定frame参数,可能无法精准定位到目标关键帧,需要明确传入帧号:
# 删除指定帧上的关键帧 mix_colour.inputs[0].keyframe_delete(data_path='default_value', frame=float(start_frame))
2. 清除该属性的所有关键帧(删除整条F曲线)
如果要删除该属性上的全部关键帧,可以直接移除对应的F曲线:
# 检查节点是否有动画数据 if mix_colour.animation_data is not None and mix_colour.animation_data.action is not None: # 匹配目标属性的F曲线路径 target_path = "inputs[0].default_value" # 遍历并删除对应F曲线 for fcurve in mix_colour.animation_data.action.fcurves: if fcurve.data_path == target_path: mix_colour.animation_data.action.fcurves.remove(fcurve) break
3. 先验证动画数据完整性
操作前先确认节点的animation_data和action不为空,避免因数据缺失导致的无响应:
if not (mix_colour.animation_data and mix_colour.animation_data.action): print("该节点无动画关键帧可删除") else: # 执行删除操作 pass
内容的提问来源于stack exchange,提问作者Dave Rowe
相关产品推荐
相关产品推荐

