如何创建全局运动模糊参数并对其进行全局控制?

2024-04-29 15:29:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Foundry Nuke UI中创建一个全局参数来控制运动模糊值和快门角度。在

如何使用Python实现这一点?在

感谢任何帮助。在


Tags: ui参数foundry全局角度nuke
1条回答
网友
1楼 · 发布于 2024-04-29 15:29:12

我发现了在Nuke中全局控制MotionBlur的简单而有效的方法——只需使用常用的NoOp节点作为控制器,以及LinkerScript。下面是它在实践中的工作原理。为测试创建三个Transform节点(每个转换节点包含motionblurshutter和{}旋钮)。在

在NUKE的脚本编辑器中内部运行链接脚本,或者通过menu.py文件在外部运行。然后选择所有的Transform节点,并从NUKE的工具栏中选择:GizmosNoOp Controls Linker。这就是全部。现在您可以通过NoOp控制器为所有Transform节点全局控制MotionBlur(现在通过表达式链接motionblur和{}属性)。在

这是我的链接脚本

import nuke

controller = nuke.nodes.NoOp() 
# There are two identical parameters in parentheses : 
# the 1st one is a real property's name, and the 2nd one is a label for GUI.
knobMB = nuke.Double_Knob('motionblur', 'motionblur')
knobSH = nuke.Double_Knob('shutter', 'shutter')
controller.addKnob(knobMB)
controller.addKnob(knobSH)

def linkNoOpControls():
    for everyNode in nuke.selectedNodes():
        everyNode['motionblur'].setExpression('NoOp1.motionblur')
        everyNode['shutter'].setExpression('NoOp1.shutter')

toolbar = nuke.menu("Nodes")
gizmos = toolbar.addMenu("Gizmos", icon='LinkerIcon.png')
gizmos.addCommand("NoOp Controls Linker", 'linkNoOpControls()')

您应该为工具栏中的新命令加载一个24x24 pixelsPNG图标文件。在

enter image description hereenter image description here

注意:别忘了把你的PNG图标文件放到一个隐藏的.nuke目录中(如果你使用Mac,正如你所说,它的路径是–/Users/<userName>/.nuke),并相应地调整你的menu.py文件(粘贴必要的Python代码)。在

有关详细信息,请阅读Nuke Directory Locations文章。在

希望这有帮助。在

相关问题 更多 >