Mocappys

Your Guide to Capturing and Editing Motion

  • MotionBuilder Tutorials
  • Motion Capture Guides
  • Academy
  • Contact
  • About
  • Search Results
You are here: Home / MotionBuilder Tutorials / How to Animate Props in MotionBuilder | Multi-Referential Constraints

How to Animate Props in MotionBuilder | Multi-Referential Constraints

By Mocappy Leave a Comment

Table of Contents

Toggle
  • Multi-Referential Constraints
  • Plot Animation from Story Tool to Characters
  • Why you should ALWAYS hold a prop – even if you don’t capture it.

In this MotionBuilder tutorial we’re going to be animating props. And if we’re going to be animating props, then we’re going to need constraints!

But we’re not talking simple Parent/Child constraints, where the prop only has one parent object. We’re going to be animating complex props that need multiple parent objects. Props that are getting picked up, put down, taken out, thrown away, and passed between different objects. And the good news is, you can do all this using just one type of constraint in MotionBuilder…

Introducing the Multi-Referential Constraint.

Multi-Referential Constraints

The Multi-Referential constraint is like a super powerful Parent/Child constraint. It lets you set multiple parent objects in the constraint and then simply switch between them using the Key Controls. This makes it perfect for actions where you need to keep changing a model’s parent object, like we’ll be doing here with our props.

We’ll start by creating a Multi-Referential constraint to animate the bag being passed between Nigel, the bag scanner and Tracy.

Then, we’ll create a slightly more complex setup combining a Multi-Ref constraint and an Auxiliary Effector to animate the guard, calling for backup on the radio.

Plot Animation from Story Tool to Characters

But before we can do any of that, we’ll need to plot the animation from Story Tool onto our characters.

In the video I show a couple of ways to do this, but if you’re into coding or have a scenes with lots of characters, here’s the script I use in the video:

from pyfbsdk import*

def plot_character_options():
    """
    Set Plot Options for character
    """
    plotClipOptions = FBPlotOptions()
    plotClipOptions.PlotAllTakes = False
    plotClipOptions.PlotOnFrame = True
    plotClipOptions.PlotPeriod = FBTime( 0, 0, 0, 1 )
    plotClipOptions.PlotTranslationOnRootOnly = False
    plotClipOptions.PreciseTimeDiscontinuities = False
    plotClipOptions.RotationFilterToApply = FBRotationFilter.kFBRotationFilterUnroll
    plotClipOptions.UseConstantKeyReducer = False
    plotClipOptions.ConstantKeyReducerKeepOneKey = True

    return plotClipOptions

def process_character_to_new_take(plotToSkeleton = True):
    """
    Plot animation to all characters in Story
    Mute Story and Tracks
    """
    ## -------------------- Process Character Tracks in Story -------------------- 
    for track in FBStory().RootFolder.Tracks:
        # Check Track Type is Character Animation Track
        if track.Type is FBStoryTrackType.kFBStoryTrackCharacter:
            # Get Character in Track
            characterToPlot = track.Character
            if plotToSkeleton:
                # Select Objects in Character 
                characterToPlot.PlotAnimation(FBCharacterPlotWhere.kFBCharacterPlotOnSkeleton ,plot_character_options())
            if not plotToSkeleton:
                # Check character has Control Rig
                characterControlSet = characterToPlot.GetCurrentControlSet()
                if not characterControlSet:
                    # Create FK/IK control rig if doesn't exist.
                    characterToPlot.CreateControlRig(True)
                characterToPlot.PlotAnimation(FBCharacterPlotWhere.kFBCharacterPlotOnControlRig, plot_character_options())   
            # Mute Story Track
            track.Mute = True
    # Mute Story
    FBStory().Mute = True

process_character_to_new_take(False)

Why you should ALWAYS hold a prop – even if you don’t capture it.

So, as you may have noticed from the video, I didn’t actually capture any props for this. But, the important thing is, I was actually holding something that resembled the props when I performed the actions.

So, why bother holding a prop if you’re not going to capture it?

Well, the reason is, the act of physically holding something will change the way you move. From the tension in your body to the adjustments you make to accommodate the size, shape and weight of the object. Even before you grab hold of the object, you’ve already started to change the way you move to prepare to pick it up.

And also there are actions you can’t physically do without an actual prop. Think about lifting a heavy box. You can’t shift your center of gravity under an imaginary box to accommodate the extra weight without falling over….

And it’s all these tiny details that are impossible to recreate without a prop that will make the performance more believable.

So, the important thing to remember is if you’re capturing an action that uses a prop, make sure you’re holding something because even if you don’t capture the object, you will capture the affect it has on the way you move. 

Tweet

Filed Under: MotionBuilder Tutorials

« How to Write a Skeleton Definition File Using Python
How to Mocap a Performer using a Vicon System »

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search Site

Ready to Dive into MotionBuilder and Start Editing Mocap But Feel Overwhelmed?

edit mocap motionbuilder

Your complete step-by-step guide to creating production ready animations for video games and simulations.
…Even if you’ve never used MotionBuilder.
By the end of this comprehensive, hands-on course, you’ll be creating production-ready animations that blend together seamlessly.
<< Learn More >>


Hi, I’m Simon Kay

My aim for this site is to share everything I’ve learned over the last 20+ years using MotionBuilder to help bring hundreds of characters to life at some of the world’s leading VFX, Video Game and Motion Capture Studios, including DNEG, Sony Interactive, and Centroid Motion Capture.

 

Top Posts:

  • How to Rig a Character for MotionBuilder
  • How to Mocap a Performer using a Vicon System
  • Retargeting Animation In MotionBuilder
  • Complete Guide to Pose in MotionBuilder
  • How to Characterize your Character in MotionBuilder
  • Using MotionBuilder Story Tool
  • How to plan a Motion Capture Shoot – Mocap Shot List
  • A 10 Step Guide to Building a Skeleton for MotionBuilder
  • How To Export MetaHuman Into MotionBuilder And Back Again
  • How To Create a Walk Cycle in MotionBuilder

Follow:

  • E-mail
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

Copyright © 2025 Mocappys.com