ASB (Animation Sequence Binary) is a file format used to store animation sequences for actors in recent Nintendo EPD games such as The Legend of Zelda: Tears of the Kingdom and Nintendo Switch Sports. This article is primarily aimed at the version that appears in Tears of the Kingdom and Mario vs Donkey Kong (v0x0417). Other ASB versions include 0x304 (Ring Fit Adventure), 0x3FB (Labo Toy-Con 04 and Game Builder Garage), 0x407 (Animal Crossing: New Horizons), 0x40F (Nintendo Switch Sports), 0x410 (Splatoon 3), 0x418 (Super Mario Bros. Wonder), and 0x41A (Nintendo Switch Online: Playtest Program). ASB files can be found in the AS folder of the romfs as well as the AS folder of certain pack files.
File Structure
ASB is a little endian format which consists of node pathways triggered by AS commands. When an AS command is called, it runs the sequence of nodes connected to it which trigger and control animations and animation logic. Nodes are arranged in an array and referenced and accessed by their array index. Despite the presence of animation events in ASB files, these events do not appear to be used by the game.
All string offsets in the file are relative to the start of the string pool and name hashes are 32-bit murmur3 hashes. There are six possible parameter types: string, int (32-bit signed integer), float (32-bit floating point number), bool, vector3f, and pointer (object pointer, this is not actually possible in ASB, only usable in AINB).
Documentation is still sparse, refer to this repository for more details (names may not match exactly).
Section Order
Version 0x417
- File Header (0x6C bytes in version 0x417, 0x68 bytes in version 0x40F)
- AS Commands
- Nodes
- Event Entry Offsets
- Node Bodies
- Sync Data Entry Indices
- Sync Data
- State Transitions
- Events (in games that use BAEV, these events are non-functional)
- Transitions
- Command Groups
- AS Blackboard Parameters
- Partials
- Bone Groups
- Calculation Result Cache
- Valid Tag List
- Tag Groups
- Expression Binary
- AS Markings
- Material Blend Settings
- Enum Resolve Table
- String Pool
Structures
Helpers
AsbString
Represents a u32 offset relative to the start of the file's string pool.
AsbPtr <T>
Represents a u32 absolute offset from the start of the file to the struct of type "T" enclosed by <>.
AsbArray <T>
Represents a u32 absolute offset from the start of the file to:
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
Count
|
| 0x4
|
|
T[Count]
|
Array of struct of type T. Note; asb files only use 32-bit aligned types.
|
File Header (0x417)
| Offset
|
Size
|
Type
|
Description
|
| 0x00
|
0x04
|
char[4]
|
Magic - "ASB "
|
| 0x04
|
0x04
|
u32
|
Version (0x0417 in Tears of the Kingdom)
|
| 0x08
|
0x04
|
u32
|
Filename Offset
|
| 0x0C
|
0x04
|
u32
|
AS Command Count
|
| 0x10
|
0x04
|
u32
|
Node Count
|
| 0x14
|
0x04
|
u32
|
Event Count
|
| 0x18
|
0x04
|
u32
|
Partial Count
|
| 0x1C
|
0x04
|
u32
|
Sync Data Entry Count
|
| 0x20
|
0x04
|
u32
|
AS Blackboard Parameters Offset
|
| 0x24
|
0x04
|
u32
|
String Pool Offset
|
| 0x28
|
0x04
|
u32
|
Enum Resolve Table Offset
|
| 0x2C
|
0x04
|
u32
|
State Transitions Offset
|
| 0x30
|
0x04
|
u32
|
Event Entries Offset Array Offset
|
| 0x34
|
0x04
|
u32
|
Partials Offset
|
| 0x38
|
0x04
|
u32
|
Sync Data Offset
|
| 0x3C
|
0x04
|
u32
|
Sync Data Indices Array Offset
|
| 0x40
|
0x04
|
u32
|
Calculation Result Cache Offset
|
| 0x44
|
0x04
|
u32
|
Calculation Result Cache Count
|
| 0x48
|
0x04
|
u32
|
Bone Groups Offset
|
| 0x4C
|
0x04
|
u32
|
Bone Group Count
|
| 0x50
|
0x04
|
u32
|
String Pool Size
|
| 0x54
|
0x04
|
u32
|
Transitions Offset
|
| 0x58
|
0x04
|
u32
|
Tag List Offset
|
| 0x5C
|
0x04
|
u32
|
String Triplets Offset
|
| 0x60
|
0x04
|
u32
|
Expression Offset (empty if section does not exist)
|
| 0x64
|
0x04
|
u32
|
Command Groups Offset (empty if section does not exist)
|
| 0x68
|
0x04
|
u32
|
Material Blend Settings Offset (version 0x417 only)
|
File Header (0x41b)
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
Magic - "ASB "
|
| 0x4
|
0x4
|
u32
|
Version - (0x41b in Nintendo Switch Online: Playtest version 021)
|
| 0x8
|
0x4
|
AsbString
|
Name Offset
|
| 0xc
|
0x4
|
u32
|
Command Count
|
| 0x10
|
0x4
|
AsbPtr<Command[Command Count]>
|
Command Array
|
| 0x14
|
0x4
|
u32
|
Element Count
|
| 0x18
|
0x4
|
AsbPtr<Element[Element Count]>
|
Element Array
|
| 0x1c
|
0x4
|
u32
|
Event Count - The pointer and count are erroneously present, but the section is not actually written in applications that support the baev file format.
|
| 0x20
|
0x4
|
AsbPtr<Event[Event Count]>
|
Event Array
|
| 0x24
|
0x4
|
u32
|
Parts Count
|
| 0x28
|
0x4
|
AsbPtr<Parts>
|
Parts Region - Pointer to start of parts region.
|
| 0x2c
|
0x4
|
AsbPtr<u32[Parts Count]>
|
Parts Index Array - Array of indices to parts
|
| 0x30
|
0x4
|
AsbPtr<Blackboard>
|
Blackboard
|
| 0x34
|
0x4
|
AsbPtr<char>
|
String Pool
|
| 0x38
|
0x4
|
u32
|
Float Property Ex Count
|
| 0x3c
|
0x4
|
AsbPtr<Float Property Ex[Float Property Ex Count]>
|
Float Property Ex Array
|
| 0x40
|
0x4
|
u32
|
Bone Blend Count
|
| 0x44
|
0x4
|
AsbPtr<Bone Blend[Bone Blend Count]>
|
Bone Blend Array
|
| 0x48
|
0x4
|
u32
|
Partial Skeleton Count
|
| 0x4c
|
0x4
|
AsbPtr<Partial Skeleton[Partial Skeleton Count]>
|
Partial Skeleton Array
|
| 0x50
|
0x4
|
u32
|
String Pool Size
|
| 0x54
|
0x4
|
AsbPtr<Transition Array>
|
Transition Array
|
| 0x58
|
0x4
|
AsbPtr<AsbArray<u32>>
|
Transition Partial Skeleton Array
|
| 0x5c
|
0x4
|
AsbPtr<AsbArray<AsbString>>
|
Tag Array
|
| 0x60
|
0x4
|
AsbPtr<AsbArray<External Action>>
|
External Action Array
|
| 0x64
|
0x4
|
AsbPtr<AsbArray<Exb>>
|
Exb
|
| 0x68
|
0x4
|
u32
|
Transition Group Array
|
| 0x6c
|
0x4
|
AsbPtr<AsbArray<Material Blend>>
|
Material Blend Array
|
Property<T>
Property types include s32 (can be an enum), bool(32-bit), float, AsbString, and Vector3f.
Property<T>
| Offset
|
Size
|
Type
|
Description
|
| 0x00
|
0x04
|
u32
|
Flags and Index
|
| 0x04
|
0x04 or 0x0C
|
T
|
Value
|
If the top bit of the flags is set, then the bottom two bytes of the flags become an index value. If it is not set, then the provided value is value of the parameter. If flags & 1 << 0x18 != 0, then the index is an expression index (EXB) and the normal value field becomes the input value for the expression. If flags & 1 << 0x1e != 0, then the index is a calculation result cache index (this stores the previously evaluated value and calculates the new value from the cached value on subsequent accesses). Note, this is only applicable if the parameter is a float. Otherwise, if flags & 1 << 0x19 != 0, then the index specifies the command data type. 0 is the current frame normalized (i.e. (current_frame - start_frame)/total_duration), 1 and 2 are random float values between 0.0 and 1.0, 3 is an unknown string value, 4 is the command's fade in frame, and 6 is an unknown float value. Note, this only applies if the parameter is a float or a string. In all other cases, the index is a blackboard index and value of the parameter is the value of the corresponding blackboard parameter. For float parameters specifically, flags >> 0x1a & 3 specifies the exact parameter source. 0 is a float blackboard parameter while 1, 2, or 3 are a vector3f blackboard parameter with 1, 2, and 3 being the x, y, and z components respectively.
Command
Defines a command that can be played by an as::Controller. The command is composed of a behavior tree of elements.
Command (0x417)
| Offset
|
Size
|
Type
|
Description
|
| 0x00
|
0x04
|
u32
|
Name Offset
|
| 0x04
|
0x04
|
u32
|
Tag Entry Offset (version 0x417+)
|
| 0x08
|
0x08
|
Property<float>
|
|
| 0x10
|
0x08
|
Property<bool>
|
Is Ignore Same Command
|
| 0x18
|
0x04
|
u32
|
Interpolation Type (uncertain, but 0 = unspecified, 1 = no model morph, 3 = enable local bone morph, 4 = enable inertial blend)
|
| 0x1C
|
0x10
|
u32
|
GUID
|
| u16
|
| u16
|
| u8[2]
|
| u8[6]
|
| 0x2C
|
0x02
|
u16
|
Child Node Index
|
| 0x2E
|
0x02
|
u16
|
|
Command (0x41b)
| Offset
|
Size
|
Type
|
Description
|
| 0x00
|
0x4
|
AsbString
|
Name
|
| 0x04
|
0x4
|
AsbPtr<AsbArray<AsbString>>
|
Tag Array
|
| 0x08
|
0x8
|
Property<float>
|
Frame Count
|
| 0x10
|
0x4
|
u32
|
Debug flag for host io?
|
| 0x14
|
0x8
|
Property<InterpolationType>
|
Default Interpolation Type
|
| 0x1c
|
0x10
|
Guid
|
Guid
|
| 0x2c
|
0x2
|
u16
|
Element Id
|
| 0x2e
|
0x2
|
u16
|
|
Interpolation Type
Enum for (known) interpolation types.
Interpolation Type
| Name
|
Value
|
Description
|
| Default
|
0
|
|
| None
|
1
|
|
| Cross Fade
|
2
|
|
| Local Bone
|
3
|
|
| Inertia Local Bone
|
4
|
|
| Parts
|
5
|
|
Element
Element (0x417)
| Offset
|
Size
|
Type
|
Description
|
| 0x00
|
0x02
|
AsbNodeType
|
Node Type
|
| 0x02
|
0x01
|
u8
|
Sync Data Count
|
| 0x03
|
0x01
|
u8
|
Does Not Have State Transition
|
| 0x04
|
0x04
|
u32
|
Tag Entry Offset
|
| 0x08
|
0x04
|
u32
|
Node Body Offset
|
| 0x0C
|
0x02
|
u16
|
Calculation Result Cache Index
|
| 0x0E
|
0x02
|
u16
|
Calculation Result Cache Count
|
| 0x10
|
0x02
|
u16
|
Sync Data Index Array Index
|
| 0x12
|
0x02
|
u16
|
AS Markings Index (-1 for index)
|
| 0x14
|
0x10
|
u32
|
GUID
|
| u16
|
| u16
|
| u8[2]
|
| u8[6]
|
Element (0x41b)
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x2
|
u16
|
Element Type
|
| 0x2
|
0x1
|
u8
|
Parts Count
|
| 0x3
|
0x1
|
u8
|
Is No State End
|
| 0x4
|
0x4
|
AsbPtr<AsbArray<AsbString>>
|
Tag Array
|
| 0x8
|
0x4
|
AsbPtr<ElementParam<Element Type>>
|
Element Param
|
| 0xc
|
0x2
|
u16
|
Float Property Ex Flags
|
| 0xe
|
0x2
|
u16
|
Float Property Ex Count
|
| 0x10
|
0x2
|
u16
|
Base Parts Index Id
|
| 0x12
|
0x2
|
u16
|
External Action Id
|
| 0x14
|
0x10
|
Guid
|
|
Element Type
Enum of element types.
Element Type
| Value (Hex)
|
Value (Dec)
|
Node Type
|
| 0x01
|
1
|
FloatSelector
|
| 0x02
|
2
|
StringSelector
|
| 0x03
|
3
|
SkeletalAnimation
|
| 0x04
|
4
|
State
|
| 0x05
|
5
|
StateEnd
|
| 0x06
|
6
|
OneDimensionalBlender
|
| 0x07
|
7
|
Sequential
|
| 0x08
|
8
|
IntSelector
|
| 0x09
|
9
|
Simultaneous
|
| 0x0A
|
10
|
Event
|
| 0x0B
|
11
|
MaterialAnimation
|
| 0x0C
|
12
|
FrameController
|
| 0x0D
|
13
|
DummyAnimation
|
| 0x0E
|
14
|
RandomSelector
|
| 0x0F
|
15
|
StateEnd
|
| 0x10
|
16
|
PreviousTagSelector
|
| 0x11
|
17
|
BonePositionSelector
|
| 0x12
|
18
|
BoneVisibilityAnimation
|
| 0x13
|
19
|
InitialFrame
|
| 0x14
|
20
|
BoneBlender
|
| 0x15
|
21
|
BoolSelector
|
| 0x16
|
22
|
Alert
|
| 0x17
|
23
|
SubtractAnimation
|
| 0x18
|
24
|
ShapeAnimation
|
| 0x19
|
25
|
|
| 0x1a
|
26
|
TwoDimensionalBlender
|
| 0x1b
|
27
|
|
ElementPlugs
The plug struct provides relative offsets to "plug" data.
ElementPlugs (0x41b)
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x1
|
u8
|
State Count
|
| 0x1
|
0x1
|
u8
|
State Base Index
|
| 0x2
|
0x1
|
u8
|
Unknown Count
|
| 0x3
|
0x1
|
u8
|
Unknown Base Index
|
| 0x4
|
0x1
|
u8
|
Child Count
|
| 0x5
|
0x1
|
u8
|
Child Base Index
|
| 0x6
|
0x1
|
u8
|
Exb Count
|
| 0x7
|
0x1
|
u8
|
Exb Base Index
|
| 0x8
|
0x1
|
u8
|
Event Count
|
| 0x9
|
0x1
|
u8
|
Event Base Index
|
| 0xa
|
0x1
|
u8
|
Frame Controller Count
|
| 0xb
|
0x1
|
u8
|
Frame Controller Base Index
|
| 0xc
|
0x4 * Frame Controller Base Index + Frame Controller Count
|
u32[]
|
Plug Data Offset Array - Offsets relative to start of plug table
|
Child Plug
Only known are listed.
Default
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
Child Element Id
|
FloatSelector, OneDimensionalBlender, BonePositionSelector Elements
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<float>
|
Min
|
| 0x8
|
0x8
|
Property<float>
|
Max
|
| 0x10
|
0x4
|
u32
|
Child Element Id
|
StringSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<AsbString>
|
Value
|
| 0x8
|
0x4
|
u32
|
Child Element Id
|
IntSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<s32>
|
Value
|
| 0x8
|
0x4
|
u32
|
Child Element Id
|
RandomSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<float>
|
Value
|
| 0x8
|
0x4
|
u32
|
Child Element Id
|
PreviousTagSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
AsbPtr<AsbArray<AsbString>>
|
Tag Array
|
| 0x8
|
0x4
|
u32
|
Child Element Id
|
Event Plug
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
Event Element Id
|
Frame Controller Plug
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
Frame Controller Element Id
|
ElementParam<Element Type>
FloatSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<float>
|
Select Value
|
| 0x8
|
0x8
|
Property<bool>
|
Is Slot Sync
|
| 0x10
|
0x4
|
u32
|
|
| 0x14
|
0xc + N
|
ElementPlugs
|
Plugs
|
StringSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<float>
|
Select Value
|
| 0x8
|
0x8
|
Property<bool>
|
Is Slot Sync
|
| 0x10
|
0x4
|
u32
|
|
| 0x14
|
0xc + N
|
ElementPlugs
|
Plugs
|
SkeletalAnimation Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<AsbString>
|
Animation Name
|
| 0x8
|
0x4
|
u32
|
|
| 0xc
|
0x4
|
u32
|
|
| 0x10
|
0x8
|
Property<bool>
|
Is Offset Frame
|
| 0x18
|
0x8
|
Property<float>
|
Frame Offset
|
| 0x20
|
0xc + N
|
ElementPlugs
|
Plugs
|
State Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0xc + N
|
ElementPlugs
|
Plugs
|
OneDimensionalBlender Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<float>
|
Selector weight
|
| 0x8
|
0x4
|
u32
|
Easing Type (1 = ease)
|
| 0xc
|
0xc + N
|
ElementPlugs
|
Plugs
|
Sequential Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<bool>
|
|
| 0x8
|
0x8
|
Property<s32>
|
|
| 0x10
|
0x8
|
Property<bool>
|
|
| 0x18
|
0xc + N
|
ElementPlugs
|
Plugs
|
IntSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<s32>
|
Select Value
|
| 0x8
|
0x8
|
Property<bool>
|
Is Slot Sync
|
| 0x10
|
0x4
|
u32
|
|
| 0x14
|
0xc + N
|
ElementPlugs
|
Plugs
|
Simultaneous Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
State End Type (0 = no children, 1 = first child state end)
|
| 0x8
|
0xc + N
|
ElementPlugs
|
Plugs
|
Event Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
|
| 0x8
|
0xc + N
|
ElementPlugs
|
Plugs
|
MaterialAnimation Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
Material Blend Id
|
| 0x4
|
0x8
|
Property<AsbString>
|
Animation Name
|
| 0xc
|
0x8
|
Property<bool>
|
|
| 0x14
|
0xc + N
|
ElementPlugs
|
Plugs
|
FrameController Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<float>
|
Play Rate
|
| 0x8
|
0x8
|
Property<float>
|
Loop Start
|
| 0x10
|
0x8
|
Property<float>
|
Loop End
|
| 0x18
|
0x4
|
u32
|
|
| 0x1c
|
0x8
|
Property<bool>
|
Is Kill Loop
|
| 0x24
|
0x8
|
Property<bool>
|
|
| 0x2c
|
0x8
|
Property<s32>
|
Frame Count
|
| 0x34
|
0x8
|
Property<s32>
|
Random Range
|
| 0x3c
|
0x8
|
Property<bool>
|
Is Local Random
|
| 0x44
|
0x8
|
Property<float>
|
Frame Offset
|
| 0x4c
|
0x8
|
Property<float>
|
Current Frame
|
| 0x54
|
0x8
|
Property<float>
|
|
| 0x5c
|
0x4
|
u32
|
|
| 0x60
|
0x8
|
Property<float>
|
|
| 0x68
|
0x8
|
Property<bool>
|
|
| 0x70
|
0x8
|
Property<bool>
|
Is Retarget Play Rate
|
| 0x78
|
0xc + N
|
ElementPlugs
|
Plugs
|
DummyAnimation Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<float>
|
Frame Count
|
| 0x8
|
0x8
|
Property<bool>
|
Is Looping
|
| 0x10
|
0xc + N
|
ElementPlugs
|
Plugs
|
RandomSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
Judge Timing
|
| 0x4
|
0x8
|
Property<bool>
|
Is Slot Sync
|
| 0xc
|
0x8
|
Property<s32>
|
|
| 0x14
|
0x8
|
Property<>
|
Unknown
|
| 0x1c
|
0x4
|
u32
|
|
| 0x20
|
0xc + N
|
ElementPlugs
|
Plugs
|
PreviousTagSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
|
| 0x4
|
0xc + N
|
ElementPlugs
|
Plugs
|
BonePositionSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<AsbString>
|
Left Bone Name
|
| 0x8
|
0x8
|
Property<AsbString>
|
Right Bone Name
|
| 0xc
|
0x4
|
u32
|
Component Id - (0 = X, 1 = Y, 2 = Z) component to generate bone position difference from
|
| 0x10
|
0x4
|
u32
|
Judge Timing
|
| 0x14
|
0x8
|
Property<bool>
|
Is Slot Sync
|
| 0x1c
|
0xc + N
|
ElementPlugs
|
Plugs
|
BoneVisibilityAnimation Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<AsbString>
|
Animation Name
|
| 0x8
|
0x8
|
Property<bool>
|
|
| 0x10
|
0x8
|
Property<bool>
|
Is Offset Frame
|
| 0x18
|
0x8
|
Property<float>
|
Frame Offset
|
| 0x20
|
0xc + N
|
ElementPlugs
|
Plugs
|
InitialFrame Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x4
|
u32
|
Initial Frame Type
|
| 0x4
|
0x4
|
AsbPtr<AsbArray<AsbString>>
|
Tag Array
|
| 0x8
|
0x8
|
Property<bool>
|
Is Share By Same Anim key
|
| 0x10
|
0x8
|
Property<AsbString>
|
Left Bone Name
|
| 0x18
|
0x8
|
Property<AsbString>
|
Right Bone Name
|
| 0x20
|
0x4
|
u32
|
Component Id
|
| 0x24
|
0x8
|
Property<bool>
|
Is Random
|
| 0x2c
|
0x8
|
Property<bool>
|
Is Fixed Random
|
| 0x34
|
0xc + N
|
ElementPlugs
|
Plugs
|
Initial Frame Type
| Name
|
| Start
|
| FrameOffset
|
| InvFrameOffset
|
| Random
|
| BonePosition
|
| End
|
| Frame
|
| InvFrame
|
| SlotSync
|
BoneBlender Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<AsbString>
|
Bone Blend Name
|
| 0x8
|
0x4
|
u32
|
Sync Child Id
|
| 0xc
|
0x8
|
Property<float>
|
Bone Blend Mode Value
|
| 0x14
|
0x4
|
u32
|
Bone Blend Mode
|
| 0x18
|
0x4
|
u32
|
State End Mode (0 = all, 1 = child 0, 2 = child 1)
|
| 0x1c
|
0xc + N
|
ElementPlugs
|
Plugs
|
BoolSelector Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<bool>
|
Select Value
|
| 0x8
|
0x8
|
Property<bool>
|
Is Slot Sync
|
| 0x10
|
0x4
|
u32
|
|
| 0x14
|
0xc + N
|
ElementPlugs
|
Plugs
|
Alert
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<AsbString>
|
Alert
|
| 0x8
|
0xc + N
|
ElementPlugs
|
Plugs
|
SubtractAnimation Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0xc + N
|
ElementPlugs
|
Plugs
|
ShapeAnimation Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<AsbString>
|
Animation Name
|
| 0x8
|
0xc + N
|
ElementPlugs
|
Plugs
|
TwoDimensionalBlender Element
| Offset
|
Size
|
Type
|
Description
|
| 0x0
|
0x8
|
Property<float>
|
|
| 0x8
|
0x8
|
Property<float>
|
|
| 0x10
|
0x4
|
u32
|
Offset to key frame array relative to 0x10 of this struct?
|
| 0x14
|
0x4
|
u32
|
Offset to key data array relative to 0x10 of this struct?
|
| 0x18
|
0xc + N
|
ElementPlugs
|
Plugs
|