Katana资源资源

Katana使用KATANA_RESOURCES环境变量,以提供在其下查找插件和其他自定义项(例如架子,选项卡和分辨率)的路径的列表。这也可以是目录列表,用冒号(如果您使用的是Linux)或分号(如果您使用的是 Windows )。这个想法是允许您建立资源位置列表。如果您是开发人员,为Katana,您需要确保它们放在正确的位置,以便正确拾取它们。

以下目录中提供了示例,如果此路径包含在示例文件中,则会加载示例。 KATANA_RESOURCES环境变量:

$ KATANA_ROOT /插件/资源/示例

添加新路径

您添加到KATANA_RESOURCES路径被搜索Katana用于插件。例如,您可以指定:

导出KATANA_RESOURCES = / home / tom / dev / katana /资源:/ tools / site / katana / Resources

然后,当您看到以下内容时Katana开始:

> katana [INFO许可证检查]:交互式许可证确定[INFO python.ResourceFiles]:附加Katana $ KATANA_RESOURCES中的资源路径:[INFO python.ResourceFiles]:/ home / tom / dev / katana / Resources [INFO python.ResourceFiles]:/ tools / site / katana / Resources

除了在“ 默认值部分,下面将详细讨论。

注意:  此变量的行为与标准Linux环境变量相同。因此,如果您希望在此目录后添加目录,并保留所有目录,则在编辑此目录时必须注意。

重要目录

您放置的路径KATANA_RESOURCES实际上并没有直接搜索到。而是有一组有意义的子目录,供程序的不同部分使用。对于Python模块,列出的“类型”是指模块的PluginRegistry列表中每个元组集的第一个值。

Args -的.args着色器的文件。

AssetPlugins -基于Python的AssetPlugin和FileSequencePlugin插件。

Gaffer* -基于Python的GafferModule插件(脚本项),扩展了Gaffer超级工具。

GenericAssign -用于定义新的基于GenericAssign的节点的模板(.xml)。

Importomatic* -基于Python的ImportomaticModule插件,这些插件构成Importomatic SuperTool的插件。

Libs -的任何已编译C ++插件Katana,适用于任何API;例如,基于C的资产插件(.so)。

Macros -将节点另存为宏Katana用户界面(.macro)。

Ops -可以任意创建和操作场景数据的C ++插件。也可以将Ops放置在Libs子文件夹中KATANA_RESOURCES。Ops已加载Katana无论它们是否放置在Libs或Ops文件夹中。

Plugins -各种Python模块,包括GafferProfile, Katana插件,RenderLocationPlugin,ViewerProxyLoader,UVTileFormats。

RenderBin -该目录实际上不是标准目录Katana目录,但是许多渲染插件使用此目录来存储二进制文件和由渲染器自身加载以与之通信的插件Katana

Resolutions -其他分辨率文件(.xml)。

Shaders -渲染器的任何其他着色器。唯一考虑此目录的时间Katana本身就是为查看器定位着色器(.glsl)。

Shelves -每个货架的目录,其中包含每个货架项目的Python脚本。

Startup -可用于配置的Python脚本Katana在启动时。唯一显式运行(带有execfile)的文件是一个名为init.py。如果您希望运行其他脚本或导入模块,则需要从那里调用它们。

SuperTools* -实现新SuperTools的Python模块。

Tabs* -实现新选项卡的Python模块(KatanaPanel),这些选项卡可以停靠在UI中的窗格中。

UIPlugins -实现特定于UI的插件的Python模块,例如AssetWidgetDelegates和Katana插入。

注意:  这些插件未加载--batch--script--shell启动模式。

ViewerManipulators -查看器的其他Python操纵器(KatanaManipulator)。

默认值

Katana无论您设置了什么,总是会在以下(内部)位置查看KATANA_RESOURCES至。$KATANA_ROOT在哪里Katana安装寿命。

$ {KATANA_ROOT} / bin / python / UI4 /资源

$ {KATANA_ROOT} /插件/资源/核心

通常,搜索顺序是通过“标准路径行为”进行的。即Katana从左到右查看目录。但是,根据所加载的插件/目录的类型,您可能会观察到一些差异。

编译插件

许多已编译的插件都是在“第一个已加载”的基础上工作的。这不是基于.so名称,但改为将名称传递给REGISTER_PLUGIN。具有相同名称的重复注册将被忽略。每个目录中的插件都由readdir迭代,因此以“文件系统顺序”加载。

如果是ViewerModifierPlugins,则映射到位置类型(基于API调用),任何位置的有效赢家是接受特定位置类型的第一个命名注册。

但是什么是“第一个”插件? 如果有多个同名注册,例如,一个本地插件(均名为“ OuModifier”)在本地构建,则您将在从左到右的路径上获得第一个。但是,当多个独立命名的注册处理相同的类型(例如“ LightModifier”和“ MyLightModifier”)时,您最终会从内部插件映射中迭代出第一个,目前它们最终是按字母顺序排序的。

蟒蛇

Python模块通常来自目录(使用__import__), 从左到右。因此,第一个在其PluginRegistry中注册特定名称的模块将获胜。在任何目录中,插件均由os.listdir,该文件将其顺序记录为任意顺序。但是,某些代码会颠倒此搜索顺序。任何带有星号(*)是从右到左的优先级。另外,由于货架机制是从左到右(非反向)搜索的,因此货架无法按预期工作。这意味着最右边的文件内容胜出。