slide1
Download
Skip this Video
Download Presentation
Part of the Red9 StudioPack - open source tool suite for Maya

Loading in 2 Seconds...

play fullscreen
1 / 24

Part of the Red9 StudioPack - open source tool suite for Maya - PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on

Red9 MetaData : MetaData Coding in a Maya Production Pipeline Mark Jackson, Technical Animation Director Crytek UK. Part of the Red9 StudioPack - open source tool suite for Maya Red9_MetaData is just one module in the extensive suite of tools

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Part of the Red9 StudioPack - open source tool suite for Maya ' - kelly-conway


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide3
Red9 MetaData : MetaData Coding in a Maya Production PipelineMark Jackson, Technical Animation Director Crytek UK
  • Part of the Red9 StudioPack - open source tool suite for Maya
  • Red9_MetaData is just one module in the extensive suite of tools
  • Available directly from Autodesk Exchange website – linked from Maya’s help menu
  • Autodesk Certified app
  • Source code on GitHub
  • All platforms - Win / OSX / Linux, supported from Maya 2010 (Python 2.6)
  • Supported by Crytek and integrated as the core of our internal pipelines
red9 metadata what we ll be covering in this talk
Red9 MetaData : What we\'ll be covering in this talk
  • What is Red9_MetaData and how can it benefit you?
  • Basics of MetaData API base class
  • MetaRig – friendly out of the box rigging and animation support
  • Internal Production Examples
    • CryMetaRig - rigging
    • CryExportMeta - exporters
    • CryFacialMeta – facial systems
  • Getting into the code – subclassing, things to be aware of and key functions
  • Open floor to questions
red9 metadata what are the benefits of using metadata
Red9 MetaData : What are the benefits of using MetaData?
  • Python API to manage data and systems intuitively inside Maya
  • Totally generic and expandable, designed to be subclassed – Morpheus2
  • Handles Maya attributes in a more pythonic manner, with auto-complete
  • Ability to walk Maya nodes / networks as class structures – ideal for rigging
  • Factory class - Maya nodes represent python classes directly
  • MClass attr on node determines class instantiated
  • Visually designing code as Maya node networks
  • Internally caches MObject
  • Default uses Maya ‘network’ nodes, but this is configurable
  • Power is in the dot complete!
red9 metadata
Red9 MetaData

Attribute handler demo

red9 metaclass attribute handlers
Red9 MetaClass : Attribute handlers
  • Any node in Maya can be turning into basic meta wrapped objects
  • Gives you instant auto complete on all attributes in the editor
  • Maya node attrs are all synced and bound to the Python Object
  • Supports complex attrs – doubleArray, double3, float3 etc
  • Full JSON serialization
  • Message attrs auto connect and return data
  • addAttr can be used to force update **kws
  • Red9\examples\MetaData_Getting_Started.py
red9 metadata1
Red9 MetaData

CryMetaRig – demo video

red9 metarig subclass out of the box complex rig support
Red9 MetaRig : subclass - out of the box complex rig support
  • MetaData gives us the ability to walk nodes as class structures
  • MetaRig is just a standard subclass of MetaClass
  • Designed to be overloaded and expanded
  • CryMetaRig – internal subclass of MetaRig, core to internal pipelines
  • MetaRig wraps standard Red9 core functionality for you
  • In-built PoseCache support, PoseCompare, AttrMaps, ZeroPose, Mirror class
  • Created by simple macro using internal calls, wrapped to make things easier – see Morpheus example
red9 metadata export production example
Red9 MetaData : Export production example
  • CryExport Tag- entry point for the exporter, sub-classed for characters, props etc..
  • CryTimeRange- manages sub-timeranges and paths for export node
  • CryAnimSettings - caches and writes out animSettings per export

mRigs = r9Meta.getMetaNodes(mTypes=cMeta.CryMetaRig)

red9 metadata export production example1
Red9 MetaData : Export production example
  • CryExport Tag- entry point for the exporter, sub-classed for characters, props etc..
  • CryTimeRange- manages sub-timeranges and paths for export node
  • CryAnimSettings - caches and writes out animSettings per export

exportTag = mRig.exportTag

exportTags = r9Meta.getMetaNodes(mInstances=cryMeta.CryExport_BaseTag)

red9 metadata export production example2
Red9 MetaData : Export production example
  • CryExport Tag- entry point for the exporter, sub-classed for characters, props etc..
  • CryTimeRange- manages sub-timeranges and paths for export node
  • CryAnimSettings - caches and writes out animSettings per export

exportTag.timeRanges

red9 metadata export production example3
Red9 MetaData : Export production example
  • CryExport Tag- entry point for the exporter, sub-classed for characters, props etc..
  • CryTimeRange- manages sub-timeranges and paths for export node
  • CryAnimSettings - caches and writes out animSettings per export

exportTag.timeRanges[0].animSettings

red9 metadata export production example4
Red9 MetaData : Export production example
  • CryExport Tag - entry point for the exporter, sub-classed for characters, props etc.
  • CryTimeRange - manages sub-timeranges and paths for export node
  • CryAnimSettings - caches and writes out animSettings per export for Sandbox

Simple example of how using MetaData cleans up your code

red9 metadata2
Red9 MetaData

CryMetaFacial – demo video

red9 metadata crymetafacial production example
Red9 MetaData : CryMetaFacial production example
  • Cleanly designed node and class structures around MetaNode
  • One core entry point to manage the systems, subclassed from MetaRig
  • SubMeta nodes to group and retrieve data cleanly and intelligently
  • Uses __bindData__ to sync channels on the FacialCore dynamically
  • Facial control board and is purely a logic board, connects directly to the core via meta
  • Everything kept in sync so any age of facial rig will ALWAYS, on file load inherit and rebuild all the nodes expression channels
  • Dynamically keeps all export pipelines in sync and up to date
red9 metadata subclassing registery
Red9 MetaData : Subclassing – Registery

r9Meta.RED9_META_REGISTERY:

New subclasses have to be registered!

defregisterMClassInheritanceMapping()

r9Meta.RED9_META_NODETYPE_REGISTERY:

Only registered nodeTypes will be returned as MNodes – for speed

defregisterMClassNodeMapping(nodeTypes=None):

baseTypes=[\'network\',\'objectSet\',\'HIKCharacterNode\',\'HIKControlSetNode\']

red9 metadata key functions to be aware of
Red9 MetaData : key functions to be aware of

self.mNode : the Maya Node itself

self.__bindData__: allows you to bind attrs on instantiation of the class

self.getChildren: key function used to get nodes in a network

self.lockState: manages if the node is internally locked on creation

@nodeLockManager: decorator – Manages the lockState for you

self._forceAsMeta: by default all returns and searches come back as dag path strings – speeds up the codebase. This flag switches it so that ALL returns are always instantiated metaNodes.

Other standard nodes which I’m gradually expanding:

  • MetaHIKControlSetNode / MetaHIKCharaterNode
  • MetaHUDNode
red9 metadata summary
Red9 MetaData : Summary
  • MetaData helps you manage data in a more fluid manner
  • Makes handling attribute data very simple
  • Helps prototyping and managing class structures
  • MetaRig – specifically extended to help TD’s gain fast access to Red9 AnimTools
  • Keeps systems flexible and code clean
  • Aides in visually designing node systems
  • Makes my life in production 1000% easier!!
red9 online reference
Red9 : Online Reference

GitHub :https://github.com/markj3d/Red9_StudioPack

Red9 :http://red9consultancy.com

Red9 Vimeo Channel : https://vimeo.com/user9491246

  • metaData part1 : https://vimeo.com/61841345
  • metaData part2 : https://vimeo.com/62546103
  • metaData part3 : https://vimeo.com/64258996
  • metaData part4 :https://vimeo.com/72006183
  • metaData HUD : https://vimeo.com/65006622

Rigging Dojo : Character Engineering Course http://www.riggingdojo.com/

ad