Motion Capture Controller

You can control an object's position, rotation, or other parameters using an external device with the Motion Capture controller.

Note: Rotation Motion Capture uses Euler rotations with an X, Y, Z axis order and is subject to the limitations of Euler rotations. See Euler XYZ Rotation Controller.

The Motion Capture System

To use motion capture in 3ds Max, you follow these steps:

  1. You assign Motion Capture animation controllers to the specific tracks you want controlled by external devices.
  2. After assigning the motion capture controller, you open the Properties dialog for the track and bind the type of peripheral device(s) that you want. Supported devices include mouse, keyboard, MIDI device, and joystick. Each device has specific properties.
  3. After binding the devices, adjust their settings and parameters in the lower portion of the Track Properties dialog. These controls vary depending on the type of device.
  4. On the Utilities panel, access the Motion Capture utility. You can test and record your motion for any combination of tracks over any range of frames.
  5. When you assign a Motion Capture controller, the previously assigned controller is maintained as a child of the Rotation controller. You can continue to adjust the rotation of the object using standard transform controls, while still making motion-capture control available.

Procedures

Example: To use your mouse as an input device to animate the position of a box:

  1. Create a box.
  2. On the Motion panel Assign Controller rollout, select the position track for the box in the list window, and then click (Assign Controller).
  3. On the Assign Position Controller dialog, click Position Motion Capture, and then click OK.
  4. On the Motion Capture dialog, click the X Position button, choose Mouse Input Device, and then click OK.
    Note: You can open the Motion Capture dialog by clicking the Position track in the Controller list and then right-clicking and choosing Properties.
  5. In the Mouse Input Device rollout, make sure that horizontal is chosen and Scale is set to 1.0.
  6. On the Utilities panel Motion Capture rollout, click Box01\Position in the Track list window. Click Start in the Record Controls group.

    Real-time recording is in effect; move the mouse horizontally back and forth. The box moves correspondingly along the X axis.

    Play the animation to view the recorded movement.

    By default, 3ds Max generates a key at every frame.

Interface

To open the Motion Capture dialog, right-click the transform track (for example, Position) in the Track View - Dope Sheet hierarchy and choose Properties.

Position Motion Capture rollout

X, Y, Z Position
Click an axis's button to display a Choose Device dialog, which lets you pick a motion-capture device from a list of alternatives: keyboard, joystick, mouse, or MIDI.
Choose Device dialog
Select a device from a list of devices.
Edit Binding X/Y/Z
Display device controls in the device rollout in the lower part of the Motion Capture dialog. If no device has been assigned to an axis, this option is not available.
Track Name
Names the Motion Capture Data track. This overrides the default naming convention.

Mouse Input Device rollout

This rollout controls animation using the horizontal or vertical motion of the mouse. The available settings include:

Horizontal/Vertical
Specifies which mouse motion drives the animation.
Scale
Scales the relative effect of the mouse movement to the animation response. Spinner Value=float, 0 to 999,999
Flip
Flips the direction of the response relative to the mouse movement. For example, if moving the mouse horizontally to the right produces a clockwise effect on a Rotation controller, activating Flip will reverse the rotation to counterclockwise.

Keyboard Input Device rollout

This rollout lets you assign most keyboard keys to drive the animation.

Assign
Click and then press any key. The assigned key is displayed in the list window at right.
List
Open the list to select a key.
Envelope Graph group

The Envelope Graph group displays a representation of the amplitude curve over time.

Envelope Parameters group

These options specify the time the envelope of the action takes effect. This relates to the duration of pressing and releasing the key.

Attack
Specifies the time, after pressing the key, for the value to reach its maximum level.
Decay
Specifies the time, after having reached maximum, for the value to fall to that specified by the Sustain spinner.
Sustain
After the Attack and Decay, specifies the value sustained until you release the key.
Release
After releasing the key, specifies the time for the value to fade out to zero.
Parameter Scaling group

Provides controls for setting the scale of the envelope and the range of the output value.

Time
Specifies the scale of the Attack, Decay, and Release parameters. The value represents the number of seconds for 1 unit. For example, if this value is 1.0, then an Attack value of 1.0 equals 1 second.
Range
Sets the maximum output value of the controller.
Note: This controller ignores the state of the Ctrl, Alt, and Shift keys.

Joystick Input Device rollout

The Joystick Input Device driver was designed for the Microsoft Sidewinder joystick, which contains more controls than the standard joystick. You can use this device driver for standard joysticks as well.

X, Y, Z
Specifies which joystick direction drives the animation. (Standard joysticks provide X and Y axes only. The Sidewinder provides the Z axis when you twist the joystick.)
Throttle
On the Sidewinder, this is a slider next to the stick.
Scale
Scales the relative effect of the joystick action to the animation response. Spinner Value=float, 0 to 999,999
Flip
Flips the direction of the response.
Accumulate
When off, the joystick position represents an absolute position, and you're limited to the "rectangle" defined by the limits of the joystick. When the joystick returns to its rest position, the value generated returns to zero. When on, the joystick represents a change in the current position. Moving the joystick forward, for example, can cause an object to start moving, and it will continue to move until you return the joystick to its rest position.

Joystick Buttons group

Point-of-View Hat (Left-Right, Up-Down)
A mini joystick on the tip of the main joystick that specifies the direction of the animation
1, 2, 3, 4
Specifies one of four buttons in the Sidewinder joystick. They work similarly to the Point-of-View Hat, except that each button increases a direction value only while pressed. When you release the button, the value returns to zero (centered).
Inc./Dec
One of three options that are only available when one of the numbered joystick button options is turned on. This option (Increment/Decrement) means that the value is incremented when the button is down, and decremented when the button is up.
Inc
When on, the value increments when the button is down, and stays at that value when the button is released.
Absolute
When on, the assigned parameters jumps to the value set in the Speed spinner when the button is down, and then jumps back to zero when the button is released. Use this for on/off animations, such as blinking lights.
Speed
Controls the rate at which the value changes when using either the Point-of-View Hat or the four buttons. When using a button option and the Absolute option, this specifies the value that's output when the button is pressed. Spinner Value=float, -999,999 to 999,999

Increment Based On Direction group

This group provides controls that let you derive the direction of movement from a Rotation controller. These options are used primarily when you're animating a first-person flythrough such as when you're controlling a camera.

Note: The items in this group are only available when Accumulate is selected in the Joystick Axis group.
Controller
Assigns a Rotation Motion Capture controller where the direction will be derived. Typically, this would be the Rotation controller of the camera you're moving.
Note: You can only use a Rotation Motion Capture controller here.
Clear
Removes the assigned controller.
Direction X/Y/Z
Specifies the local axis that will be used as the direction. For a Free Camera, for example, this would be Z, because the camera points in the Z direction. However, if you had a car that pointed along its Y axis, you'd use Y.
Component X/Y/Z
Specifies which edit binding to use. Match this to the Edit Binding button in the Device Bindings group. For example, if the Y Edit Binding button is selected, choose the Y Component option.

MIDI Device rollout

MIDI Channel group

This group contains 16 buttons. You can assign a channel to your MIDI device.

MIDI Trigger group

Here, you define the type of MIDI event (message) that will drive the motion. There are four options; Note, Velocity, Pitch Bend and MIDI controller.

  • Note Turn on to let the note number or pitch define the output value. The value is derived from where the note falls within the Note Range, specified in the group below. When the note is at the bottom of the range, the value takes on the Min value specified in the Parameter Scaling group. When the note is at the top of the range, the value takes on the Max value from the same group. Anything in between is interpolated between the Min and Max values. (Note that Min doesn't have to be less than Max.) The generated value will slide around as different keys are pressed. The harder a key is pressed, the faster the value changes.

    Speed Defines how fast the value changes as keys are pressed.

  • Velocity

    Determines the output value based on the velocity that the note pressed. The notes set in the Note Range group specify which notes are valid to press. The value takes on the Min value until a key within the Note Range is pressed. When the key is pressed, the value approaches the Max value based on how hard the key was pressed. (The value actually travels along a parabola toward the Max value.)

    Sustain Defines how long it takes the value to move through the parabola.

    Variable Sustain duration is scaled by how hard the key is pressed.

  • Pitch Bend Value is defined by the MIDI instrument's pitch bend knob. The Note Range doesn't apply in this case and is not available.
  • MIDI Controller Specifies a note event when you're hooked up to a different type of MIDI controller than the typical keyboard. For example, if you're using a MIDI slider box, you would select the MIDI Controller option, and then use the # spinner to specify the note event for the specify slider.
Note Range group

Choose Note or Velocity, and then set the note range here. A value is derived from where the note falls within the Note Range.

Low Note
Set a note and octave for the lower range.
High Note
Set a note and octave for the higher range.

See Note parameter in the MIDI Trigger group, above.

Parameter Scaling group

Contains the Min and Max spinners, which specify the range of generated values. See Note and Velocity above.

MIDI Channel Viewer

Displays a dialog that lets you test your MIDI device to see which MIDI channel is receiving events and which notes are being triggered.

Midi Viewer Dialog

MIDI Channel group

Provides a column of 16 buttons and progress bars representing the 16 MIDI channels. Select the channel where you want to view note activity. The channel progress bars light up when any channel has an event.

MIDI Note group

The 11 Octave buttons let you select which octave you want to view. When a note is played in that octave, a corresponding progress bar lights up in the Note column.

MIDI Controller
When using a different type of MIDI controller, such as a slider box, you can specify a note event, and then watch the corresponding progress bar light up when you activate that event. (You can find the correct note number by activating the event while watching the Note Number field in the group below.)
Channel
Displays the currently selected channel. This is one of four text fields that display all of the values being generated by the MIDI device as you activate an event.
Event
Displays the type of MIDI event being sent. For example:

Note On: 9

Note Off: 8

Pitch Bend: 14

MIDI Controller: 11

Velocity
Displays the velocity, which has a different meaning depending on the event. For the most common event, a note being pressed, this value represents the velocity at which the key was struck. Other events, however, might generate a continuous value. For example, a pitch bend event transmits the position of the pitch bend.
Note Number
Displays the corresponding note number for the event. When you're using a non keyboard MIDI device, such as a slider box, you can use this to identify the note number of a specific slider.