nodes

scene files and dynamic avatar files will often feature nodes chunks, which can be viewed and edited in the node editor window.

node chunks will have properties data exposed as “extra data”. these contain information on the positioning of the node in the editor, the node size, as well as to which object it belongs in the dynamic avatar editor.

the NODE chunk

provides information on a node.

length description
1+ node definition id, variable-length string
1+ saved state, variable-length string
1+ node properties, variable-length string
1+ input count = n, variable-length integer
? input entries, n entries total
1+ extra data, properties structure

input entries depend on the type of input. if a node is connected to another node chunk:

length description
1+ input slot id, variable-length string
1 byte 0
4 node chunk id

if a node is connected to some other internal output, not declared in the file:

length description
1+ input slot id, variable-length string
1 byte 1
1+ internal output id, variable-length string

internal outputs are nodes that are not included in the file but that exist in the node editor.

the actual list of node definitions (their ids, and how each serializes the properties and state strings) won’t be provided here, as we’re still actively changing it as we add new nodes and polish the node system.

the NODX chunk

provides information on a special type of node that lets the user annotate things and group other nodes together in the node editor.

length description
1+ label, variable-length string
1+ extra data, properties structure