• Maya

Updating the arm root control

Update the arm root control, so that the whole arm moves with it and the arm will match the orientations of the spine.


00:03

So now we need to add the root control back in. So the whole arm moves with it.

00:09

Let's bring that into the node editor two

00:13

and connect its world matrix zero attribute

00:17

over to the upper arm FK controls, offset parent matrix attribute.

00:24

OK. Good.

00:26

The FK arm now moves with the root control.

00:30

Let's test this with the main root control. Now

00:34

ah we have a problem.

00:37

The upper arm FK controlled now has a double transform because it's

00:41

inheriting the main roots rotation as well as the arm root controls.

00:47

So we need to remove this,

00:50

bring the main root control into the node editor

00:54

press tab and create a new malt matrix node.

00:60

With this node, we can add the matrix values together from multiple nodes,

01:04

rename it to upper arm FK malt

01:08

move the connection from the arm root control.

01:11

So we are connecting its world matrix zero attribute

01:14

to the malt matrix nodes matrix in attribute.

01:19

We can now open the matrix in attribute here.

01:22

Now connect the root controls world inverse matrix zero attribute.

01:28

That's a mouthful

01:30

to matrix. In one

01:33

we use the inverse matrix values because they are

01:36

inverted versions of the main world matrix values.

01:39

So this will essentially take them away.

01:43

So the malt matrix node is now using the arm roots world matrix values.

01:47

But then taking away the main root controls values

01:52

now connect matrix sum

01:55

to the upper arm FK controls, offset parent matrix attribute.

02:00

OK? So now we can manipulate the root and the arm stays where it should be.

02:06

We can also oppose the arm using FK

02:10

and it stays solid no matter where we put the root.

02:14

OK, let's reset these.

02:19

So now the arm moves with the root control.

02:21

So let's add in the option for it to either rotate with it or stay in world space.

02:27

So we are essentially adding some space swapping functionality.

02:32

First, what we need to do is store the main arms position.

02:36

So press control and G to create a new empty group,

02:41

rename this to arm route left world space.

02:46

Now use the match transformations tool to match the

02:49

group to the arm roots position and orientation.

02:54

So that's now in the same place.

02:56

Make sure you also clean the values on the group,

02:59

moving them to the transform, offset parent matrix section.

03:05

We need a new node. Now this time create a blend matrix node.

03:10

This will give you the option of blending between a number of other nodes

03:14

call this upper arm left FK blend.

03:18

Make some room for it over here.

03:21

Connect matrix sum from the mult matrix node to input matrix

03:27

just open the attribute editor now.

03:30

So up here are the values we just connected taken from the arm route control.

03:35

So this is the node we want to blend.

03:39

Let's click this button here to add another item to the list.

03:43

And now connect the arm route world space group's world matrix zero attribute

03:49

to the blend matrix nodes, target matrix attribute

03:52

which is under the target zero group.

03:56

Now that's appeared here.

03:58

What's good about this node is we can specify what attributes we want to use.

04:02

So we can deselect translate here.

04:05

So the arm will match just the spine's orientations.

04:09

Now connect the output matrix attribute from the blend matrix node

04:14

to the upper arm FK controls, offset parent matrix attribute.

04:19

Here we go.

04:21

If I rotate the root control, the arm doesn't move.

04:25

But if I move it, it does.

04:28

This is because we are telling it to

04:30

instead use the world space group's orientation.

Video transcript

00:03

So now we need to add the root control back in. So the whole arm moves with it.

00:09

Let's bring that into the node editor two

00:13

and connect its world matrix zero attribute

00:17

over to the upper arm FK controls, offset parent matrix attribute.

00:24

OK. Good.

00:26

The FK arm now moves with the root control.

00:30

Let's test this with the main root control. Now

00:34

ah we have a problem.

00:37

The upper arm FK controlled now has a double transform because it's

00:41

inheriting the main roots rotation as well as the arm root controls.

00:47

So we need to remove this,

00:50

bring the main root control into the node editor

00:54

press tab and create a new malt matrix node.

00:60

With this node, we can add the matrix values together from multiple nodes,

01:04

rename it to upper arm FK malt

01:08

move the connection from the arm root control.

01:11

So we are connecting its world matrix zero attribute

01:14

to the malt matrix nodes matrix in attribute.

01:19

We can now open the matrix in attribute here.

01:22

Now connect the root controls world inverse matrix zero attribute.

01:28

That's a mouthful

01:30

to matrix. In one

01:33

we use the inverse matrix values because they are

01:36

inverted versions of the main world matrix values.

01:39

So this will essentially take them away.

01:43

So the malt matrix node is now using the arm roots world matrix values.

01:47

But then taking away the main root controls values

01:52

now connect matrix sum

01:55

to the upper arm FK controls, offset parent matrix attribute.

02:00

OK? So now we can manipulate the root and the arm stays where it should be.

02:06

We can also oppose the arm using FK

02:10

and it stays solid no matter where we put the root.

02:14

OK, let's reset these.

02:19

So now the arm moves with the root control.

02:21

So let's add in the option for it to either rotate with it or stay in world space.

02:27

So we are essentially adding some space swapping functionality.

02:32

First, what we need to do is store the main arms position.

02:36

So press control and G to create a new empty group,

02:41

rename this to arm route left world space.

02:46

Now use the match transformations tool to match the

02:49

group to the arm roots position and orientation.

02:54

So that's now in the same place.

02:56

Make sure you also clean the values on the group,

02:59

moving them to the transform, offset parent matrix section.

03:05

We need a new node. Now this time create a blend matrix node.

03:10

This will give you the option of blending between a number of other nodes

03:14

call this upper arm left FK blend.

03:18

Make some room for it over here.

03:21

Connect matrix sum from the mult matrix node to input matrix

03:27

just open the attribute editor now.

03:30

So up here are the values we just connected taken from the arm route control.

03:35

So this is the node we want to blend.

03:39

Let's click this button here to add another item to the list.

03:43

And now connect the arm route world space group's world matrix zero attribute

03:49

to the blend matrix nodes, target matrix attribute

03:52

which is under the target zero group.

03:56

Now that's appeared here.

03:58

What's good about this node is we can specify what attributes we want to use.

04:02

So we can deselect translate here.

04:05

So the arm will match just the spine's orientations.

04:09

Now connect the output matrix attribute from the blend matrix node

04:14

to the upper arm FK controls, offset parent matrix attribute.

04:19

Here we go.

04:21

If I rotate the root control, the arm doesn't move.

04:25

But if I move it, it does.

04:28

This is because we are telling it to

04:30

instead use the world space group's orientation.

Was this information helpful?