Presentation is loading. Please wait.

Presentation is loading. Please wait.

Click to edit Master subtitle style. Red9 MetaData : MetaData Coding in a Maya Production Pipeline Mark Jackson, Technical Animation Director Crytek.

Similar presentations


Presentation on theme: "Click to edit Master subtitle style. Red9 MetaData : MetaData Coding in a Maya Production Pipeline Mark Jackson, Technical Animation Director Crytek."— Presentation transcript:

1 Click to edit Master subtitle style

2

3 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 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

4 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

5 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!

6 Red9 MetaData Attribute handler demo

7 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

8 Red9 MetaData CryMetaRig – demo video

9 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

10

11 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)

12 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)

13 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

14 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

15 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

16 Facial Systems!!!!

17

18 Red9 MetaData CryMetaFacial – demo video

19 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

20 Red9 MetaData : Subclassing – Registery r9Meta.RED9_META_REGISTERY: New subclasses have to be registered! def registerMClassInheritanceMapping() r9Meta.RED9_META_NODETYPE_REGISTERY: Only registered nodeTypes will be returned as MNodes – for speed def registerMClassNodeMapping(nodeTypes=None): baseTypes=['network','objectSet','HIKCharacterNode','HIKControlSetNode']

21 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 : 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

22 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!!

23 Red9 : Online Reference GitHub : https://github.com/markj3d/Red9_StudioPackhttps://github.com/markj3d/Red9_StudioPack Red9 : Red9 Vimeo Channel : https://vimeo.com/user https://vimeo.com/user metaData part1 : https://vimeo.com/ https://vimeo.com/ metaData part2 : https://vimeo.com/ https://vimeo.com/ metaData part3 : https://vimeo.com/ https://vimeo.com/ metaData part4 : https://vimeo.com/ https://vimeo.com/ metaData HUD : https://vimeo.com/ Rigging Dojo : Character Engineering Course

24 Thanks for staying awake! Mark Jackson


Download ppt "Click to edit Master subtitle style. Red9 MetaData : MetaData Coding in a Maya Production Pipeline Mark Jackson, Technical Animation Director Crytek."

Similar presentations


Ads by Google