kuroyume0161 opened this issue on Oct 01, 2004 ยท 10 posts
kuroyume0161 posted Sat, 02 October 2004 at 4:36 PM
No, I think that you are partially incorrect here.
Example: A figure and prop are loaded. The figure is in its default pose. The prop is moved to the lForeArm and parented to it.
The prop's translation values change. But, here's the kicker, there are no translations on the entire chain of body parts up to lForeArm. This was checked on the saved CR2 file. ALL translations from BODY -> lForeArm are (0,0,0). Yet there are slight, but significant, differences between the parented and unparented prop:
Parented: 0.074336, 0.150754, -0.0281046
Unparented: 0.0683277, 0.122171, -0.0129852
Since there are no scales on any body part and only two 'memorized' rotations that could influence it (lShldr and lForeArm), this discrepancy MUST be due to rotations.
That means that the chain of body parts' entire transformation matrices are being applied to the parented part WRT TO THE WORLD SYSTEM. Notice that these values do not change enough to show a translation from the World Origin to the lForeArm (esp. the Y value). They only show a delta from the World Origin as compared to the transformation deltas of the body part chain.
Do you see what I'm getting at here? This is an odd approach. Make parented objects values still relative to the World system or local to the parent system, but not some hybrid.
Forgot to mention: And, yes indeed, if I remove those two 'memorized' rotations, the values do not change at all.
Message edited on: 10/02/2004 16:41
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