创建支持服务单
关注

Q100443:Katana中的脚本和编程

摘要

Katana支持三种语言,用于向应用程序添加自定义代码:Python,Lua和C ++。本文概述了如何开始使用Katana中的脚本和编程以及每种语言最适合的任务。

更多信息

Katana中的每种可用语言都有自己的优势,因此它取决于最适合的具体用例。

蟒蛇

Python广泛用于快速应用程序开发,特别是在API的上下文中,允许用户自定义应用程序,例如在处理项目 使用节点 自定义节点类型 自定义用户界面 基于Python的参数表达式时

有关Python脚本的Katana在线帮助和以下文章中描述了更多示例,这些文章详细介绍了不同的Python工作流程

PYTHON - 表现考虑因素

在需要更快性能的地方,Python并不总是理想的选择(部分原因在于可怕的GIL )。

在参数表达式的上下文中,对于引用节点或参数的简单表达式,可以使用更快的Python表达式替代方法。这称为参考表达式 ,请参阅Katana开发人员指南的链接以获取更多信息。

以前版本的Katana在通过所谓的Katana ProcessManager运行基于Python的AttributeScripts和资产插件时遇到了稳定性问题。

虽然在Katana 2.5版本中改进了ProcessManager的稳定性(参见Katana 2.5v1发行说明中的TP 128448 ),但Python的性能尤其是在场景评估的背景下是有问题的。

Lua提供了更好的性能,使其成为使用OpScript 节点进行场景图处理操作的首选脚本语言

LUA

Lua在Katana的OpScript节点中使用。使用OpScript / Lua可以访问Op API,它比Python更快,更强大。特别是,OpScript节点允许您修改场景图层次结构,例如删除位置,创建新的子位置以及设置和编辑属性。

Lua代表了在场景图上开发操作的快速开发周转时间之间的合理平衡(也用于原型化更复杂的操作,计划稍后将作为Op类型实现),以及作为烹饪场景的一部分的快速执行时间和稳定性。

在某些情况下,建议使用自定义Op类型插件而不是使用OpScript / Lua。这是否有利取决于手头的实际用例:项目及其资产的复杂程度,要执行的操作数量,要定位的场景图形位置的数量。建议在Ops / C ++中处理FX数据,如粒子模拟,而不是OpScript / Lua。

有关使用OpScript和Op API的介绍,请参阅Katana的“ 帮助” >“ 示例项目” 菜单中的OpScript教程

有关Op API的更多信息,请参阅Katana在线帮助以及Katana开发人员指南

您可能还对以下文章感兴趣:

C ++

当性能至关重要时,例如在处理大型数据集时,可以将Lua OpScript移植到C ++ Op类型插件。

有关该接口的文档,请参阅Katana开发人员指南 ,并参考以下位置中Katana源代码附带的示例“HelloWorld”Op: $ KATANA_ROOT / plugins / Src / Ops / HelloWorld

可以在此处找到构建说明: $ KATANA_ROOT / plugins / Src / README.md

有关编译示例Op的更多提示和说明,请参阅以下文章: Q100326:编写和测试自定义Ops

您可能还对以下内容感兴趣:

Q100351:在C ++ Op中查询当前帧(和其他系统图形状态)

进一步阅读

有关每种语言的指南和进一步参考,请参阅Katana在线帮助和开发人员指南:

蟒蛇

LUA

C ++

这篇文章有帮助吗?
/

We're sorry to hear that!

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

评论