Part of the red9 studiopack open source tool suite for maya
Download
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
Part of the red9 studiopack open source tool suite for maya
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 talk 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 talk

Attribute handler demo


Red9 metaclass attribute handlers
Red9 talkMetaClass : 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 talk

CryMetaRig – demo video


Red9 metarig subclass out of the box complex rig support
Red9 talkMetaRig : 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 : talkExport 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 : talkExport 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 : talkExport 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 : talkExport 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 : talkExport 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 talk

CryMetaFacial – demo video


Red9 metadata crymetafacial production example
Red9 MetaData : CryMetaFacial talkproduction 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 talk

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 talk

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 talk

  • 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 talk

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/


Part of the red9 studiopack open source tool suite for maya

Thanks for staying awake! talk

Mark Jackson

info@red9consutancy.com