如何用Python为Blender中特定几何节点添加关键帧
给Blender几何节点内的特定节点添加关键帧
你之前的代码是针对几何节点Modifier的外部输入参数,但要给节点组内部的节点属性加关键帧,得先定位到节点组里的目标节点,再操作它的属性。
核心操作步骤
- 获取带几何节点Modifier的目标物体
- 提取该Modifier关联的节点组
- 在节点组中按名称找到目标节点(比如"Sound to Sample")
- 定位节点的目标属性(比如Value输入)
- 设置属性值并插入关键帧
代码示例
以给"Cube"物体上几何节点内的"Sound to Sample"节点的Value属性在第1帧添加关键帧为例:
# 获取目标物体 obj = bpy.data.objects["Cube"] # 获取几何节点Modifier geo_mod = obj.modifiers.get("GeometryNodes") if geo_mod and geo_mod.node_group: # 获取节点组 node_group = geo_mod.node_group # 按名称查找目标节点 target_node = node_group.nodes.get("Sound to Sample") if target_node: # 设置属性值 target_node.inputs["Value"].default_value = 2 # 插入关键帧,注意data_path的写法 target_node.keyframe_insert(data_path='inputs["Value"].default_value', frame=1) else: print("未找到名为'Sound to Sample'的节点") else: print("未找到有效的GeometryNodes Modifier或关联节点组")
关键注意点
- 节点名称、属性名称必须和Blender界面里的完全一致,大小写、空格都不能错
- 如果是旧版的"Bake to F-Curve"节点,现在可能已更名(比如"Sample Curve"),同样按实际节点名称查找即可
- 若要操作节点的输出属性或其他参数,调整
data_path即可,比如outputs["Result"].default_value
内容的提问来源于stack exchange,提问作者Deniz Böttcher
相关产品推荐
相关产品推荐

