dynamic avatars

dynamic avatars can be created and used with veadotube.

the DART chunk

provides base information on a dynamic avatar file, and the root asset folder. the existence of this chunk in a file tells that this is file may contain dynamic avatar objects.

length description
4 id for the DAFD chunk for the root asset folder
1+ base information, properties structure

the DAFD chunk

provides information on an asset folder.

length description
1+ asset list length = n
? n asset list entries
1+ extra data, properties structure

for each asset list entry:

length description
4 id for the chunk representing the asset, which can be AIMG, ABMP, DAOB
4 id for the ABMP chunk representing the asset thumbnail
1+ asset name, variable-length string

the DAOB chunk

provides information on a dynamic avatar object.

length description
1+ data for the object, properties structure
1+ list of associated DALY chunk ids, prefixed with a variable-length integer
1+ list of associated DASG chunk ids, prefixed with a variable-length integer
1+ list of associated DANI chunk ids, prefixed with a variable-length integer

the list of DALY chunks may also include invalid chunk ids. if the id is 0xFFFFFFFF, it doesn’t represent a chunk but rather a layer group opening. respectively, an id of 0x00000000 represents a group closing. valid chunks prepending a 0xFFFFFFFF value are treated as the parent layers of the subsequent valid chunks until the corresponding 0x00000000 value is reached.

the DALY chunk

provides information on a dynamic avatar object layer.

length description
1+ data for the layer, properties structure
1+ pin list length = n
? n pin list entries
1+ dynamics list length = n2
? n2 dynamics list entries

for each pin list entry:

length description
8 pin X position, double-precision floating number
8 pin Y position, double-precision floating number
1 1 if this pin is exposed as an anchor, 0 otherwise
1+ name for the exposed anchor, variable-length string

for each dynamics list entry:

length description
1+ dynamics type, variable-length string
1+ dynamics id, variable-length integer

most layer properties such as transforming and effects are stored in the properties structure. this includes settings for each dynamics.

the DASG chunk

provides information on a dynamic avatar object state group.

length description
1+ data for the state group, properties structure
1+ list of associated DAST chunk ids, prefixed with a variable-length integer

the DAST chunk

provides information on a dynamic avatar object state.

length description
1+ data for the state, properties structure

the DANI chunk

provides information on a dynamic avatar object node input.

length description
1+ extra data for the node, properties structure
1+ length of usage list = n, variable-length integer
? list of usages, n variable-length strings