5 http://area.autodesk.com/blogs/chris/reading_and_modifying_asset_file_paths_in_the_3ds_max_file
6 file:///usr/share/doc/libgsf-1-dev/html/gsf/api.html
11 /srv/work/database/interfaces/anims_max/cp_fy_hof_species.max:
17 f 3194 ClassDirectory3
19 f 34780 SummaryInformation
20 f 3352 DocumentSummaryInformation
23 /home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max:
25 f 52 VideoPostQueue <- not important
26 f 147230 Scene <- the main scene, todo
27 f 366 FileAssetMetaData2 <- this is new in max2010! (it is unfortunately in a different format ...)
28 f 2198 DllDirectory <- a listing of dlls used by this file
29 f 29605 Config <- contains stuff related to the paramblocks in max scripts, needed for handling nel material
30 f 3438 ClassDirectory3 <- a listing of used classes, the index in this list may be relevant to chunk ids
31 f 691 ClassData <- maybe contains global class data
32 f 29576 SummaryInformation <- standard windows stuff, different format
33 f 2320 DocumentSummaryInformation
37 kaetemi@benzaiten ~/source/minimax/build $ gsf dump /home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max VideoPostQueue
41 0a 00 00 00 (size: 10 - 6 = 4)
43 01 00 00 00 (value: 1)
48 2a 00 00 80 (size: 42 - 6 = 36) (note: negative bit = container)
51 1e 00 00 00 (size: 30 - 6 = 24)
53 07 00 00 00 (value: 7)
54 01 00 00 00 (value: 1)
57 20 12 00 00 (value: 4610)
61 06 00 00 00 (size: 6 - 6 = 0)
68 Pipeline Max Dump (Temporary Tool)
69 /srv/work/database/interfaces/anims_max/cp_fy_hof_species.max
71 CHUNK ID: 8248, SIZE: 112, CONTAINER: 1
72 CHUNK ID: 8249, SIZE: 80, CONTAINER: 0
73 UTF16: Default materials and textures (Kinetix)
75 CHUNK ID: 8247, SIZE: 20, CONTAINER: 0
79 CHUNK ID: 8248, SIZE: 108, CONTAINER: 1
80 CHUNK ID: 8249, SIZE: 82, CONTAINER: 0
81 UTF16: Standard materials and textures (Kinetix)
83 CHUNK ID: 8247, SIZE: 14, CONTAINER: 0
87 CHUNK ID: 8248, SIZE: 90, CONTAINER: 1
88 CHUNK ID: 8249, SIZE: 54, CONTAINER: 0
89 UTF16: Standard samplers (Kinetix)
91 CHUNK ID: 8247, SIZE: 24, CONTAINER: 0
95 CHUNK ID: 8248, SIZE: 88, CONTAINER: 1
96 CHUNK ID: 8249, SIZE: 60, CONTAINER: 0
97 UTF16: Standard controllers (Kinetix)
99 CHUNK ID: 8247, SIZE: 16, CONTAINER: 0
103 CHUNK ID: 8248, SIZE: 128, CONTAINER: 1
104 CHUNK ID: 8249, SIZE: 92, CONTAINER: 0
105 UTF16: Physique Modifier: a skeletal deformation tool
107 CHUNK ID: 8247, SIZE: 24, CONTAINER: 0
111 CHUNK ID: 8248, SIZE: 94, CONTAINER: 1
112 CHUNK ID: 8249, SIZE: 60, CONTAINER: 0
113 UTF16: Editable mesh object (Kinetix)
115 CHUNK ID: 8247, SIZE: 22, CONTAINER: 0
119 CHUNK ID: 8248, SIZE: 84, CONTAINER: 1
120 CHUNK ID: 8249, SIZE: 54, CONTAINER: 0
121 UTF16: BIPED.DLC: Biped Controller
123 CHUNK ID: 8247, SIZE: 18, CONTAINER: 0
127 CHUNK ID: 8248, SIZE: 260, CONTAINER: 1
128 CHUNK ID: 8249, SIZE: 218, CONTAINER: 0
129 UTF16: Map extender plug-in --- made by 3DSMax Team - UBI Soft Romania & Daniel Raviart - Ubi Research & Development
131 CHUNK ID: 8247, SIZE: 30, CONTAINER: 0
132 UTF16: mapext198m3.dlm
135 CHUNK ID: 8248, SIZE: 106, CONTAINER: 1
136 CHUNK ID: 8249, SIZE: 74, CONTAINER: 0
137 UTF16: Standard pre-filter kernels (Kinetix)
139 CHUNK ID: 8247, SIZE: 20, CONTAINER: 0
143 CHUNK ID: 8248, SIZE: 98, CONTAINER: 1
144 CHUNK ID: 8249, SIZE: 70, CONTAINER: 0
145 UTF16: Default scanline renderer (Kinetix)
147 CHUNK ID: 8247, SIZE: 16, CONTAINER: 0
156 2 bytes ID, interpretation context (parent) dependent, often refers to a class or version configuration used to parse this chunk
157 4 bytes Size, most significant bit flags whether the chunk is a container
158 if Size is 0: 8 bytes Size64, idem meaning Size, support for large files
164 The Scene stream contains 1 root chunk, with as ID the version that the max file is stored in.
178 The size of this chunk, including the header size, is equal to the size of the Scene stream.
185 0 | 04 20 (id version)
186 25 f4 20 80 (size + containerflag)
188 40 00 00 80 (size + containerflag)
190 0a 00 | ..%.....@...5...
191 10 | 00 00 02 00 00 00 01 25 0a 00 00 00 00 00 80 3f | .......%.......?
192 20 | 00 25 0e 00 00 00 00 00 00 80 00 00 00 80 02 30 | .%.............0
193 30 | 0a 00 00 00 00 00 00 00 03 30 0e 00 00 00 00 00 | .........0......
194 40 | 00 80 00 00 00 80 01 00 b8 01 00 80 01 00 0a 00 | ................
195 50 | 00 00 0d 00 00 00 05 00 08 00 00 00 06 00 02 00 | ................
196 60 | 20 00 00 80 03 00 0a 00 00 00 00 00 00 00 04 00 | ................
197 70 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................
198 80 | 20 00 00 80 03 00 0a 00 00 00 01 00 00 00 04 00 | ................
199 90 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................
200 a0 | 20 00 00 80 03 00 0a 00 00 00 02 00 00 00 04 00 | ................
201 b0 | 06 00 00 00 00 01 0a 00 00 00 00 00 80 3f 02 00 | .............?..
202 c0 | 20 00 00 80 03 00 0a 00 00 00 03 00 00 00 04 00 | ................
203 d0 | 06 00 00 00 00 01 0a 00 00 00 00 00 80 3f 02 00 | .............?..
204 e0 | 20 00 00 80 03 00 0a 00 00 00 04 00 00 00 04 00 | ................
205 f0 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................
206 100 | 20 00 00 80 03 00 0a 00 00 00 05 00 00 00 04 00 | ................
207 110 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................
208 120 | 20 00 00 80 03 00 0a 00 00 00 06 00 00 00 04 00 | ................
209 130 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................
210 140 | 20 00 00 80 03 00 0a 00 00 00 07 00 00 00 04 00 | ................
211 150 | 06 00 00 00 00 01 0a 00 00 00 00 00 80 3f 02 00 | .............?..
212 160 | 20 00 00 80 03 00 0a 00 00 00 08 00 00 00 04 00 | ................
218 max 9 (stored under wine)
220 0 | 0e 20 (id version)
221 00 00 00 00 (missing size)
223 40 00 00 00 00 80 00 00 | .......I@.......
224 10 | 00 00 00 00 d0 00 00 00 00 00 00 80 0b 00 00 00 | ................
225 20 | 00 00 26 00 00 00 00 00 00 00 3c 29 06 5a 1e 0c | ..&.......<).Z..
226 30 | 42 30 60 11 00 00 00 00 00 15 28 23 04 00 01 00 | B0`.......(#....
227 40 | 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 00 00 | ........!.......
228 50 | 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 | ..............@.
229 60 | 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 00 | .........!......
230 70 | 00 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 | ...............@
231 80 | 00 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 | ..........!.....
232 90 | 00 00 02 00 04 00 00 00 00 00 82 00 00 00 00 00 | ................
233 a0 | 40 00 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 | @..........!....
234 b0 | 00 00 00 04 00 09 00 00 00 00 00
235 80 06 00 00 00 | ................
236 c0 | 00 40 ff ff ff ff
237 0c 00 00 00 00 00 18 00 00 00 | .@..............
238 d0 | 00 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 | ................
239 e0 | 00 00 00 00 ac 00 00 00 00 00 00 80 34 20 00 00 | ............4...
240 f0 | 00 00 16 00 00 00 00 00 00 00 00 00 00 00 ff ff | ................
241 100 | ff ff 45 20 00 00 00 00 12 00 00 00 00 00 00 00 | ..E.............
242 110 | 00 00 00 00 47 20 00 00 00 00 64 00 00 00 00 00 | ....G.....d.....
243 120 | 00 80 48 20 00 00 00 00 24 00 00 00 00 00 00 80 | ..H.....$.......
244 130 | 00 27 00 00 00 00 16 00 00 00 00 00 00 00 02 00 | .'..............
245 140 | 00 00 00 00 00 00 49 20 00 00 00 00 24 00 00 00 | ......I.....$...
246 150 | 00 00 00 80 00 27 00 00 00 00 16 00 00 00 00 00 | .....'..........
247 160 | 00 00 02 00 00 00 01 00 00 00 4a 20 00 00 00 00 | ..........J.....
248 170 | 0e 00 00 00 00 00 00 00 00 10 00 00 00 00 12 00 | ................
249 180 | 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 | ................
253 max 2008 (stored under wine)
255 0 | 0f 20 (id version)
256 00 00 00 00 (missing size)
257 17 fe 01 00 00 00 00 80 (unknown 64 bits)
258 00 00 | ................
259 10 | 00 00 00 00 d0 00 00 00 00 00 00 80
261 00 00 | ................
262 20 | 00 00 (missing size)
263 26 00 00 00 00 00 00 00 (unknown 64 bits)
264 3c 29 06 5a 1e 0c | ..&.......<).Z..
265 30 | 42 30 60 11 00 00 00 00 00 17 10 27 04 00 01 00 | B0`........'....
268 21 00 00 00 00 00 00 00 | ........!.......
269 50 | 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 | ..............@.
272 21 00 00 00 00 00 00 | .........!......
273 70 | 00 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 | ...............@
276 21 00 00 00 00 00 | ..........!.....
277 90 | 00 00 02 00 04 00 00 00 00 00 82 00 00 00 00 00 | ................
280 21 00 00 00 00 | @..........!....
281 b0 | 00 00 00 04 00 09 00 00 00 00 00
282 80 06 00 00 00 | ................
283 c0 | 00 40 ff ff ff ff
284 0c 00 00 00 00 00 18 00 00 00 | .@..............
285 d0 | 00 00 00 00 01 00 00 00 01 00 00 00 11 00 01 00 | ................
286 e0 | 00 00 00 00 45 00 00 00 00 00 00 80 34 20 00 00 | ....E.......4...
287 f0 | 00 00 16 00 00 00 00 00 00 00 00 00 00 00 ff ff | ................
288 100 | ff ff 4b 20 00 00 00 00 0f 00 00 00 00 00 00 00 | ..K.............
289 110 | 2e 00 10 00 00 00 00 12 00 00 00 00 00 00 00 00 | ................
293 0 | 12 20 (id version)
294 1e 3f 02 80 (size+containerflag)
296 98 00 00 80 (size+containerflag)
298 1e 00 | ...?............
299 10 | 00 00 (size 30-6=24)
300 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 | ..<).Z..B0`.....
301 20 | 00 21 e0 2e 04 00 01 00 00 00
303 19 00 00 00 (size 25-6=19)
305 30 | 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 | ..............@.
308 01 00 01 00 00 00 00 | ................
309 50 | 00 82 00 00 00 00 00 40 00 00 00 00 0e 00 19 00 | .......@........
310 60 | 00 00 02 00 04 00 00 00 00 00 82 00 00 00 00 00 | ................
313 04 00 09 00 00 | @...............
315 80 06 00 00 00 00 40 ff ff ff ff
316 0c 00 | .........@......
317 90 | 10 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 | ................
318 a0 | 25 00 00 80 34 20 0e 00 00 00 00 00 00 00 ff ff | %...4...........
319 b0 | ff ff 4b 20 07 00 00 00 2e 00 10 0a 00 00 00 00 | ..K.............
320 c0 | 00 00 00 00 00 be 03 00 80 35 20 0a 00 00 00 09 | .........5......
321 d0 | 00 00 00 4b 20 07 00 00 00 2e 0b 00 1e 00 00 00 | ...K............
322 e0 | 59 b4 8a 21 80 89 dc 25 60 11 00 00 00 00 00 21 | Y..!...%`......!
323 f0 | e0 2e 25 00 03 00 00 00 0e 00 19 00 00 00 00 00 | ..%.............
324 100 | 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 | ................
325 110 | 00 0e 00 15 00 00 00 01 00 0f 00 00 00 40 20 81 | .............@..
326 120 | 10 00 00 00 00 40 0e 00 15 00 00 00 02 00 0f 00 | .....@..........
327 130 | 00 00 40 20 81 10 00 00 00 00 40 0e 00 15 00 00 | ..@.......@.....
328 140 | 00 03 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 | .......@.......@
329 150 | 0e 00 15 00 00 00 04 00 0f 00 00 00 40 00 81 10 | ............@...
330 160 | 00 00 00 00 40 0e 00 15 00 00 00 05 00 0f 00 00 | ....@...........
331 170 | 00 40 00 81 10 00 00 00 00 40 0e 00 15 00 00 00 | .@.......@......
332 180 | 06 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 0e | ......@.......@.
333 190 | 00 15 00 00 00 07 00 0f 00 00 00 40 20 81 10 00 | ...........@....
334 1a0 | 00 00 00 40 0e 00 15 00 00 00 08 00 0f 00 00 00 | ...@............
335 1b0 | 40 00 81 10 00 00 00 00 40 0e 00 15 00 00 00 09 | @.......@.......
342 0x21c0: (CStorageValue) { 786432216 }
344 0x2039: (CStorageValue) { Viewport Manager for DirectX (Autodesk) }
345 0x2037: (CStorageValue) { ViewportManager.gup } }
347 0x2039: (CStorageValue) { mental ray: Material Custom Attributes (Autodesk) }
348 0x2037: (CStorageValue) { mrMaterialAttribs.gup } }
350 0x2039: (CStorageValue) { Custom Attribute Container (Autodesk) }
351 0x2037: (CStorageValue) { CustAttribContainer.dlo } }
353 0x2039: (CStorageValue) { Standard Materials and Textures (Autodesk) }
354 0x2037: (CStorageValue) { mtl.dlt } }
356 0x2039: (CStorageValue) { Standard Samplers (Autodesk) }
357 0x2037: (CStorageValue) { samplers.dlh } }
359 0x2039: (CStorageValue) { Default Materials and Textures (Autodesk) }
360 0x2037: (CStorageValue) { mtlgen.dlt } }
362 0x2039: (CStorageValue) { ProSound - Multitrack Audio }
363 0x2037: (CStorageValue) { ProSound.dlc } }
365 0x2039: (CStorageValue) { Editable Poly Object (Autodesk) }
366 0x2037: (CStorageValue) { EPoly.dlo } }
368 0x2039: (CStorageValue) { Standard Pre-Filter Kernels (Autodesk) }
369 0x2037: (CStorageValue) { kernel.dlk } }
371 0x2039: (CStorageValue) { Default Scanline Renderer (Autodesk) }
372 0x2037: (CStorageValue) { rend.dlr } }
374 0x2039: (CStorageValue) { Standard Controllers (Autodesk) }
375 0x2037: (CStorageValue) { ctrl.dlc } }
377 0x2039: (CStorageValue) { Block Manager Utility (Autodesk) }
378 0x2037: (CStorageValue) { AcadBlocks.dlu } }
380 0x2039: (CStorageValue) { Propagation Manager Utility (Autodesk) }
381 0x2037: (CStorageValue) { InstanceMgr.dlu } }
383 0x2039: (CStorageValue) { Scene Effect Manager (Autodesk) }
384 0x2037: (CStorageValue) { SceneEffectLoader.dlu } }
386 0x2039: (CStorageValue) { Change Reaction Controller (Autodesk) }
387 0x2037: (CStorageValue) { reactor.dlc } }
389 0x2039: (CStorageValue) { ParameterEditor (Autodesk) }
390 0x2037: (CStorageValue) { ParamEditor.gup } }
392 0x2039: (CStorageValue) { Bitmap Proxies (Autodesk) }
393 0x2037: (CStorageValue) { BitmapProxies.dlu } }
395 0x2039: (CStorageValue) { Standard Bitmap Storages and Filters (Autodesk) }
396 0x2037: (CStorageValue) { StorageAndFilter.bms } }
398 0x2039: (CStorageValue) { Biped Controller (Autodesk) }
399 0x2037: (CStorageValue) { biped.dlc } } }
403 0x2040: (ClassEntry) {
404 0x2060: (ClassDirectoryHeader) {
406 ClassID: (0x00000000, 0x00000082)
408 0x2042: (CStorageValue) { ParamBlock2 } }
409 0x2040: (ClassEntry) {
410 0x2060: (ClassDirectoryHeader) {
412 ClassID: (0x30420c1e, 0x5a06293c)
414 0x2042: (CStorageValue) { ViewportManager } }
415 0x2040: (ClassEntry) {
416 0x2060: (ClassDirectoryHeader) {
418 ClassID: (0x25dc8980, 0x218ab459)
420 0x2042: (CStorageValue) { mental ray: material custom attribute } }
421 0x2040: (ClassEntry) {
422 0x2060: (ClassDirectoryHeader) {
424 ClassID: (0x23b708db, 0x5ddb3626)
426 0x2042: (CStorageValue) { CustAttribContainer } }
427 0x2040: (ClassEntry) {
428 0x2060: (ClassDirectoryHeader) {
430 ClassID: (0x00000000, 0x00001200)
432 0x2042: (CStorageValue) { Texmaps } }
433 0x2040: (ClassEntry) {
434 0x2060: (ClassDirectoryHeader) {
436 ClassID: (0x00000000, 0x00000038)
438 0x2042: (CStorageValue) { Blinn } }
439 0x2040: (ClassEntry) {
440 0x2060: (ClassDirectoryHeader) {
442 ClassID: (0x00000000, 0x00000008)
444 0x2042: (CStorageValue) { ParamBlock } }
445 0x2040: (ClassEntry) {
446 0x2060: (ClassDirectoryHeader) {
448 ClassID: (0x00000000, 0x25773211)
450 0x2042: (CStorageValue) { Max 2.5 Star } }
451 0x2040: (ClassEntry) {
452 0x2060: (ClassDirectoryHeader) {
454 ClassID: (0x00000000, 0x00000002)
456 0x2042: (CStorageValue) { Standard } }
457 0x2040: (ClassEntry) {
458 0x2060: (ClassDirectoryHeader) {
460 ClassID: (0x00000000, 0x00002007)
462 0x2042: (CStorageValue) { Bezier Float } }
463 0x2040: (ClassEntry) {
464 0x2060: (ClassDirectoryHeader) {
466 ClassID: (0x00000000, 0x00000100)
468 0x2042: (CStorageValue) { Placement } }
469 0x2040: (ClassEntry) {
470 0x2060: (ClassDirectoryHeader) {
472 ClassID: (0x00000000, 0x00000100)
474 0x2042: (CStorageValue) { Output } }
475 0x2040: (ClassEntry) {
476 0x2060: (ClassDirectoryHeader) {
478 ClassID: (0x00000000, 0x00000240)
480 0x2042: (CStorageValue) { Bitmap } }
481 0x2040: (ClassEntry) {
482 0x2060: (ClassDirectoryHeader) {
484 ClassID: (0x222b9eb9, 0x64c75fec)
486 0x2042: (CStorageValue) { NeL Material } }
487 0x2040: (ClassEntry) {
488 0x2060: (ClassDirectoryHeader) {
490 ClassID: (0x00000000, 0x00000c80)
492 0x2042: (CStorageValue) { Material Editor } }
493 0x2040: (ClassEntry) {
494 0x2060: (ClassDirectoryHeader) {
496 ClassID: (0x00000000, 0x00003333)
498 0x2042: (CStorageValue) { MtlBaseLib } }
499 0x2040: (ClassEntry) {
500 0x2060: (ClassDirectoryHeader) {
502 ClassID: (0x5b918e4e, 0x476fa9de)
504 0x2042: (CStorageValue) { WaveMaster } }
505 0x2040: (ClassEntry) {
506 0x2060: (ClassDirectoryHeader) {
508 ClassID: (0x5b918e4a, 0x476fa9de)
510 0x2042: (CStorageValue) { ProSound } }
511 0x2040: (ClassEntry) {
512 0x2060: (ClassDirectoryHeader) {
514 ClassID: (0x00000000, 0x00000002)
516 0x2042: (CStorageValue) { RootNode } }
517 0x2040: (ClassEntry) {
518 0x2060: (ClassDirectoryHeader) {
520 ClassID: (0x00000000, 0x00002008)
522 0x2042: (CStorageValue) { Bezier Position } }
523 0x2040: (ClassEntry) {
524 0x2060: (ClassDirectoryHeader) {
526 ClassID: (0x00000000, 0x00442313)
528 0x2042: (CStorageValue) { TCB Rotation } }
529 0x2040: (ClassEntry) {
530 0x2060: (ClassDirectoryHeader) {
532 ClassID: (0x00000000, 0x00002010)
534 0x2042: (CStorageValue) { Bezier Scale } }
535 0x2040: (ClassEntry) {
536 0x2060: (ClassDirectoryHeader) {
538 ClassID: (0x00000000, 0x00002005)
540 0x2042: (CStorageValue) { Position/Rotation/Scale } }
541 0x2040: (ClassEntry) {
542 0x2060: (ClassDirectoryHeader) {
544 ClassID: (0x00000000, 0x0d9c20ff)
546 0x2042: (CStorageValue) { Master Point Controller } }
547 0x2040: (ClassEntry) {
548 0x2060: (ClassDirectoryHeader) {
550 ClassID: (0x192f6098, 0x1bf8338d)
552 0x2042: (CStorageValue) { Editable Poly } }
553 0x2040: (ClassEntry) {
554 0x2060: (ClassDirectoryHeader) {
556 ClassID: (0x1dba1df0, 0x7e9858fe)
558 0x2042: (CStorageValue) { Base Layer } }
559 0x2040: (ClassEntry) {
560 0x2060: (ClassDirectoryHeader) {
562 ClassID: (0x00000000, 0x00000001)
564 0x2042: (CStorageValue) { Node } }
565 0x2040: (ClassEntry) {
566 0x2060: (ClassDirectoryHeader) {
568 ClassID: (0x00000000, 0x77912301)
570 0x2042: (CStorageValue) { Area } }
571 0x2040: (ClassEntry) {
572 0x2060: (ClassDirectoryHeader) {
574 ClassID: (0x00000000, 0x00000001)
576 0x2042: (CStorageValue) { Default Scanline Renderer } }
577 0x2040: (ClassEntry) {
578 0x2060: (ClassDirectoryHeader) {
580 ClassID: (0x06546546, 0x46576167)
582 0x2042: (CStorageValue) { RenderElementMgr } }
583 0x2040: (ClassEntry) {
584 0x2060: (ClassDirectoryHeader) {
586 ClassID: (0x00000000, 0x00002011)
588 0x2042: (CStorageValue) { Bezier Color } }
589 0x2040: (ClassEntry) {
590 0x2060: (ClassDirectoryHeader) {
592 ClassID: (0x00000000, 0xee448b23)
594 0x2042: (CStorageValue) { RenderEnvironment } }
595 0x2040: (ClassEntry) {
596 0x2060: (ClassDirectoryHeader) {
598 ClassID: (0x00000000, 0x00008d52)
600 0x2042: (CStorageValue) { NamedSelSetList } }
601 0x2040: (ClassEntry) {
602 0x2060: (ClassDirectoryHeader) {
604 ClassID: (0x90f2ee71, 0x8d73b8aa)
606 0x2042: (CStorageValue) { TVNode } }
607 0x2040: (ClassEntry) {
608 0x2060: (ClassDirectoryHeader) {
610 ClassID: (0x00000000, 0x4b4b1000)
612 0x2042: (CStorageValue) { Float List } }
613 0x2040: (ClassEntry) {
614 0x2060: (ClassDirectoryHeader) {
616 ClassID: (0x00000000, 0x4b4b1001)
618 0x2042: (CStorageValue) { Point3 List } }
619 0x2040: (ClassEntry) {
620 0x2060: (ClassDirectoryHeader) {
622 ClassID: (0x00000000, 0x4b4b1005)
624 0x2042: (CStorageValue) { Point4 List } }
625 0x2040: (ClassEntry) {
626 0x2060: (ClassDirectoryHeader) {
628 ClassID: (0x00000000, 0x4b4b1002)
630 0x2042: (CStorageValue) { Position List } }
631 0x2040: (ClassEntry) {
632 0x2060: (ClassDirectoryHeader) {
634 ClassID: (0x00000000, 0x4b4b1003)
636 0x2042: (CStorageValue) { Rotation List } }
637 0x2040: (ClassEntry) {
638 0x2060: (ClassDirectoryHeader) {
640 ClassID: (0x00000000, 0x4b4b1004)
642 0x2042: (CStorageValue) { Scale List } }
643 0x2040: (ClassEntry) {
644 0x2060: (ClassDirectoryHeader) {
646 ClassID: (0x00000000, 0x4b4b1015)
648 0x2042: (CStorageValue) { Block Control } }
649 0x2040: (ClassEntry) {
650 0x2060: (ClassDirectoryHeader) {
652 ClassID: (0x11793bed, 0x1f8c3646)
654 0x2042: (CStorageValue) { Block Manager Wrapper } }
655 0x2040: (ClassEntry) {
656 0x2060: (ClassDirectoryHeader) {
658 ClassID: (0x7620792b, 0x5a1b661e)
660 0x2042: (CStorageValue) { Propagation Manager Wrapper } }
661 0x2040: (ClassEntry) {
662 0x2060: (ClassDirectoryHeader) {
664 ClassID: (0xf4044794, 0x368d1139)
666 0x2042: (CStorageValue) { Scene Effect Loader } }
667 0x2040: (ClassEntry) {
668 0x2060: (ClassDirectoryHeader) {
670 ClassID: (0x087906d7, 0x294a389c)
672 0x2042: (CStorageValue) { Reaction Manager } }
673 0x2040: (ClassEntry) {
674 0x2060: (ClassDirectoryHeader) {
676 ClassID: (0x265a2326, 0x28250b30)
678 0x2042: (CStorageValue) { ParameterCollectorCA } }
679 0x2040: (ClassEntry) {
680 0x2060: (ClassDirectoryHeader) {
682 ClassID: (0x01513165, 0x4a0c66e1)
684 0x2042: (CStorageValue) { } }
685 0x2040: (ClassEntry) {
686 0x2060: (ClassDirectoryHeader) {
688 ClassID: (0x2c1a0a7b, 0x0c6f6387)
690 0x2042: (CStorageValue) { SceneAppData Latch } }
691 0x2040: (ClassEntry) {
692 0x2060: (ClassDirectoryHeader) {
694 ClassID: (0x68c22d6f, 0x5bf94f11)
696 0x2042: (CStorageValue) { BitmapPagerData } }
697 0x2040: (ClassEntry) {
698 0x2060: (ClassDirectoryHeader) {
700 ClassID: (0x781f1430, 0x0f4871a5)
702 0x2042: (CStorageValue) { MasterLayerControlManager } }
703 0x2040: (ClassEntry) {
704 0x2060: (ClassDirectoryHeader) {
706 ClassID: (0x30935afc, 0x57a52b8c)
708 0x2042: (CStorageValue) { Max Mixer Clip } }
709 0x2040: (ClassEntry) {
710 0x2060: (ClassDirectoryHeader) {
712 ClassID: (0x00000000, 0x00000001)
713 SuperClassID: 4294966784}
714 0x2042: (CStorageValue) { Grid Reference } }
715 0x2040: (ClassEntry) {
716 0x2060: (ClassDirectoryHeader) {
718 ClassID: (0x00000000, 0x17356912)
720 0x2042: (CStorageValue) { RenderEffects } }
721 0x2040: (ClassEntry) {
722 0x2060: (ClassDirectoryHeader) {
724 ClassID: (0x00000000, 0x00000100)
726 0x2042: (CStorageValue) { Shadow Map } }
727 0x2040: (ClassEntry) {
728 0x2060: (ClassDirectoryHeader) {
730 ClassID: (0x51ff028e, 0x0d7374fc)
732 0x2042: (CStorageValue) { Layer Manager } }
733 0x2040: (ClassEntry) {
734 0x2060: (ClassDirectoryHeader) {
736 ClassID: (0x00000000, 0x2cf03595)
738 0x2042: (CStorageValue) { TrackSetList } }
739 0x2040: (ClassEntry) {
740 0x2060: (ClassDirectoryHeader) {
742 ClassID: (0x00000000, 0x00002222)
744 0x2042: (CStorageValue) { Scene } } }
751 nel script material id:
752 0x64c75fec, 0x222b9eb9
753 ec 5f c7 64 b9 9e 2b 22
755 0x2180: (StorageContainer) {
756 0x0040: (StorageContainer) {
757 0x0050: (StorageRaw) {
760 Hex: 00 0c 00 00 ec 5f c7 64 b9 9e 2b 22 }
761 0x0007: (StorageContainer) {
762 0x0060: (StorageRaw) {
766 0x0007: (StorageContainer) {
767 0x0060: (StorageRaw) {
771 0x0006: (StorageRaw) {
774 Hex: 05 00 00 00 6e 6c 62 70 00 }
775 0x0003: (StorageRaw) {
778 0x0003: (StorageRaw) {
782 0x0007: (StorageContainer) {
783 0x0060: (StorageRaw) {
792 0x20e0: (StorageContainer) {
793 0x0100: (StorageRaw) {
796 Hex: cd cc cc 3d 0a 00 00 00 01 00 00 00 }
797 0x0200: (StorageRaw) {
799 String: ...@.. A........................................
800 Hex: 00 00 a0 40 00 00 20 41 01 00 00 00 03 00 00 00 08 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
801 0x0300: (StorageRaw) {
805 0x20a0: (StorageContainer) {
806 0x0100: (StorageRaw) {
813 0x20e0: (StorageContainer) {
814 0x0100: (StorageRaw) {
817 Hex: 00 00 20 41 0a 00 00 00 01 00 00 00 }
818 0x0400: (StorageRaw) {
821 Hex: 07 00 00 00 01 00 00 00 }
822 0x0200: (StorageRaw) {
824 String: ...@.. A................................
825 Hex: 00 00 a0 40 00 00 20 41 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 }
826 0x0300: (StorageRaw) {
830 0x20a0: (StorageContainer) {
831 0x0100: (StorageRaw) {
840 max2010 scene, near no fx
842 std::string CExportNel::getScriptAppData (Animatable *node, uint32 id, const std::string& def)
843 AppDataChunk *ap=node->GetAppDataChunk (MAXSCRIPT_UTILITY_CLASS_ID, UTILITY_CLASS_ID, id);
844 MAXSCRIPT_UTILITY_CLASS_ID Class_ID(0x4d64858, 0x16d1751d)
845 UTILITY_CLASS_ID 0x001020
846 #define NEL3D_APPDATA_ENV_FX (84682543)
849 0x0110: (StorageContainer) [2] {
850 0x0120: (StorageRaw) {
852 String: XH...u.. .../'......
853 Hex: 58 48 d6 04 1d 75 d1 16 // MAXSCRIPT_UTILITY_CLASS_ID
854 20 10 00 00 // UTILITY_CLASS_ID
855 2f 27 0c 05 // NEL3D_APPDATA_ENV_FX
856 06 00 00 00 } // size???
857 0x0130: (StorageRaw) {
866 Scene class references
869 References 0x2034: PARSED {
870 0: <ptr=0x000000000201f1b0> (Material Editor, (0x00000c80, 0x00000000))
871 1: <ptr=0x0000000002110e30> (MtlBaseLib, (0x00003333, 0x00000000))
872 2: <ptr=0x00000000021110d0> (Default Sound, (0x00000001, 0x00000000))
873 3: <ptr=0x00000000021118c0> (RootNode, (0x00000002, 0x00000000))
874 4: <ptr=0x00000000027be740> (RenderEnvironment, (0xee448b23, 0x00000000))
875 5: <ptr=0x00000000027c1400> (NamedSelSetList, (0x00008d52, 0x00000000))
876 6: <ptr=0x00000000027c3640> (TVNode, (0x8d73b8aa, 0x90f2ee71))
877 7: <ptr=0x00000000027c3bc0> (Grid Reference, (0x00000001, 0x00000000))
878 8: <ptr=0x00000000027c3de0> (RenderEffects, (0x17356912, 0x00000000))
879 9: <ptr=0x00000000027c4a20> (Shadow Map, (0x00000100, 0x00000000))
880 10: <ptr=0x00000000027c4cf0> (Layer Manager, (0x0d7374fc, 0x51ff028e)) }
883 References 0x2034: PARSED {
884 0: <ptr=0x0000000000f04bf0> (Material Editor, (0x00000c80, 0x00000000))
885 1: <ptr=0x0000000000f05430> (MtlBaseLib, (0x00003333, 0x00000000))
886 2: <ptr=0x0000000000f059d0> (Default Sound, (0x00000001, 0x00000000))
887 3: <ptr=0x0000000000f05ec0> (RootNode, (0x00000002, 0x00000000))
888 4: <ptr=0x0000000002b8bfb0> (RenderEnvironment, (0xee448b23, 0x00000000))
889 5: <ptr=0x0000000002b91a20> (NamedSelSetList, (0x00008d52, 0x00000000))
890 6: <ptr=0x0000000002ba2380> (TVNode, (0x8d73b8aa, 0x90f2ee71))
891 7: <ptr=0x0000000002ba38a0> (Grid Reference, (0x00000001, 0x00000000))
892 8: <ptr=0x0000000002ba3dc0> (RenderEffects, (0x17356912, 0x00000000))
893 9: <ptr=0x0000000002ba4b60> (Shadow Map, (0x00000100, 0x00000000))
894 10: <ptr=0x0000000002ba5130> (Layer Manager, (0x0d7374fc, 0x51ff028e))
895 11: <ptr=0x0000000002ba57d0> (TrackSetList, (0x2cf03595, 0x00000000)) }
898 References 0x2034: PARSED {
899 0: <ptr=0x0000000001d96380> (Material Editor, (0x00000c80, 0x00000000))
900 1: <ptr=0x0000000001d96910> (MtlBaseLib, (0x00003333, 0x00000000))
901 2: <ptr=0x0000000001d96b30> (Default Sound, (0x00000001, 0x00000000))
902 3: <ptr=0x0000000001d97020> (RootNode, (0x00000002, 0x00000000))
903 4: <ptr=0x0000000001da0870> (RenderEnvironment, (0xee448b23, 0x00000000))
904 5: <ptr=0x0000000001da6020> (NamedSelSetList, (0x00008d52, 0x00000000))
905 6: <ptr=0x0000000001daf540> (TVNode, (0x8d73b8aa, 0x90f2ee71))
906 7: <ptr=0x0000000001db0610> (Grid Reference, (0x00000001, 0x00000000))
907 8: <ptr=0x0000000001db0880> (RenderEffects, (0x17356912, 0x00000000))
908 9: <ptr=0x0000000001db1620> (Shadow Map, (0x00000100, 0x00000000))
909 10: <ptr=0x0000000001db1940> (Layer Manager, (0x0d7374fc, 0x51ff028e))
910 11: <ptr=0x0000000001db1d30> (TrackSetList, (0x2cf03595, 0x00000000)) }
913 References 0x2034: PARSED {
914 0: <ptr=0x0000000000de4060> (Material Editor, (0x00000c80, 0x00000000))
915 1: <ptr=0x0000000000de45f0> (MtlBaseLib, (0x00003333, 0x00000000))
916 2: <ptr=0x0000000000de5050> (ProSound, (0x476fa9de, 0x5b918e4a))
917 3: <ptr=0x0000000000de61b0> (RootNode, (0x00000002, 0x00000000))
918 4: <ptr=0x0000000000e044e0> (RenderEnvironment, (0xee448b23, 0x00000000))
919 5: <ptr=0x0000000000e09ee0> (NamedSelSetList, (0x00008d52, 0x00000000))
920 6: <ptr=0x0000000000e14790> (TVNode, (0x8d73b8aa, 0x90f2ee71))
921 7: <ptr=0x0000000000e15bb0> (Grid Reference, (0x00000001, 0x00000000))
922 8: <ptr=0x0000000000e15e20> (RenderEffects, (0x17356912, 0x00000000))
923 9: <ptr=0x0000000000e16bc0> (Shadow Map, (0x00000100, 0x00000000))
924 10: <ptr=0x0000000000e16ee0> (Layer Manager, (0x0d7374fc, 0x51ff028e))
925 11: <ptr=0x0000000000e172d0> (TrackSetList, (0x2cf03595, 0x00000000)) }
929 01 00 00 00 // one face
930 04 00 00 00 // four edges/vertices
936 01 00 00 00 // nomnom
937 01 00 00 00 // nomnom
938 03 00 00 00 // nomnom
942 c2 00 00 00 // 194 faces
943 04 00 00 00 // four vertices
950 08 00 00 00 // more magic?!
951 01 00 00 00 // cut from local 1
952 03 00 00 00 // to local 3
953 04 00 00 00 // four vertices
960 08 00 00 00 // more magic?!
961 01 00 00 00 // cut from local 1
962 03 00 00 00 // to local 3
984 04 00 00 00 00 00 00 00 2d 00 00 00 31 00 00 00
986 0c 00 00 00 08 00 00 00
987 01 00 00 00 03 00 00 00
989 14 00 00 00 13 00 00 00 19 00 00 00 18 00 00 00
996 04 00 00 00 13 00 00 00 15 00 00 00 1a 00 00 00 19 00 00 00
999 02 00 00 00 00 00 00 00 04 00 00 00 15 00 00 00 16 00 00 00 1b 00 00 00 1a 00 00 00 39 00 04 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 16 00 00 00 17 00 00 00 1c 00 00 00 1b 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 17 00 00 00 14 00 00 00 18 00 00 00 1c 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 0b 00 00 00 0a 00 00 00 1f 00 00 00 20 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0a 00 00 00 09 00 00 00 1e 00 00 00 1f 00 00 00 31 00 0c 00 00 01 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0c 00 00 00 0b 00 00 00 20 00 00 00 21 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 0
1003 3 0x0100: (StorageArraySizePre) [6] { { 0x0, -5.000000 -5.000000 0.000000 } { 0x1000000, 5.000000 -5.000000 0.000000 } { 0x0, -5.000000 5.000000 0.000000 } { 0x1000000, 5.000000 5.000000 0.000000 } { 0x0, 5.000000 -5.000000 10.000000 } { 0x0, 5.000000 5.000000 10.000000 } }
1004 4 0x010a: (StorageArraySizePre) [7] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 3 } { 0x0, 0 1 } { 0x0, 1 4 } { 0x0, 5 3 } { 0x1, 4 5 } }
1005 5 0x011a: (StorageRaw) {
1007 String: ........................0................................. .........
1010 02 00 00 00 // 2 faces!
1011 04 00 00 00 // 4 vertices
1014 01 00 00 00 // shared
1015 03 00 00 00 // shared
1020 04 00 00 00 // 4 vertices
1021 03 00 00 00 // shared
1022 01 00 00 00 // shared
1031 3 0x0100: (StorageArraySizePre) [8] { { 0x0, -5.000000 -5.000000 0.000000 } { 0x0, 5.000000 -5.000000 0.000000 } { 0x0, -5.000000 5.000000 0.000000 } { 0x0, 5.000000 5.000000 0.000000 } { 0x1000000, 5.000000 -5.000000 10.000000 } { 0x1000000, 5.000000 5.000000 10.000000 } { 0x0, -5.000000 -5.000000 10.000000 } { 0x0, -5.000000 5.000000 10.000000 } }
1032 4 0x010a: (StorageArraySizePre) [10] { { 0x8, 2 0 } { 0x8, 3 2 } { 0x8, 1 3 } { 0x8, 0 1 } { 0x8, 1 4 } { 0x8, 5 3 } { 0x0, 4 5 } { 0x0, 4 6 } { 0x0, 7 5 } { 0x0, 6 7 } }
1033 5 0x011a: (StorageRaw) {
1035 String: ........................1.....................................!................................. .........
1038 03 00 00 00 // 3 faces
1039 04 00 00 00 // 4 vertices
1049 04 00 00 00 // 4 vertices
1052 04 00 00 00 // shared vertex
1053 05 00 00 00 // shared vertex
1058 04 00 00 00 // 4 vertices
1059 05 00 00 00 // shared vertex
1060 04 00 00 00 // shared vertex
1067 ** triangulation is stored inside the polyobject somewhere with the faces!
1069 3 0x0100: (StorageArraySizePre) [5] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, -3.931087 3.378710 0.000000 } { 0x0, 3.007738 4.420538 0.000000 } { 0x0, 5.070167 -1.944196 0.000000 } }
1070 4 0x010a: (StorageArraySizePre) [5] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 4 } { 0x0, 0 1 } { 0x0, 4 3 } }
1071 5 0x011a: (StorageRaw) {
1073 String: ............................0.....................
1076 01 00 00 00 // 1 face
1079 00 00 00 00 // v0 at idx 1
1083 30 00 // triangulation egdes should both touch vertex 0... locally 1?
1092 3 0x0100: (StorageArraySizePre) [5] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, -3.931087 3.378710 0.000000 } { 0x0, 3.007738 4.420538 0.000000 } { 0x0, 5.070167 -1.944196 0.000000 } }
1093 4 0x010a: (StorageArraySizePre) [5] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 4 } { 0x0, 0 1 } { 0x0, 4 3 } }
1094 5 0x011a: (StorageRaw) {
1096 String: ............................0.....................
1102 01 00 00 00 // v1 at idx 2
1105 30 00 30 00 // triangle edges should both touch vertex 1... locally 2?
1106 01 00 00 00 01 00 00 00
1107 00 00 00 00 01 00 00 00
1108 02 00 00 00 03 00 00 00
1109 02 00 00 00 01 00 00 00 // hm!
1110 04 00 00 00 oops deleted }
1113 3 0x0100: (StorageArraySizePre) [5] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, -3.931087 3.378710 0.000000 } { 0x0, 3.007738 4.420538 0.000000 } { 0x1, 5.070167 -1.944196 0.000000 } }
1114 4 0x010a: (StorageArraySizePre) [5] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 4 } { 0x0, 0 1 } { 0x0, 4 3 } }
1115 5 0x011a: (StorageRaw) {
1117 String: ............................0.....................
1127 30 00 // magic // triangle edges should touch vertex 4 .. locally 3?
1128 01 00 00 00 // magic
1129 01 00 00 00 // triangulate from local 1
1130 03 00 00 00 // to local 3
1131 00 00 00 00 // triangulate from local 0
1132 03 00 00 00 // to local 3 }
1135 3 0x0100: (StorageArraySizePre) [3] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, 5.070167 -1.944196 0.000000 } }
1136 4 0x010a: (StorageArraySizePre) [3] { { 0x0, 1 2 } { 0x0, 0 1 } { 0x1, 2 0 } }
1137 5 0x011a: (StorageRaw) {
1139 String: ..........................
1158 31 00 /// 20 00 = info, last; 10 00 = smoothing groups; 01 00 = ??
1160 ff ff ff ff // smoothing group
1161 01 00 00 00 03 00 00 00 // cut 1
1162 00 00 00 00 03 00 00 00 // cut 1 }
1166 01 00 = unknown, uint32 or pair<uint16> '01 00 01 00'
1169 08 00 = material id, uint16 (max shows index + 1, so starts at 1, binary starts at 0)
1170 10 00 = smoothing groups, uint32
1171 20 00 = triangulation, pair<uint32> per cut
1175 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 21 00 01 00 01 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // selected
1176 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 21 00 00 00 01 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // unselected - no difference *** byte changed from 1 to 0 ???
1177 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // material id changed to '5', 08 00
1178 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // clear selection unselected -- no diff
1179 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // use subdiv -- no diff
1180 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // vertex colors -- no diff