














Make the arm follow the spine by refining its IK and FK controls, then using the Node Editor to blend the shoulder movement.
Transcript
00:04
The next step is to now make sure the arm follows the spine.
00:08
You see, as we manipulate it, the arm just floats here and doesn't move,
00:12
which isn't natural.
00:14
First, we need the left arm group back.
00:17
So let's create it again
00:19
and move it into the rig systems group
00:22
and rename it.
00:25
Move the
00:26
IKK and world space group into it.
00:30
Now create two new groups.
00:33
We want two so we can store both the IK and FK positions of where the arm should be,
00:41
rename them. So the first is shoulder left I care world space
00:46
and the second is shoulder left FK, world space.
00:51
Now match these to the arm root control.
00:55
So they are in exactly the same place.
00:58
Actually, this should be left FK. So I'll change that to L
01:04
parent the ICA group to the ICARE shoulder control. So it follows it
01:09
and the FK group to the spine three control.
01:13
Let's also clean the attribute values too.
01:16
Again, moving them down to the offset parent matrix section.
01:21
There we go.
01:23
And now back to the node editor,
01:27
I'll just clear this
01:29
bring in the new ICA and FK groups
01:32
and also the left arm group,
01:35
all we want is a left arm group to blend between these two shoulder groups.
01:41
So as the animator blends between IK and FK, the arm will move to the correct spine.
01:47
So to do this, we need another blend matrix node,
01:51
rename this to shoulder IKFK blend.
01:56
Connect world matrix zero from the IK group
01:60
to the input matrix attribute on the blend matrix node,
02:04
go to the attribute editor and add a new item to the blend matrix node.
02:09
Now connect the world matrix zero attribute from the FK group
02:14
to the target zero matrix attribute.
02:19
Now connect output matrix to the arm root group's offset parent matrix attribute.
02:26
Now if I rotate the FK spine,
02:29
the arm follows
02:31
I'll just move this.
02:34
If we switch to IK,
02:36
nothing happens.
02:37
But that's because we also need to tell the blend
02:39
matrix node to swap to the IK group too.
02:44
Add the co control to the node editor.
02:47
Let's find the IKFK switch attribute
02:51
and connect that to the envelope attribute on the blend matrix node.
02:56
Now the arm follows when using the IK spine,
03:01
we can also blend between the two
03:03
and the arm follows.
03:05
Let's test the main root control again. Now things have changed.
03:09
Ah Right.
03:11
So we have the double transform issue again.
03:14
So all we need to do is remove the root's influence again. Just like we did earlier,
03:19
let's make some room
03:21
and create a new malt matrix node
03:24
call this shoulder left IK malt
03:29
duplicate this
03:32
and update the name to FK instead of IK
03:36
and remove that one.
03:38
Let's add the root control to the node editor two
03:42
connect world matrix zero from the shoulder I
03:45
group
03:47
to the shoulder I
03:49
mult nodes matrix in attribute.
03:52
Now connect to the root controls. World inverse matrix attribute.
03:57
Remember
03:58
we use inverse because we want to take these values away.
04:02
Connect this to matrix A one.
04:05
Now we repeat this for the FK side.
04:08
So world matrix zero to matrix N
04:12
and then world inverse matrix from the root control
04:17
two matrix in one,
04:19
we now need to connect these to the blend matrix node.
04:23
So matrix sum
04:25
to input matrix
04:28
and matrix sum from the FK mult matrix node goes to target matrix
04:33
under target zero. Just here
04:37
we can rotate the root now and the arm stays in position.
04:41
You will also notice that the arm isn't rotating with the spine.
04:45
It's just staying almost level.
04:48
This is because we have its world orient attribute set to stay in world space.
04:53
If I change this to zero,
04:57
the arm now stays orientated with the spine.
00:04
The next step is to now make sure the arm follows the spine.
00:08
You see, as we manipulate it, the arm just floats here and doesn't move,
00:12
which isn't natural.
00:14
First, we need the left arm group back.
00:17
So let's create it again
00:19
and move it into the rig systems group
00:22
and rename it.
00:25
Move the
00:26
IKK and world space group into it.
00:30
Now create two new groups.
00:33
We want two so we can store both the IK and FK positions of where the arm should be,
00:41
rename them. So the first is shoulder left I care world space
00:46
and the second is shoulder left FK, world space.
00:51
Now match these to the arm root control.
00:55
So they are in exactly the same place.
00:58
Actually, this should be left FK. So I'll change that to L
01:04
parent the ICA group to the ICARE shoulder control. So it follows it
01:09
and the FK group to the spine three control.
01:13
Let's also clean the attribute values too.
01:16
Again, moving them down to the offset parent matrix section.
01:21
There we go.
01:23
And now back to the node editor,
01:27
I'll just clear this
01:29
bring in the new ICA and FK groups
01:32
and also the left arm group,
01:35
all we want is a left arm group to blend between these two shoulder groups.
01:41
So as the animator blends between IK and FK, the arm will move to the correct spine.
01:47
So to do this, we need another blend matrix node,
01:51
rename this to shoulder IKFK blend.
01:56
Connect world matrix zero from the IK group
01:60
to the input matrix attribute on the blend matrix node,
02:04
go to the attribute editor and add a new item to the blend matrix node.
02:09
Now connect the world matrix zero attribute from the FK group
02:14
to the target zero matrix attribute.
02:19
Now connect output matrix to the arm root group's offset parent matrix attribute.
02:26
Now if I rotate the FK spine,
02:29
the arm follows
02:31
I'll just move this.
02:34
If we switch to IK,
02:36
nothing happens.
02:37
But that's because we also need to tell the blend
02:39
matrix node to swap to the IK group too.
02:44
Add the co control to the node editor.
02:47
Let's find the IKFK switch attribute
02:51
and connect that to the envelope attribute on the blend matrix node.
02:56
Now the arm follows when using the IK spine,
03:01
we can also blend between the two
03:03
and the arm follows.
03:05
Let's test the main root control again. Now things have changed.
03:09
Ah Right.
03:11
So we have the double transform issue again.
03:14
So all we need to do is remove the root's influence again. Just like we did earlier,
03:19
let's make some room
03:21
and create a new malt matrix node
03:24
call this shoulder left IK malt
03:29
duplicate this
03:32
and update the name to FK instead of IK
03:36
and remove that one.
03:38
Let's add the root control to the node editor two
03:42
connect world matrix zero from the shoulder I
03:45
group
03:47
to the shoulder I
03:49
mult nodes matrix in attribute.
03:52
Now connect to the root controls. World inverse matrix attribute.
03:57
Remember
03:58
we use inverse because we want to take these values away.
04:02
Connect this to matrix A one.
04:05
Now we repeat this for the FK side.
04:08
So world matrix zero to matrix N
04:12
and then world inverse matrix from the root control
04:17
two matrix in one,
04:19
we now need to connect these to the blend matrix node.
04:23
So matrix sum
04:25
to input matrix
04:28
and matrix sum from the FK mult matrix node goes to target matrix
04:33
under target zero. Just here
04:37
we can rotate the root now and the arm stays in position.
04:41
You will also notice that the arm isn't rotating with the spine.
04:45
It's just staying almost level.
04:48
This is because we have its world orient attribute set to stay in world space.
04:53
If I change this to zero,
04:57
the arm now stays orientated with the spine.