In this tutorial I’ll show you how to animate two handed weapons in MotionBuilder, using the Matrix lobby shootout as our reference.
This is part of my ongoing series where I recreate the Matrix lobby shootout entirely inside MotionBuilder using mocap captured at home with an Xsens MVN Link. If you want to see the earlier steps in the process, check these out:
- How to Use MotionBuilder Story Tool to Create a Cut Scene
- How to Create Complex Prop Animation Using 1 Constraint
- How to Add Impact to Your Mocap
- How to Work Faster with Python, Character Extensions, and Slow Mocap in Story
In this part of the sequence, we’re going to:
- Make your two handed weapon animation more realistic
- Create and share hand poses between different characters and files
- Add a handheld camera effect using a Relations constraint, driven by your character’s motion
If you prefer to watch first, here’s the video version of this tutorial:
Then follow along here for the step-by-step breakdown.
1. Capturing the Motion: Running Between Rooms with MVN Link
Before we animate anything in MotionBuilder, we need believable source motion.
For this shot I recorded myself as the SWAT guys:
- Starting in a bedroom
- Running across the landing
- Ending in the office where I work (the final firing position in the animation)
I did this for each SWAT character, with 4–5 takes per setup, including:
- Runs that end in a standing firing position
- Runs that end down on one knee
- Extra coverage: straight runs that end in different positions, just to make sure I had options for the final layout
Why it’s Important to Hold a Prop, Even If You’re Not Capturing it
Even though I wasn’t capturing a real gun prop, I did hold a tripod during the takes.
That gives me two big advantages:
- Weight – my body moves as if I’m carrying something heavy
- Synced hands – for two handed weapon animation, it keeps both hands working together
If you try to mime a two handed weapon:
- The hands might look like they’re moving together
- But in reality, the timing and movement drifts — especially when you turn or change direction
- That drift turns into time-consuming offsets you’ll have to clean-up later
Holding something solid keeps the hands locked together and saves you that time and headache.
Why inertial mocap systems work well at home
Because I’m using an Xsens MVN Link system, I can:
- Run from one room to another
- Cross the landing
- Capture all of that without worrying about putting up cameras or occlusion
You could do this with an optical system, but setting up a multi-room volume in a house is… not fun.
If you’re:
- Working from home
- Moving between rooms or sets
- Or somewhere you can’t easily rig an optical system
…an inertial system is ideal for this kind of “run through multiple spaces” shoot.
2. Laying Out the Scene in Story
Once I’d captured the motion, I brought everything into MotionBuilder and laid out the sequence with the Story Tool, just as in the earlier tutorials.
At this stage I:
- Imported all the characters
- Dropped the motion clips onto Story tracks
- Animated the cameras
- Used a Shot track to switch between cameras for the edit
The goal here is layout the blocking and timing for the scene:
- Where each SWAT character starts and ends
- Who stops standing vs. who drops to a knee
- Setting up the guard that appears around the corner
- The start of the lobby firefight
Once I was happy with the layout, I baked the animation down onto the Control Rigs for each character. That gives us a clean base to edit on and is where the interesting part starts: Animating 2 handed weapons.
3. Merging the Weapon and Aligning It to the First SWAT
To show how to animate two handed weapons in MotionBuilder, we’ll start with a single SWAT character, set up his weapon and poses, and then reuse that work to adjust the other SWAT characters.
3.1 Merge the weapon prop
- Go to File > Merge and bring in your weapon prop – I’m using an M16.
- In the merge options:
- Discard all animation
- Discard all settings
- We just want the static prop, not any previous animation
In the Scene Browser you should see a hierarchy like:
M16nullHandle(null object)- The weapon mesh
We’ll animate on the Handle (null) object so we can swap or update the mesh later without having to redo the animation.
3.2 Roughly align the weapon to the hand
Pick your first SWAT guard and:
- Select the Handle of the weapon.
- Alt + left-drag the Handle onto the character’s hand or wrist joint in the Viewer.
- Choose Align > Translation and Rotation.
In some setups props are preconfigured to align perfectly with a hand or “weapon joint” they’re going to attach to. Here they’re not, so we’ll rotate into place:
- Press R to rotate, and F5 for Local mode.
- Rotate and position the weapon so it’s roughly sitting in the main/holding hand.
Don’t worry about a perfect grip yet, we’ll fix that with later with constraints and posing.
4. Driving the Main Hand with a Parent/Child Constraint
First we’ll lock the primary driving hand to the weapon, so the gun follows the hand as we refine the pose.
4.1 Create the constraint
- In the Asset Browser, go to Assets > Constraints.
- Drag a Parent/Child Constraint into the Viewer and drop it on the weapon Handle.
- In the constraint properties:
- Set the Handle as the Constrained Object
- Alt-drag the character’s wrist joint into the Source field
- Press Snap to match the current position.
Now, when you move that wrist, the weapon follows.
4.2 Rough hand pose to help alignment
To make the alignment more readable:
- Create a new Animation Layer on the character.
- Select the finger controls of the main hand.
- Pose the fingers into a quick grip shape, as if holding the weapon handle.
It doesn’t need to be a perfect, final pose. It just helps your eye read whether the gun is aligned sensibly.
When you’re happy:
- Re-select the Parent/Child Constraint and Snap again if needed.
- Set a keyframe for the wrist and fingers so you have a clean pose to return to later.
5. Adding the Second Hand and Building a Proper Two Handed Pose
Now we’ll bring the holding/driven-hand onto the weapon so we get a proper two handed weapon animation.
5.1 Constrain the second hand to the weapon
- Create another Parent/Child Constraint and drop it onto the holding-hand IK effector (for example,
LeftHandEffector). - Set the hand effector as the Constrained Object.
- Set the weapon Handle as the Source.
- Hit Snap.
Make sure IK is enabled for that arm in the Character Controls so the effector actually drives the hand.
5.2 Pin the hands and adjust the body
If you start adjusting elbows and shoulders now, the hands will change position unless you pin them.
- Select the hand effectors and press W and E to pin translation and rotation.
- Adjust:
- Elbow positions
- Shoulder rotation
- The torso if needed
Watch for:
- A natural wrist angle on both hands
- The butt of the weapon tucked into the shoulder
- A pose that reads well from your shot camera, not just from the Perspective view
When you find a good two-handed pose:
- Keyframe the wrists, finger controls, and any major body adjustments on your animation layer.
- This becomes your “clean” two handed weapon pose for this character.
6. Creating a Hand Pose Preset for All SWAT Characters
Now that one SWAT guard has a solid pose, we’ll save it as a Pose and apply it to the others.
6.1 Create the two handed gun pose
- Open Pose Controls.
- Select the hands and fingers of your first SWAT guard (both sides).
- In Pose Controls, click Create Pose.
- Name it something like
SWAT_TwoHandedGun.
That saves the hand/finger configuration so you can reuse it.
6.2 Apply the pose to the other guards
For each SWAT character:
- Select their hand and finger controls (both hands).
- In Pose Controls, double-click
SWAT_TwoHandedGun. - Set a keyframe for their fingers/hands.
Even before you bring in their individual weapon props, they now have roughly correct hand shapes for holding a rifle—much better than starting from flat, open hands.
You can then:
- Merge another M16 for each character
- Align each Handle to their hands in the same way
- Refine individual poses shot by shot
That’s the core of how to animate two handed weapons in MotionBuilder efficiently: set one good pose, then reuse it.
7. Sharing Hand Poses Between Files (Nigel & Tracy Example)
You can do the same thing across different scenes and files.
In an earlier scene, I had two characters—Nigel and Tracy—with hand poses I wanted to reuse:
- Nigel – two-gun pose
- Tracy – relaxed bag-carry pose
Rather than rebuilding those from scratch, we can save just the poses into a separate file and merge them wherever we need.
7.1 Create the poses in the original file
In the original scene:
- Select Nigel’s hand and finger controls.
- In Pose Controls, click Create Pose, and name it something like
Nigel_Gun_Pose. - Do the same for Tracy (e.g.
Tracy_RelaxedBag_Pose).
Rename them to anything descriptive that fits your project.
7.2 Save only the poses out to a new file
- Open the Navigator and go to the Poses branch.
- Press Shift + D (or Edit > Deselect All) to clear any selection.
- In the Poses list, select only the poses you want (e.g.
Nigel_Gun_PoseandTracy_RelaxedBag_Pose). - Go to File > Save Selection.
- In the Save Options:
- Discard all Takes
- Discard all Animation
- Discard Settings/Elements
- Turn on Poses only
Save this as a new file. That file now contains just those poses—the rest of the scene is stripped out.
If you open it, the Viewer will look empty, but the poses are still listed in the Navigator.
7.3 Merge the poses into your new scene
Back in your current Matrix lobby scene:
- Create an Animation Layer on the character you want to apply a pose to.
- Select their hand/finger controls.
- Go to File > Merge and choose the poses-only file.
- In Merge Options:
- Discard all other elements
- Turn on Poses
Now:
- Open Pose Controls – you should see
Nigel_Gun_PoseandTracy_RelaxedBag_Pose. - With Nigel’s fingers selected, double-click
Nigel_Gun_Pose, and key it. - With Tracy’s hands selected, double-click
Tracy_RelaxedBag_Pose, and key it.
This gives you proven, production-tested hand poses from another scene, ready to use as a starting point.
8. Refining the Aiming Pose and Fixing “Glued-On” Hands
Once everyone is holding weapons, you’ll notice some poses don’t actually look like they’re aiming at anything useful.
Let’s fix the first SWAT guard that runs in and aims.
8.1 Find the key moments
- Select that character’s Control Rig.
- Scrub to find:
- A frame where he’s carrying the weapon in a run
- A frame where he has stopped and is aiming
- On both frames, set keyframes on the arms so you’ve locked in those poses for editing.
8.2 Pin the hands and pose for the shot camera
Just like before:
- Pin the hand effectors (W and E) to lock translation and rotation.
- Adjust:
- Elbows
- Shoulders
- Torso
Keep checking:
- The Perspective view for overall body mechanics
- The shot camera to make sure it reads like he’s aiming down the weapon
You want the pose to look good from the camera the audience will see, even if technically he’s not aiming perfectly at Nigel/Tracy in 3D space.
When you’re happy with the carrying and aiming poses, key the wrists and hands again.
8.3 The “glued” hand problem
If you scrub through the transition now, you might see:
- The front hand (off-hand) looks fine while running
- But when he raises the weapon, the wrist becomes twisted or broken
That’s because the Parent/Child constraint is using one fixed offset for all frames. The hand is effectively glued to one point on the weapon, regardless of whether he’s carrying or aiming.
We actually need two different offsets and a blend between them.
8.4 Animating the Parent/Child offset
Instead of animating the hand off the gun, we’ll animate the constraint’s offset.
- Select the Parent/Child Constraint for the front hand.
- In the Properties, find the Offset values (the ones that change when you press Snap).
- Lock that properties window so you can always see the numbers.
Now:
- Go to the carrying pose frame:
- Make sure the hand pose looks right for carrying.
- Turn the constraint on if needed and press Snap.
- Keyframe the Offset values.
- Go to the aiming pose frame:
- Turn the constraint off temporarily if you need to adjust the hand, then back on.
- Pose the hand so it looks correct while aiming.
- Press Snap again.
- Keyframe the Offset values.
Now as you scrub:
- The Offset values blend from the carrying grip to the aiming grip
- The weapon moves slightly inside the hand, instead of the hand twisting to match the weapon
- You avoid the “super-glued” look and the broken wrist problem
From the camera, you’ll see a more natural change in grip as he raises the gun and aims.
9. Adding a Handheld Camera Effect with a Relations Constraint
The final touch is making the camera feel like it’s really being held by a human operator.
In the original Matrix shot:
- The camera is fairly steady at the start
- As the operator starts running, you see a small up-and-down bounce
We’ll recreate that by using a Relations Constraint and borrowing the vertical motion from one of the SWAT guards’ hips.
9.1 Choose a “camera operator” character
Find a SWAT guard whose motion fits:
- Standing still at first
- Then accelerating into a run through the shot
We’ll use his hip translation for the camera’s vertical bounce.
9.2 Set up the Relations constraint
- In Assets > Constraints, drag a Relation constraint into the scene.
- Open its Relations editor.
We’ll add:
- Senders:
- The hip joint of the chosen SWAT guard
- The Camera we’re using (e.g.
Camera1)
- Receiver:
- The same Camera, whose Translation we’ll drive
Steps:
- Alt-drag the SWAT guard’s hip joint into the graph and set it as a Sender.
- Alt-drag the Camera into the graph twice:
- Once as a Sender (for its original Translation)
- Once as a Receiver (to write the final Translation)
9.3 Convert translations to numbers
Translation is a vector (X, Y, Z), but we want to work on individual components.
- From Converters, drag in two Vector to Number nodes:
- One for the SWAT hips Translation
- One for the Camera Translation
- Connect:
- Hips Translation → Vector to Number (Hips)
- Camera Translation → Vector to Number (Camera)
- From Converters, drag in a Number to Vector node for the camera’s final Translation.
9.4 Feed X/Z from the original camera and Y from the hips
We want:
- X & Z from the original camera animation
- Y from the SWAT hips, with some adjustments
So:
- Connect Camera’s X and Z from its Vector-to-Number node into the Number to Vector X/Z inputs.
- For Y, we’ll use hips Y, but first we’ll offset and scale it.
9.5 Offset the camera height to keep it grounded
If we connect hips Y directly, the camera will jump up to hip height.
- From Numbers, drag in a Subtract node.
- Connect Hips Y → Subtract A input.
- Right-click the B input and Set Value to a number that brings the camera back down to the desired height (just above the floor, or wherever you want it).
- Connect the Subtract output into the Y input of the Number to Vector node.
Now when you play:
- The camera keeps its original X/Z movement
- Y is driven by the hips, giving it an up-and-down bounce when the guard runs
If the camera clips through the floor, tweak the Subtract value to raise it back up.
9.6 Dampen the shake with a Multiply node
The vertical motion might still be stronger than your reference.
To damp it:
- From Numbers, drag in a Multiply node.
- Instead of wiring hips Y directly into Subtract, do:
- Hips Y → Multiply A
- Set Multiply B to something like 0.5 (half strength)
- Multiply’s output → Subtract A.
Now the camera’s vertical bounce:
- Follows exactly the same timing as the SWAT guard’s hips
- But with a reduced amplitude, more like a real camera operator jogging with a rig
At the start of the shot, while the guard is still, there’s almost no movement. As he starts to run, the bounce gradually increases.
10. Wrapping Up & Next Steps
In this tutorial you’ve seen how to animate two handed weapons in MotionBuilder in a way that’s both efficient and believable:
- Use Parent/Child Constraints to attach the weapon to the hands
- Build a solid two handed pose, then save it as a Pose to reuse across multiple SWAT characters
- Export and import hand poses between files so you don’t re-do work (Nigel and Tracy example)
- Avoid the “glued-on” hand look by animating constraint offsets between carrying and aiming grips
- Create a “handheld camera effect” using a Relations Constraint connected to your character’s hips
Taken together, these techniques let you get much closer to that “shot on set with a real camera operator and performers” feel, even when you’re working at home with limited space.
If you’re interested in learning more about how to use MotionBuilder to edit mocap in production or for your own projects, and you’d like a more structured, start-to-finish workflow, that’s exactly what I cover in my MotionBuilder courses.
And if you haven’t seen the other parts of the Matrix lobby series yet, they’re here again:

Leave a Reply