Yes. Well, possibly more than one Shape3D, the 3DS loader actually brings them in as a TransformGroup.
Texturing problems around joints is just a trade-off. In a game where there will be 20+ players on screen at a time, mesh morphing and interpolating is out of the question for our target system requirements. As long as models are designed with this knowledge from the start, major problems (so it seems) can be avoided. This same type of animation can be seen all over--I believe Asheron's Call is one example, and I think ActiveWorlds as well. Of course we're still in development, so everything is up in the air ;) But so far I'm more than happy with this technique, visually and performance-wise. Scott ----- Original Message ----- From: "Chad Zalkin" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, April 23, 2002 1:14 AM Subject: Re: [JAVA3D] Animation > Are you saying that the geometery benieth each joint is a spearate object so > that the character is more than one Shape3D? This seems the easiest way to > go for simple bones animation, but how would you deal with clothes bending > around joints or ensuring you don't have creases or worse, gaps? > > Thanks > > ----- Original Message ----- > From: "Scott" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Monday, April 22, 2002 6:07 PM > Subject: Re: [JAVA3D] Animation > > > > I'm using a combination of keyframe and (cheap) skeletal animation for my > > characters. Well, not true "skeletal", but fully jointed models (torso, > > hips, knees, shoulders, elbows), and then I come up with joint and bone > > rotation and transformation info (roughly modelled in Max). Each body > part > > is loaded with the rotation joint at the origin, rotated, and transformed > to > > the correct location. > > > > Then a real simple interpolator creates the transition from any > orientation > > to any other orientation, and a sequencer controls the transition from > > keyframe to keyframe. > > > > The "bones" are each contained in a tranform group, starting with the > torso > > at the top, then the upper arms/upper loegs ad head, then the lower > > arms/lower legs. Each transform group affects all the children, making > this > > really simple. > > > > This whole thing took me about 2 hours to put together in code. Took much > > more time to come up with the various joint transforms and rotations. But > > the cool thing is there's no limit to the combinations of animations, and > > more sequences don't have a performance or memory impact, as mesh morphing > > would. > > > > The over head for adjusting the transformation/rotation of all the "bones" > > (which are really just body parts), for one character every single frame, > is > > about 8 FPS (when running at a normal average of 120FPS). For the other > > characters within viewing range, I only run the joint animation when > they're > > fairly close to the viewer... > > > > Scott > > Virtopia 2 3D Project > > http://vp2.onebigvillage.com > > ----- Original Message ----- > > From: "Chris Forrester" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Monday, April 22, 2002 4:55 PM > > Subject: Re: [JAVA3D] Animation > > > > > > > Character Animation = FAQ material. > > > > > > Keyframe animation is the speediest way to go, since you can use very > > simple > > > interpolation routines for smooth animation, and just feed that into the > > > TransformGroup. Plus with this, you can share vertex information with > > BYREF > > > arrays to save lots of memory. > > > > > > Morph animations, which is what you are talking about with 1 & 2, are by > > far > > > the worst way to go for character animations. Huge, huge memory > > consumption, > > > and you cannot do LOD's on this either (well you can, but the memory for > > > this is insane, since you will need 2d arrays of vertex information). > > > > > > The third option is what you want, and for finely detailed animation you > > > will want bones animation. For this, you will have increased memory > > > consumption because you cannot share vertex info (since they will all be > > > updated with the bones information) > > > > > > So, you should read animation directly from max (and if you haven't > worked > > > with maxSDK before, there will be many a sleepless night hacking around > > all > > > the inconsistancies that will pop up), and either use the rotation > values > > of > > > the components for a simple keyframe solution, or use the bones > > information > > > in max to set up skeletons and then integrate that with your other > > > transforms in your application. > > > > > > Needless to say, since you will have to code everything yourself (Though > I > > > will release my 3dsmax exporter soon, and it contains keyframe animation > > > support), this will be a daunting task indeed. > > > > > > And.. optimizing everything and creating countless remapping tables for > > > geometry/texture/materials will take a lot of time, too, and must - > MUST - > > > be planned for from the beginning. > > > > > > Good luck, and if you need any help, feel free to email me. > > > > > > >From: Chad Zalkin <[EMAIL PROTECTED]> > > > >Reply-To: Discussion list for Java 3D API > <[EMAIL PROTECTED]> > > > >To: [EMAIL PROTECTED] > > > >Subject: [JAVA3D] Animation > > > >Date: Mon, 22 Apr 2002 14:46:32 -0600 > > > > > > > >What is the best way to do Character animation? I will have a > potential > > > >for a large (could be 20 or 30 or more) number of characters on the > > screen > > > >at any given time, all animated. (I am willing to LOD the characters > as > > > >more than 10 or so come on screen if I need to, but I hope I can void > > that > > > >and have good performance). > > > > > > > >I will have fully animated characters (exported from 3d studio max as > 3ds > > > >files or my own format). Many characters will be based from the same > > model > > > >(identical or almost identical... model color changed, texture changed, > > or > > > >extra models added to the same Branch/TransformGroup to appear as > > clothing > > > >or items held) > > > > > > > > > > > >I see three options here: > > > >1) Create each frame as a separate model and use switch groups. (Too > > much > > > >memory required) > > > >2) Create each frame as separate point and texture coord arrays and > call > > > >setCoordinates() and setTextureCordinates() every frame (same memory > > > >concern? Speed? Sharing issues?) > > > >3) Create some mathematical formula for positionals (IK/Bones/some cool > > > >parametric placement function, keyframing).. (again speed issues? And > > > >again, could this be a sharing issue or will cloning techniques fix > > that?) > > > > > > > >When I export the characters from MAX, I don't plan on reading > animation > > in > > > >from the file, if I need to change point arrays, I plan on creating my > > own > > > >format to hold the frames. If I need to do a switch group, I plan on > > > >loading a series of max files (and optimising!!). Am I looking in the > > > >wrong direction? > > > > > > > >Anyone have any insight into the issue? > > > >Thanks a lot > > > >Chad Zalkin > > > > > > > > > > >=========================================================================== > > > >To unsubscribe, send email to [EMAIL PROTECTED] and include in the > > body > > > >of the message "signoff JAVA3D-INTEREST". For general help, send email > > to > > > >[EMAIL PROTECTED] and include in the body of the message "help". > > > > > > > > > > > > > > > ------------------------ > > > > > > Chris Forrester > > > > > > http://www.geocities.com/Psionic81 > > > > > > > > > _________________________________________________________________ > > > Get your FREE download of MSN Explorer at > > http://explorer.msn.com/intl.asp. > > > > > > > > > =========================================================================== > > > To unsubscribe, send email to [EMAIL PROTECTED] and include in the > > body > > > of the message "signoff JAVA3D-INTEREST". For general help, send email > to > > > [EMAIL PROTECTED] and include in the body of the message "help". > > > > > =========================================================================== > > To unsubscribe, send email to [EMAIL PROTECTED] and include in the > body > > of the message "signoff JAVA3D-INTEREST". For general help, send email to > > [EMAIL PROTECTED] and include in the body of the message "help". > > > > =========================================================================== > To unsubscribe, send email to [EMAIL PROTECTED] and include in the body > of the message "signoff JAVA3D-INTEREST". For general help, send email to > [EMAIL PROTECTED] and include in the body of the message "help". =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".