| Rocket Club: Home Page
 Community:Bulletin Board
 Developer Pages:Overview
 Developers:Development_Notes
 Synthetic Reality | 
            
                | Inverse
                KineWHATics? Um... in the world of 3D model
                animation there are two basic schools of thought.
                One is that the computer should do everything.
                You tell it that your four legged creature is
                'running' and it works out how each leg should be
                bent in every display frame so as to give the
                illusion of running, while at the same time feet
                connect with the ground realistically, the chest
                heaves with each breath, and the Klargon
                Warrior-Slave riding the beast also bounces up
                and down appropriately. The other school
                says "Man, that looks awful!" and
                realizes that humans are very discerning when it
                comes to noticing un-realistic body motion. Even
                more so with animals they have experience with
                (people, horses, dogs, etc.) This group feels
                only a talented artist has any hope of making an
                animation look believable. Well, OK,
                there's the third group that likes putting on
                blue suits covered with ping pong balls and
                dancing around in an empty room while a computer
                with a camera takes notes. The point is
                that the first group has some initial startup
                issues and after that can have an infinite
                variety of animations for free. Animations that
                do, in fact, probably look a little sucky. But
                the second two groups either have to pay top
                dollar to an animator, or buy a lot of extra ping
                pong balls, for every new animation they need. Oh, sorry,
                inverse kinematics is the task of figuring out
                "What angle do I need to bend the knee so
                that his foot is on the ground, when his hip is
                right HERE. (i.e. given the end point constraints
                caused by gravity, ground, and previous motion,
                figure out all the in-between values for joint
                rotations.. preferably without actually bending
                things in directions which would normally make a
                real animal scream) |  
                | Which
                School does Rocket Club Attend? Rocket Club waffles. For
                each animatable object, Rocket Club expects you
                to create a certain number of 'poses' (animation
                keyframes). For example, your little creature
                standing, sitting, jumping, etc. Some actions
                require multiple poses (walking requires you to
                make 8 poses). At any given
                time, your little creature is moving FROM one
                pose and TOWARDs a new pose. The computer then
                calculates all the in-between frames
                automatically, and then does a little IK work
                (try to say IK (inverse kinematics) as much as
                possible, so you sound really smart. If someone
                challenges you on it, just say "which
                quaternion library do you use?" (I wrote my
                own!)) for special things like gluing your feet
                to the ground (when appropriate) or your butt to
                the ejection seat. Rocket club can
                also (or at least plans to) inject a little
                random variance to add a little spice and
                individuality. Eventually I have to get to the
                spot where monsters can 'bite' you and at that
                point there will be a lot of fudging to make them
                turn their head in a way to look dangerous. Also, rocket
                club is set up to re-use animations with
                different objects, so, for example, all bipedal
                two-armed creatures COULD share an animation.
                Admittedly I have not gotten this to work very
                well yet, sorry. |  
                | So Why
                Bring This Up Now? I needed a spot to
                document the frame numbers I am using, since
                right now they must be the same for all
                animations. Eventually I may allow the plan file
                to override via some sort of intermediary
                animation hints file. (Something like "use
                animation from THIS model file HERE, and use
                frame 34 for the flying frame") So, the rest of
                this page is just what each of the frames are
                for. Hopefully with a visual example: 
                    POSEStandingIndex
                        (1) // the rest pose we return
                        to between other posesPOSEWalkingIndex
                        (10) // first of 8
                        poses for walkingPOSEDrivingIndex
                        (20) // Seated in
                        vehiclePOSERidingIndex
                        (22) // Riding an
                        animalPOSESeatedIndex
                        (24) // sitting in a
                        chairPOSESquattingIndex
                        (26) // cross legged
                        on the groundPOSEJumpingIndex
                        (28) // in mid jumpPOSEFlyingIndex
                        (29) // Superman in
                        flight Pose numbers are
                Milkshape animation frame numbers. Note that
                animations include not only the angles of every
                joint, but also a position offset. When an
                animation is played, it does not modify the
                action physical location of the 'root' of the
                character. Hence an animation which is to be used
                for 'sitting cross legged on the ground' will
                actually offset the whole model to be 'below' the
                root node (which will be about 1 meter above the
                ground). There is no
                substitute for experience here, so good luck! I
                personally have experienced some frustration in
                this process and had to re-do my work a lot
                (mainly when I neglected to select all the bones
                I needed). I strongly advise carefully keeping
                backups of the file BEFORE you start to fiddle
                with the animation, and don't just overwrite it
                when you're done, at least not until you have
                THOROUGHLY confirmed that you didn't break
                anything. I advise just frequently saving to
                files with ever increasing version numbers, so
                you can always go back to some previous version
                and start over. |  
                | POSEStandingIndex
                (1) // the rest pose we return to
                between other poses 
 POSEWalkingIndex
                (10) // first of 8 poses for walking 
 POSEWalkingIndex
                (11) // 2nd of 8 poses for walking 
 POSEWalkingIndex
                (12) // 3rd of 8 poses for walking 
 POSEWalkingIndex
                (13) // 4th of 8 poses for walking 
 POSEWalkingIndex
                (14) // 5th of 8 poses for walking 
 POSEWalkingIndex
                (15) // 6th of 8 poses for walking 
 POSEWalkingIndex
                (16) // 7th of 8 poses for walking 
 POSEWalkingIndex
                (17) // 8th of 8 poses for walking 
 POSEDrivingIndex
                (20) // Seated in vehicle 
 POSERidingIndex
                (22) // Riding an animal 
 POSESeatedIndex
                (24) // sitting in a chair 
 POSESquattingIndex
                (26) // cross legged on the ground 
 POSEJumpingIndex
                (28) // in mid jump 
 POSEFlyingIndex
                (29) // Superman in flight 
 |  
                |  |  |