【问题标题】:(Blender) (Python)How can I animate the factor value in the mix node with Python code?(Blender) (Python)如何使用 Python 代码为混合节点中的因子值设置动画?
【发布时间】:2016-07-07 01:54:01
【问题描述】:

我想要的是一种方法来处理 mixRGB 节点中的“因子”值,就像普通对象一样,例如立方体,所以使用 fcurves、fmodifiers 等等。 所有这些都通过文本编辑器中的 Python 代码实现

【问题讨论】:

    标签: python animation nodes blender


    【解决方案1】:

    第一步是找到你想要的混合节点。在材质中,您可以按名称访问每个节点,而第一个 mixRGB 节点名为“Mix”,随后的混合节点将在名称中添加数字扩展名。名称也可以由用户(或 python 脚本)手动更改。通过显示属性区域(按N)您可以在节点属性中看到活动节点的名称。

    要调整 fac 值,您可以更改 fac 输入的 default_value。要为混合因子设置关键帧,请告诉 fac 输入插入带有 data_pathdefault_value 的关键帧

    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)
    

    当然,您可以为关键帧指定任何帧编号,而不仅仅是当前帧。

    如果你有很多混合节点,你可以遍历节点并将每个混合着色器添加到一个列表中

    mix_nodes = [n for n in mat_nodes if n.type == 'MIX_RGB']
    

    然后您可以根据需要循环遍历它们和关键帧。

    for m in mix_nodes:
        m.inputs['Fac'].default_value = 0.5
        m.inputs['Fac'].keyframe_insert('default_value', frame=cur_frame)
    

    在添加后查找 fcurves 对于节点来说很尴尬。当您告诉输入套接字插入关键帧时,fcurve 存储在 node_tree 中,因此在 keyframe_insert() 之后您可以使用

    bpy.data.materials['Material'].node_tree.animation_data.action.fcurves.find()
    

    知道要搜索的数据路径可能很棘手,因为节点 Mix.002 的 Fac 输入的数据路径将是 nodes["Mix.002"].inputs[0].default_value

    如果您想在添加 fcurve 以调整值或添加修饰符后找到它,您很可能会发现在添加关键帧时保留它们的列表更容易。在keyframe_insert() 之后,新的 fcurve 应该在

    material.node_tree.animation_data.action.fcurves[-1]
    

    【讨论】:

    • 如果我想在 f 曲线中插入噪声修饰符?
    • 材料的曲线可以在fc = material.node_tree.animation_data.action.fcurves.find(...)找到,然后使用fc.modifiers.new()
    • 好的,谢谢,没注意到你回复我了,抱歉
    • 没用,当我尝试添加噪声修饰符时,它给了我一个错误。这是我的代码:tree = bpy.context.scene.node_tree fc =tree.animation_data.action.fcurves.find('default_value')
    • bpy.data.scene.node_tree 是合成节点。你想要material.node_tree.animation_data.action.fcurves - 对于节点函数曲线来说,这个发现很尴尬 - 我会把它添加到答案中。
    猜你喜欢
    • 2011-03-07
    • 1970-01-01
    • 2011-10-04
    • 2022-01-05
    • 2022-08-21
    • 2021-11-29
    • 1970-01-01
    • 2022-11-09
    • 2011-03-15
    相关资源
    最近更新 更多