& Construction

Integrated BIM tools, including Revit, AutoCAD, and Civil 3D
& Manufacturing

Professional CAD/CAM tools built on Inventor and AutoCAD
Update the arm root control, so that the whole arm moves with it and the arm will match the orientations of the spine.
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.
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.