Movable Pivot Control in Maya
Saturday, March 31, 2007 at 5:39PM Animating a character flipping or spinning around can be a hurdle in 3d. A character will forward flip over a different center of gravity then if it were to spin around 180 degrees on its right heel. Typically the solution is to set up a hierarchy of groups with pivots at different locations in which the animator can choose to rotate individually as needed. The problem with this solution, besides the redundancy of having so many group nodes to dig through, is that it takes a heavy amount of preplanning to pull it off cleanly. The idea here is to make one control that will easily move around the character's center of gravity in order to rotate the character as a whole around that center.
Let it be clear that this is a MOVABLE pivot not an ANIMATABLE pivot. What that means is that it is generally a one time deal per shot. Once the control starts rotating, translating it can cause some very funky results. If you have a character that is walking and then you use the movable pivot to make it turn left 90 degrees on its heel, trying afterwards to move the pivot over to the right heel will cause the character to translate oddly. However, if the character does a forward flip 360 degrees (essentially rotating the control back to its initial orientation), then the control can be moved and used again.
1. Create a locator (create > locator), name it "objectLocator"
this will represent the character rig or object to be rotated at different centers
2. Group objectLocator to itself and name the group "locatorBuffer"
this is where the movable pivot will do its work leaving the objectLocator free to be transformed as needed underneath
3. Create a nurbs circle (create > nurbs primitives > circle), name it "movable pivot"
this will represent the movable pivot control that is simply translated into place and then rotated
4. Open the connection editor (window > general editors > connection editor), select the movablePivot control and click Reload Left in the connection editor then select the locatorBuffer group and click Reload Right in the connection editor
5. Find and click the translate attribute on the left side to select it and then find and click rotate pivot on the right side to make the connection. This will lock the Rotate Pivot of the buffer node to the translate values of the movable pivot. Next we need to connect the rotation of the movable pivot to that of the buffer node so find and click rotate on the left side to select it and then find and click rotate on the right side to make the connection
6. Thats it! try moving around the movablePivot control and rotating it. Simple right?
7. If you got something out of this technique or found another use for it please let me know below. here's the completed scene movablePivot.mb






Reader Comments (6)
Nice tutorial mate, worked a treat, Appreciate you sharing.
Hi, I've been seeing you tutorial and I think.. I found a bug.
When I move and I rotate the MovemenPivot the locator is moved bad way.
thanks
Pablo.
Hey Pablo, I think what you mean is that it you move the movablePivot, rotate it, then move it again the locator moved in and unexpected and unpleasing way. This is true. I tried to explain in the beginning (although maybe unclear) that this control is not something that can be used over and over in a shot or animated per shot. The Idea here is really to be able to set up a different center of gravity per shot, but not multiple times in a shot.
For example, if in shot A your character has to jump and somersault you can place the movable pivot at the hips or wherever you want the characters to spin from. Then in shot B if your character has to Turn around on his left heel to see someone behind him you can place the control at the left heel and do so. This eliminates having to do redundant groupings to achieve these effects.
Now if you had to do both these actions in one shot, then you may find you need a different solution (such as multiple groups) to reach the desired result. So indeed this method is not perfect, but for a lot of situations I have found this method to come in handy as doing a real "animatable" pivot is quite tricky.
Hopefully this makes sense:)
Cheers.
-jab
Ok, I get it but... for example If I move and rotate the (control) the locatorBuffer is moved too..
so, thanks!
I invite you to visite my blog.
www.imanimator.blogspot.com
Right, because the the rotate of the control is connected to the rotate of the locatorBuffer and the translate of the control is connected to the pivot of the locatorBuffer.
BTW nice work. Rock on!
-j
Hi dude,
nice tutorial.....i got new use of it