07-13-2006 10:53
Some ideas:

1) Multi-person animation items
  1. As these aren't tied to a single avatar, to play them you need information passed when they are played:
    1. animation name
    2. list of avatars (give too many, extras ignored, too few and some parts aren't filled - one hand shaking)
    3. a location and rotation in region coordinates
  2. So a script to perform a handshake would pick a location midway between the two people
  3. Anyone the script doesn't already have animate permission for is asked to provide it
  4. The opening state of the animation is held until all parts are in position or a timeout expires
    1. in a handshake, only the two avatar's right hand tags would be set to animate
    2. the right hands would move toward the target location
    3. if the arm reaches full extention and the hand isn't in position yet, the avatar's position is adjusted to close the gap, automatically activating the avatar's walk animation in the process
    4. when the hands are in the animation's starting position, the animation starts
    5. once the animation has ended, the avatar's hand blend back into their standard (or overridden) positions
  5. Dances would work the same way, but involve more joints than a handshake
  6. Except for needing more information to start it, these multi-person animations would be treated just like any other animation


2) Hard and soft blending of animations
  1. The existing priority system works for hard mixing animations on separate parts of the skeleton...
  2. ...But we also need a way to soft blend two animations over the same joints
  3. This could only be done with in-game tools (unless a 3rd party program was later made)
  4. Needs an animation UI tool to step through an animation's keyframes and tweek them
  5. The tweeks become a new BVH file where the tweeks are variations from the default pose
  6. So someone could adjust an existing animation without modifying it
    1. a "scratch head" animation might not account for an avatar's prim head, for example
    2. load the animation into the tweeker UI, load or create a new offset animation as well
    3. step through the animation moving the avatar's joints where needed
    4. the offsets are saved to the second animation object.
    5. when done, you can re-create the correct behavior by playing both animations at once
  7. These offset animations would not be exportable (they wouldn't make much sense if you could)
  8. Animation playback commands will need a flag (REPLACE or COMBINE) to choose hard or soft blending
  9. (OR... Conflicting animations with the same priority can be COMBINED by default, but that's debatable)


3) All system animations need a UI to replace them
  1. This won't affect the AO market, since that is mostly open-source
  2. It's just common sense!
  3. Give me a list of system animation triggers and I'll assign one or more animations to each
  4. Nuff' said.


4) Ragdoll on individual joints
  1. This would break away from the BVH model, unfortunately... Unless there's a way I don't know.
  2. If all the left arm joints can be marked as "ragdolled", then limpness can be incorporated into animations
  3. (Not THAT sort of limpness!)
  4. Also, whole-body ragdoll frames can be added into an animation
    1. "explosion_throw" animation...
    2. solid keyframes starting the knocked-back-off-your-feet animation
    3. then ragdoll is turned on and the momentum started in the animation throws the avatar backwards


Everything above that applies to animations also applies to single-frame animations, or poses. By combining an existing pose with your own custom offset pose, you can adjust how your avatar sits in a chair or "cuddles" with another avatar. This gets around the all-too-common problem of one-size-fits-all animations NOT fitting all.

I also suggest expanding the avatar body part size appearance sliders to go with all this. Then people could make "Tinies" entirely in-world, from scratch, with all animations, etc. (As well as who knows what other creative ideas...)

~ Tiger Crossing


EDIT: Sorry about the previous bad formating... Back from meeting now, and I've fixed it.
_____________________
~ Tiger Crossing
~ (Nonsanity)