Q100109:如何为自定义表达式求值创建附加参数表达式函数

关注

概括

本文对参数表达式以及如何通过自定义函数示例向其中添加自定义对象进行了一些说明。

更多信息

参数表达式仅支持Python 表达式,而不支持完整的 Python 脚本。

它们类似于 lambda 的主体或变量赋值的右侧。您不能使用普通的 if/else 块或循环,但可以使用三元运算符和列表推导式。

您可以注册自定义对象,然后可以在参数表达式中使用这些对象。下面的示例展示了如何注册自定义函数并在参数表达式中使用它:

Python选项卡中,定义并注册您的函数,如下所示:

def triple(value):
  return value * 3

NodegraphAPI.SetExpressionGlobalValue("triple", triple)


然后从参数表达式中,您可以像这样使用该函数:

triple(5) + 1


那么参数的值将是 16。需要注意的重要一点是您的表达式必须计算某个值而不是返回某个值。

参数表达式的目的是以编程方式计算参数的值。作为评估的一部分,参数表达式不应对您的项目进行任何修改。

如果您需要驱动许多参数的值,请考虑使用 Shelf 脚本或脚本按钮,您可以在我们的Katana用户指南中有关Shelf Item Scripts、 UserParametersWidget Types的章节中找到更多信息。

    我们很遗憾听到

    请告诉我们