Args Files for GenericAssign¶
As a variant of Args Files, GenericAssign XML files specify attribute
conventions and typically define node types capable of editing such attributes.
GenericAssign Args Files are loaded from GenericAssign
folders within
KATANA_RESOURCES
directories.
The example below registers a logFile
attribute convention on
/root/world
, and a LogFile node type capable of editing
that attribute:
<args format="1.0" scope="/root/world" fixedCEL="/root/world">
<string name="logFile" widget="assetIdOutput"/>
</args>
The contents above can be saved to a file named
/your/plugins/GenericAssign/LogFile.xml
, and Katana launched with
KATANA_RESOURCES
set to /your/plugins
. With the file loaded,
Katana’s behaviour changes as follows:
- When
/root/world
is selected in the Scene Graph tab, the Attributes tab displayslogFile
as a default attribute. This is used purely for informational purposes in the Attributes tab, and does not affect the scene data. - A LogFile node type becomes available in the Node Graph tab’s node creation menus. LogFile nodes have one input and one output, and feature a single logFile parameter.
- When multiple LogFile nodes are chained together, a downstream
node displays the upstream value of the
logFile
attribute in its logFile parameter; this is shown alongside a state badge. This mechanism works however the upstream attribute came to be set.
Top-level <args>
Attributes¶
The following XML attributes can be specified on the top-level <args>
element, and are specific to GenericAssign Args Files:
scope
- If given, the Attributes tab shows default attributes at
locations specified by the given value of
scope
, which should be a CEL statement. fixedCEL
- If given, a GenericAssign node’s CEL parameter is not shown when
editing the node’s parameters in a Parameters tab. Instead, the
node targets locations specified by the given value of
fixedCEL
. fixedCELExpression
- As above, but the CEL statement is given as a parameter expression.
baseNodeType
- The name of a type of node to use as the base class for the
GenericAssign-based node type, e.g.
RenderSettingsBaseType
orLookFileGlobalsAssignBaseType
(for internal use only). claimExclusivity
- Whether or not the
attributeEditor.exclusiveTo
attribute is to be set by an instance of the GenericAssign-based node type. makeInteractive
- Synonym for
claimExclusivity
. nodeFlavors
- A comma-separated list of node flavors to give the node type, such as
_hide
to hide the node from the Node Graph tab’s node creation menus. createGenericAssignNodeType
- By default, for each GenericAssign XML file, a node type is registered, which
can be used to display and edit scene graph attributes as declared in the XML
document. This registration of a GenericAssign node type can be omitted by
specifying the
createGenericAssignNodeType
XML attribute with a value offalse
,no
, or0
. Note that in that case, default attributes as defined in the GenericAssign XML file are still shown in the Attributes tab for locations targeted byscope
.
Forcing Parameters to be Arrays¶
The forceArray
attribute can be used to turn number and string parameters
into number array and string array parameters, even if they contain only one
value, as shown in the following example:
<args format='1.0' scope='/root' fixedCEL='/root'>
<float name='myNumber' default='0.123'/>
<string name='myString'/>
<float name='myNumberArray' default='0.123' forceArray='True'/>
<string name='myStringArray' forceArray='True'/>
</args>