A couple of months ago Ryan Brady posted a question on the CGTalk forum where he asked "What is your favourite mouse for maya?". This aroused my interest because I had been recently looking for something to replace my ancient 3 button logitech ball mouse.

I have used this well built piece of hardware ever since I migrated from my old SGI indigo2 to my first PC. After all those years in constant use it still works, but requires regular cleaning to keep it rolling smoothly and I have noticed it is starting to click. So now it is time to upgrade. (more...)
I'm going to start by saying that I do not consider myself and expert on this subject, but I'm going to write about how I have adapted my methods to deal with the "linear workflow" thing in my day-to-day work.
If you have never heard the term "linear workflow" then you must have been really busy doing something else for the past year, because it has been discussed over and over in forums and blogs. I've done a lot of reading and managed to confuse my thinking on numerous occasions, but lately it all seems to be falling into place and I feel like some kind of born again "linear workflow" convert. And like most new converts, I feel compelled to spread the word.
(more...)

When I'm rigging a character in maya I generally use some kind of auto rigging system. My current preference is Hamish McKenzie's zoo toolbox (zooCST). This means that things pole vector constraints are created for me. Recently I was helping Jeremy rig something where the auto rigger just didnt seem appropriate. When we got to adding the pole vector constraints, Jeremy asked why we couldn't just put the control objects where we wanted them. He was getting frustrated because the joints would rotate when he added the constraint.
With zooCST I knew how to put a control object at the exact location that would not cause this rotation, but my collegue insisted that we should be able to just place the control object where we wanted, click a button and let maya figure out how to keep the joints in place.
After some searching I found a little mel script on highend3d called nilsNoFlipIK.mel (written by Nils Lerin). It lets you specify a vector and an ik handle and it calculates the twist value required to keep the joints from rotating. Since the ikHandle.twist can be calculated for a given vector, I just needed to figure out how to calculate that vector from the location of the control object.
The result is djBuildPoleVector.mel.
Download djBuildPoleVector.mel and nilsNoFlipIK.mel (both are required). Put them both in your scripts folder.
Select a control object and an ik handle and type djBuildPoleVector
A pole vector constraint is created, the ikHandle.twist attribute is set and there is no joint rotation.