need some HELP !! > How is Keyframe Part of 3DS structured

anyone has any info how the Keyframe part of 3DS is structured ? I first read couple of chunks of KeyFrame portion of 3DS, and so far I only get:

object name:
beginning/End frames
Object name and its hierarchy.

However when reading object name and hierarchy [B010]chunk, String, int, int, int, 8,2,2,2 bytes each, I get this
[EX]
name : Sphere03
value1: 16384
value2: 0
value3: 65535
This is the Dinosur Keyframe animation that can be found in 3Dmax4 dir.

the Value3 is supposed to be the object hierarchy, with the Main hierarchy starting at -1, and going down like a Tree. How come I am at 65535, and where are the previous object informations ?

int this tutorial they had something like this :

object hierarchy
name

    A      -1
    B       0                 This example is taken
    C       1                 from 50pman.3ds
    D       2
    E       1                 I would really reccomend
    F       4                 having a look at one of the
    G       5                 examples with the hierarchy
    H       1                 numbers to help work it out.
    I       7
    J       8
    K       0
    L      10
    M      11
    N       0
    O      13
    P      14


                       A
     +-----------------+----------------+
     B                 K                N
+----+----+            |                |
C    E    H            L                O
|    |    |            |                |
D    F    I            M                P
     |    |
     G    J

RIght now Im not sure what is going on. Im going to read the rest of the stuff from the remaining chunks of the Keyframe part and will try to put them together …

However if some of you had done Keyframe animation with 3DS files could you explain to me what other data holds, and how should it be used to animate the Model

[This message has been edited by jubei_GL (edited 09-06-2002).]

I was thinking …hmm … Since MANY developers use 3Dmax as a primary tool to create 3D objects for their games, I would assume that DISCREET had to supply them with detailed description of 3DS file format … Now , I see that an unfinished version of Unreal Tournament 2K3, can make its way on the net with NO PROBLEM at all, how come an OFFICIAL copy of 3DS file format is NOWHERE to be found ???

Im loading bunch of data, and I have No idea what it represents …

haho?

I’ve answered in the begginers forum, but since the question is different…

-1 means the object is a root object, that is, doesn’t inherit anything from anyone. There may be more than one.

hmm … thx for reply … I will look for those files .
Thx

NO PROBLEM at all, how come an OFFICIAL copy of 3DS file format is NOWHERE to be found ???

Because the 3DS file format is obsolete and dead.
Discreet does not support dead formats.

http://sparks.discreet.com/downloads/downloadshome.cfm

This page has a 3ds File Format Toolkit which might be useful for you.

-Sundar

Originally posted by Syslock:
Because the 3DS file format is obsolete and dead.
Discreet does not support dead formats.

Hmm if 3DS is obsolete, what type of format are Video Games / PC games companies using if they want to develop their 3D models in 3Dmax and export them to their engines ??

This is very off topic, but most places I know of write their own exporter which exports to a format tailored to their engine. 3dsmax (and Maya, and pretty much every modeler) has an extensive plug-in SDK, which comes part of the standard install. Look for it in MAXSDK on your CD. Lots of samples and a somewhat hard-to-decipher API documentation file are there, too.

When you license middle-ware, that middle-ware comes with a tool chain, too; some people say that the most value you get from middle-ware is in a complete end-to-end tool chain (rather than any specific graphics code mojo). I tend to agree :slight_smile:

the Value3 is supposed to be the object hierarchy, with the Main hierarchy starting at -1, and going down like a Tree. How come I am at 65535, and where are the previous object informations ?

well if you’ve declared that as an ‘unsigned short int’ which gets set to -1 and you’ve printf’d %u then you’ll get 65535… probably what’s happened… use signed types when you’re dealing with negative values…

Hmm if 3DS is obsolete, what type of format are Video Games / PC games companies using if they want to develop their 3D models in 3Dmax and export them to their engines ??

Try ASE.

thx for input everyone … for now I will play with 3DS and see what happens … right now, I just started to read simple animation that comes with 3DMax (scientyst type guy walks in the same place) … Then I run debug to see exactly which chunks of Animation are stored in the 3DS file what their particualr size is …

This is what I got :

4D4D
ID size
B000
–B00A 21
–B008 14
–B009 10

ID size

-----[ RUN1 ]-----

B002 root 12808
–B030 08
–B010 18
–B013 18
–B020 5726
–B021 6994
–B022 38
return

-----[ RUN2 ]-----
B002 root 12795
–B030 08
–B010 23
–B013 18
–B020 5708
–B021 6994
–B022 38

.
.
.
.
.
.
x 48 times …
Sometimes the read chunks differed . There were cases where additional chunks were presend, like B014 & B011 …

I got the 3DS SDK files, and now I have good idea what each chunks represents, what it holds, and what its size should be…

Once Im finished, (IF I EVER BE lolo) I will put a Small Tutorial , on how to load Models w/animation from 3DS files. IF anyone will be interested that is …

I’d hazard a guess that there would be a lot of interest in a legible example of loading keyframe animation data from .3DS files.

Good luck; I look forward to hearing from you again soon!

/p2

well, I got little further this time… Right now I am able to read position of Every Object ( by Object I mean the object that defines the Skeleton, you know how the skeleton that is used to animate 3D model, the way it is built ), through out whole animation … I have its origin in the 3D space ( but will have to reverse the coordinate system of Max ), and its hierarchy …

Right now, Im trying to find out Where the information about how many objects define the Skeleton is stored … I thought they would put that info in the header of B00A - B009, but its not there … I will probably have to search in chunks that define Model … Kind of stupid of them , not to put that thing with Keyframes chunks

I checked x,y,z values of my first object(Bip01) that I got from my program, with those from 3Dmax (Bip01), for frame 0 and 317 and they are the same … Happy Happy

[This message has been edited by jubei_GL (edited 09-08-2002).]