User Guide > Characters > Kinematics   

Dynamic Parenting

When animating characters there are times that you want them to pick up, put down or exchange objects. For instance, you might want a knight to pick up his sword and have it follow the motion of his hand. The Dynamic Parent tool gives you quick access to these types of actions.

The results of using the Dynamic parenting tool is a Blend Operator, keyframes set on key parameters and, in some cases, null objects to control the object in-between parents.

Topics covered:
How to Pick up and Put down objects
How to Toss objects: Method One
How to Toss objects: Method Two


How to Pick up and Put down Objects

To work with an object that will be picked up and put down, you need to make the object a child of a Blend operation that will manage the various parent objects.

To learn about Dynamic parenting, you should use the following lesson file. This file contains an arm that has already been animated to pantomime the motion of picking up a can and placing it on a tabletop. With Dynamic parenting, you will place the can into the hand at the appropriate times.

Load Start File


1. Select the Child Object

Press tab > Character > Dynamic Parent. Click on the can to select it as the child object then RMB-click to accept. At this point nothing has happened. The next step is to add a transition.

2. Pick up the Object

Scrub forward in the time slider until the point where the hand appears to pick up the can (about frame 20). Click the Add Transition button found in the Operation control bar at the top of the Viewer pane. Click on the chain_goal of the arm and RMB to accept.

Now scrub in the timeline back and forth past the transition frame. The can sits on the ground until it is picked up at frame 20. In the Network pane, you can see that a blend node is used to parent the can to both a hidden start_null object which controls the can's stationary pose and the chain_goal which controls the can after it is picked up. Keyframes have also been set on the blend operator's Sequence parameter which controls which parent is being used.

3. Put down the Object

Scrub forward in the time slider until the point where the hand appears to place the can on the table (about frame 50). Click the End Transition button in the Operation control bar.

Now when you scrub in the timeline, you can see the can being dropped off on the table at the end transition. This creates a new transition_null object that controls the object after it is dropped off. This null object is made visible in the Viewer as a diamond shape in case you want to animate the can on its own without the arm. Keyframes have also been set on the Transition Null's translate and rotate parameters to help lock down the object at frame 50.

Note: The chain goal object is not the ideal object for parenting into a character because it generally remains oriented with world space while the arm rotates. In a real setup you will probably parent some control object into the hand that will rotate with the arm setup. To make these lessons easier to complete, the chain goal has been used.


How to Toss Objects: Method One

The Add Transition technique taught above could also be used to hand an object from one arm to another directly. If the arms are not near each other, and you want to toss the object, then you would use the Add Transition with a frame offset.

To learn about tossing objects, you should use the following lesson file. This file contains two arms that have already been animated to pantomime a tossing motion. A ball has already been parented to the first arm's chain_goal. With Dynamic parenting, you will toss the ball to the other hand.

Load Start File


1. Select the Child Object

Press tab > Character > Dynamic Parent. Click on the ball to select it as the child object then RMB-click to accept. At this point nothing has happened. The next step is to add a transition.

2. Toss the Object

Scrub forward in the time slider until the point where the first hand appears to release the ball (about frame 68). Click the Add Transition button found in the Operation control bar. Next, set the Frame Offset to about 32 and press Enter. (Make sure your cursor is still over the offset field when you press enter or else the value will not be set). Click on the chain_goal of the arm and RMB to accept.

Now scrub in the timeline back and forth. The ball is tossed directly to the other hand. In the Network pane, you can see that a blend node is added and is used to parent the ball to the two chain_goals and a visible transition_null object which controls the ball as it travels from one hand to the other. Later you can key this object to refine the motion during the toss.

3. Edit the Second Arm

Press tab > Generic > Transform, select the second arm's chain_goal and RMB to accept. Scrub forward to the frame where the ball is caught (frame 100). Make sure that the ball's transformation channels are highlighted green in the Parameter pane. Now move the hand up to a new position. Because you are on a frame that is keyed, the new position is used to edit their values.

Playback the animation. Now the ball moves to the same position it used to then snaps up to the hand once it is parented. You can use the Dynamic Parenting tool to bring the ball back in line with the new position of the hand.

4. Snap the Transitions

Press tab > Character > Dynamic Parent. Click on the ball to select it as the child object then RMB-click to accept. Click on the Snap Transitions button.

Playback the animation. Now the ball is moving to the new position of the hand.


How to Toss Objects: Method Two

Another method of tossing an object is to use an End Transition to let go of the ball and then another Add Transition to parent it to the second arm. The difference is that you can key the position on the null object during the toss and when you parent to the second arm you can have the ball offset from the hand. Method One does not allow for an offset because it sends the ball directly to the second hand.

Re-load the same lesson file to explore this alternative technique.

Load Start File


1. Select the Child Object

Press tab > Character > Dynamic Parent. Click on the ball to select it as the child object then RMB-click to accept.

2. Let Go of the Object

Scrub forward in the time slider until the point where the hand appears to be tossing the ball (about frame 68). Click the End Transition button in the Operation control bar.

Now when you scrub in the timeline, you can see the ball being dropped off in mid air at the end transition. This creates a new transition_null object that controls the object at this point.

3. Move the Object

Press tab > Generic > Transform. Select the transition_null object then RMB to accept. Scroll forward to frame 100 then move the null object to the second hand. Don't worry if it slightly offset from the hand.

4. Put the Object in the Second Hand

Press tab > Character > Dynamic Parent. Again click on the ball to select it as the child object then RMB-click to accept. Click the Add Transition button. Click on the chain_goal of the second arm and RMB to accept.

Now scrub in the timeline back and forth to see the ball being tossed between the hands. You can again key the null object in-between the toss to further define its motion.