Mocappys

Your Guide to Capturing and Editing Motion

  • MotionBuilder Tutorials
  • Motion Capture Guides
  • Online Courses
  • Mocap Masterclass
  • Contact
  • About
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

NEW TO MOTIONBUILDER?
LEARN TO EDIT MOCAP STEP BY STEP.edit mocap motionbuilder

Your complete step-by-step guide to editing mocap in MotionBuilder.

Learn by creating production-ready animations that blend together seamlessly – even if you’ve never used MotionBuilder before.

<< Start Learning >>

Hi, I’m Simon

I’m a Motion Capture & MotionBuilder specialist. I help animators and studios go from mocap-curious to mocap-confident – helping them transform raw mocap into production-ready, life-like animations.

Over the last 20+ years I’ve helped bring hundreds of characters to life for studios like DNEG, Sony Interactive, and Centroid Motion Capture – now I teach those same MotionBuilder and mocap workflows through tutorials, courses and training.

ENJOYING THESE TUTORIALS?

Mocappys is where I share 20+ years of MotionBuilder and mocap experience – in-depth guides that many people use in real productions.

If something here has helped your project or workflow, you can say thanks by buying me a coffee – a small one-off contribution that helps support the site.

Totally optional, but genuinely appreciated – all the content stays free.

Buy me coffee

Help support mocappys

plan_select
£

Stay in touch

  • E-mail
  • LinkedIn
  • RSS
  • YouTube

Copyright © 2026 Mocappys.com