Q100443: Katana 脚本和编程入门

概括

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

更多信息

Katana中每种可用的语言都有其自身的优势,因此哪种语言最适合取决于具体的使用场景。

Python

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

为了帮助您快速上手Katana中的 Python 脚本编写,我们整理了关键领域,并提供了深入探讨各种 Python 工作流程的文章。此外,您还可以在Katana用户指南中找到更多Python 脚本编写示例。

Python脚本编写和用户界面基础知识

本类别介绍Katana中 Python 脚本编写的基础知识,使您能够自动化工作流程并使用 Python 编写参数表达式。您将学习如何利用Katana的 API 进行工具开发,请阅读以下相关文章了解更多信息:

使用标签页和用户界面自定义

您可以自定义Katana界面,优化工作空间。通过创建自定义标签页,您可以更好地组织工具并改进工作流程。您还可以创建新的工具架和 UI 元素,以便更快地访问Katana中最常用的功能,从而使您的使用体验更加符合您的需求。

您可以通过以下文章了解更多关于此类工作流程的信息:

使用节点进行脚本编写

节点是Katana工作流程的核心。使用 Python,您可以创建和修改节点、控制输入输出端口,并以编程方式调整节点参数。这使您可以灵活地自定义工作流程,以满足您的需求。

您可以通过以下链接找到相关文章:

场景和项目自动化

为了优化Katana中的场景和项目,您可以探索多种选项。一种方法是自动执行某些任务,使其在启动时运行。您可能还希望调整某些全局设置以满足您的特定需求。您甚至可以设置要渲染的多个帧,或者通过在场景图中查询属性来更好地控制场景。有很多方法可以让Katana更符合您的需求。

您可以通过以下链接找到更多文章:

Python - 性能考量

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

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

Lua 具有更好的性能,因此是使用OpScript节点进行场景图处理操作的首选脚本语言。

卢阿

Katana中,OpScript 节点使用 Lua 语言。通过 OpScript/Lua,可以访问Op API ,其速度更快、功能更强大,远胜于 Python。具体来说,OpScript 节点允许您修改场景图层级结构,例如删除位置、创建新的子位置以及设置和编辑属性。

Lua 在快速开发场景图操作的周转时间(也可用于原型设计计划稍后作为操作类型实现的更复杂的操作)和快速执行时间以及场景烹饪过程中的稳定性之间取得了合理的平衡。

在某些情况下,最好实现自定义的 Op 类型插件,而不是使用 OpScript/Lua。这样做是否有优势取决于具体的使用场景:项目及其资源的复杂性、需要执行的操作数量以及需要定位的场景图位置数量。建议使用 Ops/C++ 处理粒子模拟等特效数据,而不是使用 OpScript/Lua。

要了解如何使用 OpScript 和 Op API,请查看Katana“帮助” > “示例项目”菜单中的 OpScript 教程。

有关 Op API 的更多信息,请参阅Katana用户指南Katana开发人员指南

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

C++

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

请参阅Katana开发者指南以获取接口文档,并参考Katana源代码中位于以下位置的示例“HelloWorld”操作: $KATANA_ROOT/plugins/Src/Ops/HelloWorld

构建说明请参见此处: $KATANA_ROOT/plugins/Src/README.md

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

您可能还对以下内容感兴趣: Q100351:如何从 C++ 操作内部查询系统图状态数据以响应时间相关值

延伸阅读

请参阅Katana用户指南和开发者指南,以获取每种语言的指南和更多参考资料:

Python

露亚

C++

    我们很遗憾听到

    请告诉我们