• Maya

Setting up the spine IK controls

Refine the spine IK controls and orientations for the shoulder, chest, and hip joints for greater control over the torso.


00:04

Let's switch to ICA now.

00:06

So here are the main controls.

00:08

Let's collapse these in the outliner

00:11

and find the control joints.

00:16

The first thing we need to do is create a series of control joints.

00:21

Now, these aren't the same as the control joints we created previously.

00:25

I know it sounds a little confusing and thinking back,

00:28

maybe I should call these different names.

00:31

But anyway,

00:33

so instead

00:34

these joints will be what the controls drive because we

00:37

don't want them to influence the spine joints directly,

00:41

duplicate the IK spine, pelvis joint

00:44

and move it out of the hierarchy.

00:47

Let's hide the model for now.

00:49

We have three main controls here.

00:52

So we only need the joints that are in these areas.

00:55

So let's keep those

00:57

and remove the ones we don't need

00:60

and let's rename them. So they have underscore control joint at the end

01:05

again. So we know what they are

01:08

actually let's call this mid spine control joint

01:13

and this upper spine control joint

01:15

to make things clearer

01:18

and get rid of this one.

01:20

Let's change the radius. So they are a little bit more obvious,

01:25

maybe four.

01:26

OK. That's better

01:28

what we need to do. Next is update the orientation of this joint.

01:32

So it matches the shoulder control.

01:35

As you can see, it just needs to be back at the world orientation.

01:40

Actually, let's update the color first.

01:45

We'll just make them green for now.

01:48

We also need to reset the Pelvis control joint here too.

01:52

So it matches the control, select them both

01:55

and go to skeleton

01:57

orient joint and open the options.

02:00

We just need this set to orient joint world.

02:03

Perfect.

02:04

Apply that.

02:06

OK, good

02:07

orientation's fixed.

02:10

We need them to match the controls. So we don't get an offset when we connect them.

02:15

What we are going to do now is clean up the values again,

02:18

just like we did with the controls.

02:20

So we simply move the attributes here down to the offset parent matrix tab

02:25

or use the script.

02:27

OK. That's done.

02:29

And this one,

02:31

although

02:32

did you spot that it moved slightly?

02:34

That's because we again have a value here on the joint orient attributes.

02:39

So we just need to zero that out to move it back just like we did with the spine,

02:45

you see the pelvis joint is already at zero. So it didn't move.

02:49

OK, reset the upper joint. Now,

02:52

now we want these controls to move the joints.

02:57

So back to the note editor,

02:59

bring in the main controls, but instead of the pelvis control,

03:03

use the hip control instead

03:05

using this will give us the ability to wiggle the hips.

03:08

Now bring in the control joints

03:11

and organize these.

03:14

OK. So we are going to tackle this a little differently to the FK controls.

03:19

This time connects the world matrix zero attributes on the controls

03:24

to the offset parent matrix attributes on the joints.

03:28

We use this option because the joints aren't in a hierarchy.

03:32

So you will notice that the upper spine joint has moved away now which we don't want.

03:37

What has happened is that the shoulder control

03:40

has got an offset applied to it already.

03:42

And this may be that I froze the transforms on it when I shouldn't have,

03:47

we can easily fix this though.

03:49

So if this happens to you just follow the following steps.

03:53

So let's undo that connection for now.

03:56

And let's find the control

03:59

now move it out of the hierarchy.

04:01

So we get the true translation values in the channel box.

04:05

We need to remove the offset we added in the offset parent matrix tab

04:10

in the attribute editor.

04:12

All we do is right click and select set matrix to identity.

04:16

So what we should have now are values which are the distance from the world route.

04:22

If we reset them,

04:23

the control should move back to the grid.

04:27

Ah You see there's an offset here,

04:30

it's not sat at the world root.

04:32

So it's this offset that's being passed to the joint when we connect it.

04:37

OK, let's hold X and snap this back.

04:40

Now we can freeze the transforms to reset it.

04:44

OK. Now reposition the control. So it's back up with the control joint

04:49

and move it back into the hierarchy. So under the chess control,

04:54

what we have now is an exact offset from the world root relative to the parent nerds.

05:00

So we can clear this. Now we have the correct values

05:05

again, just moving the values down to the offset parent matrix tab.

05:10

Now when we connect world matrix zero to offset parent matrix,

05:15

it doesn't move perfect.

05:17

And the joint now follows the control.

05:21

There we go. They all follow.

Video transcript

00:04

Let's switch to ICA now.

00:06

So here are the main controls.

00:08

Let's collapse these in the outliner

00:11

and find the control joints.

00:16

The first thing we need to do is create a series of control joints.

00:21

Now, these aren't the same as the control joints we created previously.

00:25

I know it sounds a little confusing and thinking back,

00:28

maybe I should call these different names.

00:31

But anyway,

00:33

so instead

00:34

these joints will be what the controls drive because we

00:37

don't want them to influence the spine joints directly,

00:41

duplicate the IK spine, pelvis joint

00:44

and move it out of the hierarchy.

00:47

Let's hide the model for now.

00:49

We have three main controls here.

00:52

So we only need the joints that are in these areas.

00:55

So let's keep those

00:57

and remove the ones we don't need

00:60

and let's rename them. So they have underscore control joint at the end

01:05

again. So we know what they are

01:08

actually let's call this mid spine control joint

01:13

and this upper spine control joint

01:15

to make things clearer

01:18

and get rid of this one.

01:20

Let's change the radius. So they are a little bit more obvious,

01:25

maybe four.

01:26

OK. That's better

01:28

what we need to do. Next is update the orientation of this joint.

01:32

So it matches the shoulder control.

01:35

As you can see, it just needs to be back at the world orientation.

01:40

Actually, let's update the color first.

01:45

We'll just make them green for now.

01:48

We also need to reset the Pelvis control joint here too.

01:52

So it matches the control, select them both

01:55

and go to skeleton

01:57

orient joint and open the options.

02:00

We just need this set to orient joint world.

02:03

Perfect.

02:04

Apply that.

02:06

OK, good

02:07

orientation's fixed.

02:10

We need them to match the controls. So we don't get an offset when we connect them.

02:15

What we are going to do now is clean up the values again,

02:18

just like we did with the controls.

02:20

So we simply move the attributes here down to the offset parent matrix tab

02:25

or use the script.

02:27

OK. That's done.

02:29

And this one,

02:31

although

02:32

did you spot that it moved slightly?

02:34

That's because we again have a value here on the joint orient attributes.

02:39

So we just need to zero that out to move it back just like we did with the spine,

02:45

you see the pelvis joint is already at zero. So it didn't move.

02:49

OK, reset the upper joint. Now,

02:52

now we want these controls to move the joints.

02:57

So back to the note editor,

02:59

bring in the main controls, but instead of the pelvis control,

03:03

use the hip control instead

03:05

using this will give us the ability to wiggle the hips.

03:08

Now bring in the control joints

03:11

and organize these.

03:14

OK. So we are going to tackle this a little differently to the FK controls.

03:19

This time connects the world matrix zero attributes on the controls

03:24

to the offset parent matrix attributes on the joints.

03:28

We use this option because the joints aren't in a hierarchy.

03:32

So you will notice that the upper spine joint has moved away now which we don't want.

03:37

What has happened is that the shoulder control

03:40

has got an offset applied to it already.

03:42

And this may be that I froze the transforms on it when I shouldn't have,

03:47

we can easily fix this though.

03:49

So if this happens to you just follow the following steps.

03:53

So let's undo that connection for now.

03:56

And let's find the control

03:59

now move it out of the hierarchy.

04:01

So we get the true translation values in the channel box.

04:05

We need to remove the offset we added in the offset parent matrix tab

04:10

in the attribute editor.

04:12

All we do is right click and select set matrix to identity.

04:16

So what we should have now are values which are the distance from the world route.

04:22

If we reset them,

04:23

the control should move back to the grid.

04:27

Ah You see there's an offset here,

04:30

it's not sat at the world root.

04:32

So it's this offset that's being passed to the joint when we connect it.

04:37

OK, let's hold X and snap this back.

04:40

Now we can freeze the transforms to reset it.

04:44

OK. Now reposition the control. So it's back up with the control joint

04:49

and move it back into the hierarchy. So under the chess control,

04:54

what we have now is an exact offset from the world root relative to the parent nerds.

05:00

So we can clear this. Now we have the correct values

05:05

again, just moving the values down to the offset parent matrix tab.

05:10

Now when we connect world matrix zero to offset parent matrix,

05:15

it doesn't move perfect.

05:17

And the joint now follows the control.

05:21

There we go. They all follow.

Was this information helpful?