PDA

View Full Version : rig orientation problem.


floyd1510
03-20-2006, 04:53 PM
ok welli am trying to rig this bear with a little bit of a muscle feel in it. I have created spline IKs from the spine downwards to depict the vertebra's. The helpers have a position expression to go with relative percentages of the calf and the thigh. the problem is that when the root center of Mass of the biped is rotated these helpers get a greater transformation since they are already driven by any absolute change in the position of the calf and thigh. I am uploading images with this thread to explain the problem exactly. The yellow helpers are of the splineIK. The rightmost image has the root rotated and the spline Ik going absurd

I tried the same with position constraints but of no use. Reaction manager (reactor) works fine but has a lot of limitations. I would really appretiate any help on this.

Thanks.

eek
03-20-2006, 06:51 PM
are you dealing with world or local space? i.e you getting your values from .transform.pos or .pos.controller

floyd1510
03-21-2006, 03:54 AM
Hey eek.

I am using none. I have added a postion expression to the positionXYZ of the helpers. There I have added the biped thigh and the calf as vectors (say a & b) and stated something like :
[(a+b).x, (a+b).y, (a+b).z]/2. It's different for all three helpers of the splineIK.

Thanks.

eek
03-21-2006, 04:00 AM
Do the helpers have a parent? else there parent is the world/root of the scene and so in world space.

floyd1510
03-21-2006, 06:50 AM
The helpers are parented to the root of the spline IK which is parented to the spine bone on top of it. Rotating the spine does not create a problem but when I rotate the pelvis the position of the legs change too hence making the helpers transform. Hence rotating the root puts thjem in weird positions.

eek
03-21-2006, 04:01 PM
Ok,

Controllers work in local space, except for constraints. Your transforming the helpers relative to there parent the splineIK root, but controlling them with another input. You need to get the space local or world they need to work in.

So try this first: (i think they maybe more needed but anyway)

Give the helpers a script_controller instead of an expression_controller. Make 2 variables 'a' and 'b'. Assign these (as a node) to the thigh and hip bones. Type:

(a.transform.pos+b.transform.pos)/2


Ok Question time for you:

Ok, heres a question for you: (everyone else let Floyd answer it)

I have 2 points: 'p' and 'c'. 'c' is parented to 'p' and 'p' has no parent. Now i rotate 'c' 45 degrees in x.

1. What is 'c' local and world rotation?

Now i rotate 'p' 120 degrees in x.

2.What is 'c' local and world rotation?

When i parented 'c' to 'p', 'p' was at [0,0,0] and 'c' was at [10,0,0].

3.If i move 'p' to [120,0,0] what is 'c' local and world position?

floyd1510
03-22-2006, 04:47 PM
Hey eek,

Just got to work so havent tried your solution. You might judge, i'm a lil new to scripting. Ok answers to your questions :

Q1. What is 'c' local and world rotation?

Ans: c local and world rotation both would be (45,0,0) provided i created them in the top viewport.

Q2. What is 'c' local and world rotation? (after rotating p 120 degrees in x

Ans : the c local rotation will be (45,0,0) and the world roation will be (165,0,0) since it is absolute

Q3. If i move 'p' to [120,0,0] what is 'c' local and world position?

Ans : c's local position will stay at [10,0,0] and the world position will be [130,0,0]

Hey thanks for the help eek. I really appretiate it. i shall try using the script controller and get back to u.

eek
03-22-2006, 05:07 PM
Ok cool, i justed wanted to check you know world/local space and transforms. You know how to transform an ojects space into another object space.

a.transform * inverse b.transform

CGTalk Moderation
03-22-2006, 05:07 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.