AINB: Difference between revisions

3,095 bytes added ,  10 months ago
added child node info
mNo edit summary
(added child node info)
Line 946: Line 946:
|Unknown Connection Type Base Index (Unused ''TotK'')
|Unknown Connection Type Base Index (Unused ''TotK'')
|}
|}
// TODO: finish
If the node has any child nodes, the section header is followed by an array of u32 offsets to each of the child node entries. For most nodes, each entry is eight bytes.
{| class="wikitable"
|+Child Node Entry
!Offset
!Size
!Type
!Description
|-
|0x00
|0x04
|u32
|Child Node Index
|-
|0x04
|0x04
|u32
|Value
|}
The interpretation of the value depends on the connection type. For input or output connections, the value is a string offset to the parameter name. For standard connections, the value is a string offset to the connection name. For resident update connections, the value is an index into the resident update array. Certain node/connection types will also extend the entry length. Selector-type nodes excluding <code>Element_BoolSelector</code> and <code>Element_F32Selector</code> will have an extra four bytes which stores the condition for to link to the child node. For <code>Element_S32Selector</code>, this is an immediate value. For <code>Element_RandomSelector</code>, this is a weight and for <code>Element_StringSelector</code> it is a u32 string offset. The condition for  <code>Element_BoolSelector</code> is the entry's value string. <code>Element_F32Selector</code> adds 24 bytes to each entry, consisting of four eight-byte sub-entries.
{| class="wikitable"
|+<code>Element_F32Selector Condition Entry</code>
!Offset
!Size
!Type
!Description
|-
|0x00
|0x04
|u32
|Local Blackboard Parameter Index and Flags
|-
|0x04
|0x04
|float
|Condition Value
|}
The first two bytes of the four bytes at offset 0x00 are the local blackboard parameter index while the last bit is whether or not the index is used or not. The first entry for <code>Element_F32Selector</code> is the minimum value condition while the second entry is the maximum value condition. The last two entries appear to be unused. The last child node entry for Selector-type nodes is the default case. The condition for this case is either a string offset to the string その他 ("Other") or 0 (in the case of <code>Element_S32Selector</code>). Input nodes that are Selector-type nodes also appear to have an additional eight bytes (purpose unknown). <code>Element_Expression</code> have an additional eight bytes per input node (16 bytes in the case of vector3f entries). The purpose of these bytes is unknown.
 
==== Attachment Parameters ====
 
==== Immediate Parameters ====
 
==== Input/Output Parameters ====
 
==== Multi-Parameters ====
 
==== Resident Update Array ====
 
==== 0x50 Section ====
 
==== Precondition Nodes Array ====
 
==== Expression Binary Section ====
The '''EXB''' ('''Ex'''pression '''B'''inary) section is a completely self-contained section that stores custom instructions for a simple command processor. These instructions are grouped into functions that can be called by nodes to perform calculations.
 
 
'''Embedded AINB Files'''
 
 
'''Entry Strings'''
 
 
'''Child Replacement Table'''
 
 
'''0x6C Section'''
 
 
'''Enum Resolve Array'''
 
 
'''String Pool'''
 
The string pool is an array of null-terminated strings encoded with UTF-8. All string offsets in the file are relative to the first byte of this section.
[[Category:File formats]]
[[Category:File formats]]
28

edits