Pipeline Tools


Overview and Concepts

We're starting to have more users wanting to make actual game content and we wanted to help facilitate that. Our main project tools is are ProjectManager and Scene. They both handle slightly different functions though they share the same data config file. Why would you want to use these tools?

  • Manage project structure and animations
  • Export single or batch rigs and anim files
  • Fast scene building
  • Customizable structure

Setting up assets

This is a very important section. This dictates how our data structures will be built and can be annoying to change once we get in to production so it deserves some thought.

An Asset Type is the first structural point. What's that mean?

We'll talk about a characters asset type with the following subTypes:

  • anim
  • geo
  • rig
  • template

If I add a new character named Bob I'll get a structure of:

  • [ContentDir]
    • characters
      • Bob
        • anim
        • geo
        • rig
        • template

There's a couple of flags to pay attention to on subtypes.

  • sub | This is when you want sub instances to this subType.
  • variant | This is when you want sub variants to the sub.

For example, if sub is on on anim and you add an animation

anim/run/bob_run_01

With variant:

anim/run/fwd/bob_run_fwd_01 OR anim/run/01/bob_run_01_01

With export this changes a little. Looking at

  • [ExportDir]
    • characters
      • Bob
        • anim
          • Bob_run_fwd
          • Bob_run_01
          • [cutscene]_Bob | if you have a cutscene, those anims are split to sub folders

Exporting Rigs

# Reference rig into empty scene. # Select master # Export Rig

Note

If you're using maya.py you must save this to a location to open.


Project

We're actively using MRS for production. These are some of the tools we use to do that.These docs might get split out into separate docs in time but as we're working through them this is easier.

_images/ui_073120.png

Last Updated: 07.30.2020

  • Switching projects also changes the maya project path
  • Quickly change projects in maya with many more options that standard project switching
  • Connects to other tools to aid a multiple project workflow
  • Data stored to a config object python setup

Note

Not all features complete. If it's not covered here, it's not done.

Contributers

  • David Bokser
  • Josh Burton
  • Benn Garnish

Top Menu


Setup

_images/menu_setup_01142020.PNG
  • Recent | Submenu of previous projects to quickly jump between them
  • New | Setup a new project
  • Load | Load an existing project
  • Save | Save the project
  • Save As | Save existing as another project name
  • Reset | Reset to default? data
  • Fill | Fill the fields from stored data
  • Revert | Revert to saved data
  • Clear | Clear fields

Projects

List of projects stored so that you can quickly switch between projects.

  • Edit Path List | Opens window remove paths if you desire

Utils

  • Scene | Opens the Scene tool with the path settings from the tool
  • Push nameStyle | Not implemented
  • Get Project Paths from Local | Dev call
  • inTangent | Change defeault in tangent
  • outTangent | .... out tanger
  • both | change both
  • World Match | Push world settings of the project to the current scene
  • Anim Match | Push anim settings of the project to the current scene
  • World Match | Push both settings of the project to the current scene
  • Query | Simply check the current file

General

_images/ui_general.png

General project settings.

  • Name | Text field to set the project name
  • Type | Set the project type. (Unity,Unreal,Commercial)
  • NameStyle | NOT IMPLEMENTED
  • MayaVersion | Set the maya version. Just a reminder when you have lots of projects rolling.
  • Lock | Locks some settings. Mainly for using subs you don't want messing with stuff

Asset Types

_images/ui_assetTypes.png

Vital concept to understand. Please see the top of this page to get a better overview.


Asset Row

This is where we edit our asset types and add new ones.

  • <assetName> | Drop down of existing assetTypes.
  • Edit | Edit the name of the current type
  • Add | Add a new type via a dialog window
  • Dup | Duplicate this asset with a new name
  • Remove | Remove this type

Subtype

  • [+] | Add a new subType
  • [int] | Index of the subType
  • [<name>] | Text field to change the subType name
  • [ ] | Sub | Whether this subType has subdirectories or not
  • [ ] | Variant | Whether this subType has variants or not
  • [x] | Remove this subType

For example, if sub is on on anim and you add an animation

anim/run/bob_run_01

With variant:

anim/run/fwd/bob_run_fwd_01 OR anim/run/01/bob_run_01_01


Paths

_images/ui_paths.png

Directory/File paths for the project to know where things are. Paths are where you want stuff stored. We have two kinds of paths:

  • Project | This is where the project controller has put stuff
  • Local | This accounts for users having different drive setups. When set, a users local settings are stored to the config file

Note

Broken paths will be set as red. If you are intially setting up a project you can fill the local from project via setup>fill

  • Root | The root file path for the project.
  • Content | This is where our maya stuff will go. Maya's project path is set to this path.
  • Export | This is where we want our render/game engine exports to go. We typically have this go to a dropbox, github repos or svn/perforce location
  • Image | Path for the top image for this project in this ui and scene's. There's a psd template in the toolbox: cgm.images

Maya Settings

This is an early pass on this. You can verify these maya settings to a current file via the Utils menu at the top. Currently these don't have a huge affect.


World

  • worldUp |
  • linear |
  • angular |

Anim

  • frameRate |
  • defaultInTangent |
  • defaultOutTangent |
  • weightedTangents |

Export Options

Warning

Not implemented yet

  • removeNameSpace |

Content/Export

Iterating on our directory browsing setup we're using in a few tools.

  • Browse directories
  • Search bar
  • Right click menu for extra functions
  • Refresh | Rewalk structure to pick up external changes
  • Add | Add directory to root
  • Verify Dir | Use the structure list to check directory structure
  • Query | Search for weird files in the structure. Currently looking only for ones from dropbox
  • Clean | Remove files found during query

Note

Query/Clean only on Content for now

Right Click Menu

_images/menu_dirList_rightClick_01142020.PNG
  • Open Dir | Open os browswer of the directory
  • Open Maya File | Maya file open browser to this directory
  • Save Maya Here | Save current to this directory with ui
  • Add Sub dir | Add a new sub directory here
  • Delete Dir | Delete this directory. WARNING - includes files and sub directories
  • Log Dat | Dev thing to see what data is stored to this python object

Add Asset Dirs

Uses the structure settings to add a new directory with subdirectories from the comma sep list.

  • Character
  • Prop
  • Environment
  • Sub project

Data

The data is is listed in a particular way to make it most useful for us.

Note

bob \bob.character (5)

  • Character
  • Prop
  • Environment
  • Sub project

Scene

Last Updated: 08.04.2020

_images/ui_08032020.png
  • Managing animation sequences
  • Exporting animation and rigs to game engines
  • Exporting honors shot split data. See shot tool.

This ui is divided into a few parts:

  • Top Menu | The section on the top of the ui
  • Header | Header image and path display (if chosen - not shown in example)
  • Asset Navigation | Asset browsing, structure editing, meta data display
  • Export Queue | Manage exporting multiple files

Top Menu


Projects

  • List of projects in memory.
  • Project | open Project

Options

_images/ui_options.png
  • Show all files | Toggle between listing all files in the version directory or only the ones that are named according to how Scene saves new versions
  • Remove namespace upon export | Mainly for use with Unity at this point. Strips the ref prefix from export items. Unity takes in the namespace that it's exported as so if you want to use the same avatar in unity for all of your animations you want to use the remove namespace option. Unreal the namespace is automatically removed so it doesn't matter.
  • Zero Root Upon Export | Unity there is no method to snap the root to zero, so if you're doing root motion away from the origin, you'll want to use the zero root option. Unreal has various options to allow you to snap the root to origin in your animation properties so it's not needed
  • Use Mayapy | Similar to Builder, this used maya stand alone to export files. Much better to use when possible.
  • Show Directories | Whether to show the path fields at the top of the ui

Warning

Maya Stand Alone setup NOT currently mac compatible.


Tools

_images/ui_tools.png
  • Set Export Sets | Brings up a dialog to setup the object sets for export,bake and delete.
  • Update Selected Rigs | Check the selected master's rig dir for a higher rig version to replace the reference with
  • Remap Unlinked Textures | Attempts to find missing textures in the project tree
  • Verify Asset Dirs | Same as project, makes sure that content directories exist for assets

Export Sets

These sets are object sets we use to identifiy set we put in our rigs to aid in export. There are three sets we're looking for per asset.

  • bake | Items in this heirarchy list will be baked for export
  • delete | Items in this heirarchy list will be deleted before export
  • export | Items in this heirarchy will be export

MRS built rigs have these sets created by default. If you have additional items you want exported, deleted or baked, they should be added to those object sets.

Note

If not export sets are found, everything in the selected heirarchy will be exported and baked .

Sometimes a new user might find that everything is being exported instead of just what they want. Depending on how old their version of the tools are the default variables for this might be wrong. We have some option variables setup for this functionality.

You can check them via this...

for n in 'bake','delete','export':
    print mc.optionVar(q='cgm_{0}_set'.format(n))

And set them to MRS preferred with :

for n in 'bake','delete','export':
    mc.optionVar(sv=('cgm_{0}_set'.format(n), '{0}_tdSet'.format(n)))


Asset Nav

The meat of the ui here. This is where we manage, load, select and queue our files for processing opening.


Columns

This section is navigating the assets we set up in our project settings.

The first column is the asset column. The other three columns are for animation, variations and versions.

Category Column

  • Clicking it lets you change between categories which looks in the content directory for data to load.
  • There is a scroll list which you can pick from the options which then loads other columns

Right Click

  • Open in Explorer | Open os browser
  • Open Rig | Open the rig file
  • Import Rig | Import this referenced rig to your scene

Column Buttons

  • New Asset | ...
  • New Animation | ...
  • New variation | ...
  • Save New Version | Iterate open scene as the next version in sequence

Meta Data


Buttons

Note

Not done

  • Export | Export
  • Bake without Export | ....
  • Export Rig | ...
  • Export Cutscene | ...
  • Add to Export Queuen | ...
  • Load Animation | Load selected version above

Export Queue


Troubleshooting


Exporting everything?

Sometimes a new user might find that everything is being exported instead of just what they want. Depending on how old their version of the tools are the default variables for this might be wrong. We have some option variables setup for this functionality.

You can check them via this...

for n in 'bake','delete','export':
    print mc.optionVar(q='cgm_{0}_set'.format(n))

And set them to MRS preferred with :

for n in 'bake','delete','export':
    mc.optionVar(sv=('cgm_{0}_set'.format(n), '{0}_tdSet'.format(n)))

Shots

Last Updated: 01.13.2020

This is a tool for setting shot data for export. When the fbx's are exported they will be split into shots for use in the game engine. You can also change your timeline from the shot framing via the ui. The data is stored as json data on a transform in scene.

_images/ui_01132020.PNG

Top Menu

  • Auto Adjust Frames | Change shot lengths to keep frame lengths of other shots when you change a shot.

Shot List

The main part of the UI is the shot list which will grow as you add shots.

  • Name | Text field to change the name of the shot
  • Start | Start frame for the shot
  • End | End frame for the shot
  • Frames | REport of how many frames the shot covers
  • Frame | Button to frame your slider to this shot
  • Remove | Remove this shot

Add

_images/add_01132020.PNG
  • Shot Name | Text field for the shot name
  • Range | Start and end
  • OK | Add it

Updates

We try to keep this updated with big feature adds to see how it's changed over time.

2020

July

  • Project | ...
    • Data rework | Complete rewrote how the structure system works and implemented the new asset data type
  • Scene | ...
    • User experience | Default sets use MRS to make that default experience better. Loads fbx plugin if not

June

  • Project | ...
    • Data rework | Complete rewrote how the structure system works and implemented the new asset data type

April

  • Project | ...
    • Color management | Color data framework. Project color setup. Headers now colored to project color
  • Scene | ...
    • Maya Py | Stand alone support for exporting scene data
    • Utilities | Rename, delete, open maya file to right click menu
    • Send to Project | Send assets to other projects
    • Connected to project dat | Scene now using project data framework for consistency between apps
    • Relink textures | Utility to find

March

  • Scene | ...
    • project.data | Scene now using project data framework for consistency

Feb

  • Docs | First pass