WEBVTT

1
00:00:00.001 --> 00:00:05.280
Aside from the copy and limit transform constraints, the transform constraints also include limit

2
00:00:05.280 --> 00:00:09.800
distance, maintain volume, and transformation constraints.

3
00:00:09.800 --> 00:00:15.640
Keep in mind that all constraints and concepts in this video also apply to bone constraints.

4
00:00:15.640 --> 00:00:19.540
The transformation constraint is the biggest one we should talk about.

5
00:00:19.540 --> 00:00:24.020
This is a very powerful constraint that helps map certain transformations to affect other

6
00:00:24.020 --> 00:00:26.220
kinds of transformations.

7
00:00:26.220 --> 00:00:31.260
For example, in the copy location constraint, we can have the location of one object affect

8
00:00:31.260 --> 00:00:34.560
the location of another object pretty easily.

9
00:00:34.560 --> 00:00:37.060
Same with copy rotation and copy scale.

10
00:00:37.060 --> 00:00:42.780
However, if we wanted to use the location of one object to affect the rotation of another

11
00:00:42.780 --> 00:00:46.000
object, we wouldn't be able to do it with those constraints.

12
00:00:46.000 --> 00:00:48.500
These are two different transformation channels.

13
00:00:48.500 --> 00:00:53.460
However, with the transformation constraint, we can do just that.

14
00:00:53.460 --> 00:00:56.580
Let's go ahead and add this constraint to our monkey object.

15
00:00:56.580 --> 00:01:01.460
Now, these settings look a bit intimidating, but it's pretty simple to tinker around with

16
00:01:01.460 --> 00:01:03.680
once you understand what it does.

17
00:01:03.680 --> 00:01:08.920
The source section of the constraint settings refers to the target object settings.

18
00:01:08.920 --> 00:01:14.760
Here you can choose what type of transformation you want to listen to from the target object.

19
00:01:14.760 --> 00:01:18.320
This includes lock, rot, and scale.

20
00:01:18.320 --> 00:01:23.520
And the destination section of the constraint settings refers to the constrained object.

21
00:01:23.520 --> 00:01:28.720
Here you can choose what type of transformation to affect for the constrained object.

22
00:01:28.720 --> 00:01:33.640
The source to destination mapping section lets you choose which axis of the target object

23
00:01:33.640 --> 00:01:37.400
affects which axis of the constrained object.

24
00:01:37.400 --> 00:01:42.880
And the x, y, and z values you see in both sections is for setting a ratio of movement

25
00:01:42.880 --> 00:01:45.080
between each object.

26
00:01:45.080 --> 00:01:47.160
This is where the magic happens.

27
00:01:47.160 --> 00:01:51.760
So let's say very simply that we want every 10 meters of the target object's location

28
00:01:51.760 --> 00:01:56.400
to drive 90 degrees of the constrained object's rotation.

29
00:01:56.400 --> 00:02:00.440
We can do this by changing the transformation type in our constraint settings.

30
00:02:00.440 --> 00:02:05.360
Our source, or target object, is already set to location, so we'll make sure to set our

31
00:02:05.360 --> 00:02:08.840
destination object to rotation.

32
00:02:08.840 --> 00:02:14.720
Then we can simply change the max value of the x-axis to 10 meters for the source.

33
00:02:14.720 --> 00:02:18.600
And to make sure that these 10 meters will rotate the x-axis of the constrained object

34
00:02:18.600 --> 00:02:26.400
90 degrees, we can change the max value of the x-axis to 90 degrees for the destination.

35
00:02:26.400 --> 00:02:31.400
And now, as we move our target object along the x-axis, you can see that the constrained

36
00:02:31.400 --> 00:02:35.300
object is rotating a maximum of 90 degrees.

37
00:02:35.300 --> 00:02:40.800
Now let's say we wanted to drag our cube further while still affecting our monkey object.

38
00:02:40.840 --> 00:02:45.400
Well to do that, maybe we can say every 20 meters will rotate the constrained object

39
00:02:45.400 --> 00:02:49.160
180 degrees, giving us a bit more leeway.

40
00:02:49.160 --> 00:02:54.200
However, that's not really practical, as we'd have to go on forever multiplying redundantly

41
00:02:54.200 --> 00:02:57.120
until we're confident the range is what we need.

42
00:02:57.120 --> 00:02:58.120
No.

43
00:02:58.120 --> 00:03:03.120
Instead, we can simply keep our 10 meters to 90 degrees ratio and go to the top of our

44
00:03:03.120 --> 00:03:06.480
constraint to check the extrapolate option.

45
00:03:06.480 --> 00:03:10.700
This will extend our ratio infinitely and allow us to go past the limits of the min

46
00:03:10.700 --> 00:03:15.080
and max, but maintain the same ratio of transformation.

47
00:03:15.080 --> 00:03:20.960
Now if we wanted to have the y-location of the source object affect the x-axis rotation

48
00:03:20.960 --> 00:03:26.280
of the constrained object, we would just need to change the source to destination mapping

49
00:03:26.280 --> 00:03:27.960
here.

50
00:03:27.960 --> 00:03:32.080
Instead of x to x, we can change this first value to y.

51
00:03:32.320 --> 00:03:38.520
And yes, you can have the same source transformation axis drive to destination transformation axes

52
00:03:38.520 --> 00:03:40.060
if you like.

53
00:03:40.060 --> 00:03:45.540
And then we would simply need to change the maximum y-value to complete the ratio.

54
00:03:45.540 --> 00:03:49.800
This should give you a fundamental understanding of the transformation constraint.

55
00:03:49.800 --> 00:03:53.520
The limit distance constraint is pretty self-explanatory.

56
00:03:53.520 --> 00:03:57.680
Similar to the limit location constraint, this constraint takes the input of the user

57
00:03:57.680 --> 00:04:00.200
to restrict movement of the constrained object.

58
00:04:00.320 --> 00:04:05.240
However, additionally, it also takes in a target object to use as reference.

59
00:04:05.240 --> 00:04:09.400
This allows for the user input to set the max distance the constrained object can be

60
00:04:09.400 --> 00:04:11.720
from the target object at any time.

61
00:04:11.720 --> 00:04:14.760
In other words, you get to put the object on a leash.

62
00:04:14.760 --> 00:04:20.440
But you can also invert the effect by changing the clamp region from inside to outside.

63
00:04:20.440 --> 00:04:24.480
This makes it so that the constrained object cannot come within a certain distance of the

64
00:04:24.480 --> 00:04:28.640
target object, which makes it feel more like a force field instead.

65
00:04:28.640 --> 00:04:34.280
And the final clamp region option, On Surface, will force the object to keep the distance

66
00:04:34.280 --> 00:04:40.320
a constant, not allowing it to get further or closer to the object than the distance set.

67
00:04:40.320 --> 00:04:45.360
The maintain volume constraint prevents objects from freely changing their scale.

68
00:04:45.360 --> 00:04:50.520
Typically, when scaling an object, the volume of your object gets increased for free.

69
00:04:50.520 --> 00:04:55.440
However, with maintain volume, it restricts you from gaining free volume, forcing your

70
00:04:55.440 --> 00:05:00.920
object to bend and contract while scaling, just like a real volume would if forced to

71
00:05:00.920 --> 00:05:02.240
change size.

72
00:05:02.240 --> 00:05:05.680
However, the volume input value is a world value.

73
00:05:05.680 --> 00:05:09.280
Therefore, you'll need to know the neutral volume of your mesh.

74
00:05:09.280 --> 00:05:13.480
I hope this helps you understand more of how the transform constraints work.

75
00:05:13.480 --> 00:05:17.520
Feel free to experiment or read more about them in the documentation in the description

76
00:05:17.520 --> 00:05:18.160
down below.

