Tuesday, 15 April 2014

Coding a Maya Production Pipeline with MetaData

Heads up.. I'm going to be doing a presentation at Develop in Brighton this year about how to utilize Red9Meta in a production pipeline, running through some internal examples of the tools and Maya dag structures that we're currently working on at Crytek. 

This will be an overview really, how and why metaData helps not just in constructing complex setups, everything from Exporter, Facial and Rigging pipelines, but also as a light coding api to deal more seamlessly with nodes in Maya.

For all of those doing the Rigging Dojo Character Engineering course, might be a good chance to catchup.

More details to follow but if there's anything in particular that you'd like me to include drop me a mail. 



Wednesday, 19 March 2014

Red9 Sound and Audio handler updates

Finally got round to doing a quick demo of the new AudioNode handler in the Red9 StudioPack. This one shows how you can use the 'compile' function in the sound menu to pre-compile multiple sound nodes in Maya so that you get a complete soundtrack to any playblasts. Anybody who's ever tried animating to multiple sound nodes in Maya, particularly when animating dialog will know how frustrating it is when you then try and playbladt that scene, and only get 1 sound track included!!

I also go through the new inspect code, capable of extracting metaData info from wav files including full support for Broadcast wav's. This is really useful to gain access to thiongs like internal timecode data. There's also extensions capable of extracting metaData from any media format, Mov, avi etc but for that you have to download ffmeg which I use in the inspect call.

I'm really keen to hear from those running MacOs or Linux, does the compiler work for you?

thanks (don't forget the donate button...cough...)


Wednesday, 12 March 2014

Red9 goes all GIT!

Well this has been asked for by many of you for a while so I'm finally sorting it out, pushing Red9 repository up onto GitHub. I've always used a private SVN server but this should give people more exposure to the changes happening on a daily basis.


Still getting by head round GIT so bear with me


Friday, 7 March 2014

New Pose Saver tools and features

Well it's been a while since I did a demo so here's one that goes through the upgrades to the poseSaver in v1.41.

New PoseBlending: Pose Blending is a new feature that allows you to mix in a percentage of any pose to the current state of your controllers. When you RMB>PoseBlend you get a new slider UI that controls the mix. Note that when this slider is launched the current state of the rig is CACHED against it's current state so please be aware of that. I had to do this to get the slider to react fast enough to make it worth doing.

New MaintainParents: Another big update to the poseLoader. This one allows the pose code to 'hold' or maintain a given set of attributes during pose load. This not only returns the given attrs back to their current state prior to loading the pose, but it also recalculates the pose at the same time. This means that even if a pose is stored with all the controllers in one parent space and your current controller is in a different space, the original stored pose will still be reached, but it'll be recalculated in the current space ;)

This relies on the 'relative space' flag and is only available in this mode as I use this mechanism to do the psace compensation.

Any comments, suggestions or bugs let me know


Monday, 3 March 2014

Broadcast Wav support

New Sound file inspector:

Anybody who's dealt with moCap sessions where you're recording audio will have probably run into the broadcast wav format, an extension of the standard wav but containing a whole extra chunk of metaData specifically aimed at syncing data around studio's. The key is that it includes an internal timecode for the wav, usually pumped into it from the studio's timecode generator so that video, audio and moCap all has the same reference and can be kept in sync.

In order to use this at work, and because we use the Red9_AudioNode as a basis for all Maya audio functions, I've added in full BWav support to the Red9.AudioNode this is both at a simple inspect level (Wav Inspector - launched from the Red9_Sound menu in the Trax Editor seen below) and full support from the code side, so you can cast any sound node to a Red9_AudioNode and just run the .bwav_getHeader(). This builds up an internal dict with all the header data bound to it.

If the wav isn't a Bwav then you still get the main header data, it just omits the BroadcastWav block from the UI.

This has been an absolute pain in the arse to extract as I've had to get deep into binary chunks to fine where in the file stream the Bwav header data block exists!

Anyway, this will be in the next release, unless you want to give it a whirl in which case drop me a mail



Friday, 21 February 2014


Wow, it's been a while since I posted anything, I've been meaning to do some Vimeo demos going through the new stuff in StudioPack v1.41 but just been too busy at work fire fighting to get round to it.

Have people found the 'AudioCompiler', or even the PoseBlending or MaintainParent functionality in the poseSaver, I really must do some demos next week if I get time!

I'm looking at supporting animLayers in the CopyKeys code, question is, what would people like in terms of functionality when copying anim data between 2 sources...
Should it:

  • A: sample the data from the src node, merge the animData in memory and push that to the destination as single baked anim curves. Basically baking the data on the fly but not touching the original. 
  • B: push the destination nodes into the corresponding animLayers of the source and copy the data per layer. Kind of reconstructing the animLayers memberships for the destination. The issue here is what do you do if the destination node already has animLayers?
  • C: just not bother, animLayers are Satan's Testicles and Autodesk should add this kind of support from the core!

I really wish Autodesk would do something with animLayers, either write the rest of it or kill it dead as from a pipeline and production point of view it causes so many issues!


Saturday, 11 January 2014

Red9 Studio Pack v1.41 ;)

Well I think I'm finally happy with the build to release, another one packed with fixes and new features. The big one for this is the addition of an audio compiler, thanks to the guys at pydub and particularly James Robert for the additional methods in the pydub module. Open source rocks when you can tap the brains of others like that.

So for those who didn't read the previous post the AudioCompiler, found in the red9 sound menu in the Trax Editor, is designed to allow you to have multiple sound tracks in Maya and playblast the damn things!! All you do is run the compiler which will generate a brand new wav file and activate it, more over if you've already run it it will just continually update the currently compiled file.

There's also a lot of extra work done on the PoseSaver (as always!) this seems to be getting a lot of use around the community and I'm really keep to push it as far as possible. In this build you'll find a new option on the rmb menu, Pose Blender... yes does exactly that, allows you to mix in, interactively, a percentage of any pose. At the moment this is limited to non-relative poses as it's mixing the values and not doing any world-space calculation. Even so it's ideal for facial or finger poses. It'll also work with the hierarchy checkbox off so you can dial in percentages of a pose on selected nodes only.

I've also exposed the 'maintain parents' functionality to all, if you take a look in the Morpheus or Stewart presets you'll see a new block, [rig data] it's kind of self explanatory once you see it. It's just another entry that tells the code what attributes to hold during pose Loading.

More fixes to the Mirror setups too, as we batter the hell out of this stuff at work I keep catching issues, or rather Rob Howes does, always nice to sit next to somebody coding with your stuff on a day to day basis who'll quite happily slap me and get me to fix stuff there and then!

Anyway, as usual the release is on the Google drive, just follow the download link.

I'd love to hear from more people running this stuff, experiences of using it and suggestions, I also need to hear from more folk on MacOS or Linux. Big thanks to all those who send nice messages and suggestions, it's because of these that I do this and that many of the features get implemented, such as the poseMixer.