A controller in 3ds Max is a plug-in that manages the values involved in keyframe animation, such as changes in object scaling, color, or translation.
List controllers combine two or more controllers and can be very useful when combining relationships between objects.
List controllers, for example, are helpful when using expressions and constraints to control a child object through a parent
object, particularly if the child and parent objects are not using the same orientation. You can set up a List controller
so a second controller maintains the local orientation of a child object, while the first controller is based on the global
(World) orientation of the parent.
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.
Set up the scene:
- On the Quick Access toolbar, click (Open File), navigate to the animation\car_rigging folder and open car_rig_01_start.max.
NoteIf a dialog asks whether you want to use the scene’s Gamma And LUT settings, accept the scene Gamma settings, and click OK.
If a dialog asks whether to use the scene’s units, accept the scene units, and click OK.
Manually assign List controllers:
In this procedure, you will manually assign List controllers to the position and rotation tracks of the front left wheel of
your Chevy.
- From the main toolbar Selection Sets list, choose Garage_All.
- Right-click the Perspective viewport and choose Hide Selection from the quad menu.
All scene objects other than the car are hidden.
- 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 Chassis object. This hierarchy is typical of 3D car models.
- Choose Wheel-FL from the object list, then click OK.
The front left wheel in the scene is now selected.
- Go to the Motion panel and expand the Assign Controller rollout.
A list of default animation controllers displays as tracks in an Explorer format.
- Highlight the Position:Position XYZ track, then click (Assign Controller).
- On the Assign Position Controller dialog, double-click Position List.
- On the Assign Controller rollout Position:Position List track, click the + icon to expand the position list.
- Click the Available track, then click (Assign Controller) again.
- On the Assign Position Controller dialog, double-click Position XYZ.
In the explorer, a second Position XYZ: Position track has been created below the first. This track represents the controller
that will control keyframe information of X, Y, and Z axes based on the local position of the child object (the front left
wheel).
Next, you will repeat the procedure by assigning a List controller to the rotation track of the front left wheel.
- On the Assign Controller rollout list of tracks, click Rotation: Euler XYZ and click (Assign Controller).
- On the Assign Rotation Controller dialog, double-click Rotation List.
- On the Assign Controller rollout list of tracks, expand the Rotation: List track by clicking its + icon.
- Click the Available track and click (Assign Controller).
- On the Assign Rotation Controller dialog, double-click Euler XYZ.
A second Euler XYZ track is created. This track controls rotation keyframe information of X, Y, and Z axes based on the local
coordinates of the front left wheel.
Automating the assignment of List controllers:
MacroRecorder is a simple scripting utility that records your interactions in 3ds Max. It converts your actions into a script that you can reuse to accomplish repetitive tasks.
In the previous procedure, you manually assigned position and rotation list controllers to a single wheel on your Chevy. You
will now use MacroRecorder to automatically assign list controllers to the remaining three wheels, as well as the car body
and steering wheel, so that the entire rig uses the same coordinate system in its animation.
- Go to the bottom-left corner of the 3ds Max window, right-click the MAXScript area and choose Open Listener Window.
3ds Max opens the MAXScript listener dialog.
TipIf the upper, Macro Recorder pane (with a pink background) isn’t easy to see at first, drag the bar that divides the panels
downward, so the two panes are roughly equal in area. You can also resize this dialog.
- From the menu bar, choose MacroRecorder Enable.
From this point onward, almost any action you perform in 3ds Max will be recorded in a script.
- Select the rear left wheel of the car (the Wheel-RL object).
- Repeat steps 5 through 15 of the previous procedure to assign list controllers to the position and rotation of the rear left
wheel.
As you progress, notice how the pink Macro Recorder area accumulates scripting data.
- Right-click an empty area of the main toolbar (below the Selection Sets drop-down is a handy area), then from the pop-up menu,
choose Customize.
- On the Customize User Interface dialog, make sure the Toolbars tab is active, then click New.
- On the New Toolbar dialog, type myTools and click OK.
- Close the Customize User Interface dialog and reposition the new toolbar to the right of the MAXScript Listener window.
- Highlight the last four lines of the script, then drag and drop them onto the myTools toolbar.
3ds Max creates a button on the toolbar.
- Right-click the newly created button and choose Edit Button Appearance.
- On the Edit Macro Button dialog, choose the Text Button option and in the Label field, type ListCon, then click OK.
3ds Max changes the button to a text button.
- On the MAXScript Listener window menu bar, choose MacroRecorder Enable to turn off script recording.
The MacroRecorder stops recording your actions in 3ds Max.
- Close the MAXScript Listener window, then resize the myTools toolbar until the ListCon label is fully displayed.
You are now ready to use the ListCon tool to quickly assign list controllers to the remaining wheels of your car model.
- In any viewport, select the front right wheel of the car (the Wheel-FR object).
- On the myTools toolbar, click ListCon.
On the Motion panel Animation Controller rollout, expand the Position XYZ track to display one of the list controllers that was assigned by the
script you just created.
- Select the last remaining wheel in the model, Wheel-RR, and click ListCon again.
- Repeat the previous step for the Chassis object.
- Repeat the previous step for the SWheel object.
NoteYou can apply the MacroRecorder script to only one object at a time, so you must click the ListCon button once for each object
you want to modify.
- Save your work as mycar_rig_02.max.
The myTools toolbar you created in this procedure is now available for all future 3ds Max work sessions.
In the next lesson, you will learn how to animate the rotation of the car wheels.