链接通过程序创建的2个不同节点中的两个字段

我正在创建一个核武器节点,以轻松操纵节点中的不同灯光。我想对其进行编码,以便在任何给定的文件中有多少灯都无所谓,并且代码可以找出来并显示修改它们的必要工具。为此,我首先确定文件中有多少灯并存储该值,然后将其馈入“ for”循环以创建与原始文件中的灯一样多的节点和工具。 “ tempNumber”是分配给文件上原始灯光的编号,它有助于创建和管理所有工具,并标记为与它们正在修改的灯光相匹配。由于生成的节点名称看起来像这样,因此变得很复杂:

globals()['expoParent{}'.format(tempNumber)]

到目前为止,一切都工作正常,但是我一直试图尝试链接两个不同的Exposure节点以在用户修改它们时反映相同的值。为此,我在一个单独的脚本上创建了此代码:

par = nuke.nodes.EXPTool(mode = 'Stops',name = 'Parent')

chi = nuke.nodes.EXPTool(mode = 'Stops',name = 'Child')

par.knob('knobChanged').setvalue('chi["red"].setvalue(par["red"].value())\nchi["green"].setvalue(par["green"].value())\nchi["blue"].setvalue(par["blue"].value())')

上一部分代码可以正常工作,它创建2个Exposure节点,并将Child链接到Parent,这样对Parent所做的任何更改都会立即自动传递给Child。现在,当我尝试用parchi替换变量globals()['expoParent{}'.format(tempNumber)]globals()['expoChild{}'.format(tempNumber)]时,问题就来了。此时,代码停止工作,链接不成功。我读过很多人说,不应通过for循环来创建变量,但是我看不到任何其他方法。

laifubaobei 回答:链接通过程序创建的2个不同节点中的两个字段

当您仅可以将节点字段与表达式链接时,为什么要使用结节改变功能呢?

这里是一个示例,该示例链接了两个以Grade1作为父级的节点(Grade1和Grade2)。运行代码之前,您需要在脚本中包含这些内容。尽管您也可以按程序创建它们。

printf("\nCoefficient Array: \n\n");
    for (i = 0; i < (numPopulation * numCoefficient); i++)
    {
        j = i % numCoefficient;
        if (j = 0)
        {
            printf("\n");
            printf("Population %i: ",i);
            printf("%i ",population[i]);

        }

        else {
            printf("%i ",population[i]);
        }
    }

这很干净,并且也可以在节点树中直观地表示。

本文链接:https://www.f2er.com/3158081.html

大家都在问