2024-09-27 07:32:38 发布
网友
我想要的是一种处理mixRGB节点中“factor”值的方法,就像一个普通对象,比如一个立方体,还有fcurves、fmodifiers等等。 所有这些都是通过文本编辑器中的Python代码实现的
第一步是找到所需的mix节点。在材质中,可以按名称访问每个节点,而第一个mixRGB节点名为“Mix”,后面的Mix节点将在名称中添加一个数字扩展名。用户也可以手动更改名称(或python脚本)。通过显示属性区域(按N),可以在节点属性中看到活动节点的名称。在
要调整fac值,可以更改fac输入的default_value。要设置混合因子的关键帧,请告诉fac输入插入一个data_path为default_value的关键帧
default_value
data_path
import bpy cur_frame = bpy.context.scene.frame_current mat_nodes = bpy.data.materials['Material'].node_tree.nodes mix_factor = mat_nodes['Mix.002'].inputs['Fac'] mix_factor.default_value = 0.5 mix_factor.keyframe_insert('default_value', frame=cur_frame)
当然,您可以为关键帧指定任何帧编号,而不仅仅是当前帧。在
如果有多个混合节点,可以循环这些节点并将每个混合着色器添加到列表中
然后可以在它们上循环并根据需要设置关键帧。在
for m in mix_nodes: m.inputs['Fac'].default_value = 0.5 m.inputs['Fac'].keyframe_insert('default_value', frame=cur_frame)
在添加fcurve之后找到它们对于节点来说是很困难的。当您告诉输入套接字插入一个关键帧时,fcurve存储在节点树中,因此在keyframe_insert()之后,您可以使用
keyframe_insert()
bpy.data.materials['Material'].node_tree.animation_data.action.fcurves.find()
知道要搜索的数据路径可能很棘手,因为节点Mix.002的Fac输入的数据路径是nodes["Mix.002"].inputs[0].default_value
Mix.002
nodes["Mix.002"].inputs[0].default_value
如果要在添加fcurve以调整值或添加修改器后查找fcurve,则很可能会发现在添加关键帧时更容易保留它们的列表。在keyframe_insert()之后,新的fcurve应该在
material.node_tree.animation_data.action.fcurves[-1]
第一步是找到所需的mix节点。在材质中,可以按名称访问每个节点,而第一个mixRGB节点名为“Mix”,后面的Mix节点将在名称中添加一个数字扩展名。用户也可以手动更改名称(或python脚本)。通过显示属性区域(按N),可以在节点属性中看到活动节点的名称。在
要调整fac值,可以更改fac输入的
default_value
。要设置混合因子的关键帧,请告诉fac输入插入一个data_path
为default_value
的关键帧当然,您可以为关键帧指定任何帧编号,而不仅仅是当前帧。在
如果有多个混合节点,可以循环这些节点并将每个混合着色器添加到列表中
^{pr2}$然后可以在它们上循环并根据需要设置关键帧。在
在添加fcurve之后找到它们对于节点来说是很困难的。当您告诉输入套接字插入一个关键帧时,fcurve存储在节点树中,因此在
keyframe_insert()
之后,您可以使用知道要搜索的数据路径可能很棘手,因为节点
Mix.002
的Fac输入的数据路径是nodes["Mix.002"].inputs[0].default_value
如果要在添加fcurve以调整值或添加修改器后查找fcurve,则很可能会发现在添加关键帧时更容易保留它们的列表。在
keyframe_insert()
之后,新的fcurve应该在相关问题 更多 >
编程相关推荐