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.
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
General¶
General project settings.
Name
| Text field to set the project nameType
| Set the project type. (Unity,Unreal,Commercial)NameStyle
| NOT IMPLEMENTEDMayaVersion
| 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¶
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 typeAdd
| Add a new type via a dialog windowDup
| Duplicate this asset with a new nameRemove
| 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¶
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 stuffLocal
| 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 locationImage
| 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
|
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 changesAdd
| Add directory to rootVerify Dir
| Use the structure list to check directory structureQuery
| Search for weird files in the structure. Currently looking only for ones from dropboxClean
| Remove files found during query
Note
Query/Clean only on Content for now
Right Click Menu
Open Dir
| Open os browswer of the directoryOpen Maya File
| Maya file open browser to this directorySave Maya Here
| Save current to this directory with uiAdd Sub dir
| Add a new sub directory hereDelete Dir
| Delete this directory. WARNING - includes files and sub directoriesLog 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
- 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 uiHeader
| Header image and path display (if chosen - not shown in example)Asset Navigation
| Asset browsing, structure editing, meta data displayExport Queue
| Manage exporting multiple files
Top Menu¶
Projects¶
- List of projects in memory.
Project
| open Project
Options¶
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 versionsRemove 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 neededUse 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¶
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 withRemap Unlinked Textures
| Attempts to find missing textures in the project treeVerify 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 exportdelete
| Items in this heirarchy list will be deleted before exportexport
| 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)))
Header¶
Image¶
The project header image path is set in Project and shared between muliple uis.
Paths¶
Optional display controlled vis the option menu. There are a couple of imporant paths for this tool.
Directory
| Content directoryExport Dir
| Where exports go
Note
If you load this tool from Project these paths are set on launch.
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.
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 shotStart
| Start frame for the shotEnd
| End frame for the shotFrames
| REport of how many frames the shot coversFrame
| Button to frame your slider to this shotRemove
| Remove this shot
Add¶
Shot Name
| Text field for the shot nameRange
| Start and endOK
| 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