Forum Coordinators: RedPhantom
Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 18 10:25 pm)
At the very bottom of the Joint Editor, there is a Section labeled "Joint Order". Any body part that is part of the arm, including the collars, should be either XZY or XYZ. The joint order runs in the manner:
Twist/LeastUsed/MostUsed
When in doubt, load an existing figure and look at the joint order for each part (using the joint editor, since, as you've already discovered, the dials can be rearranged independently of actual joint order).
thanks guys
maybe i didn't make myself as clear as i should have.
all my joint orders are as they should be. after i did my neck joint twist, side side, bend, i have a rcollar scale y.
the axis of this runs up and down. with jesse the axis runs from side to side along the collar.
then when i get to the r shoulder the x axis on jesse again shows the start and end icone running from left to right. on my model it only shows the start end icon in the y axis and it runs from top to bottom. both figures have identical joint orders. i'm stumped.
billy
Gimbal lock is when one axis is rotated to the point that it matches another axis, the two axes become locked and you are thereafter limited to only two rotation axes. This is a big problem with Euler angles (the Joint Order stuff that Poser uses). A Google search will get you more information than you ever wanted... ;)
C makes it easy to shoot yourself in the
foot. C++ makes it harder, but when you do, you blow your whole leg
off.
-- Bjarne
Stroustrup
Contact Me | Kuroyume's DevelopmentZone
There is no real 'cure' for it. It is a mathematical state. The 'cure', if you will, is not to use Euler angles but instead use Quaternions. Poser only uses those for animation interpolation.
A solution is to divide rotation axes among different objects. So, if you have three objects acting as a rotation basis for the axes, you can avoid gimbal lock:
XRotationObject
YRotationObject
ZRotationObject
TheActualObject
The problem here is that to do this effectively for a figure, it would need to be employed on each and every body part (take 50 or so body parts and multiply by four!). Not a pretty sight.
C makes it easy to shoot yourself in the
foot. C++ makes it harder, but when you do, you blow your whole leg
off.
-- Bjarne
Stroustrup
Contact Me | Kuroyume's DevelopmentZone
The solution sets a 'voluntary' restriction on the axis that each object can rotated on (XRotationObject should only be x-axis rotated, etc.). Since only one axis is being rotated, two axes never line-up.
The hard part to describe is that the lining up of axes occurs due to the ordering of the rotations with the use of the Euler approach and not the actual rotation of any one axis. With one axis, you can still rotate the x-axis 'to be aligned with' the y axis, for instance. But it never occurs because the y axis was rotated along with the x-axis. You have to think of the rotation system as those three perpendicular lines with arrows that usually represent the coordinate system.
A better way to visualize this is to think of the rotations with respect to those three perpendicular lines with arrows. The first rotation rotates all three line-arrows (X for example). The second rotation decouples from the first and only rotates its line-arrow and the next one (Y including Z for example). The third rotation decouples from the first and second and only rotations its own line-arrow (Z). Do these in 90d increments and you can visualize how one axis becomes coincident (lines up) with another.
By limiting rotation of an object ot only one axis (the first), you cannot possibly achieve gimbal lock since it rotates all three axes. That is why this solution works (as complicated as it is).
Hope that helps a little!
C makes it easy to shoot yourself in the
foot. C++ makes it harder, but when you do, you blow your whole leg
off.
-- Bjarne
Stroustrup
Contact Me | Kuroyume's DevelopmentZone
As possibly the simplest example, start with the three lines in their default state. Rotate X by 0d (not at all). Then rotate the Y axis by 90d. Note how the Z axis lines up with the X axis (in your mind anyway). Remember that the X axis is not affected by the Y rotation, so it is still pointing in the same direction. Now Z is pointing in the same direction, isn't it!? What happens when you then do a Z rotation? It rotates exactly the same as the X rotation. This is gimbal lock.
C makes it easy to shoot yourself in the
foot. C++ makes it harder, but when you do, you blow your whole leg
off.
-- Bjarne
Stroustrup
Contact Me | Kuroyume's DevelopmentZone
Finally, gimbal lock is something that you'll have to live with when the system utilizes Euler angles. The best thing is to realize this and continue on. I wouldn't get depressed and stop working on your project because of this unless it causes irreparable problems. Most of the time, gimbal lock can be avoided by not doing exactly 90d rotations, but it is a frustrating limitation nonetheless.
The idea of 'Joint Orders' is to reduce this problem to an extent. By setting the intial rotation as that along the length of the joint (twist), the second as the primary bend (Y for arms or X for legs), and the last as remainder, you can diminish the gimbal lock problem. This is why Poser uses ordered-axis rotations. Systems that depend on only one order (YXZ for instance) will always encounter situations where the 'default' rotation results in gimbal locks. Varying the order of rotations provides a modicum of avoidance (although not total).
C makes it easy to shoot yourself in the
foot. C++ makes it harder, but when you do, you blow your whole leg
off.
-- Bjarne
Stroustrup
Contact Me | Kuroyume's DevelopmentZone
Kuroyume, thanks for actually explaining WHAT causes Gimbal lock. I know when it happens and sorta why but I never knew about the Euler Angles and stuff. Not that it changes anything but I like to know the WHY's :o)
FREEBIES! | My Gallery | My Store | My FB | Tumblr |
You just can't put the words "Poserites" and "happy" in the same sentence - didn't you know that? LaurieA
Using Poser since 2002. Currently at Version 11.1 - Win 10.
had a reply from the extremely kind person who took the time and trouble to check out my cr2 and obj file....okat, it was phil.c.
he said there was indeed an anomally ( maybe gimbal lock but he didn't say) and that my rotations were right...and the genius came up with a cure. a simple changing of the rotation order from x whatever to x whatever then a simple change back to the original rotation order. it worked. he called it his banging the side of a faulty tv tecnique. just thought i'd share (i'm sure phil won't mind) so others can try it out when they get the same prob.
thans phil, you made life bearable lol
billy
This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.
being new to joint editing i'm using jesse as a template of sorts.
when i get to the rShldr on jesse it shows the x axis
going from shldr to forearmalong the bone. on my figure i can only
view the axis in the y axis and it runs top to bottom across the bone.
i've read the manual tried to find info off the net
but to no avail. can anyone tell me how to get the x axis
running from left to right.
thanks
billy