Q100443: Katana 脚本和编程入门

关注

概括

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

更多信息

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

PYTHON

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

有关使用 Python 编写脚本的Katana用户指南以及以下详细介绍不同 Python 工作流程的文章中描述了更多示例

Python - 性能考虑因素

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

在参数表达式的上下文中,对于引用节点或参数的简单表达式,可以使用 Python 表达式的更快替代方案。它们称为引用表达式,您可以在Katana开发人员指南中找到有关这些的更多信息。

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

路亚

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

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

在某些情况下,建议实现自定义 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:如何编写和测试您的第一个自定义 Op

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

Q100351:如何从 C++ Op 内部查询系统图状态数据

延伸阅读

请参阅Katana用户指南和开发人员指南,以获取每种语言的指南和进一步参考:

Python

卢阿

C++

    我们很遗憾听到

    请告诉我们