PDA

View Full Version : small rig/null question.


Roughy
07-20-2006, 11:55 PM
After reading through the guide/manual thingy for hours i finally managed to understand atleast the basic rigging concept~, which pretty much worked as i wanted it to, except for one details.

say you have a ball with 2 legs, as such:
http://www.mayulive.com/meh.png
now when you first draw the two legs the nulls will be childs of the the bottom leg bones (bone 6 and bone 7), which would, as i understand it, cause the whole skeleton to move if i moved the body bone (root/bone4).

now if i kept it like that i wouldnt be able to move the body while keeping the legs in place, and so i unparented the null for each leg.

from what i understand, that should cause the nulls to not be affected by moving any of the other bones, and if i moved the body, which would again move the feet bones, they would simply always be pointed towards the location of their nulls, and fall in place if they came close enough.

Though, it seems that the nulls are still affected by their feet.

well, if you understood that, maybe you can point me in the right direction ^^

thx

Sbowling
07-21-2006, 06:32 AM
What you want is constraints for your foot controls. I think it works much better than cutting the end effectors.


Here's a quick and dirty script to setup a basic leg rig.
Copy and paste this into the script editor in a new scene and then run it.


Create2DSkeleton 0, 0, -3.42122706033273E-16, 0, 3, -3.42122706033273E-16, 90, 0, 90, 4

Create2DSkeleton 0, 0, -3.42122706033273E-16, 0, -1.99243154319677, -0.632500000000613, -90, 17.6121089116515, -90, 4

AppendBone "eff1", 0, -3.98796062407132, -7.50000000061347E-03

SelectObj "root", , True

SelectObj "bone1", "CHAIN", True

Translate , -1, 0, 0, siRelative, siGlobal, siObj, siX, True, , , , , , , , , 0

Duplicate "B:root1", , 2, 1, 1, 0, 0, 1, 0, 0, , , , , , , , , , , 0

Translate , 2, 0, 0, siRelative, siGlobal, siObj, siX, True, , , , , , , , , 0

SelectObj "root2", , True

AddToSelection "root1", , True

ParentObj "B:root", "root2,root1"

SelectObj "B:root"

SelectObj "root", , True

CreatePrim "Cube", "MeshSurface"

SetValue "cube.cube.length", 1

Translate , -1, -4, 0, siRelative, siGlobal, siObj, siXY, True, , , , , , , , , 0

Duplicate "cube", , 2, 1, 1, 0, 0, 1, 0, 0, , , , , , , , , , , 0

Translate , 2, 0, 0, siRelative, siGlobal, siObj, siXY, True, , , , , , , , , 0

SelectObj "eff2", , True

SetUserPref "SI3D_CONSTRAINT_COMPENSATION_MODE", 1

ApplyCns "Position", "eff2", "cube1", True

SelectObj "eff1", , True

ApplyCns "Position", "eff1", "cube", True

SelectObj "root", , True

SetUserPref "SI3D_CONSTRAINT_COMPENSATION_MODE", 0



EDIT: I think the problem you might be having is because you are not setting a key on your end effectors after cutting them.

Roughy
07-21-2006, 07:29 AM
thanks ^^

keying the effectors did the trick~

Sbowling
07-23-2006, 07:38 AM
thanks ^^

keying the effectors did the trick~

Be sure to try out the constraint method. I find it to be much more convenient that the cut/key method.

CGTalk Moderation
07-23-2006, 07:38 AM
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.