Pages From 3dsmax 2010 Animation
Pages From 3dsmax 2010 Animation
The child object (car wheel) of the rig you are about to animate in this tutorial,
is oriented differently from the parent object (the car body). To turn the wheel
using wiring, you would have to rotate the wheel on its Y axis (based on the
orientation of the body of the car), not its X axis (the wheel’s local orientation).
To regain control of the local orientation of the child object, you will add list
controllers to the position and rotation tracks of the front left wheel animation.
1 On the Quick Access toolbar, click the Open File button, navigate
to the animation\car rigging folder and open car_rig_01-start.max.
4 Press H to display the Select From Scene dialog and expand the Chassis
object (the car body).
Notice how the four wheels, as well as the steering wheel, are children
of the object . This hierarchy is typical to 3D car models.
7 Highlight the Position:Position XYZ track, then click the Assign Controller
button.
9 On the Assign Controller rollout > Position:Position List track, click the
+ icon to expand the position list.
10 Click the Available track, then click the Assign Controller button again.
12 On the Assign Controller rollout list of tracks, click Rotation: Euler XYZ
and click the Assign Controller button.
14 On the Assign Controller rollout list of tracks, expand the Rotation: List
track by clicking its + icon.
15 Click the Available track and click the Assign Controller button.
4 Select the rear left wheel of the car (the Wheel-RL object).
6 Right-click on a gray area of the main toolbar (below the Selection Sets
drop-down is a handy area), then choose Customize.
7 On the Customize User Interface dialog, make sure the Toolbars tab is
active, then click New.
9 Close the Customer User Interface dialog and reposition the new toolbar
to the right of the MAXScript Listener window.
10 Highlight the last four lines of the script, then drag and drop them into
the myTools toolbar.
A button is created.
12 On the Edit Macro Button dialog, choose the Text Button option and in
the Label field, type List Con and click OK.
14 Close the MAXScript Listener window, then resize the myTools toolbar
until the List Con label is fully displayed.
You are now ready to use the List Con tool to quickly assign list controllers
to the remaining wheels of your car model.
15 In any viewport, select the front right wheel of the car (the Wheel-FR
object).
17 Select the last remaining wheel in the model and click List Con again.
NOTE You can apply the MacroRecorder script to only one object at a time.
You must therefore click the List Con button once for each object you want
to modify.
The myTools toolbar you created in this procedure is now available for all
future 3ds Max work sessions.
In any circular object, the amount of rotation (α) is defined by the radius of
the circle and the arc length encompassed by the angle. That amount of
rotation (α) expressed in radians is equal to the arc length, divided by the
radius of the circle (arc length / R), where:
■ the radius of the car wheel is constant and equal in this case to 13 units.
■ the arc length, when flattened, represents the distance travelled by the car
and its wheels.
2 Right-click the car body object and from the quad menu, choose Wire
Parameters.
3 From the menu, choose Transform > Position > (2nd) Position XYZ > X
Position.
A rubber band shows the link you are about to make between your two
selected objects.
5 From the menu, choose Transform > Rotation > (2nd) Euler XYZ > Z
Rotation.
The Parameter Wiring #1 dialog opens. You use this dialog to set up one
and two-way control relationships between objects. The position and
rotation of the two objects you just selected to affect one another are
highlighted.
10 If you moved the car model, press Ctrl+Z to undo the move.
11 With the car selected, on the Motion panel > PRS Parameters rollout,
click the Position button at the bottom of the rollout.
TIP To better see the wheel rotation, you can switch your viewport display
to Smooth + Highlights.
The wheels now rotate and at the correct rate, but they do so in a
backward direction.
14 On the Expressions panel, add a minus (-) in front of the expression and
click Update.
15 Move the car on its X axis again and note how the wheel rotates in the
proper direction.
16 Repeat the preceding steps for each of the remaining three car wheels.
Because the wheels were mirrored, the wheels on the right side of the car
do not need the minus sign added to their expression, whereas those on
the left side do.
1 In the Top viewport, select the car body object and rotate it 90 degrees
clockwise so that its front bumper points at 12 o’clock.
The car is now oriented on the World Y axis, so you will begin working
in this coordinate system.
2 If required, adjust the view in the Perspective viewport until you can see
the front left side of the car.
3 Move the car forward and backward on the Y axis. Note that the wheels
do not rotate.
To get the wheels rotating, you will need additional animation controllers,
ones that will control the car’s displacement in the Y direction. You will
add these as sub-controllers, so you do not overwrite the controllers
already in place.
6 Press Ctrl+C to copy this line to memory. If you are not continuing from
the previous lesson, this line will not be available from the Open Listener
window. If this is the case, copy the line from this .pdf document.
7 Close the MAXScript Listener window, then select the front left wheel
(Wheel-FL).
8 On the bottom-left corner of the interface, click inside the white entry
box, press Ctrl+V to paste the line of code, then press Enter.
9 On the Motion panel > PRS Parameters rollout, make sure that the
Rotation button is active verify that a new sub-controller has been added
to the rotation list.
11 Select another wheel and repeat steps 8 to 10 until all four wheels have
four Euler XYZ tracks in their respective rotation lists.
1 Adjust the Perspective view until the front left side of the car is visible.
2 Select the car body, then right-click and from the quad menu, choose
Wire Parameters.
3 From the menu, choose Transform > Position > (2nd) Position XYZ > Y
Position.
5 From the menu, choose Transform > Rotation > (3rd) Euler XYZ > Z
Rotation.
8 Click Connect.
10 Close the Parameter Wiring dialogs and in the Top viewport, rotate the
car so that it is not pointing horizontally or vertically.
11 On the main toolbar, click Select And Move, then set the coordinate
system to Local.
12 Adjust the Perspective viewport, so you can see the car from its side.
13 Move the car on its local X axis. Note how the wheels are rotating
properly.
2 From the main menu Selection Sets list, choose Car Path.
3 Click Yes to display the path you will use to animate the car motion.
4 From the main menu, choose Create > Helpers > Point.
NOTE Many animators use the Dummy helper instead of Point. The advantage
of using a Point helper is you can adjust its size without having to scale it.
Scaling a helper in a hierarchy will affect its children objects, something you
usually want to avoid.
6 In the Top viewport, click a point near the car to place a Point helper.
7 With the Point helper still active, on the main toolbar click
Align, then in any viewport, select the car body.
8 In the Align Selection dialog > Align Position group, make sure X Position
and Y Position are on and Z position is off.
9 In the Current Object and Target Object groups, choose Pivot Point, then
click OK.
The Point helper location you specify becomes the pivot point of the car
when the front wheels turn.
11 On the command panel > Name And Color rollout, rename the helper
Dummy_CAR.
15 From the main toolbar Selection Sets list, choose Garage_All. Click Yes to
dismiss the warning and unhide the rest of the scene geometry.
16 In the Top viewport, use Zoom Extents to view the entire parking
lot.
17 In the Perspective viewport, click the Perspective label and from the
menu, choose Cameras > Camera_Wall-E.
2 From the main menu, choose Animation > Constraints > Path Constraint.
NOTE You could, as an alternative, constrain the car directly to the path. In
this case, however, it is preferable to constrain the helper parented to the car
so you can retain extra control over the car’s behavior (such as defining skids
around tight corners).
5 In the Motion panel > Path Parameter rollout > Path Options
group, turn on Follow.
8 Go to the last frame of the animation (frame 150), and make sure the
Point helper is selected.
10 In the Motion panel > Path Parameters rollout > Path Options group >
% Along Path box, type 99.9 and press Enter.
2 Click Measure and in the Shapes group, take note of the path length.
3 Select and right-click the Point helper, then from the menu choose Wire
Parameters. (You may need to adjust the model in the Perspective viewport
to better select the helper.)
4 From the menu, choose Transform > Position > Path Constraint > Percent.
5 Click one of the car wheels and choose Transform > Rotation > 4th Euler
Rotation > Z Rotation.
NOTE The value 2365 is the length of the animation path you measured
earlier. When multiplied by the percent variable, it calculates the distance
the car has travelled at any given moment in time along the path. When
divided by the radius of the wheel (13), it provides the amount of rotation
needed for the wheel to turn.
8 Click Connect.
11 Repeat steps 3 to 8 to link the Point helper to each of the remaining three
car wheels.
2 From the main menu, choose Create > Helpers > Point.
4 With the helper still selected, click the List Con button on the myTools
toolbar you created earlier in the tutorial.
The List Con script automatically assigns the two Position list and
Rotation list controllers you set up earlier, permitting you to retain control
over the helper’s local orientation.
6 In the Align Selection dialog > Align Position group, turn off X Position,
Y, Position and Z Position. In the Align Orientation group, turn on X
Axis, Y Axis and Z Axis.
8 From the main toolbar, use Shift+Move and drag the helper to make a
copy.
TIP Set the coordinate system to Local to make moving the Point helper
easier.
12 In the Align Orientation group, turn off X Axis, Y Axis and Z Axis.
14 Select Dummy_FL and from the main toolbar click the Align tool. In the
top viewport click Wheel_FL.
You will now rework the hierarchy and parent/child relationships of the
car setup to prepare for the body roll you will rig in the next lesson.
1 Ctrl+select the two wheel helper objects, then drag to the Dummy_CAR
object.
This links the helpers as children of the Dummy_CAR object.
3 Select the front left wheel (Wheel-FL) and link it to the Dummy_FL helper.
4 Select the front right wheel (Wheel-FR) and link it to the Dummy_FR helper.
1 Click the Camera_Wall-E viewport label and from the menu, choose
Cameras > Camera_Birdseye.
6 Select the Dummy-FL object, which is the front left wheel helper, and
choose Transform > Rotation > (2nd) Euler XYZ > Z Rotation.
7 On the Parameter Wiring dialog, set the control direction to both ways,
since the manual turning of either object affects the other.
9 On the main toolbar, click Select And Rotate and set the coordinate system
to local.
The minus (-) operator ensures that the two rotations are aligned, and
the *8 and /8 factors ensure that the front left wheel pivots (rotates in Z)
eight times less than the rotation of the steering wheel.
14 Click Update and test your work by rotating the steering wheel on its
local Z axis again.
Note the more realistic behavior.
15 Repeat steps 4 to 14 to wire the steering wheel and the front right wheel
helper.
3 Go to frame 50, the point where the car is in the middle of its first turn.
5 Turn Auto Key on and rotate the steering wheel until the Z
axis status bar reads -280.
6 Go to frame 115, the point where the car is in the middle of the second
turn, and rotate the steering wheel until the Z axis status bar reads 500.
7 Go to the end of the animation and rotate the steering wheel until the
Z axis status bar reads -220.
2 In the Top viewport, zoom in on the car and press F3 to turn Wireframe
mode on.
3 On the main toolbar, click Rotate and make sure the coordinate
system is set to Local.
7 Choose Transform > Rotation > (2nd) Euler XYZ > Z Rotation.
8 Select the car body and choose Transform > Rotation > (2nd) Euler XYZ
> X Rotation.
9 On the Parameter Wiring dialog, set the control direction to the right so
the steering wheel rotation in Z controls the body roll in X.
NOTE The /40 factor in the expression divides the steering wheel rotation
by 40 to ensure body roll rotation is significantly smaller than the rotation of
the steering wheel. If you like, try experimenting with other values.
11 Click the Camera viewport label and choose Camera > Camera_Wall_S
then scrub the animation to see the effect of the body roll.
3 Click the List Con button on the myTools toolbar you created earlier in
the tutorial.
The List Con script automatically adds position and rotation list
controllers, permitting you to retain control over the camera’s local
orientation.
4 With the camera object selected, go to the hierarchy panel and on the
Adjust Pivot rollout, click Affect Pivot Only.
Note that the swivel axis needed for the camera is the Y axis (displayed
in green).
6 Select the steering wheel, right-click it, and from the menu choose Wire
Parameters.
7 Choose Transform > Rotation > (2nd) Euler XYZ > Z Rotation.
8 Select the Camera_Driver object and choose Transform > Rotation > (2nd)
Euler XYZ > Y Rotation.
9 On the Wiring Parameter dialog, set the control direction from left to
right so the steering wheel controls the camera rotation.
11 In the Camera viewport, click the label and choose Views > Camera Driver.
14 Close the Wiring Parameters dialog and scrub the animation again.
The rig is now complete. To view a version of the finished product, open
car_rig_final.max.
Summary