Guest Post : FBX file solutions with Python FBX SDK

FBX, love it or hate it, it has continued to be used and integrated into many game engines and software packages.

We bring you another guest post to help you gain control over and improve the use of FBX in your pipeline.

And now Randall Hess, Principal Technical Animator at Boss Key Productions.

 

 

FBX issues and such

I’ve recently given some scripting assistance, to a technical animator friend of mine at another game studio, that I feel not many folks are familiar with. He was having issues losing attributes or properties when exporting from Motionbuilder to FBX. This is not an uncommon problem with FBX and depending on which version of Maya, 3dsmax or Motionbuilder you are running, the differences with attributes/properties changing or getting completely lost, depending on the object they are associated with, can be very frustrating. I worked with the FBX team many years ago in an attempt to get these and other issues addressed. Some things were resolved but its not ideal to be black boxed by the plugin and its limitations when your pipeline depends on it. This is where the FBX SDK comes in. While Autodesk has not open sourced the fbx plugin, they do continually update the SDK for C++ and Python. With this SDK you can modify the fbx scene file that you are exporting or importing. I was introduced to FBX Python SDK by my friend Jason Parks, many years ago when we worked together at Volition and I have been leveraging its usefulness ever since.

 

Python FBX SDK Uses

Listed below are just a few things that you can modify in an FBX file with the SDK

  • Adding or removing properties/attributes
  • Removing Namespaces before importing or after exporting
  • Removing objects that were not a part of the specifically selected objects but were associated
  • Removing textures or renaming paths
  • Rename objects in fbx scenes without having to re-export the file from the source
  • You can modify most anything in an FBX scene, external from a DCC application

 

Setting up the Python FBX SDK

http://www.autodesk.com/products/fbx/overview
Hit the “Get FBX SDK” link and on the next page look for Python Binding. Choose your flavor, Windows, Linux, or Mac, download and install/extract the package. If you need an earlier version for compatibility reasons go to the “SDK Archive” link. I’m still using 2014.1 and it works fine with Maya 2014/2015/2016 and UnrealEngine 4.x.

You will need to install the package you have chosen to download. This package has a lot of incredibly useful samples for getting started with FBX in python and getting an understanding of the FBX scene in general. If you are at all familiar working with Python in Motionbuilder, pyfbxsdk, it is almost exactly the same and this should be quite easy to pick up.

 

Installing for Maya

If you are working in the latest versions of Maya 2014 and higher you will want the files in lib/Python27_x64 or x86. There are three main files that you will want to point to or add to your existing python paths for Maya.

Here is a snippet to add to a script or your startup for Maya.

import sys
sys.path.append(r'/FBXPath')

These are the files that are needed:
fbx.pyd
FbxCommon.py
fbxsip.pyd

Here is some startup code for the FBX Scene Wrapper Class.

 

import fbx
import FbxCommon

class FBX_Class(object):
 
 def __init__(self, filename):
  """
  FBX Scene Object
  """
  self.filename = filename  
  self.scene = None
  self.sdk_manager = None
  self.sdk_manager, self.scene = FbxCommon.InitializeSdkObjects()
  FbxCommon.LoadScene(self.sdk_manager, self.scene, filename)
  
  self.root_node = self.scene.GetRootNode()
  self.scene_nodes = self.get_scene_nodes()

fbx_scene = FBX_Class(r'c:\my_path\character.fbx') # instantiate the class


The main thing to be aware of with most classes, is that you have to instantiate them to access their internal methods. Here we need to pass an argument that is a string of the fbx file path and name. The _init_ method will automatically parse and load the fbx scene. The one thing when parsing a file that you care about is speed, luckily when working with the Fbx SDK, even in python, I find it to be incredibly fast even on large Fbx files.

Now that the fbx scene is loaded we can go nuts changing the fbx file however we want. At Boss Key, after exporting I run a post process to modify all the fbx files, be it a character skeletal mesh, a weapon, or an animation file. I remove namespaces, empty display layers, remove objects that are in exported hierarchies that I don’t want importing into UE4, or cleaning up any properties when necessary.

import FBX_Scene

def clean_character_scene(fbx_file):
 """
 Clean up character fbx file
 """
 
 # open the fbx scenes and get the scene nodes
 fbx_scene = FBX_Class(fbx_file)
 if not fbx_scene:
  return False

 remove_names = []
 keep_names = []

 # remove invalid nodes noted by properties assigned in the DCC application
 all_nodes = fbx_scene.get_scene_nodes()
 for node in all_nodes:  
  export_property = fbx_scene.get_property(node, 'no_export')
  if export_property:
   property_value = fbx_scene.get_property_value(node, 'no_export')
   if property_value == True:    
    node_name = node.GetName()
    fbx_scene.scene.DisconnectSrcObject(node)     
    remove_names.append(node_name)
   else:
    node_name = node.GetName()
    keep_names.append(node_name)

 # remove the nodes from the scene by name 
 fbx_scene.remove_nodes_by_names(remove_names)

 # remove display layers
 # For some reason these change FbxCollection ID and NodeName
 layer_objs = fbx_scene.get_class_nodes(fbx.FbxCollectionExclusive.ClassId)
 if layer_objs:
  remove_layers(fbx_scene, layer_objs)
  
 # remove FbxContainers
 nodes = fbx_scene.get_class_nodes(fbx.FbxObject.ClassId)
 if nodes in nodes:
   if node.GetClassId().GetName() == 'FbxContainer':   
    # disconnect the layer from the scene
    node.DisconnectAllDstObject()
    node.DisconnectAllSrcObject()
    fbx_scene.scene.RootProperty.DisconnectSrcObject(node)

 # remove display layers
 display_layers = fbx_scene.get_type_objects(u'DisplayLayer') 
 if display_layers:  
  remove_layers(fbx_scene, display_layers)

 # save the modified fbx scene
 fbx_scene.save()
 
 return True

Right after I run my custom fbx export method in Maya I will call a method, such as the one above, all in the same process. So when the artist is finished exporting they won’t even know I opened up the fbx and modified it for the better.

The great thing about the FBX Python SDK is that you don’t need a DCC application to run it. You can run standalone processes and modify all of your mocap or skeletal mesh files, renaming nodes, changing hierarchies or adding properties, all without having to return to the original DCC to reexport. Once you start working with the Fbx Python SDK you may never stop.

The Python SDK can process importing mocap before you actually import it into your scene and remove namespace issues.

 

Once I got familiar enough with FBX SDK I started a project which became the Saints Row Mod Tools. I wrote the tool that converted fbx scenes into the file formats needed for Saints Row 3, and Saints Row IV for for modding purposes. Before we used custom plugins, tools and processes that would be far too complex to release to the community and support for multiple DCCs. Fbx covers all the bases so this was a worthwhile tool and the community seemed to appreciate it.  If you want to download the python script that really digs into breaking down the fbx scene, feel free to hop over to the saintsrowmods forums and grab it.

 

My Public Gists (full examples from this post)
https://gist.github.com/Meatplowz

 

On a side note if you want to actually extend the plugins with C++ you can do so.
FBX SDK Plugin Extension

 

Let me know if you have any questions on the Fbx Python SDK. If you have any suggestions or tips yourself please share them as well.

Guest Post : Evan Cox MotionBuilder Gotcha’s

In our previous blog post ( http://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

 

 

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

 

 

Artist in Residence Video on updated descriptions and video notes

We have been continuing to update the video on demand AIR (Artist In residence) interview video with descriptions and time marked video notes.

Rigging Dojo Artist in Residence ( A.I.R ) “A la Carte” Replay Store from Rigging Dojo on Vimeo.

Title     Breathing Life into Zombies

Date    July 30, 2014

Length    1:25:58

Presenter    Sterling Reames

Bio    Principal Animator at Bit Fry Game Studios.  Also worked as the Senior Animator at Proletariat animating the living, the dead and the living dead in World Zombination.

Topic(s)    Behind the scene view of rigging World Zombination characters

Description    Discusses what it took to get the characters rigged and animated for the game + free World Zombination character rigs.

Brief Outline         2:36 – Day-to-Day Work

5:56 – Referencing and Changing Rig

8:55 – Rendering Process

20:33 – Creating the Look and Movement

  • Maps
  • How to Add to Rig System
  • Weights
  • Rigging Experiments
  • Lots of Controls

1:03:31 – Other Tools Needed?

1:15:44 – What’s Next?

 

Title     Simple Solutions To Complex Problems

Date    August 21, 2014

Length    1:42:18

Presenter    James Direen

Bio    Senior Rigging Artist at Reel FX Creative Studios.  Recent works include Rock Dog, The Book Of Life, Free Birds and Despicable Me: Minion Mayhem 3D.

Topic(s)    How to find a balance to overthinking a solution

Description    Shows how the three steps to working through a problem were used for The Book of Life characters.

Brief Outline         2:43 – Overview

7:10 – Analyzing the Issue

8:40 – Eyelids Rig Example

21:08 – Designing the Solution

27:11 – Arm Rig Example

47:19 – Script Node for IK/FK System

52:45 – Working Through Production

54:40 – Refactoring and Reusability Concepts

1:00:59 – Radial Angle Driver Example

1:22:11 – Q & A

 

Title     Day of the Dead Treats

Date    October 31, 2014

Length    1:27:17

Presenter    Josh Carey

Bio    Co-founder of Rigging Dojo and Head of Rigging at Reel FX Creative Studios.  Recent work includes Rock Dog, The Book of Life and Free Birds.

Topic(s)    Techniques used for The Book of Life characters

Description    Discusses how custom plug-ins and surface projections were used for the characters in The Book of Life as well as other rig examples

Brief Outline         1:21 – Sausage Lips

24:11 – Chuy Controls

38:52 – Commercial Project

49:18 – Looney Tunes Smears

51:32 – Happy Rig

58:58 – Ribbon Example

1:01:10 – Q&A

 

Title     First Steps

Date    December 3, 2014

Length    1:35:17

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

 

Title     Matt’s TD Toolkit

Date    December 12, 2014

Length    50:22

Presenter    Matthew Kapfhammer

Bio    Pipeline Architect with Neoglyphic Entertainment.  Also worked as Motion Capture Pipeline Developer at Weta Digital.  Recent work includes Furious 7, the Hobbit trilogy, Dawn of the Planet of the Apes, Man of Steel and the Avengers.

Topic(s)    Using third-party tools and programming concepts for writing code

Description    An overview of the various areas of a pipeline and the different tools needed to make the workflow process easier

Brief Outline         2:18 – General Work Concepts

13:00 – Software Type Tools

22:34 – Making Sure Code Works

33:50 – Versions and Source Control

36:59 – Resources and Further Reading

38:48 – Q&A

Title     Triangle Vision for Problem Solving

Date    February 26, 2015

Length    1:25:05

Presenter    Robbert-Jan Brems

Bio    Co-creator of Xoliul Shader and Technical Artist at Eidos-Montreal.  Recent work includes the stealth video game Thief.

Topic(s)    How to divide and conquer any problem you want to solve

Description    Methodology for breaking down problems into different components to find new solutions

Brief Outline         5:36 – Building Blocks

16:51 – The Process

25:52 – Learn Something New Every Day Tool Example

40:35 – Feedback Tool Example

50:51 – Q & A

 

Title     Well-Behaved QT UIs in Maya

Date    April 8, 2015

Length    1:12:11

Presenter    John Hood

Bio    Pipeline Supervisor for Sony Pictures Imageworks.  Recent work includes Pixels, Hotel Transylvania and Edge of Tomorrow.   Currently working on The Angry Birds Movie.

Topic(s)    Tips for creating UIs with QT and PySide

Description    Covers concepts for creating UIs in Maya that behave correctly

Brief Outline         2:39 – Getting Started

8:54 – Core Class Structure

25:50 – The Business End of Things

56:31 – Why QStandardItemModel

 

Title     Fast Rigs

Date    July 29, 2015

Length    2:00:24

Presenter    Raffaele Fragapane

Bio    Rigging Supervisor for the film VFX division of Animal Logic.  Recent work includes Walking with Dinosaurs 3D.

Topic(s)    Tips for resolving performance related issues

Description    Understanding performance fundamentals in order to evaluate and improve how fast a rig is processed

Brief Outline         2:30 – Graph Theory

  • Directed Acyclic Graph (DAG)
  • Dependency Graph
  • Push – Pull – Hybrid

50:17 – How Threading Works

1:13:09 – Running Parallel Evaluation

1:30:22 – Q & A

 

Title     Python for Production Or – How Not to Screw Everyone

Date    September 2, 2015

Length    1:22:21

Presenter    John Hood

Bio    Pipeline Supervisor for Sony Pictures Imageworks.  Recent work includes Pixels, Hotel Transylvania and Edge of Tomorrow.   Currently working on The Angry Birds Movie.

Topic(s)    Tips and tricks for creating Python scripts for production

Description    Introductory tutorial on ways to organize scripts for maximum amount of reuse and extensibility

Brief Outline         3:43 – What It’s Not

8:20 – Marriage of Programming and Down and Dirty Coding

10:23 – Key Concept – Model/View Architecture

  • Library
  • UI – Entry Points
  • Testing

28:54 – Example

 

Title     Getting Organized and Keeping It Simple

Date    October

Length    1:31:47

Presenter    Jeff Brodsky

Bio    Character Technical Director at Disney Feature Animation.  Recent works include Big Hero 6, Epic, Ice Age: Continental Drift and Rio.

Topic(s)    Ways to simplify and organize a rig

Description    Discusses Rigging Dojo’s short film rigging course, Big Hero 6 spine rigging and organizing a rig

Brief Outline         0:57 – Rigging for Cartoon Production Class

6:25 – Using GitHub for Revisions

11:53 – Character Framework

38:04 – Organizing the Rig

47:32 – dRig System

54:35 – New Big Hero Spine Rig

1:02:34 – What to Show on Demo Reels

1:10:57 – Q&A

 

Title     UX for Rigs and Tools

Date    June

Length    45:18

Presenter    Chad Moore

Bio    A veteran technical artist, animator, manager and director specializing in character animation for games and game cinematics.  Co-founder of Rigging Dojo and Senior Technical Project Manager at Mad*Pow.

Topic(s)

Description

Brief Outline         2:50 – UX Overview

7:43 – Examples

  • Turbine Toolbar
  • Tactic
  • Env Switcher

23:27 – How to Get Started

23:50 – Recommended Reading

24:51 – Deciding UX Changes for a Rig

33:27 – Axure Mockup

39:11 – Let’s Build Something!

Title     Rig Feedback and Deformation Review

Date    Unknown

Length    1:11:56

Presenter    Brad Clark

Bio    Co-founder of RiggingDojo.com, character art and technology consultant working with next generation rigging and animation software projects and technical software support for Motus Digital.

Topic(s)        Feedback and deformation review of student rig created by Aaron

        Carlisle

Description    Covers joint placement and deformation setup and provides tips and advice on skinning and deformations

Brief Outline         1:51 – Model and Joint Issues

41:53 – Deformation Corrections

56:39 – Final Thoughts

Autodesk Maya 2017 update 3 – can’t miss features

Can’t miss features in Maya 2017 update 3

 

Autodesk has pushed a sizeable update to 2017 in several areas. We are going to point out the ones that stand out for animators and character Tds. We are excited to see some of the updates show up as there are a few nice built-in features that would have required external tools or custom plugins. Check it out, we posted our features you should know and also posted a few examples and parts of the documentation to make it easier to understand and get moving with.

Top features Rigging:

  • Dash Scripting

    Animators check out Dash scripting in the Channel Box example:

    ts(number)Time offset any keyframes for the selected attributes by ‘number’ of frames.

    Dash Scripting is a new form of fully customizable scripting has been added to the Channel Box. To use it, select one or more attributes and then Alt + right-click them to display an in-line editor, then input a command. For more information, see Dash scripting.

  • Updated deformerWeights commands (thanks to Chris Evans and his post that got it started)

    The examples for the deformerWeights Python/MEL commands in the Maya Technical Documentation have been updated for clarity and expanded to provide more detail. For example, you can now copy and paste the command examples into the Script Editor.

# Export weights with connectivity information, and then import with bilinear mapping.
# This provides a way to transfer weights between meshes with different topologies.
#
cmds.deformerWeights ("testWeights.xml", ex=True, vc=True, deformer="skinCluster1")
cmds.deformerWeights ("testWeights.xml", im=True, method="bilinear", deformer="skinCluster1")

  • New and improved Defomers and tools (Game TDs pay attention)

    • New Delta Mush attributes
      A new Distance Weight attribute lets you account for the distance between vertices when calculating the “mush”.A new GPU version which has shown a speed up from 2 – 4x over the new CPU version in limited testing.Inward and Outward constraints retain the contour of the deformed mesh shape just before the delta mush deformer. Use this when working with a displacement set to a low value, but it also provides good results in other cases.
    • Tension Deformer
      A new Tension deformer lets you simulate surface tension without squashing and stretching the surface too much. It uses the connectivity between the mesh vertices to preserve the (relative) lengths between them.

      Vertices manipulated without and with Tension deformer effect

    • Bake Deformers (bake down your DeltaMush for your game engine)
      Bake Deformer lets you export complex rigs to applications that have limited deformer support, as well as being a quick trick for determining default character bind weights.You can currently only open this tool through the Maya Command Line using the BakeDeformerTool command.
    • Bake Deformer Tool
    • Bake deformers on a character
    • Autodesk Alternatives if you can’t update yet

Top features Animation (Rigging Dojo assist):

  • Mocap editing? Enhanced Timecode support
    Maya’s new 64-bit tick rate lets you display and input timecode format throughout Maya, including in MEL and Python commands in the Script Editor.
    New,Import Playback Options section where you can choose to use the imported file’s frame rate, override it with the scene frame rate, or combine the scene and imported frame rate.
  • Sync Timeline Display

    When on, synchronizes your selections in the Channel Box to the Time Slider so that the Time Slider displays only keys for those selected channels. When you set a keyframe only channels selected in the Channel Box are keyed. If nothing is selected in the Channel Box, the Time Slider displays keys for selected objects as usual.

  • Animation Layers in the Time Editor (Now Clip Layers)
    Time Editor Animation Layers have been renamed Clip Layers in the documentation to differentiate between them (Time Editor animation clip layers) and the Animation layers used in the Animation Layer Editor. Animation Layers are not supported in the Time Editor as they create conflicts.
  • MotionBuilder Anim UI coming to Maya Updated Playback Options
    A new area, Playback options has been added including a Frame Rate menu that lets you set the scene frame rate

    A Loop button has also been added to the Playback options with three states so you can toggle the scene animation between three looping states:

    • Loop
    • Repeat once
    • Oscillate (forward/reverse)

 

Here are the full links to each area to continue reading about all the  updates.

What’s New in API

For information regarding new API features in Maya 2017 Update 3, see at’s New in API in Maya Update 3.

*Disclosure we are on Beta and also independent consultants for Autodesk