Categories
Blog Post

FBX to Biped : There and Back Again

How to match the 3ds Max Biped to your custom skeleton for easy sharing of rigs, animation and better retargeting in MotionBuilder.

Use Case:
You Have a character rigged for Unreal with custom joint locations using the ART rig. You also have existing animations that are in Max and Maya and you need to have people use Biped to animate.
Biped is a GIANT pain to fit to other skeletons… so this handy guide will help you out.

Part 1:

Use the #Autodesk Character Generator to create a file and download for max. In the zip there is a script that will build a Biped that matches the skeleton. We tried a few variations of existing scripts and custom tools but they all had issues, this is the best choice for speed and getting a good end result.

Autodesk Character Generator download settings to get the Maxscript

Part 2

Next import the Character Generator FBX skeleton you downloaded and align it to your custom skeleton. We did this in Maya since that was where our source skeleton came from.
We aligned position and used IK to rotate the joints so they stayed clean, then froze transformations to clear the skeleton of rotation values. (this puts the rotation into the joint orient)
Then mirror the FBX skeleton joints so you don’t do twice the work, and be sure to replace the _L for _R.
Export the FBX skeleton back out to .FBX and then import into #3dsmax

Align the FBX skeleton to your own custom skeleton

At this point we don’t care if they are a one to one match because we can adjust the Biped structure/bone count after it is created, we just need the major joints to align and the fingers!!

Part 3:

Import the exported aligned .FBX file in to Max
Open the free script CharacterGenerator_FbxToBiped.ms from your Character Generator download zip file that will convert the skeleton to a Biped.
Run it and the FBX skeleton gets replaced with a matching Biped, that we then edited in FIGURE mode to add prop, twist bones and adjust neck count.
Note we placed a marker at the head and then had to snap the Biped Head back to where it was after changing the neck count, since the head moves when the bone count changes 🙁
Now save off a .FIG file so that anyone that needs to can create a Biped that matches your custom skeleton.

*The hip joints in Biped don’t like to move so some manual adjustment might be needed to align hips and feet but it is minimal and easy to snap the ankles to the correct location. Just double check against your source skeleton.

MotionBuilder or Maya HIK retargeting:

If you need to retarget existing FBX moves onto the character, from Max, Export this new biped as .FBX and you can characterize it in MotionBuilder. From there you can retarget animation onto it, then save that motion back to FBX and import that motion with file Import directly onto the Biped skeleton. This will bypass the Biped mocap import/BVH process because it is very limited and destroys the motion quality AND makes everything harder. By staying in FBX the entire way and you will have a Custom Biped that has full motion capture ready to save out or animate in #3dsmax and stay in sync with anyone using Maya or MotionBuilder to animate with.

Final step after loading into Max is run the script that builds the Biped


Part 1: Custom Biped skeleton for MotionCapture retargeting and animation in #3dsmax from #Maya or #MotionBuilder

Categories
Blog Post rigtip

The Animate Button – Mocap Automation Techniques at Ubisoft Montreal (GDC 2016) – YouTube

We really can’t recommend this video enough!!!! as a standard base for getting good capture and not waste your money and time.   Our MotionCapture editing and MotionBuilder course covers many of the ideas in an expanded format that are in this video from UBI Soft animator Dan low.

 

Check out our MotionBuilder Rigging to Retargeting workshop 

 

Categories
Blog Post rigtip tutorial video

Mocap Online – Motionbuilder UE4 Root Motion Animation Retargeting

Something that comes up often is dealing with hip vs root bone motion and having to either add or remove it to work with diffrent game engines or mix and match move sets. If you are a AAA team and have tech artists and experienced editors it is a challenge but if you are an independent game studio or a lone artist, this might simply be impossible as was the case for the people who reached out to us.

https://forums.autodesk.com/t5/motionbuilder-forum/working-with-root-translation-in-motionbuilder/m-p/7517630

I passed this on to Crispin and he worked up a great and clear tutorial on how to get motion ready for Cry Engine using their Motus Mocap online animations.

Click the image and check out the video on their blog post

 

Motionbuilder Tutorial - UE4 Root Motion Retargeting

 

A Motionbuilder tutorial discussing how to re-target animations from one character to another, and transfer the full Root motion correctly and accurately – even if there is a scale difference between the two rigs.

INDEX is below to jump directly to any section. The question came up on the Autodesk forums. Shout out to Brad Clark with Rigging Dojo, our friends at Crytek and CryEngine, and Epic and the Unreal Engine.
INDEX: 0:00 Introduction
01:49 Basics – Settings, Extensions, Constraints and Match Source
07:41 Plotting and Results
08:16 Scaling – Why do it and problematic results.
12:25 Some things are simpler than they first seem… Doh
13:40 Scaling – The Simple Fix and Results
17:00 Vertical Root Motion – Yes it works, an example.
19:57 Plot All Takes and Editing afterwards.

Rigging Dojo – http://www.riggingdojo.com
CryEngine – https://www.cryengine.com/
Unreal Engine – https://www.unrealengine.com

https://www.MocapOnline.com
http://www.MotusDigital.com

 

If you are needing more MotionBuilder training and help you can check out our other free tips and tutorials, dig in with our paid on-demand workshop or get custom studio training and consulting like Epic Games, EA and Sony have (contact us for information).

 

 

Categories
Blog Post rigtip tutorial

Guest Post : Evan Cox MotionBuilder Gotcha’s

In our previous blog post ( https://www.riggingDojo.com/2017/03/22/custom-studio-training-volition-agents-mayhem/) We talked about our custom studio training with MotionBuilder and how our alumnus Evan Cox was hired on to be their MotionBuilder Tech artist. In this post Evan has a few tips and tricks and gotchas to share with you. These are a start and we hope to bring you a few more deeper explorations of his solutions and tools in the next few months.

And now from Evan…

After nearly 3 years of MotionBuilder in both preproduction & full blown production, my team has collected a hefty list of Mobu’s kinks & quirks. Some of these we have solutions/wrappers for, others we are actively working through, and some we’ve brought up to the powers at be.

General Gotcha’s

  • Camera “roll” is a separate property, not part of the camera’s rotation matrix.
  • A camera can be animated with rotation in X Y & Z and then another property "Roll" can be animated, which doesn't update the XYZ rotations of the camera. 
    
    At first glance, you may be looking at a camera and seeing rotation, but not seeing the rotation matrix change. This can be very confusing! Always check the Roll property to see if it's animated before investigating camera rotation issues.
  • Script/process failures are not always obvious. Can lead to artists working in broken scenes without knowing about it!
  • Maya and Max have handy little status bars at the bottom left of the interface that turn red/yellow/pink if processes fail and are reported in their respective script editors. MotionBuilder does not have one of these, so your artists may not always know when things break! 
    
    
    We've implemented a system at Volition where FBHUD objects are generated with red text in the viewport that notify users of errors in their scenes. This is hooked into the traceback/exception handler and is surprisingly easy to setup! Post about that coming in hot, so be prepared.
    
    
    Careful about cleaning this up tho!
  • Watch out for hidden properties
  • Watch out for "hidden" properties that don't appear in the Properties pane as well as watch out for interactions between .Show and .Visibility  E.G.  creating a FBLight via scripting will instantiate a light, but it won't appear in the 3d view.  You can even select it and inspect its 'Visibility' property in the Properties pane to see that it defaults to True, yet it isn't in the 3d view until you set its "Show" to True also…which doesn't appear for the light be default in the Properties pane by default.
  • Do you have story mode active when you don’t mean to?
  • You might be tempted to use anim layers while in story mode, doesn’t work. Use subtracks.
  • Constraints cannot be added to story tracks.
  • At Volition, we utilize the FBCharacterFace constraint for our face animation. Unfortunately, it's treated as a constraint in MotionBuilder and thus cannot be added directly to a story track. 
    
    To get around this issue, instead of animating the object directly, all animation is stored on a proxy FBModelNull. Using a FBConstraintRelation we then send the data to the FBCharacterFace.
    
    A simpler way, and if not for some quirks of out pipeline, would be to add the animatable properties on the FBCharacterFace to the story track by way of a FBCharacterExtension. Got a property you want to animate/represent in story mode? Add it to the extension!
  • Config files can get corrupted easily. If Mobu crashes on startup, delete them and Mobu will automatically create default files.
Config files meaning window layout files, keyboard shortcut presets etc

Do not delete binary files.

*This may be a problem localized to Volition as we edit those on start up occasionally with new settings.

Python Gotcha’s

Pyfsdk
  • pyfbsdk does not like unicode strings.
  • If a string you're working on setting is failing or you get a TypeError, try recasting the string. str() is your friend.
  • Deleting in MotionBuilder can be tricky, and prone to crashes. To prevent a lot of these issues, we’ve written a bit of code to safely delete objects.
  • There are numerous blog posts about deleting objects in Mobu ( one of which was my own ). It's a tricky issue, but hopefully the code example above will help you out in stabilizing that portion of your workflow.
  • Relation constraints are great but are limited in exposure and can be tricky to set up. Use a serializer to write one for you. Expect another post about this soon as this topic is worthy of its own story.
  • Be sure to clean up/disconnected HUD objects from cameras while deleting them. Not doing so can cause Mobu to crash.
  • Some intensive operations require Parallel Pipeline & Evaluation toggles to be False in order to succeed. Decorators are rad for this…
  • Mobu does not like RLE Compressed TGA’s, but work fine with other TGA types. At Volition, we convert all TGA’s to PNG using PIL before the texture is loaded in Mobu.
  • If you’re querying animation over time, avoid use of FBPlayerControl & FBScene().Evaluate(). Instead, evaluate just the FCurve you want.
  • We've run into this problem a lot in creating interactive interfaces for face animation tools, custom property sliders etc. It's tempting to just evaluate the whole scene to be sure all the data is valid and up to date. However, this can cause playback issues or worse, crashes.
    
    Check out the gotcha gist for an example of how to solve.

 Published with permission (original blog post here)

 

 

 

Further learning:

Need to learn MotionBuilder or is your studio growing and needing to have full custom support for your TDs or production?

Check out our MotionBuilder Rigging to Re-targeting workshop.

Buy the class @ Ondemand.Riggingdojo.com

 

 

Categories
Blog Post rigtip video

Custom studio training: Volition “Agents of Mayhem”

Max to MotionBuilder

We are very excited to see the great work from Volition on “Agents of Mayhem”coming out of GDC.  Rigging Dojo was hired to provide custom training for the animators on MotionBuilder as part of our custom studio training support service, allowing them to transition to the software and work efficiently.

 

 

The team was able to work through around 100 animations per character across 12 playable characters, 10 enemy troopers, 7 unique npc, bosses and male female pedestrians, all in MotionBuilder with 8 animators who on past projects were previously working in Max/Biped.

We also got to help place one of our awesome alumnus Evan Cox in a TD job at the studio. For “Agents of Mayhem” Evan did a cool face rig and has been part of the MotionBuilder support TDs, building on our training and allowing the animators to create the huge amount of detailed and diverse animation they had for the game.

Profile Image
 

Check out the slides from from the 2017 GDC vault that Mike Jungbluth gave on the animation process. Great tips on MotionCapture as a base for stylistic animation and how to push the poses for best end results and adjusting timing to make the base mocap have more impact and work best for their style of game play.

Session NameAnimating an Agent of Mayhem
Speaker(s)Michael Jungbluth
Company Name(s)Volition
Track / FormatDesign
OverviewTo tackle the unique challenge of animating 12 playable characters in an open world game, the animation team on \’Agents of Mayhem\’ had to embrace thinking in systems not individual assets. This approach lead to universal character charts, full body procedural transitions, a reactive mood facial system, embracing outsourcing and how best to leverage style. This talk will go in depth on every aspect of the animation process, from art, tech and design, to show our approach on how to create and animate an appealing character in a more holistic manner.

 

Evan did a great talk for us you can get here that covers some of his earlier tool work, training with us at Rigging Dojo and getting his first job in the industry and (keeping it 🙂

3December A.I.R : Evan Cox (Volition) Getting your foot in the industry door

from Rigging Dojo Episode 7 of 21

Alumni Evan Cox, now a Tech artist at Volition game studio. He will cover topics like Education and getting a first industry job, and some of his tools: Splashboard & Auto Face Rig The Generators.
Presenter Evan Cox
Bio Associate Technical Animator with Deep Silver Volition. 2013 graduate from Michigan State University with a BA in Game Design and Development. Rigging Dojo alumni.
Topic(s) Getting your foot in the industry door
Description Evan explains his process for learning his craft then applying it to get a job in the game industry
Brief Outline 8:25 – Why Is This Relevant?
10:35 – Educational Aspect
30:31 – Scripting Projects
Automated Facial Rigging System
Google Image Search
49:19 – Look to Those Above You
54:39 – Transitioning to a Work Environment
1:02:10 – Glad I Did – Wish I Had
1:10:18 – Q&A

github.com/coxevan?tab=activity

 

Further learning:

Need to learn MotionBuilder or is your studio growing and needing to have full custom support for your TDs or production?

Check out our MotionBuilder Rigging to Re-targeting workshop.

Buy the class @ Ondemand.Riggingdojo.com