Categories
Blog Post news update

Introducing Maya 2020 Rigging Features

New rigging features to note, we are putting notes that might get overlooked here from the 2020 Maya Docs so people can focus on just the rigging updates.

Cached Playback whitepaper: For riggers, TDs, and plug-in authors who want to understand the Cached Playback architecture so they can benefit from recent performance enhancements in Maya, we’ve provided more comprehensive explanations of Cached Playback in the Maya Cached Playback whitepaper.

Maya Help: Matrix operators
https://help.autodesk.com/view/MAYAUL/2020/ENU/?guid=GUID-D4AD9536-8E16-403B-A98C-0A3646728EFC

New rivet tool follicle replacements
Maya Help: Create a Rivet (The Rivet command lets you attach locators directly to a deforming mesh. )
https://help.autodesk.com/view/MAYAUL/2020/ENU/?guid=GUID-AA022E34-2D7A-4055-A827-66838221D61B

Changes to Maya’s transformation model

A new matrix input, parentOffsetMatrix, has been added to all Transform-derived nodes to simplify the Dependency Graph (DG) and directed acyclic graph (DAG) graphs.

Why we care…watch this video and then keep going.

The addition of this attribute also enables advanced new Matrix-driven workflows:

  • keeps translation, rotation, and scale channels on driven transforms unpopulated and available for animation
  • reduces the number of DG and DAG nodes and connections riggers need to create
  • lets you define the position of a node when its transform attributes are zeroed out
  • reduces computational overhead and simplifies editing in the node editor

Currently in Maya, most constraint computation is matrix math, the result of which is decomposed to scale, rotation, and translation values that are then used to drive other transforms. This leads to extra complexity in the graph and excessive computation.

The offsetParentMatrix is inserted in the transform model after the parent matrix and acts as an offset to its own parent matrix. This new attribute lets you skip the expensive decomposition/composition step. It has the added benefit of leaving the driven transform’s scale, rotation, and translation channels available for animation. This process reduces the number of DAG and DG nodes riggers need to create in rigs.

This is great but how do you split out this information when needed? Enter the Pick Matrix Node to change what the offsetParentMatrix looks at, Scale, Rotate, Translate to make a more powerful “parent” constraint.

And here is a bit deeper look at the Matrix information and how to explore and use it.
Matrix Widget

And just for fun…they have added a MotionBuilder-style X-ray toggle to cycle through rig display, rig accordingly.

Press Alt + A to cycle through different X-ray modes

Cycle rig display mode is a shortcut that lets you press Alt + A to cycle between joints, controls, and character using the Cycle rig display mode hotkey. (You can also access these modes through the Shading Panel menu.)

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

Happy New Year

Happy New Year everyone!

Here is one last tip for the year as we are looking forward to what is coming in the way of rigging and animation and workflow…hope this lets you explore and get animating faster!

You should by now know about  Raf and his  ephemeral rig concepts (“Spider-Man: Into the Spider-Verse” could have used this technique easily)

 

Here we wanted to share a quick tip on how to try out and apply this concept out of the box *mostly, in Maya or MotionBuilder. We demo it in MotionBuilder but the Time Editor in Maya works very similar with pose clips. 

 

Check out our new free HIK training for Maya https://www.riggingDojo.com/2019/02/08/learn-maya-hik-custom-rig-motion-capture-retargeting-and-animation-in-1-minute/

Categories
Blog Post rigtip

Guest Post: Tech Animator Dump: Customizing Radical Heights – Part 1

Source: Tech Animator Dump: Customizing Radical Heights – Part 1

My Photo

Customizing Radical Heights – Part 1

My work on Boss Key Productions most recent project, Radical Heights, focused a lot on character customization. In this post I’m going to discuss the process and creation of a customizable character for Radical Heights.

Having previously worked on Lawbreakers and the Saints Row franchise, much of my time has been focused on creating processes for constructing customization for game characters. The methods described below were no doubt influenced by my past experiences and lessons learned working on these titles.

For customization purposes it is important that your visual goals are outlined initially and the “known” technicalities are addressed before jumping in and creating clothing assets. If you change any of the base character assets during production, you will lose a great deal of time re-working any of the existing clothing assets you may have already created. Understanding the problems up front is key to defining the customization process. You want to minimize the work on the art team and maximize the quality and quantity of assets that can be created.

Character Scale

 

First and foremost the Character Artist and the Character TD will need to work with the level and environment team to ensure you character height will work properly in the scale of the world. In most cases it is a good idea to keep close to real world units for scale. It’s likely easier to create real world weapons that work correctly with your character, if you follow this rule as well.

Play-testing your character in game running around, even early in a rough state will help you identify issues with character and world scale. It’s important to nail this down early in your process.

Character Mesh Topology

We started with a fairly standard male mesh until we fully determined how we wanted to approach the semi-stylistic look we wanted the characters to have. Here you can see some stages the proportions of the character went through before we came to our current version. The overall height and proportions didn’t have to change drastically from our initial construction. However, some aspects changed enough for us to have to modify the skeleton and in turn adjust and re-export animations.You can also see some of the topology was reduced to minimize the work that it would take to project onto future clothing assets and to lower the polycount overall.

From my past experiences, I found its best to have the character mesh topology to be created in a uniform manner. As you can see here, it’s almost a grid-like pattern. This actually makes it easy to define notable landmarks, where clothing assets will generally start and end. If you know the type of clothing and outfits the character may wear, its usually a good idea to make sure edge loops can border these common areas. This will be necessary for hiding the geo of the underlying character mesh at run-time, using a technique I will describe below.

When optimizing the mesh, it’s important to remove unnecessary edge loops where the detail doesn’t need to project onto clothing assets or the detail doesn’t support deformation. You may notice the nipples were removed from the topology as they may only be seen in very few assets and projecting that topology onto most of the clothing would just be too time consuming and wasteful. Only add edge loops to areas that need to support deformation and where the silhouettes of clothing would benefit from that detail.

 
Character model by Chris Wells

 

Customization Asset Topology

In the following image you will see how the clothing topology mimics that of the body mesh. This is important for deformation consistency. If the body can deform fine with the existing skeleton then the overlapping clothing assets with the same edge loops, will usually deform the same. You don’t want to have issues with the body tearing through the clothing and sticking out. If the topology was different between the meshes then you would likely have to add bones to correct for the tearing and intersecting issues as a result. This is not ideal when you are creating a game that needs to run as optimal as possible and extra bones increases processing time. Fixing visual issues with solutions that would hinder performance is not the best route to take.

 
Clothing meshes mimic the body topology

 

Character UVs & Mesh Hiding

The first uv channel is fairly standard as you can see here. The second uv channel is what we use to hide the faces of the body mesh. We first identified the common clothing areas and broke them down into subsections depending on the types of clothing. Next we generated uv shells based on those subsections and smashed the coordinates of those uvs to a singular value in the UV space. This coordinate can then be mapped to a game-side data file and referenced to hide when marked up with corresponding clothing assets. The material on the body skeletal mesh will have a technique that can then hide the triangles, or set them to not render when the coordinates have been flagged to be hidden.

For example, if the character is wearing a shirt, we would flag the first couple of coordinates being selected below to hide, ( U 0.1, 0.2, 0.3 ) Keep in mind the mesh assets need to be created so that the overlying mesh crosses over the edge boundaries, so that holes in the body will not be visible, when the body mesh faces are hidden.

 
UV Channel 1
 
UV channel 2 coordinates used to hide body mesh faces in game.

 

Customization Parts

When determining how complex you want your customization system to be you have to understand the amount of work you will be taking on. In Lawbreakers we did full mesh customization. This is essentially a mesh swap for each version of customization you want to have for the character. The creation is straight-forward to build as long as the meshes follow the conventions of the original character. The in game system is not complex at all, as it is just a mesh reference change, so the programming effort to implement this system was minimal.
For Radical Heights we decided to do a relatively basic “Paper Doll” setup. We researched the type of clothing we expected the character to wear and defined the most notable areas that we want to be able to customize so we could plan our asset creation accordingly. On the surface this looks easy to create for but it can spiral out of control very quickly from asset creation to in game implementation.

Clothing Boundaries

The things to be aware when creating the clothing, are asset parts that cross the boundaries of other parts and the volume/thickness of those assets. For example, if you create a shirt and pants with the same thickness and the shirt crosses over the boundary of the top of the pants, you will get an unwanted intersection. Determining how to create these assets consistently while avoiding these issues need to be decided up front.

Clothing Layers

Layered clothing, such as the UpperBodyArmor here, has to work relative to varying levels of volume/thickness of the upperbody assets. To correct for this instance, we have a morph target on the bulletproof vest mesh, that can be adjusted per upperbody asset at run-time. Addressing a singular asset in this case to correct an issue, works out far better than generating morph targets for each and every shirt asset. Always look for the cheapest way to solve a problem.

Clothing Materials & Draw Calls

Radical Heights can have up to 100 characters and the body mesh for the character already has three draw calls ( head, body and the eyes). For customization purposes we have separated out the clothing to specific parts, and each part on its own becomes a singular draw call, this means by default a character can be upwards of ten draw calls. This is not a great start, which means we need to keep the material count low for each clothing asset. We try to make sure they sure each asset has only a single material and two in the worst case.

Customization Fixes

When you have assets crossing boundaries or overlapping other parts you also have to handle how you want to deal with other crashing issues. In extreme cases we will hide the offending assets, large helmets will hide the hair parts. In other situations, in which we identify a common issue, we will create named morph targets to fix problems. Similar to what we did with the armor we will create a common morph target for each hair asset when a standard hat is enabled. This morph target will scrunch the hair down to work better with the hat. We cannot create a custom morph target for every hat asset, that amount of work and data loading would be ridiculous. Therefore, when we create the hat model, they fit to a predefined location on the head, so that a singular hair morph will work with every hat.

We did later determine that we wanted to have headbands for our characters to customize, as they fit the time period and aesthetic we were going for. This meant we had to circle back and create new morph targets for each of the hair assets to accommodate the headband location. This was an unknown initially but it was important for us to implement this specific data fix for each asset.

These rules for how hats, headbands and every other customization part can work together are important in defining creation guidelines. These guidelines are necessary to prevent data correction bloat from permutation issues. Understanding the volumes and boundaries for each asset is helpful to reducing these data fixes and ensuring compatibility with future assets.

  Character Skeleton

Radical Heights is an online Multiplayer game with up to 100 players. This means the character itself has to be fairly simplistic in terms of run-time complexity. The number of processing skeleton joints should be fairly small even at the lowest Level of Detail (LOD). The deforming corrective deforming joints start to drop off quickly as the character starts to LOD out. The twist and corrective joints are usually the first to go, ultimately leaving only the primary body joints, when deforming characters in the furthest distances on screen.

The supplemental joints here are comprised of joints used for IK hands and feet as well as joints only used when the character is in First Person/Aim Down Sights (ADS) mode.

  Character Rig

We continued to use Epic’s ART tools, created by Jeremy Ernst, to construct the player character rig for animation. The tool set allows you team to hit the ground running with a fully animation friendly rig and accompanying animation tools. I use most of the rig construction out of the box with additional custom rigging on top to satisfy our specific needs for animation and deformation.

Shared Skeletal Mesh

On Lawbreakers we chose to have two separate skeletons for First and Third Person. This required us to duplicate the customization assets work done by the character artists and double the amount of data that needed to be loaded by a character in game. The fidelity of the assets had also changed enough to necessitate this choice for that project. However, the speed at which we needed to create assets and the bandwidth we had on Radical Heights, meant we needed to be a bit more conservative and efficient with our time in asset creation. By having a single skeleton for first and third person it meant we should only have to create the clothing assets once and the same assets could be visible for both perspectives in game.
I modified the rig and skeleton hierarchy to be able to handle both aspects for animation purposes. The core of the third person skeleton remains untouched aside from various supplemental joints for controlling the camera and upperbody pitching in first person. This is handled by the rig using a single switch that modifies the visibility of various animation controls and changes multiple constraints that affect the behavior of the rig.

  Character Animation

In First Person, the camera is positioned relative to the head location, so we need to move the head out of the way for animation purposes. In the animation file we just rotate it backwards. In game we also hide the faces on the head and parts of the torso, using the UV method mentioned above, to prevent the them from rendering in the players view.

 
Animation by Ryan Palser

Checking Animation with Clothing Assets

The pipeline and tool set I created to work with all of the assets on Radical Heights, allows the animator to view customization items in their scene and correct poses where needed. Not every item will work perfectly with every pose, but this gives the animators the opportunity to easily address some of the worst cases scenarios as they are bugged by our QA team.

 
Animation by Nick Maw-Naing

Coming up Next

In the next post I will be going over the customization tool used by the character artists to setup assets for export and implementation in game.

Categories
Blog Post tutorial video

Maya Time Editor – Learning Series

 

A getting started series on the Time Editor in Autodesk Maya by Steven Roselle

A getting started series on the Time Editor in Autodesk Maya by Steven Roselle. This is a very clear ramp up on using the Time Editor to create, blend, edit and time warp animations in a non-destructive and non-linear animation editing tool. Must watch for animators in Maya.

Our friend and Maya master Steven Roselle from My Oh Maya is creating a series of videos on the Time Editor tool. These are a great starting point for anyone who still has not tried it yet. He also covers some tips and workflows that, if you have used the Time Editor, there is a good chance you missed or overlooked. He covers clip creation and re-use, time warps, animated icons for your pose library, matching clips and transferring animation to name a few examples.

While not yet a MotionBuilder replacement it offers a much better option than the older TRAX workflow in Maya. The Time Editor among other things gives your the ability to work with diffrent “TAKES” in Maya out of the box like an animator could with MotionBuilder, allowing more than once timeline of animation at a time in a fast way without hacking it with the older Animation Layer system.

Maya Time Editor Part 1 – Getting Started

Maya Time Editor Part 2 – Clips and Sources

Maya Time Editor Part 3 – Baking and Exporting

Maya Time Editor Part 4 – Clip Remapping

Maya Time Editor Part 5 – Blending and Retiming

Maya Time Editor Part 6 – Clip Layers

 

 

Facebook – https://www.facebook.com/My.Oh.Maya

Blog – https://area.autodesk.com/profile/My+Oh+Maya/blog-posts/

 

If you want to learn some MotionBuilder tricks and get some great advice you can explore and try out in Maya, go get our free Motion Editing E-Book: Rigging Dojo – A Guide to Motion Editing and MotionBuilder in 140 characters