You are on page 1of 28

Create Character

See Adding Character Assembly Commands to the UI.

This command creates a character assembly.

Procedure
To create a character assembly:

1. Create a linked structure of bones or other objects. The structure can have several
chains. You can also use the linked structure with the Skin modifier, and/or set up
character rigs and controllers as needed.
2. Select all objects that will become members of the assembly.
3. Use this method to add the character-assembly commands to the user interface,
and then choose the Create Character command.

The character-assembly node is created at the bottom of the entire selection, as


viewed in the Front viewport.

4. On the Modify panel, use the character assembly tools to work with the character
structure.

The character assembly is given the default name of Character01, which can be changed.
All members of the assembly are listed in the Character Members rollout.

Interface
To work with the character assembly, select the character assembly node and work with
the parameters on the Modify panel.

Character Assembly rollout

Skin Pose group

The Skin pose is the bone structure pose used by the Skin modifier for associating bones
with the mesh. When the Skin modifier is first applied, the current bone structure pose is
used as the Skin pose. The Skin pose can sometimes be accidentally altered by animating
the bone structure on frame 0. If this occurs, you can use these options to fix the Skin
pose.

You can use these options both before and after applying the Skin modifier. You can also
invoke these options when any member of the character assembly is selected.

Set as Skin Pose—Sets the Skin pose to the current bone structure's pose. The Skin
modifier’s envelopes and vertex weighting are automatically recalculated to work with
the new pose.

Assume Skin Pose—Causes the bone structure to take on the Skin pose. This feature can
be useful during the animation phase. For example, if you have animated the character on
various keyframes and want the character to animate back to its Skin pose at frame 50,
you can turn on Auto Key at frame 50 and click Assume Skin Pose.

Skin Pose Mode—Poses the character in its Skin pose and allows the Skin pose to be
refined. Changes to the bone structure when Skin Pose Mode is on will affect only the
Skin pose and not the animation. When Skin Pose Mode is turned off, the bone structure
returns to its pose at the current frame.

Display group

When a high resolution character model is animated, redraw time can slow the animation
process. To speed up your work, a low resolution version of the model can be used for the
animation process, then switched for the full resolution version at render time. Character
assembly objects can be designated as Full Res or Low Res on the Character Members
rollout.

Low Res Objects—Displays only the objects checked in the Low Res display in the
Character Members rollout.

Full Res Objects—Displays only the objects not checked in the Low Res display in the
Character Members rollout.

All Objects—Displays all objects in the character assembly.

Animation group

Animation for the character assembly can be saved or reset in this group. Previously
saved animation from another character can also be inserted to the current character
assembly.

Insert Animation—Displays the Merge Animation dialog, and prompts for a previously
saved animation file.
Save Animation—Saves the character assembly animation in an ANM or XML file. Both
file types contain the character assembly and its animation. An ANM file is a proprietary
format that can be read and saved only by 3ds Max. An XML file formats the information
as XML code, and can be edited with a text editor.

Animation saved as an ANM file loads and saves faster than an XML file. Saving and
editing an XML animation file is recommended only for users who are familiar with the
XML language, and who have a specific need for editing the file.

Reset All Animation—Removes all animation from the character assembly.

Character Members rollout

Add—Allows you to select individual objects to add to the character assembly.

Add List—Displays the Pick Character Members dialog, where you can select multiple
objects from a list and add them to the character assembly.

Remove—Removes highlighted object(s) from the assembly. Bones and objects upon
which other assembly objects depend, cannot be removed.

Low Res—All members of the character assembly are displayed on this list. By default,
all members are designated as Full Res objects. To designate a member as Low Res,
check the object on the list. The Full Res and Low Res designations are used in
conjunction with the Display group selection in the Character Assembly rollout.

Retargeting Rollout
File menu > Load Animation > Open dialog > Edit Mapping

File menu > Load Animation > Open dialog > Load Motion > XML Animation dialog >
Click Yes.

When you map an animation from one rig or object onto another, use this rollout to
establish retarget references between the incoming nodes in regards to their scale
dependency. Retargeting means to scale the animation so it matches the objects onto
which you are mapping the motion. You need to retarget only when the size or
proportions of the incoming model differ from the size or proportions of the current
model.

Retargeting applies to any kind of animation, from matching fight choreographies, to


changing a weather balloon's fly-through trajectory over hills and valleys. The down side
of this is that essentially you have to set up the scaling relationships by hand; the good
news is that the steps are fairly straightforward, and that once you have retargeted, the
settings are reusable for all animation mapped between the same two sets of objects.

While retargeting is a general-purpose feature, it is especially useful for transferring


animation from one character to another, when the characters are of different sizes, and
possibly of different proportions (for example, a human model to a gorilla, or vice versa).
You can transfer IK animation onto an FK rig, or vice versa. There are some rules of
thumb when you work with mapping character animation:

• In a walk cycle, the root of a character moves, and all other movement is typically
rotation.

Because of this, usually you want to map the root motion and the rotation tracks,
and leave the others alone.

The exception to this is when arms or other parts (tentacles?) are animated by IK.
When IK is present, you need to take the additional step of mapping and
retargeting the IK goals.

• The legs need to reach the “ground,” and feet should not slide.

Because of this, use the legs as the basis of recalculating the scale for the target
character.

• Characters are usually symmetrical.

Because of this, usually retargeting one limb does the trick for both.

If a character's limbs are not symmetrical, retarget each of them individually. If


the current model uses forward kinematics, then use the FK Retargeting Extent
controls as well.

Procedure
To retarget one character onto another:

This procedure is not a detailed procedure, but an overall workflow. It assumes you have
already saved the incoming character's animation, then loaded it onto the current
character, as described in To use the Save Animation and Load Animation commands.

Note: If the animation you are saving is unkeyed world-space animation (as opposed to
IK or FK), turn off Animated Tracks when you save.

1. On the Map Track To Track rollout, map the motion tracks of the incoming
character's root to the current character's root.
For example, if you are retargeting a Biped onto another, you would map the
incoming Biped object's position and rotation tracks onto the current Biped.

2. Map the rotation tracks of the incoming character's limbs onto the current
character's limbs.

There is one exception here: if a hand (for example) is going to use IK in the
current scene, either don't map it at all, so you can animate it later, or if you are
mapping from an FK model to an IK model, map the Exposed World Transform to
transfer the incoming FK trajectories to current IK controls.

3. Go to the Retargeting rollout.


4. In the Scale Origin group, choose both the Incoming and Current root objects.

If the characters are symmetrical and have the same proportions, you can now
choose all the mapped tracks in the Retargetable Nodes list. If the characters are
not symmetrical, or their proportions are different, then you need to take further
steps.

5. In the Derive Scale Between Chains group, choose the Start and End nodes of
both Incoming and Current chains to correspond to either the left or right leg of
the character: for example, Thigh to Toe.

Read the Scale Factor that is set on the basis of the two chains.

6. Click Set to retarget the highlighted mapped tracks.

If the two current legs are not the same length, repeat step 5 for the other leg, then
choose that leg's Foot (or Toe) node, turn on Enabled in the FK Retargeting Extent
group, and choose the top of the leg (for example, Thigh) as the parent to use.
Click Set.

7. Save the retargeted mapping file.


8. Click Load Motion to animate the current character, and then close the Map
Animation dialog.

Interface

Retargetable Nodes list—This list shows the tracks that have been mapped using the
Map Track To Track rollout. Each of these mappings can be retargeted.

The fields in this list are as follows:


• Current Mapped Node—Shows the node-to-node mapping, as in
“CurrentObject->IncomingObject.”
• R—When a mapping has been retargeted, this field shows an “X.”
• Scale (X,Y,Z)—Shows the current scaling factor for each dimension of the
current node.
• Absolute—When a mapping uses absolute scaling, this field shows an “X.”
• Scale Origin (Incoming,Current)—Shows the incoming and current scale
origins for this mapping. If the mapping hasn't been retargetted, this field shows
“Scene Root , Scene Root.”
• Incoming Chain (Start,End)—If the mapping has been retargeted, shows the
incoming chain used to calculate scale.
• Current Chain (Start,End)—If the mapping has been retargeted, shows the
current chain used to calculate scale.
• FK Extent—If a mapped track's FK extents have been recalculated, shows the
parent node used in the recalculation.

Find—Enter a name to search for a particular object, then press Enter. 3ds Max
highlights matching entries in the list.

Filter Retargeted Nodes—When on, the list shows only those mappings that have been
retargeted. When off, all mappings are listed. Default=off.

Mapped Node—Shows the currently highlighted mapped node. If more than one list
entry is highlighted, shows “—Multiple—.”

Scale group

• Absolute—When chosen, scaling for the currently highlighted mappings is


absolute, and based on the XYZ settings in this group alone.
• Multiply Derived Scale—(The default.) When chosen, scaling for the selected
mappings is based on both the XYZ settings in this group, and calculations from
the Derive Scale Between Chains group and the FK Retargeting Extent group (if
that is used).

X/Y/Z—You can use these fields to explicitly set the scaling factor for the currently
highlighted mappings.

Scale Origin group

Incoming—Choose the incoming object from which to derive the scaling origin. This is a
drop-down list obtained from the list of incoming nodes.

Current—Click to display a Select dialog and chose the current object from which to
derive the scaling origin. The dialog shows all currently selected objects.
Typically, you set these two to be the incoming root node and current root node, whose
motion tracks are already mapped.

Derive Scale Between Chains group

Resulting Scale Factor—Displays the scale factor derived from the Scale Origin and
Incoming/Current Chain settings. Check this value to see that it matches the apparent
difference in proportion between the objects or characters you are retargeting.

Incoming Chain—These controls set the incoming IK or FK chain to use in calculating


the Scale Factor.

• Start—Choose the start of the incoming chain. This is a drop-down list obtained
from the list of incoming nodes.

When retargeting character animation, typically you choose the top of the
incoming character's leg; for example, the thigh.

• End—Choose the end of the incoming chain. This is a drop-down list that is
restricted to children of the incoming Start object.

When retargeting character animation, typically you choose the end of the
incoming character's leg; for example, the toe.

Current Chain—These controls set the incoming IK or FK chain to use in calculating


the Scale Factor.

• Start—Click to display a Select dialog and choose the start of the current chain.
The dialog shows all currently selected objects.

When retargeting character animation, typically you choose the top of the current
character's leg (using the same side as you used for the incoming chain).

• End—Choose the end of the current chain. This is a drop-down list that is
restricted to children of the current Start object.

When retargeting character animation, typically you choose the end of the current
character's leg.

If a character's legs are symmetrical, which is usually the case, you only need to calculate
the retargeting scale for one leg, and then Set that value to both. If the character's legs are
not symmetrical, you need to calculate values for both legs, and also use the FK Extents
controls (described below).

FK Retargeting Extent group


When the current model uses IK, 3ds Max knows the extent to retarget because it is
defined by the IK solution. But if the current model uses FK, you should specify the
extent of retargeting. For example, mapping rotation animation from a long leg to a short
leg with different link lengths requires that the short leg’s foot be chosen to retarget so it
ends up meeting the floor in the same way the long leg does. In order for 3ds Max to
know how far up the chain from the foot to do the retargeting, the parent of the desired
chain (for example, the thigh) must be specified. By defining the two chains to compare,
3ds Max can adjust the resulting rotations such that the feet don't slide.

When a character's limbs are not symmetrical, you can also use these controls to keep
rotations proportional. First, highlight the current child (for example, a foot or toe) in the
Retargetable Nodes list. Turn on Enabled, and then use the drop-down list to choose the
upper parent (for example, the thigh) of the limb you are retargeting. Finally, click Set.

Enabled—Turn on to enable retargeting extents. Default=off.

Parent Node—Choose the current upper parent of the limb you are retargeting. This
drop-down list is restricted to parents of the currently highlighted current object.

Get—Click to set controls in the Scale, Derive Scale Between Chains, and FK
Retargeting Extents groups based on the currently highlighted mapping in the list.

If multiple mappings are selected, Get fetches the first highlighted mapping in the list.

Set—Click to apply the current Scale Factor to the mappings that are currently
highlighted in the list.

Clear—Click to clear retargeting values from the mappings that are currently highlighted
in the list.

Limit Controller
Main toolbar > Curve Editor (Open) > Highlight a track in the Track View hierarchy. >
Track View menu bar > Controller menu > Assign > Float Limit

Graph Editors > Track View - Curve Editor > Highlight a track in the Track View
hierarchy. > Track View menu bar > Controller menu > Assign > Float Limit

The Limit controller lets you specify upper and lower limits to available controller
values, thus restricting the potential value range of the controlled track. For example, in a
character rig you could use this to restrict rotation on finger joints so the fingers can't
bend backward. Basically, once a track is limited, and the limit is active, you can't set a
value for the track beyond the limit. You can apply a Limit controller to any other type of
controller; the limited controller (that is, the original controller) then appears as a child of
the Limit controller in the Track View hierarchy.

Because the Limit controller doesn't change the original controller, you can easily switch
back and forth between the original and the limited animation by toggling the limits. But
if you collapse the Limit controller, the result is the limited animation, and the original
animation is no longer available.

Use of the Limit controller makes it faster to set up and create animation. It eliminates the
need for expressions or scripts to do the same thing, this improving the ease with which
you can set up automation in hierarchies and rigs, creating effects such as avoiding
collision, FK joint limits, etc.

For example, a Technical Director might want to assign limits to float values that
animators will adjust to make posing easier, enforce standards, or prevent inconsistencies
and mistakes. A TD could use limits for:

• light intensity
• finger rotation
• position extents for sliding drawers
• camera field-of-view
• limiting patch resolution to that supported by the game engine

Character riggers can use limits to create complex relationships or shortcuts in rigs.
Examples include:

• Wire wrist-twist bones to the rotation of the hand, but limit the rotation of the
wrist-twist or hand to stop short of any flipping that might occur.
• Prevent unnatural translation of a spline IK helper by causing limit values for its
local position tracks to react to the angle or distance of the helper from
surrounding helpers.
• React to when IK is disabled, and match the limits of the solver in FK.
• Limit the position of the IK chain swivel-angle target for the knee so that it can
never go behind the character. That is, the target is linked to character’s root.

Use Cases
Following is a brief list of examples of specific uses for the Limit controller:

• Select the Y Rotation tracks of all finger bones in a character's hands and assign a
Limit controller. Use Set Key mode to pose the fingers at the extremes of their
ranges of motion and then use the right-click menu > Set Upper/Lower Limit
commands to limit the fingers' motion.

Note: Limits are included for Set Key via the Other category.
• You apply a Noise controller to the X Rotation track of a window shutter object to
make it rattle, but the object intersects the building at the lower end of its motion
range. Apply a Limit controller to the track and set the Lower Limit value to
prevent the intersection.
• Following from the previous example, say the wind tears the window shutter from
the building at frame 100. If the Noise controller is in a Float List with a Bezier
Float, you can weight the noise to 0 at frame 100, when the shutter is torn from
the building by the wind, at which point the animator will key the animation.
Limits are unnecessary after frame 100. At frame 99, you'd use Set Lower Limit.
Then, at frame 100, you'd edit the Lower Limit value to set the limit to much
lower, essentially removing the limit. Finally, you would set keyframes to animate
its movement past frame 100.

Limitations of the Limit Controller


It's important to be aware of the following limitations of Limit controllers:

• Limit controllers do not limit IK joints. All IK solvers use their own limits, and
ignore Limit controllers. Interactive IK uses the current controllers, but it also has
its own limits, so using Limit controllers with interactive IK will produce
unpredictable results.
• The Limit controller currently supports only Float controllers. Thus, the Limit
controller is currently available only under the name Float Limit.
• Upper and lower limits values are expressed in the same units or coordinates as
those used by the limited controller. Thus, for example, Float limits on an X
Position track are in local coordinates, not in global coordinates.

Procedure
Example: To use the Limit controller:

1. Start with an animated object, and open Curve Editor.

In this example, the teapot position was animated on the X axis between extents
of about -45 to 40, and on the Y axis between extents of about -80 and 54.

2. Assign the Float Limit controller to a track. In this example, we'll assign it to the
X Position track.

This opens the Float Limit Controller dialog, where you can set limits and other
values, but you might find it easier to do this interactively, so for now just accept
the defaults by closing the dialog.
The track retains its original name (X Position, in this example), but the icon has
changed to indicate that it's now a Limit controller, and is expandable (see
illustration in following step).

3. Expand the track.

The hierarchy contains a child track, named Limited Controller, and a new,
expandable child branch named Limits.

4. Click the X Position track and then the Limited Controller track to compare them.

Because the original X-axis movement falls within the default limits, the two
tracks are identical.

5. Scrub the animation until the X-axis position is where you want to set a limit. In
this example, the position is about -20, where we'll set a lower limit.

6. Highlight the X Position track, and then right-click and from the right-click menu
choose Limit Controller > Set Lower Limit.

The graph curve is now clipped below the lower limit. When you scrub the
animation, the object doesn't move beyond that position.

7. Again scrub the animation, stop where you want to set the upper limit, right-click
the X Position track, and choose Limit Controller > Set Upper Limit.

In this example, we've set it at about 13. The graph curve is now clipped above
the upper limit and below the lower limit. The resulting motion is likewise
constrained.

8. Scrub the animation.


The motion on the X axis is limited at both extremes; wherever the object
originally moved beyond the limits, it now behaves as though it's hitting a wall.

9. Again compare the two tracks.

The Limit Controller (X Position) track clearly shows the upper and lower
clipping, while the Limited Controller track shows the original motion.

The original motion still exists as the Limited Controller track; you can restore it
temporarily by toggling the Limit controller.

10. Highlight the X Position track, and then right-click and choose Limit Controller >
Toggle Limit.

Now, when you scrub the animation, the object moves as before.

11. Choose Limit Controller > Toggle Limit again to restore the limits

You can copy the Limit controller in two ways: the limits only, or the limits and
motion combined. First, you'll copy the limits only.

12. Highlight the Y Position track and note how its curve differs from that of the X
Position track.
13. Highlight the X Position track, and then right-click and choose Limit Controller >
Copy Limit Only.
14. Highlight the Y Position track, and then right-click and choose Limit Controller >
Paste Limit Only. When the Paste dialog opens, click OK to confirm the paste as a
copy.

Now the Y Position track is also limited, using the same extents as the X Position
track, but retaining its original underlying motion. To verify this, compare the Y
Position track with its child Limited Controller track.

Next, you'll copy the entire limited X Position track to the Z Position track,
including motion and limits. The Z Position track currently is not animated.

15. Highlight the X Position track, and then right-click and choose Copy.
16. Highlight the Z Position track, and then right-click and choose Paste.

Compare the X and Z Position tracks and both their child Limited Controller
tracks. Each corresponding pair of curves is identical. The motion appears as
though the object is hitting the inside edge of a box.

Finally, we'll cover the Smoothing Buffer settings. By default, sharp corners are
created wherever a curve is limited, causing abrupt changes in motion. You can
smooth off these corners with the Smoothing Buffer parameters, resulting in more
natural-looking motion.

17. Highlight the X Position track, and then right-click it and choose Properties.

This reopens the Float Limit Controller dialog.

18. Use the Upper Limit group > Smoothing Buffer spinner to increase the Smoothing
Buffer value as far as it can go.

As you increase the value, the corners of the upper limit on the graph become
smoother.

Note that there's an upper limit to this value; in this case, it's 34.434. This limit is
determined by the values of the other three settings on the dialog.

19. Try increasing the Lower Limit group > Smoothing Buffer. It's not possible with
the upper smoothing value at its maximum.
20. Decrease the upper smoothing value, and then increase the lower smoothing
value.

Now you get smoothing at both the upper and lower limits.

Interface
The Limit Controller interface comprises the Float Limit Controller dialog and several-
right-click menu items.

Float Limit Controller dialog

The Float Limit Controller dialog opens when you first assign the Limit controller, or
when you right-click a highlighted Limit-controller track and choose Properties.

Enable—Toggles the Limit controller. When off, the original values of the limited track
are in effect. When on, the original values are limited by the Upper Limit and Lower
Limit values.
Note: You can enable and disable all Limit controllers in the scene simultaneously with
the Toggle Limits command, available from the 3ds Max Animation menu. If some Limit
controllers are on and the rest are off, Toggle Limits turns them all on.

Upper Limit Group

Enable—Toggles the upper limit set by the controller. When off, no upper limit is
imposed. Default=on.

[Upper Limit value]—The highest value permitted by the Limit controller. Any values
above this value in the original controller are clipped; that is, they're set to this value,
unless smoothing is in effect. Default=1000.0.

You can animate this value via keyframing and other standard methods, and manipulate
this animation in Track View via the Upper Limit track in the controller's Limits branch.

Smoothing Buffer—Specifies a smoothing value, so that clipped values at the beginning


and end of a clipped range gradually increase and decrease instead of leveling off
abruptly.

The maximum total smoothing is determined by the Upper and Lower Limit values.
(Upper Limit > Smoothing Buffer value) + (Lower Limit > Smoothing Buffer value)
cannot exceed this total. For the smoothest possible results at the upper and lower extents
of the clipping, set either Smoothing Buffer value to the maximum amount, and then back
it off to half that value and set the other Smoothing Buffer to the same amount.

You can animate the Smoothing Buffer value via keyframing and other standard methods,
and manipulate this animation in Track View via the Upper Smoothing track in the
controller's Limits branch.

Lower Limit Group

Enable—Toggles the lower limit set by the controller. When off, no lower limit is
imposed. Default=on.

[Lower Limit value]—The lowest value permitted by the Limit controller. Any values
below this value in the original controller are clipped; that is, they're set to this value,
unless smoothing is in effect. Default=-1000.0.

You can animate this value via keyframing and other standard methods, and manipulate
this animation in Track View via the Lower Limit track in the controller's Limits branch.

Smoothing Buffer—Specifies a smoothing value, so that clipped values at the beginning


and end of a clipped range gradually decrease and increase instead of leveling off
abruptly.
The maximum total smoothing is determined by the Upper and Lower Limit values.
(Upper Limit > Smoothing Buffer value) + (Lower Limit > Smoothing Buffer value)
cannot exceed this total. For the smoothest possible results at the upper and lower extents
of the clipping, set either Smoothing Buffer value to the maximum amount, and then back
it off to half that value and set the other Smoothing Buffer to the same amount.

You can animate the Smoothing Buffer value via keyframing and other standard methods,
and manipulate this animation in Track View via the Lower Smoothing track in the
controller's Limits branch.

Limit Controller right-click menu

To access the Limit Controller right-click menu, highlight a Limit Controller track in the
Track View hierarchy, and then right-click the track and move the cursor to the
Controllers quadrant > Limit Controller menu item.

Note: After using Copy Limit Only on a Limit controller track, you can apply a new
Limit controller with the same limits to any track by invoking Paste Limit Only.

Toggle Limit—Turns the Limit controller on and off. This is the same as the Enable
check box on the Float Limit Controller dialog.

Set Upper Limit—Sets a value/key in the Upper Limit track at the current frame equal to
the value at the current frame of the limited track. If there is only one key, the value of
the limit is constant over time.

Set Lower Limit—Sets a value/key in the Lower Limit track at the current frame equal
to the value at the current frame of the limited track. If there is only one key, the value of
the limit is constant over time.

Remove Limit—Deletes the Limit controller, restoring the original controller without
limits.

Copy Limit Only—Copies only the Limit values and ignores the limited controller of the
highlighted track.

Paste Limit Only—Applies only the copied Limit values, or adds a Limit controller with
the copied values if one doesn't exist, while retaining the values of the original limited
track.
As with pasting copied controller tracks,
you can paste the Limit values as a copy
or an instance of the copied Limit
controller, with the option to replace all
instances of the paste target. Using
Schematic View
This topics includes procedures for using functionality in the Schematic View window.

To create hierarchies with Schematic View:

1. Select the objects you want to work with in the viewport.


2. Use Zoom Extents Selected to display these objects in the Schematic View
window.

3. On the Schematic View toolbar, click the Connect button.


4. In the Schematic View window, drag from the child object to the parent. A dotted
line follows your cursor. Click to set the linkage.

If you are in Hierarchy mode, the children will arrange themselves into an
indented list under the parent as you create linkages.

To assign controllers with Schematic View:

1. On the Schematic View toolbar, click Display.

The Display floater appears. It lets you control what you see in the Schematic
View window.

2. On the Display floater, in the Relationships group, click Controllers. In the


Entities group, click Controllers as well.

The buttons indent to show they are active. The Transforms now appear in the
Schematic View window.

3. In the Schematic View window, select the transform of the object you want to
assign a controller to.
4. Right-click the transform, from on the Tools quad, choose Assign Controller.
5. Choose the controller you want to apply from the list, then click OK.
To wire parameters with Schematic View:

1. Using the Display Floater, turn on Param Wires in the Relationships group.
2. In the Schematic View window, select one of the objects you want to wire.
3. Right-click the selected object and choose Wire Parameters.
4. In the pop up that appears select the component you want to wire, either a
Transform or an Object parameter, for instance.
5. Drag to the other object you want to wire to.
6. Again in the pop up that appears, select the component you need to wire to.
7. The Wire Parameters dialog appears. Make the necessary selections and connect
the wires.
8. Once the wiring is established you can edit the wiring by double-clicking the wire
in Schematic View.

To save a Schematic View layout:

1. When you have a layout you like, name the layout using the Schematic View
name field in the toolbar, just to the right of the Preferences button.
2. Close the Schematic View window.
3. To load the saved view, go to Graph Editors > Saved Schematic View and choose
the schematic view from the history list.

To add a background image:

1. On the Schematic View Options menu, choose Preferences.


2. In the Background Image group, click the File: button to launch the File Browser.
3. In the Browse Images for Input dialog, find and highlight the bitmap you want to
use, then click Open.
4. On the Schematic View Preferences dialog, in the Background group, turn on
Show Image.

The Background bitmap show up in the Schematic View window.

Tip: Turn on Lock Zoom Pan, if you want to zoom in or pan the background
image.

To navigate complex scenes:

Complex scenes can be navigated quickly by using the list viewer combined with the pan
or zoom to selected option. For example suppose you need to locate all the bones within a
certain character.

1. Open Schematic View


2. Press H on the keyboard and enter the name of the object you're looking for in the
Select Objects field. Press Enter to select the object by name.
3. In the window navigation tools group, click Zoom Selected.

The Schematic View window now clearly shows the object node.

4. On the List Views menu, choose Show Occurrences.

The List viewer displays the Object Occurrences dialog.

This is a sortable list. You can click the header title to sort by it.

Note: Object Occurrence is being used as an example here. You can use any of the
List View menu choices to display a list of objects based on a certain relationship.

5. On the Options menu choose Pan to Selected. Now click through the nodes
in the list.

The Schematic View window updates to display each node as you click.

This method makes navigation of very complex scenes much more convenient.
Also when working with lists such as relationships or instances you have the
additional ability to detach the relationship or make the instance unique.

To arrange the nodes in Schematic View to match the viewport:

It can be useful sometimes to arrange the nodes in the Schematic View the same as in the
viewport. There is a script that can do this for you. In this example we'll use the bones of
a character rig.

1. Using Windows Explorer, copy


\3dsmax\scripts\maxscripttools\macro_schematicviewtools.mcr into
\3dsmax\ui\macroscripts.
2. Restart 3ds Max.
3. On the Customize menu, choose Customize User Interface.
4. Click the Quads tab, then choose the Schematic View category from the drop-
down list on the right
5. Drag the action named Project into Schematic View in the Schematic View quad
menu (any quad you like).
6. Drag the Spacing Tool item into Schematic View’s quad menu.
7. On the Graph Editors menu, choose New Schematic View.
8. In any viewport (other than Perspective or User), select the bones of the rig that
you want to arrange.
9. In the Schematic View window, right-click and choose Project Into Schematic
View from the quad menu.
A new Schematic View named Projection shows the selected bones arranged as in
the viewport.

Tip: If the components appear on top of one another, right-click again and choose
Spacing Tool from the quad menu. Drag the spacing slider to the right to add
space between the objects. If necessary manually reposition components as
needed.

Schematic View Window


Menu bar > Graph Editors > New Schematic View

Menu bar > Graph Editors > Saved Schematic Views > Choose a saved schematic view.

Main toolbar > Schematic View button

The Schematic View is a node-based scene graph that gives you access to object
properties, materials, controllers, modifiers, hierarchy, and non-visible scene
relationships such as wired parameters and instancing.

Here, you can view, create, and edit relationships between objects. You can create
hierarchies, assign controllers, materials, modifiers, or constraints.

You can use the Schematic View Display floater to control what entities and relationships
you want to see and work with. Use Schematic View to navigate complex hierarchies or
scenes with large numbers of objects. Use Schematic View to understand and explore the
structure of files you didn't create yourself.

One powerful feature is the list view. You can see the nodes in a text list which you can
sort by criteria. The list views can be used to navigate extremely complex scenes quickly.
You can use the relationship or instance viewer within Schematic View to see light
inclusions or parameter wirings within the scene. You can control the display of instances
or see a list of object occurrences.

Schematic View also allows for background image or grid, and automatic arrangement of
nodes based on physical scene placement. This makes arranging nodes for character rigs
easier.

Choose between a variety of arrangement selections so you can auto-arrange, or work in


a free mode. The layout of the nodes is saved with the named Schematic View window.
You can load a background image as a template for laying out the nodes in the window.
Schematic View Features
Here are some of the notable features of Schematic View:

• Layouts are saved with the named Schematic View file.


• Text remains readable during window navigation.
• Schematic View includes new tools for displaying and arranging nodes including
a new free mode.
• You can use a background image or grid in the Schematic View window.
• You can see and edit wired parameters.
• A new modeless display floater lets you turn on and off node display by category.
• A new Relationship List Viewer has been added, for quick navigation and
selection of nodes. Relationships displayed includes Lights inclusion/exclusion,
all parameter wires, constraints, controllers, and modifier relationships such as
path deform paths and morph targets
• You can now copy and instance controllers.
• You can assign new controller types.
• Schematic View offers extensive MAXScript exposure.
• Performance has been substantially improved.
• Ability to drill down to more properties (such as static values and custom
attributes).

How the Components of Schematic View Behave

Everything displayed in the Schematic View window is shown as a box with a name.
There are various conventions to indicate different states regarding these objects.

Solid End—Signifies that the entity is arranged.

Open end—Signifies that the entity is free.

Red Border—Signifies that the entity is animated.

End Arrow—Signifies that the entity shares a relationship with another entity.

White Fill—Signifies that the entity is selected in the Schematic View window.
White Border— Signifies that the entity is selected in the viewport.

Up Arrow—Collapses the entity it springs from and all child entities thereof up into
the parent entity

Down Arrow—Expands the next child entity down from the entity that the arrow
springs from.

Overlap—Schematic View will prevent newly visible nodes from overlapping with
existing nodes. This applies to free mode: make an object, free it, make another object
and it will fall on top but to the right of the original object so both can be accessed and
moved.

Instances—Schematic View will bold the text of instanced entities, for nodes this will
show up on the base object entity. In the example illustrated, Box02 and Box03 are
instances.

Procedures
See Using Schematic View

Interface
See the following topics describing the Schematic View user interface.

Schematic View Menus

Schematic View List Views

Schematic View Preferences Dialog

Schematic View Toolbars

Schematic View Display Floater

Animating with the HI IK Solver


The HI (History-Independent) Solver does not rely on IK solutions calculated in previous
keyframes in the timeline, so it is just as fast to use at frame 2000 as it is at frame 20.

The HI Solver uses a goal to animate a chain. You animate the goal and the IK solver
attempts to move the end effector (the pivot point of the last joint of the chain) to match
the position of the goal. Often the goal is parented to other control objects such as points
or dummies, splines or bones, and these control objects in turn are wired to viewport or
rollout sliders.

The IK solution takes place in a plane, known as the solver plane. The angle of the solver
plane in world space is controlled by a parameter called the swivel angle. The swivel
angle is animatable. You can adjust it directly, or with a manipulator.

The HI Solver allows for the creation of multiple or overlapping chains. This allows you
to create multiple goals for additional controls. By linking the goals to points, splines,
bones or dummies, you can create simple controls to animate complex chains or
hierarchies. You can also use constraints on these goals or control objects, as another
animation tool.

Applying an HI Solver
To apply an HI Solver to any part of a hierarchy select the bone or object where you want
to the solver to start. Then choose Animation menu > IK Solvers > HI Solver. In the
active viewport move your cursor to the bone where you want the chain to end. When
you click to select that bone, the goal is drawn at the pivot point of that bone. If you want
a goal at the far end of the bone, refine the bone where you want to goal to be placed. An
extra bone will be added, and then choosing that bone allows you place the goal at the
end.

When you create bones, a small "nub" bone is automatically created at the end of the
chain to assist in this process.

Setting Up Multiple Chains


To rig a skeleton for a human leg you could use three chains in one leg, as follows:

• The first chain is created from the hip to the ankle. This chain controls the overall
leg motion including bending of the knee.
• The second chain is created from the ankle to the ball of the foot. This chain
controls the heel's up and down motion.
• The third chain is created from the ball of the foot to the toe.

When the three chains work together they help to maintain the foot’s position in space.
This means it will keep the foot planted on the ground as the character’s body moves. All
three IK chains in this hip-to-toe setup place goals at key positions in the foot that mimic
natural foot behavior. In real life, the toe, ball of the foot, and heel can be planted on the
ground or raised.

Each chain has an goal that drives motion on the heel, ball of foot, and toe. Use the IK
goals to raise the heel, bend the toe, move and rotate the entire foot, and maintain the
foot's position in space.

Overlapping Chains
The IK solver system allows you to create overlapping IK chains in a single hierarchy. In
a human leg, for example, you could create a chain running from the hip to the ankle,
then a second chain from the knee to the ball of the foot, and a third from the ankle to the
toes. Use overlapping chains, when you want to apply goals to sequential bones, but you
don't want to refine the bones.

Another good use for overlapping HI IK chains is to keep the goals at the bottom of the
hierarchy firmly rooted in place. In the case of the leg example, the ankle, ball and toe of
the foot would not move until the upper portion of the hierarchy had reached its full
stretch.

Overlapping chains make the toe stick to the ground

Don't try to overlap chains with different kinds of IK solvers or you might get
unpredictable results.

Creating Control Objects


To create control objects to animate the goals, create dummies, points, splines or other
objects near the goal, then link the goal to the control object. For example in a human leg,
you might have a goal at the ankle, ball of the foot, and the toe. You then create three
splines under the foot, one for the heel, one for the ball and one for the toe. Link each
goal to each spline, then you can animate the goals using these splines. You could also
link the splines together, so that the rotation of the toe is controlled by the movement of
the heel.

Besides hierarchical linkage, you can now use the new Constraint system in conjunction
with IK solvers. You could apply any of the constraints to create a relationship between
the goals or bones and other objects. The goal could be position constrained to a dummy
which is moved. Or you could create three bone chains that are all in the same place, and
constrain one bone chain to another, then weight the constraints.
Bone chains constrained together

Using control objects gives you something bigger to select in the viewport. You can also
use control objects to separate chains, for example in a human arm one chain could end at
the wrist and another separate chain be created for the hand and fingers. The control
object at the wrist serves as the root node for the hand chain, yet that chain would remain
disconnected (hierarchically speaking) from the arm chain.

You can create viewport sliders using the manipulator helper, and then use the viewport
sliders to control the transforms of the control objects. Use wire parameters to hook up
the sliders with the control objects. You can also create Custom Attributes to add these
sliders to the object rollouts.

Mixing Forward Kinematics with Inverse Kinematics


The HI IK solver provides a tool for mixing FK and IK in a single animation track. There
is an FK subcontroller beneath the IK controller assigned by this solver.

When the Enabled button is on, the FK subcontroller values are preserved but ignored.
When Enabled is turned off, the FK subcontroller values apply. To access the Enabled
button, select the goal and go to the Motion panel, then turn off the Enabled button. This
will allow you to animate using FK rotations of the bones or hierarchy objects.

IK for FK pose allows one to turn on IK in middle of FK manipulation. When the


Enabled button is turned off, and IK for FK Pose is on, then selecting and moving the
goal lets you use IK to create the forward kinematic keyframes. Moving the goal poses
the skeleton and add rotation keys to all the objects in the chain when the Auto Key
button is on.

When working with IK and FK together it is possible to create a situation where the goal
has moved away from the end of the chain. Use the IK/FK snap button to reposition the
goal, snapping it back to the end of the chain. When AutoSnap is on, the snap happens
automatically; when you touch the goal, you don't have to click the IK/FK snap button.

Controlling HI IK Precision
When you are animating with HI Solvers, if you find the animation of the limbs is not
smooth, you should try doubling the Iterations in the Solutions group of the HI Solver
Properties rollout. You can also try reduce the Thresholds value to smooth the animation.
IK Solver Rollout (HI Solver)
Select an HI or IK Limb Solver IK Chain control (the blue cross at the end of the chain.)
> Motion panel > Parameters button > IK Solver rollout

The HI Solver is a history-independent solver that doesn't rely on the calculations from
previous frames for the IK solution, so it is fast to use no matter the length of your
animation. The history-independent solver uses a goal to manipulate the end of the chain.
It uses a preferred angle that specifies a preference regarding which direction the link will
rotate: positive or negative. The preferred angle can also be considered as the initial
angle; that is, the angle at which the link was rotated at the time the solver was applied.

The IK solution takes place in a plane, known as the solver plane. The angle of the solver
plane is controlled by a parameter called the swivel angle.

Changing the swivel angle

The angle of the solver plane is actually calculated in one of two coordinate systems: the
Start Joint Parent space or the IK Goal Parent space. World space is not an explicit
option; however, you can easily configure the IK chain to work in world space by
choosing the IK Goal Parent option and making sure that the IK goal is unlinked (i.e., has
no hierarchical parent). In this case, the IK goal’s parent is the world, and therefore, the
solver plane will be computed in world space.

The swivel angle is animatable. You can adjust it directly, or with a manipulator. Or you
can target the swivel angle to a object and animate that to affect the swivel angle. These
parameters are on the IK Solver Properties rollout.

The HI Solver is designed to let the animator jump back and forth between forward and
inverse kinematics quickly and conveniently, with tools to automatically enable IK and
snap the goal to the end effector.

Procedures
To turn off IK on a chain:

1. Select the goal of a chain with an HI Solver.


2. In the Motion panel IK Solver rollout, turn off Enabled.

IK is now off, so you can select and rotate any of the objects in the chain. Turning
IK on and off is animatable using the Auto Key button.
To mix IK and forward kinematics (FK) in a single animation track:

1. Apply an HI IK Solver to a hierarchy or bone system.


2. Turn on the Auto Key button and move the time slider ahead in time.
3. Select the goal of the IK Chain, and open the Motion panel.
4. Select and move the goal to animate the IK chain with Inverse Kinematics.
5. Advance the time slider again.
6. In the IK Solver Rollout, turn off Enabled and IK for FK Pose.
7. Select and rotate the root. The entire hierarchy rotates freely. You are now adding
keyframes using forward kinematics.

To match the goal and the end effector positions:

1. If the goal and end effector become separated, click IK/FK Snap and the goal will
move to match the end link of the chain.
2. If AutoSnap is turned on, clicking the goal will automatically perform the snap
action, matching the goal and end effector positions.

Interface

IK Solver group

The items in this group provide the ability to set the start and end points of the selected
HI IK solver chain. There are also controls in this rollout that allow you to use IK
manipulation to create forward kinematic rotational keyframes on the hierarchy objects,
and there are buttons to align the goal and the end effector.

Solver field—Allows selection of IK Solver. Choose between the HI IK Solver and the
IK Limb Solver here. Any HI IK plug-in solver present at startup will appear in this list,
as well.

Enabled—Turns IK control of the chain on and off.

The HI IK Controller has an FK subcontroller. When Enabled is selected, the FK


subcontroller values are overwritten by the IK controller. When Enabled is turned off, the
FK values are used. You can animate Enabled On and Off.

Use this to turn off the chain control by the goal, when you want to do forward rotations.

IK for FK Pose—Lets you turn on IK in middle of FK manipulation. When Enabled is


off and IK for FK Pose is on, moving the goal will turn on IK automatically in the middle
of an FK manipulation. The result of this is that all the FK subcontrollers receive values
from the IK solution. Keys are placed on the hierarchy objects or the bones, not on the
goal. When both Enabled and IK for FK Pose are turned off, moving the goal does not
affect the chain at all.

IK/FK Snap—Performs an IK snap when in FK mode, and an FK snap in IK mode.

IK Snap—If the goal has moved away from the end of the chain, clicking IK/FK Snap
moves the goal to coincide with the end link position.

FK Snap—The values of FK subcontrollers are suppressed by the solution of IK when


IK is on (Enabled is on). Their values don't always correspond to the current pose of the
chain. If you turn off Enabled, the values of FK subcontrollers will suddenly take over.
This can cause the chain to jump. FK Snap, before Enabled is turned on, forces the FK
subcontrollers to assume values from the current pose (which is determined by the IK.)
This eliminates the jump in the chain's animation.

Auto Snap—When Auto Snap is on, the software automatically applies an IK/FK snap
before you turn Enabled on or off. If Auto Snap is not on, you need to click IK/FK Snap
before toggling Enabled, otherwise the chain will jump.

Preferred Angles group

Set As Pref Angles—Sets the preferred angle for each bone in the HI IK chain. The
current parent-space rotation of each bone is placed into its X, Y, and Z Preferred Angle
rotation channels as seen in the Rotational Joint rollout of the Hierarchy|IK panel. This is
useful for establishing a perfect match frame when transitioning between forward and
inverse kinematics.

Assume Pref Angles—Copies the X, Y, and Z preferred angle channels of each bone and
places them into its FK rotation subcontroller. This essentially performs the inverse
operation of the Set As Pref Angles function.

Bone Joints group

Allows you to change the ends of the IK chain.

Pick Start Joint—Defines one end of the IK chain. Select from the viewport or by name
(press H).

Pick End Joint—Defines the other end of the IK chain. The direction of the chain is
defined by the hierarchy, not by Start and End Joint. Select from the viewport or by name
(press H).

Warning: If you change the Start or End Joints so the IK Limb Solver so there are more
than two bones between the start and end, the solver will not work. Moving the IK goal
does not affect the bones.
Tip: The order of the hierarchy determines the direction of the chain. You cannot reverse
the direction of the chain by picking Bone 10 as the start and Bone 1 as the end.

You might also like