创建支持服务单
关注

Q100439:在启动时修改全局图形状态变量

摘要
使用全局图形状态变量集启动Katana预定义了有关Katana项目上下文的可访问信息,然后可以通过节点图或自定义工具访问这些信息。同样,艺术家可以设置预定义的变量,例如显示文件路径或项目文件夹。本文将指导在Katana初创公司上修改Katana项目的全局图形状态变量的步骤。

有关Graph State Varia bles的信息, 请查看我们的Katana 用户指南:图形状态变量

该方法涉及使用Katana启动脚本和回调协同工作来设置图形状态变量。


更多信息
Katana启动脚本是位于Startup文件夹中名为“init.py”的文件,位于 KATANA_RESOURCES环境变量中 定义的路径下 。或者,您可以使用放置在$ HOME目录的“.katana”文件夹中的“init.py”文件形式的启动脚本。 “init.py”中的Python代码将在Katana启动时运行。

以下是如何通过Python设置全局Graph State变量的示例,例如在Katana的GUI中的Python选项卡中运行它:

 def AddGlobalGraphStateVariable(name,options): 
variablesGroup = NodegraphAPI.GetRootNode()。getParameter('variables')
variableParam = variablesGroup.createChildGroup(name)
variableParam.createChildNumber('enable',1)
variableParam.createChildString('value',options [0])
optionsParam = variableParam.createChildStringArray('options',len(options))
对于optionParam,zip中的optionValue(optionsParam.getChildren(),options):
optionParam.setValue(optionValue,0)
return variableParam.getName()

但是,当试图 直接通过“init.py”脚本 设置全局图形状态变量时,很快就会发现对图形状态变量的更改不成立。

为了在项目上设置图形状态变量,需要加载该项目(包括在启动新的Katana会话时加载的新的空白项目)以访问根节点,其中全局图形状态变量与其他项目设置。启动脚本在项目加载到Katana会话之前运行。因此,“init.py”无法直接访问全局状态变量。

要解决此问题,启动脚本中需要回调。回调是添加到Katana环境的一段Python代码,当Katana中发生各种事件(例如创建节点或加载脚本)时,它会自动运行。在这种情况下,我们需要设置onStartupCompleteonSceneLoad回调来运行一个在启动或项目加载后立即设置全局图形状态变量的函数。有关回调的详细信息,请参阅知识库文章Q100385:Katana中的回调和事件处理程序

以下是生成的示例“init.py”,它在Katana启动时设置全局图形状态变量。 (“init.py”脚本是从KATANA _RESOURCES / plugins / Src / Resources / Examples / Startup 文件夹提供的示例脚本中借用的):

 来自Katana导入回调
导入日志记录

def onStartupComplete(** kwargs):
log = logging.getLogger(“启动示例”)
导入NodegraphAPI
name =“变量名称”
options =('选项1','选项2','选项3')

variablesGroup = NodegraphAPI.GetRootNode()。getParameter('variables')
variableParam = variablesGroup.createChildGroup(name)
variableParam.createChildNumber('enable',1)
variableParam.createChildString('value',options [0])
optionsParam = variableParam.createChildStringArray('options',len(options))
对于optionParam,zip中的optionValue(optionsParam.getChildren(),options):
optionParam.setValue(optionValue,0)
log.info(“Katana现已完全初始化并可以使用。”)

log = logging.getLogger(“启动示例”)
log.info(“注册onStartupComplete回调......”)
Callbacks.addCallback(Callbacks.Type.onStartupComplete,onStartupComplete)

下面附带了“init.py”启动脚本示例。

如果您还有其他问题,或者在使用启动脚本设置全局图形状态变量时遇到任何问题,请打开支持服务单,告诉我们您遇到的问题以及到目前为止所采取的故障排除步骤。

有关如何打开支持服务单的更多信息,请参阅“ 使用支持门户 ”一文。

进一步阅读

附件

这篇文章有帮助吗?
/

We're sorry to hear that!

Please tell us why.
2 人中有 2 人觉得有帮助

评论