Advertisement
DSX8

SmashU Animation Format

May 26th, 2015
651
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.01 KB | None | 0 0
  1. From July 7th
  2. .omo animation format listing
  3.  
  4. viz omo format
  5.  
  6. 0x06 - folder call(?)
  7. 0x08 - has an importance
  8. 0x0d - value of 2 for stages and 0 for character animations (possibly tells how many animations types are stored)
  9. 0x0e - bone references
  10. 0x10 - frame count
  11. 0x14 - indicates where index data start
  12. 0x18 - indicates next data start
  13. 0x1a - tells where next block starts
  14. 0x1e - data start
  15. 0x20 - bone entry identification?
  16. 0x30 - start keyframe
  17.  
  18. each bone entry has its own 16 bytes of data at 0x20
  19.  
  20.  
  21. August 18th Update
  22. OMO Data-
  23. Header:
  24. char magic[4] - "OMO "
  25. uint16 unknown[2]
  26. uint32 unknown
  27. uint16 unknown
  28. uint16 channelCount
  29. uint16 frameCount
  30. uint16 frameSize
  31. uint32 channelTableOffset
  32. uint32 fixedDataOffset
  33. uint32 frameDataOffset
  34.  
  35. Channel Table Entries:
  36. uint32 animType
  37. uint32 boneId // matches id in vbn (2 bytes after bone parent index in vbn)
  38. uint32 offsetInFixedData
  39. uint32 offsetInFrame
  40.  
  41. Fixed data size and frame data size for a channel is determined by it's animType - can be empty
  42.  
  43. Types:
  44. Constant - 1x Vector3f (constant on all frames, no frame data)
  45. Interpolated - 2x Vector3f (frame has interpolation value for each coordinate)
  46. There are others I haven't figured out
  47.  
  48. Frame Data:
  49. buffer frameData[frameCount][frameSize]
  50. Channel frame data starts at: frameData[frameNum] + frameDataOffset
  51. Seems to be uint16 interpolation values (i.e. 0x0000-0xffff for 0.0 - 1.0)
  52.  
  53. Eyeballing translation and scale values looks based on this looks sane, I'm not sure about rotation.
  54.  
  55. animType bit field guesses:
  56. 0x04000000 - has scale
  57. 0x02000000 - has rotation
  58. 0x01000000 - has translation
  59. 0x00200000 - translation constant
  60. 0x00080000 - translation interpolated
  61. 0x00007000 - rotation constant
  62. 0x00005000 - rotation interpolated
  63. 0x00000200 - scale constant
  64. 0x00000080 - scale interpolated
  65.  
  66.  
  67. List of all animType fixed and frame data sizes (calculated by doing size = channel[i+i].offset - channel[i].offset):
  68. AnimType: 0x0004a081 FixedSize: 0 FrameSize: 0
  69. AnimType: 0x00085081 FixedSize: 0 FrameSize: 0
  70. AnimType: 0x01000081 FixedSize: 0 FrameSize: 16
  71. AnimType: 0x01040081 FixedSize: 0 FrameSize: 12
  72. AnimType: 0x01045081 FixedSize: 0 FrameSize: 12
  73. AnimType: 0x0104a081 FixedSize: 0 FrameSize: 12
  74. AnimType: 0x01084081 FixedSize: 24 FrameSize: 6
  75. AnimType: 0x01085081 FixedSize: 24 FrameSize: 6
  76. AnimType: 0x01089081 FixedSize: 24 FrameSize: 6
  77. AnimType: 0x0108a081 FixedSize: 24 FrameSize: 6
  78. AnimType: 0x01200081 FixedSize: 12 FrameSize: 0
  79. AnimType: 0x01203081 FixedSize: 12 FrameSize: 0
  80. AnimType: 0x01205081 FixedSize: 12 FrameSize: 0
  81. AnimType: 0x01209081 FixedSize: 12 FrameSize: 0
  82. AnimType: 0x0120a081 FixedSize: 12 FrameSize: 0
  83. AnimType: 0x0204a081 FixedSize: 0 FrameSize: 8
  84. AnimType: 0x02085081 FixedSize: 24 FrameSize: 6
  85. AnimType: 0x02086081 FixedSize: 16 FrameSize: 2
  86. AnimType: 0x02087081 FixedSize: 12 FrameSize: 0
  87. AnimType: 0x03000081 FixedSize: 0 FrameSize: 32
  88. AnimType: 0x03005081 FixedSize: 24 FrameSize: 22
  89. AnimType: 0x03007081 FixedSize: 12 FrameSize: 16
  90. AnimType: 0x0300a081 FixedSize: 0 FrameSize: 24
  91. AnimType: 0x03040081 FixedSize: 0 FrameSize: 28
  92. AnimType: 0x03045081 FixedSize: 24 FrameSize: 18
  93. AnimType: 0x03046081 FixedSize: 16 FrameSize: 14
  94. AnimType: 0x0304a081 FixedSize: 0 FrameSize: 20
  95. AnimType: 0x03080081 FixedSize: 24 FrameSize: 22
  96. AnimType: 0x03083081 FixedSize: 24 FrameSize: 19
  97. AnimType: 0x03084081 FixedSize: 24 FrameSize: 10
  98. AnimType: 0x03085081 FixedSize: 48 FrameSize: 12
  99. AnimType: 0x03086081 FixedSize: 40 FrameSize: 8
  100. AnimType: 0x03087081 FixedSize: 36 FrameSize: 6
  101. AnimType: 0x03089081 FixedSize: 24 FrameSize: 13
  102. AnimType: 0x0308a081 FixedSize: 24 FrameSize: 14
  103. AnimType: 0x03200081 FixedSize: 12 FrameSize: 16
  104. AnimType: 0x03205081 FixedSize: 36 FrameSize: 6
  105. AnimType: 0x03206081 FixedSize: 28 FrameSize: 2
  106. AnimType: 0x03207081 FixedSize: 24 FrameSize: 0
  107. AnimType: 0x03209081 FixedSize: 12 FrameSize: 7
  108. AnimType: 0x0320a081 FixedSize: 12 FrameSize: 8
  109. AnimType: 0x04085081 FixedSize: 24 FrameSize: 6
  110. AnimType: 0x04085201 FixedSize: 12 FrameSize: 0
  111. AnimType: 0x05000081 FixedSize: 24 FrameSize: 22
  112. AnimType: 0x05005081 FixedSize: 24 FrameSize: 22
  113. AnimType: 0x05040081 FixedSize: 24 FrameSize: 18
  114. AnimType: 0x05043201 FixedSize: 12 FrameSize: 12
  115. AnimType: 0x05045081 FixedSize: 24 FrameSize: 18
  116. AnimType: 0x0504a081 FixedSize: 24 FrameSize: 18
  117. AnimType: 0x05080081 FixedSize: 48 FrameSize: 12
  118. AnimType: 0x05083081 FixedSize: 48 FrameSize: 12
  119. AnimType: 0x05085081 FixedSize: 48 FrameSize: 12
  120. AnimType: 0x05085201 FixedSize: 36 FrameSize: 6
  121. AnimType: 0x05089201 FixedSize: 36 FrameSize: 6
  122. AnimType: 0x0508a081 FixedSize: 48 FrameSize: 12
  123. AnimType: 0x05200081 FixedSize: 36 FrameSize: 6
  124. AnimType: 0x05203081 FixedSize: 36 FrameSize: 6
  125. AnimType: 0x05205081 FixedSize: 36 FrameSize: 6
  126. AnimType: 0x05205201 FixedSize: 24 FrameSize: 0
  127. AnimType: 0x05209201 FixedSize: 24 FrameSize: 0
  128. AnimType: 0x0520a081 FixedSize: 36 FrameSize: 6
  129. AnimType: 0x0520a201 FixedSize: 24 FrameSize: 0
  130. AnimType: 0x0604a081 FixedSize: 24 FrameSize: 14
  131. AnimType: 0x0604a201 FixedSize: 12 FrameSize: 8
  132. AnimType: 0x06085081 FixedSize: 48 FrameSize: 12
  133. AnimType: 0x06085201 FixedSize: 36 FrameSize: 6
  134. AnimType: 0x06086081 FixedSize: 40 FrameSize: 8
  135. AnimType: 0x06086201 FixedSize: 28 FrameSize: 2
  136. AnimType: 0x06087081 FixedSize: 36 FrameSize: 6
  137. AnimType: 0x06087201 FixedSize: 24 FrameSize: 0
  138. AnimType: 0x07000201 FixedSize: 12 FrameSize: 32
  139. AnimType: 0x07005081 FixedSize: 48 FrameSize: 28
  140. AnimType: 0x07007081 FixedSize: 36 FrameSize: 22
  141. AnimType: 0x07007201 FixedSize: 24 FrameSize: 16
  142. AnimType: 0x07040081 FixedSize: 24 FrameSize: 34
  143. AnimType: 0x07040201 FixedSize: 12 FrameSize: 28
  144. AnimType: 0x07043201 FixedSize: 12 FrameSize: 25
  145. AnimType: 0x07045081 FixedSize: 48 FrameSize: 24
  146. AnimType: 0x07047081 FixedSize: 36 FrameSize: 18
  147. AnimType: 0x07047201 FixedSize: 24 FrameSize: 12
  148. AnimType: 0x0704a081 FixedSize: 24 FrameSize: 26
  149. AnimType: 0x0704a201 FixedSize: 12 FrameSize: 20
  150. AnimType: 0x07080081 FixedSize: 48 FrameSize: 28
  151. AnimType: 0x07083081 FixedSize: 48 FrameSize: 25
  152. AnimType: 0x07085081 FixedSize: 72 FrameSize: 18
  153. AnimType: 0x07085201 FixedSize: 60 FrameSize: 12
  154. AnimType: 0x07086081 FixedSize: 64 FrameSize: 14
  155. AnimType: 0x07086201 FixedSize: 52 FrameSize: 8
  156. AnimType: 0x07087081 FixedSize: 60 FrameSize: 12
  157. AnimType: 0x07087201 FixedSize: 48 FrameSize: 6
  158. AnimType: 0x07089201 FixedSize: 36 FrameSize: 13
  159. AnimType: 0x0708a081 FixedSize: 48 FrameSize: 20
  160. AnimType: 0x07200081 FixedSize: 36 FrameSize: 22
  161. AnimType: 0x07203081 FixedSize: 36 FrameSize: 19
  162. AnimType: 0x07205081 FixedSize: 60 FrameSize: 12
  163. AnimType: 0x07205201 FixedSize: 48 FrameSize: 6
  164. AnimType: 0x07206081 FixedSize: 52 FrameSize: 8
  165. AnimType: 0x07206201 FixedSize: 40 FrameSize: 2
  166. AnimType: 0x07207081 FixedSize: 48 FrameSize: 6
  167. AnimType: 0x07207201 FixedSize: 36 FrameSize: 0
  168. AnimType: 0x07209081 FixedSize: 36 FrameSize: 13
  169. AnimType: 0x07209201 FixedSize: 24 FrameSize: 7
  170. AnimType: 0x0720a081 FixedSize: 36 FrameSize: 14
  171. AnimType: 0x0720a201 FixedSize: 24 FrameSize: 8
  172. AnimType: 0x08085081 FixedSize: 0 FrameSize: 12
  173. AnimType: 0x09085081 FixedSize: 24 FrameSize: 18
  174. AnimType: 0x0b085081 FixedSize: 48 FrameSize: 24
  175. AnimType: 0x0b087081 FixedSize: 36 FrameSize: 18
  176.  
  177.  
  178. MTA Data-
  179. Header:
  180. char magic[4] - "MTA4"
  181. uint32 unknown
  182. uint32 numFrames
  183. uint32 zeroes
  184. uint32 numFramesMinusOne
  185. uint32 frameRate // probably
  186. uint32 matCount
  187. uint32 matOffset
  188. uint32 visCount
  189. uint32 visOffset
  190.  
  191. Unless otherwise stated, count/offset pairs point to an array of offsets to the actual data:
  192. uint32 offsets[]
  193.  
  194. MAT entry:
  195. uint32 nameOffset // Material name (connects with model.mta)
  196. uint32 unknown
  197. uint32 blockCount
  198. uint32 blockOffset
  199. uint32 zeroes
  200. uint32 endOffset // of this MTA entry
  201.  
  202. MAT entry block:
  203. uint32 nameOffset // Material param names
  204. uint32 unknown // 1
  205. uint32 unknown // 4
  206. uint32 dataCount
  207. uint32 unknown // 0, 1
  208. uint32 unknown // 1, 2
  209. uint32 dataOffset
  210.  
  211. MAT entry block data:
  212. float data[dataCount]
  213.  
  214. VIS entry:
  215. uint32 nameOffset // Model object name
  216. uint32 zeroes
  217. uint32 dataOffset
  218.  
  219. VIS data:
  220. uint32 frameCount
  221. uint32 unknown // 1
  222. uint32 keyframeCount
  223. uint32 keyframeOffset // This points directly to keyframe data array
  224.  
  225. VIS data keyframe (list of transitions to off or on):
  226. uint16 frameNumber
  227. uint8 on
  228. uint8 zeroes
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement