Katana Plugins

Katana provides APIs for creating plugins of various types, but the most commonly-needed plugins are:

Katana ships with an Alembic plugin, and so it should be immediately useful. Please see the Katana documentation on how to write custom plugins. Katana also ships with some example plugins for asset management, etc. Many studios use common geometry formats, but many also have their own geometry cache formats that will require Op or ScenegraphGenerator plugins to be written for Katana, or else switch to Alembic to take advantage of the standard.

The PrimitiveCreate node can also generate various types of geometry that you can use to get started. If you want to have some fun, let Katana set up an interesting one for you by going to the python tab, and type exactly "i want a pony" without the quotes into the bottom text entry, select the text and hit ctrl+enter. Try it, as it will help you get familiar with the PrimitiveCreate node.

KtoA Provided Nodes

KtoA comes with additional nodes and ops that help create common scene setups

All of these operations can be done with Opscript, AttributeSet and other Katana nodes to create volumes and renderer procedurals manually, but the user must carefully craft these locations to get the attributes set properly.  It is usually much easier and less error-prone to use KtoA's provided nodes.  For more information on the attributes that KtoA recognizes, please see Katana Location Extensions for extensive details.  Note that KtoA recognizes nearly all of the standard Katana parameters and attributes, so the Katana documentation (online help, Appendix G) applies equally to KtoA as it does to the rest of Katana.

KtoA Ops

Note that for each KtoA node, there is an associated python file and a DSO/DLL that implements the actual Op to get the bulk of the work done.  By examining the python files, users can see how to create their own opscript that uses the KtoA Ops directly rather than be restricted to the interface provided by the KtoA node.  As an example, one user wanted to pre-create locations and tag them with an attribute that, when found by his opscript, would generate XGen procedurals as children locations. The existing ArnoldXGen node was too limiting, but he made use of the ArnoldXGenOp directly to do the heavy lifting of creating the renderer procedural locations properly for use with XGen.