Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Problem with hip-leg movement not translating to animation

Amity Slade
Registered User
Join date: 14 Feb 2007
Posts: 2,183
03-26-2008 12:25
I'm having a problem with my animations that I do not know how to solve. I'm using Poser 7 to create my animations.

It is most apparent with standing animations, in which the avatar's hips move (on the pitch up-down axis), while the legs are intended to stay planted on the ground.

In Poser 7, I try to acheive this effect with the help of Inverse Kinematics. Whenever setting the hip rotation in a key frame, I turn on IK for both legs. After moving the hips, I turn IK back off.

When I preview the animation in Poser, it works perfectly. The hips are moving, while the legs stay planted in place.

When I upload the animation to SL, it plays differently. Instead of the legs moving agaisnt the hip motion frame-for-frame (to keep the planted-in-place effect), the legs jerk around. It appears that on some frames, the legs don't move at all, and then on other frames they snap into place.

Because this is hard to describe in text, I'm attaching two files (in a .zip file). One is the .avi file showing the way the animation looks in Poser (loop the playback). The other is the .bvh that is exported from it, which will show the jerky motion of the legs when you preview it in the SL animation upload screen. If you turn the avatar so you're looking at it from the side in the preview screen, you can see the effect clearly (and set it to loop). (I could also give you the SL animation.)

It's clearest with the hips-legs, but it happens whenever I try to acheive the effect of a body part in the trunk moving, while keeping the hands or feet in the same place (e.g., moving the chest but keeping the hands planted).

Here are the steps I went through to make that animation:

1. I start with frame 1, just zeroing out all the joints (with joint editor, 'zero figure'). The frame rate is set to 12 fps.
2. Next I add frame 13, and go to frame 13. I set IK for both legs. I move the hips 'pitch up-down' to 10. I also moved the abdomen to 'bend back-forward' of -10. Then I turn off IK for the legs. Finally, I go to the animation palette to set a keyframe for all elements.
3. Next I add frame 25, and go to frame 25. I just zero out all the joints (with joint editor, 'zero figure'), and set a keyframe for all elements in the animation palette. (I think setting the keyframe for all elements, after using the 'zero figure', is redundant, but I'm superstitious.)
4. Next I add frame 37, and go to frame 37. I set IK for both legs. I move the hips 'pitch up-down' to -10, and also the abdomen 'bend back-forward' to 10. Then I turn off IK for the legs. Finally, I go to the animation palette to set a keyframe for all elements.
5. Next I add frame 49, and go to frame 49. I zero out the figure with the joint editor 'zero figure,' and then set a keyframe for all elements.
6. I preview the animation in a loop in Poser, and it looks fine (except the slight 'hiccup' that comes from the loop when playing frames 49-1, but I expect that).
7. Now I resample keyframes, everything, so that all 49 frames are keyframes. I preview the animation to see if this changed the motions for some reasons, but it doesn't, it looks just the same.
8. Finally, I adjust each rotation of each joint by 1 degree in frame 1, to turn frame 1 into the 'reference frame' for SL.

The attached .avi file shows a playback of frames 2-49.

This problem is driving me crazy. I would appreciate any help.
Crystal Falcon
Registered Silly User
Join date: 9 Aug 2006
Posts: 631
03-26-2008 13:06
Your bvh plays fine loaded into QAvimator too, so my only guess, since the motion is so subtle and slowly happens over such a long time, is maybe the issue is because of SL's optimization? What happens if you make it happen in a much shorter period of time?
_____________________
TP to Crystal's Facets in world:
http://slurl.com/secondlife/Kress/120/5/146/

Shop my natural AO poses, clothing, tools with XStreet:
Amity Slade
Registered User
Join date: 14 Feb 2007
Posts: 2,183
03-26-2008 13:26
From: Crystal Falcon
Your bvh plays fine loaded into QAvimator too, so my only guess, since the motion is so subtle and slowly happens over such a long time, is maybe the issue is because of SL's optimization? What happens if you make it happen in a much shorter period of time?


I sped up the animation by re-timing it in Poser (retime animation; source frames 2-49; destination frames 2-25; excess frames deleted). Then I exported and previewed it in the upload window.

The problem was still there, though it behaved a bit differently. The leg problem looked less jerky, but it was still there (the legs move with the hips a while, then back into place).

The movements aren't really subtle from frame to frame. I've played with it on other animations to be sure that the leg joint rotations were moving at least .1 of a degree from frame to frame, and that doesn't solve the problem.

If it's a problem in the SL optimization, the next questions would be (1) what is the optimization doing and (2) how can I deal with it?
Bree Giffen
♥♣♦♠ Furrtune Hunter ♠♦♣♥
Join date: 22 Jun 2006
Posts: 2,715
03-26-2008 17:51
Well I don't have poser but I looked at the animation in avimator and in SL. It certainly seems like the type of problem that the SL optimization causes. What it does I believe is remove frames that are too similar to each other. It really messes up smooth subtle animations. The fix? Make the animation more exaggerated. Not crazy exaggerated but just enough so that SL can optimize the movement and still look good.
Crystal Falcon
Registered Silly User
Join date: 9 Aug 2006
Posts: 631
03-26-2008 22:29
From: Amity Slade
The movements aren't really subtle from frame to frame. I've played with it on other animations to be sure that the leg joint rotations were moving at least .1 of a degree from frame to frame, and that doesn't solve the problem.


;-) Don't forget the optimization looks at all the axis of rotation too...because your animation is only on one axis AND very tiny motion (I almost couldn't see it in the preview until I rotated and zoomed in) it is totally affected. Since your changes did affect it, doesn't that prove it?

As Bree said, make the motion more gross and dramatic, once you get it so it's apparent enough to not be optimized out, then you can tone it down to what works well perhaps?

Good luck, I'm sure you'll find where it works best! :)
_____________________
TP to Crystal's Facets in world:
http://slurl.com/secondlife/Kress/120/5/146/

Shop my natural AO poses, clothing, tools with XStreet:
Amity Slade
Registered User
Join date: 14 Feb 2007
Posts: 2,183
03-27-2008 14:31
I had tried before to try to examine frame-by-frame to see if the rotations were moving enough without success. But based on the responses here, I tried some more animations last night to see if I could work out the problem.

I had better success last night, figuring out how to apply "linear" spline in Poser to certain sections, instead of the Poser 7 default curve interpolation. So by using the linear spline, I could be assured that if something moved 3 degrees from frame 1 to 13 (with 1 and 13 as key frames), that it would move precisely 0.4 degrees on each frame between 1 and 13. With the curve interpolation, it moves less in the first few frames, more in the middle frames, less in the final frames before the next keyframe, and it's a lot harder to keep track of.

Using the linear spline interpolation between the hips and legs has helped clear out the problem.

I appreciate the responses, they helped me figure out a way to deal with the problem.

It would still be nice to know more about the SL animation "optimization." I knew it would ignore frames where there wasn't much change on an axis. I have no idea how much of a change that the rotation has to be so that it is not ignored. I also did not know that it mattered whether the joint moved on one axis or all three axes; that's new to me. If I knew more about what SL did during "optimization," I could plan animations better.