EvilEngine/ATBL: Difference between revisions

From Heavy Iron Modding
Content added Content deleted
Battlepedia>Seil
No edit summary
Battlepedia>Seil
No edit summary
Line 4: Line 4:
|games=Night of 100 Frights<br>Battle for Bikini Bottom<br>The SpongeBob SquarePants Movie<br>The Incredibles<br>Rise of the Underminer}}
|games=Night of 100 Frights<br>Battle for Bikini Bottom<br>The SpongeBob SquarePants Movie<br>The Incredibles<br>Rise of the Underminer}}


Animation table?
Animation table.


==Format==
==Format==
{| class="wikitable"
{| class="wikitable"
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Description
|-
|-
| 0x00 || char[4] || ATBL ||
| 0x00 || uint32 || '''Magic''' - ATBL
|-
|-
| 0x04 || int32 || ANIMamount ||
| 0x04 || uint32 || '''NumRaw''' - number of [[ANIM]] ids
|-
|-
| 0x08 || int32 || amount08 ||
| 0x08 || uint32 || '''NumFiles''' - number of animation files
|-
|-
| 0x0C || int32 || amount0C ||
| 0x0C || uint32 || '''NumStates''' - number of animation states
|-
|-
| 0x10 || uint32 (enum) || '''ConstructFunc''' - which "constructor" function this animation table corresponds to
| 0x10 || int32 || unknown1 ||
|-
|-
| 0x14 || int32[ANIMamount] || listANIM || list of ANIM asset IDs
| 0x14 || [[AssetID]][NumRaw] || '''Raw''' - list of ANIM asset IDs
|-
|-
| - || unknown2[amount08] || listUnknown2 ||unknown2 is a 0x20 byte struct
| - || AnimFile[NumFiles] || '''Files''' - list of animation files
|-
|-
| - || unknown3[amount0C] || listUnknown3 || unknown3 is a 0x1C byte struct
| - || AnimState[NumStates] || '''States''' - list of animation states
|-
|-
| - || AnimEffect[unknown] || '''Effects''' - list of animation effects (unknown count)
| - || int[ANIMamount] || listUnknown4
|-
| - || uint32[NumRaw] || '''listUnknown''' - unknown
|}
|}


===Unknown2===
===ConstructFunc===
* 0 - zEntPlayer_AnimTable
* 1 - ZNPC_AnimTable_Common
* 2 - zPatrick_AnimTable
* 3 - zSandy_AnimTable
* 4 - ZNPC_AnimTable_Villager
* 5 - zSpongeBobTongue_AnimTable
* 6 - ZNPC_AnimTable_LassoGuide
* 7 - ZNPC_AnimTable_Hammer
* 8 - ZNPC_AnimTable_TarTar
* 9 - ZNPC_AnimTable_GLove
* 10 - ZNPC_AnimTable_Monsoon
* 11 - ZNPC_AnimTable_SleepyTime
* 12 - ZNPC_AnimTable_ArfDog
* 13 - ZNPC_AnimTable_ArfArf
* 14 - ZNPC_AnimTable_Chuck
* 15 - ZNPC_AnimTable_Tubelet
* 16 - ZNPC_AnimTable_Slick
* 17 - ZNPC_AnimTable_Ambient
* 18 - ZNPC_AnimTable_Tiki
* 19 - ZNPC_AnimTable_Fodder
* 20 - ZNPC_AnimTable_Duplotron
* 21 - ZNPC_AnimTable_Jelly
* 22 - ZNPC_AnimTable_Test
* 23 - ZNPC_AnimTable_Neptune
* 24 - ZNPC_AnimTable_KingJelly
* 25 - ZNPC_AnimTable_Dutchman
* 26 - ZNPC_AnimTable_Prawn
* 27 - ZNPC_AnimTable_BossSandy
* 28 - ZNPC_AnimTable_BossPatrick
* 29 - ZNPC_AnimTable_BossSB1
* 30 - ZNPC_AnimTable_BossSB2
* 31 - ZNPC_AnimTable_BossSBobbyArm
* 32 - ZNPC_AnimTable_BossPlankton
* 33 - zEntPlayer_BoulderVehicleAnimTable
* 34 - ZNPC_AnimTable_BossSandyHead
* 35 - ZNPC_AnimTable_BalloonBoy
* 36 - xEnt_AnimTable_AutoEventSmall
* 37 - ZNPC_AnimTable_SlickShield
* 38 - ZNPC_AnimTable_SuperFriend
* 39 - ZNPC_AnimTable_ThunderCloud
* 40 - XHUD_AnimTable_Idle
* 41 - ZNPC_AnimTable_NightLight
* 42 - ZNPC_AnimTable_HazardStd
* 43 - ZNPC_AnimTable_FloatDevice
* 44 - cruise_bubble::anim_table
* 45 - ZNPC_AnimTable_BossSandyScoreboard
* 46 - zEntPlayer_TreeDomeSBAnimTable

===AnimFile===
{| class="wikitable"
{| class="wikitable"
! Offset !! Type !! Description
! Offset !! Type !! Description
|-
|-
| 0x00 || int || Unknown
| 0x00 || uint32 || '''FileFlags'''
|-
|-
| 0x04 || int || Unknown
| 0x04 || float || '''Duration'''
|-
|-
| 0x08 || float || Unknown
| 0x08 || float || '''TimeOffset'''
|-
|-
| 0x0C || short || Unknown
| 0x0C || uint16[2] || '''NumAnims'''
|-
|-
| 0x0E || short || Unknown
| 0x10 || uint32 || '''RawData''' - file offset
|-
|-
| 0x10 || int || Unknown
| 0x14 || int || '''Physics''' - usually -1?
|-
|-
| 0x14 || int || Unknown
| 0x18 || int || '''StartPose''' - usually -1?
|-
|-
| 0x18 || int || Unknown
| 0x1C || int || '''EndPose''' - usually -1?
|-
| 0x1C || int || Unknown
|}
|}


===Unknown3===
===AnimState===
{| class="wikitable"
{| class="wikitable"
! Offset !! Type !! Description
! Offset !! Type !! Description
|-
|-
| 0x00 || [[Asset ID]] || Unknown
| 0x00 || uint32 || '''StateID'''
|-
| 0x04 || uint32 || '''FileIndex'''
|-
| 0x08 || uint32 || '''EffectCount'''
|-
| 0x0C || uint32 || '''EffectOffset'''
|-
| 0x10 || float || '''Speed'''
|-
| 0x14 || uint32 || '''SubStateID'''
|-
| 0x18 || uint32 || '''SubStateCount'''
|}

===AnimEffect===
{| class="wikitable"
! Offset !! Type !! Description
|-
|-
| 0x04 || int || Unknown
| 0x00 || uint32 || '''StateID'''
|-
|-
| 0x08 || int || Unknown
| 0x04 || float || '''StartTime'''
|-
|-
| 0x0C || int || Unknown
| 0x08 || float || '''EndTime'''
|-
|-
| 0x10 || float || Unknown
| 0x0C || uint32 || '''Flags'''
|-
|-
| 0x14 || int || Unknown
| 0x10 || uint32 || '''EffectType'''
|-
|-
| 0x18 || int || Unknown
| 0x14 || uint32 || '''UserDataSize'''
|}
|}



Revision as of 06:46, 17 May 2019

ATBL
AnimTable
TypeBinary
Games usedThe Incredibles

Animation table.

Format

Offset Type Description
0x00 uint32 Magic - ATBL
0x04 uint32 NumRaw - number of ANIM ids
0x08 uint32 NumFiles - number of animation files
0x0C uint32 NumStates - number of animation states
0x10 uint32 (enum) ConstructFunc - which "constructor" function this animation table corresponds to
0x14 AssetID[NumRaw] Raw - list of ANIM asset IDs
- AnimFile[NumFiles] Files - list of animation files
- AnimState[NumStates] States - list of animation states
- AnimEffect[unknown] Effects - list of animation effects (unknown count)
- uint32[NumRaw] listUnknown - unknown

ConstructFunc

  • 0 - zEntPlayer_AnimTable
  • 1 - ZNPC_AnimTable_Common
  • 2 - zPatrick_AnimTable
  • 3 - zSandy_AnimTable
  • 4 - ZNPC_AnimTable_Villager
  • 5 - zSpongeBobTongue_AnimTable
  • 6 - ZNPC_AnimTable_LassoGuide
  • 7 - ZNPC_AnimTable_Hammer
  • 8 - ZNPC_AnimTable_TarTar
  • 9 - ZNPC_AnimTable_GLove
  • 10 - ZNPC_AnimTable_Monsoon
  • 11 - ZNPC_AnimTable_SleepyTime
  • 12 - ZNPC_AnimTable_ArfDog
  • 13 - ZNPC_AnimTable_ArfArf
  • 14 - ZNPC_AnimTable_Chuck
  • 15 - ZNPC_AnimTable_Tubelet
  • 16 - ZNPC_AnimTable_Slick
  • 17 - ZNPC_AnimTable_Ambient
  • 18 - ZNPC_AnimTable_Tiki
  • 19 - ZNPC_AnimTable_Fodder
  • 20 - ZNPC_AnimTable_Duplotron
  • 21 - ZNPC_AnimTable_Jelly
  • 22 - ZNPC_AnimTable_Test
  • 23 - ZNPC_AnimTable_Neptune
  • 24 - ZNPC_AnimTable_KingJelly
  • 25 - ZNPC_AnimTable_Dutchman
  • 26 - ZNPC_AnimTable_Prawn
  • 27 - ZNPC_AnimTable_BossSandy
  • 28 - ZNPC_AnimTable_BossPatrick
  • 29 - ZNPC_AnimTable_BossSB1
  • 30 - ZNPC_AnimTable_BossSB2
  • 31 - ZNPC_AnimTable_BossSBobbyArm
  • 32 - ZNPC_AnimTable_BossPlankton
  • 33 - zEntPlayer_BoulderVehicleAnimTable
  • 34 - ZNPC_AnimTable_BossSandyHead
  • 35 - ZNPC_AnimTable_BalloonBoy
  • 36 - xEnt_AnimTable_AutoEventSmall
  • 37 - ZNPC_AnimTable_SlickShield
  • 38 - ZNPC_AnimTable_SuperFriend
  • 39 - ZNPC_AnimTable_ThunderCloud
  • 40 - XHUD_AnimTable_Idle
  • 41 - ZNPC_AnimTable_NightLight
  • 42 - ZNPC_AnimTable_HazardStd
  • 43 - ZNPC_AnimTable_FloatDevice
  • 44 - cruise_bubble::anim_table
  • 45 - ZNPC_AnimTable_BossSandyScoreboard
  • 46 - zEntPlayer_TreeDomeSBAnimTable

AnimFile

Offset Type Description
0x00 uint32 FileFlags
0x04 float Duration
0x08 float TimeOffset
0x0C uint16[2] NumAnims
0x10 uint32 RawData - file offset
0x14 int Physics - usually -1?
0x18 int StartPose - usually -1?
0x1C int EndPose - usually -1?

AnimState

Offset Type Description
0x00 uint32 StateID
0x04 uint32 FileIndex
0x08 uint32 EffectCount
0x0C uint32 EffectOffset
0x10 float Speed
0x14 uint32 SubStateID
0x18 uint32 SubStateCount

AnimEffect

Offset Type Description
0x00 uint32 StateID
0x04 float StartTime
0x08 float EndTime
0x0C uint32 Flags
0x10 uint32 EffectType
0x14 uint32 UserDataSize