Thursday, 23 December 2010

Happy Christmas

I was hoping I'd get time to put together a new post for this week but unfortunately the lead-up to Christmas has stopped it from happening. The in-laws are at mine for the holidays, and while it's great I don't have to travel around in the snowy chaos all the preparation is sucking up my free time.

I'll try and squeeze one in between Christmas and New Year, otherwise normal service will resume in January.

But either way, have a good break.


Monday, 13 December 2010

Selection highlight using a scriptJob

I don't use scriptJobs that often simply because they can really kill the performance of a rig. Also, if not managed properly you can end up with lots and lots of duplicate jobs accumulating which over time brings Maya to a grinding halt.

However... this selection highlighter has proved extrememly useful for a very specific application; for Enslaved there were a couple of rigs I put together that were exploding objects with a large amount of pieces (one was a boat, another was a petrol tanker). The problem here was how to make it super easy for animators to pick a particular section to animate it. I couldn't use a nurbs controller for each as it would be messy and confusing with so many, and I couldn't have them pick the joint for each section as finding the correct one in a cloud of fifty or so was near impossible (remember, this is for games so everything is joint-based).

The solution was to make the mesh pieces themselves the controllers, and to highlight them with a coloured material as a piece was selected.
I've set this up in a test scene to demo it. The large plane is split into pieces and marked as 'highlightable', the four small planes are not.

Tuesday, 7 December 2010

Custom pickwalking

Pickwalking, being able to navigate up and down a hierarchy using the arrow keys, can be a real time saver for animators. The trouble is most of the time the things you want to pickwalk up, down, left or right to aren't directly connected in a hierarchy.

So here is how to set up a custom pickwalking solution where you can define which node to navigate up, down, left and right to. More importantly, I'll also cover how to seamlessly integrate this with the default Maya arrow key bindings and behaviour rather than using a second set of custom hotkeys.

Saturday, 4 December 2010

Script and right-click menu for static switching of spaces

So one of the problems inherent with switching spaces is that during animation the orientation of the limb or the position of the controller jumps as the space is changed. As mentioned before, by changing space you are effectively changing the coordinate system that the node exists in so a given set of translate/rotate values will give a different position/orientation from one space to the next. This leaves the animators having to manually re-align a joint/controller if they want to change spaces mid animation.

The way to fix this is to supplement the switch with a script solution that manages the space change and automatically sets new translate/rotate values to preserve the position/orientation of the controller. So this is easily accessible for the animators I'll also cover how to link this in to the dag menu (right-click menu) for the given controller.

Wednesday, 1 December 2010

Broken hierarchy rig and space switching

The broken hierarchy rig
In essence, a broken hierarchy rig is one where the character is split into sections connected by constraints rather than being based on a unbroken skeletal hierarchy. Building a rig in this manner enables you to build much more powerful and flexible rigs. As an extra bonus it encourages clear scene organisation due to its naturally modular nature.
Using a standard biped character as an example, you'd generally expect it to consist of the following distinct parts:
  • Spine (including shoulder joints)
  • Neck/head
  • Arms
  • Wrist/fingers
  • Legs