Tutorials

Twist Joint Setup Overview :)

I have seen people and previously me myself using twist joint setup (usually while rigging forearm twist) using the good old rotational weighted constraints or direct rotational connection with offset values to give even twisting. It works great for straight aligned joint rotated or twisted in just single direction for example rotate X, but once you start rotating in all direction which we all tend to, some thing weird happens, something not so good that is known as flipping. This flipping behavior is the result of GIMBAL LOCK! Well then, that is a major issue.

Basically, the flipping can be avoided if we stay out of rotational constraints or connections. I am going to show two methods on how this can be achieved.

1st Method (Aim Constraint with Up Vector) : The first method deals with setting up a joint twist using the power of aim constraint. The twisting of each joint is controlled by World Up Objects, which are basically locators re-positioned on top of each joint. Once the locators are moved, the joint twist evenly without any flipping. Check out the images below for detail!

2nd Method (Spline IK with Up Vector) : The second method is pretty straight forward. Create a regular spline IK on a given joint chain. From the advance twist option, make sure that World Up Type is object Up (Start/End). Just like the aim constraint, the up locators are used to setup the advance twist for the entire joint chain. Again, check out the images below for detail!

Therefore, both of the method shown above can be applied for creating a non – flipping GIMBAL LOCK friendly twist setup which can be applied for regular forearm twist or whatever. Spline IK Advance Twist doesn’t seem to work very well with mirrored joint, in such case just re-root the mirrored joint chain so that the end joint becomes the parent (Maya Bug). I hope this post could be useful to you, let me know if you have any concerns. Cheers ๐Ÿ™‚

P.S. here is another cool alternative for no flipping twist by Cedric Bazillou. He used a custom Quaternion based Aim Constraint node to achieve the result. More info can be gathered from his blog!

Yet another cool post by Keil Figgins “Forearm Twist: An Animation Solution“. Good read!

Acting Tutorials Highlight

Here is a really cool, very useful tutorial for any CG animator out there from Kyle Balda’s 3D Animation Masterclass: Dialog Acting Tutorial. The tutorial appeared in the June 2009 issue of 3D World Magazine. This ten minute clip covers highlights from the 20 hours of video capture in 3DWorld to show one possible workflow of approaching 3D Character Animation with multiple characters. Too Good!

Dynamic Page Turn Tutorial

It’s been a little while I created some video demos and tutorials. Here is a video tutorial on creating a dynamic paper page turn animation using nCloth simulation. The movement is driven by two locators that use transform nConstraints. Hope you enjoy and like my tutorial ๐Ÿ™‚

Making Animatable Pivot: Part 2

OK, here comes the 2nd part of creating an Animated Pivot by a good friend of mine. In this post he describes on how to actually go ahead on setting up a pivot controller with a bit of maths involved. The offset part is still a bit tricky and will be described in Maulik’s up coming post ๐Ÿ™‚

Click Here for the link …

How to Animate a Rolling Cube

You will use the properties of a primitive cubeโ€™s pivot point to animate it rolling on its edges. This process will involve the use of the Channel Control window to make certain attributes keyable. Once they are keyable, they will be available in the Channel Box for you to set keys and edit their value. In this lesson, you will also use the Graph Editor to refine the animation curves to get exactly the kind of motion that you need.

STEP ONE

Place a primitive poly cube into the scene and scale it to X=2, Y=2 and Z=2.
Select the Move tool and place the front of the cube at 0 along the Z axis (Z=-1).
Press the Insert key to go into edit mode and then move the pivot point to the middle of the cubeโ€™s front bottom edge.
You may want to use grid snapping to help you position the pivot.
Now press the Insert key to return to the Move tool then move the cube to the origin. (Y=1)

STEP TWO

Select Display -> Transform Display -> Local Rotation Axes and Rotate Pivots. These icons will help you visualize these components as you begin animating the pivot.

STEP THREE

Select Window -> General Editors -> Channel Control and select the following non-keyable attributes:

Rotate Pivot Translate X
Rotate Pivot Translate Y
Rotate Pivot X
Rotate Pivot Y

Use the Move button to make them keyable attributes. They will now appear in the Channel Box.

STEP FOUR

With the cube selected, set a key for Z rotation at frame 1.
Go to frame 10 then set Rotate Z to -90 and set another key.

STEP FIVE

Return to frame 1. Select the Rotate Pivot Translate X, Rotate Pivot Translate Y, Rotate Pivot X, and Rotate Pivot Y in the Channel Box then use your RMB to choose Key Selected.

STEP SIX

Go to frame 10.
Open the Attribute editor and select the pCube tab.
Expand the Pivots section.
Expand World Space section.
Set World Rotate X Pivot to 2. You should notice that the pivot moves to the front of the cube. Now you can continue rotating the cube.

In the Channel Box, set a key for the Rotate Pivot Translate X, Rotate Pivot Translate Y, Rotate Pivot X, and Rotate Pivot Y channels.

Editing the World Rotate Pivot in the Attribute Editor affects these four attributes therefore they must all be keyed.

STEP SEVEN

Go to frame 20.

Set another linear key frame for a Rotate Z to -180. Set the World Rotate Pivot to 4 then set keys for the four pivot channels in the Attribute editor.

If desired, keep rotating the cube and moving the pivot using the steps outlined above. If you playback the animation at this point, the roll of the cube will not seem correct. You need to change the animation curve tangents for the pivot attributes.

STEP EIGHT

The incorrect motion is because the pivot point needs to stay in one location for 10 frames then jump to its new location.

    Open the Graph Editor.
    Select the four pivot action curves
    Select Tangents -> Stepped.

This will create the desired results.

Source Link ๐Ÿ™‚

Animated Pivot in Maya

In this tutorial, I am going to show you two different methods to create a pivot control for animation. One more thing, Happy April FoOl’s Day ๐Ÿ˜€

1st Method
  • Create a locator and name it pivot. Create a polygon cube and name it object. Select the object and group it to itself and rename the group as negOffset. Make negOffset a child of pivot.

  •  Now create a multiply divide node from the hypershade or just entering โ€œcreateNode multiplyDivide in the mel script editor. Open the connection editor and load pivot in the Outputs  and multiply divide node in the Inputs. Connect translate of pivot to input1 of multiplydivide node. Make sure that the input2 of the node is all set to -1.

  • Again, load the multiply divide node in Outputs and negOffset in the Inputs. Connect the output of multiply divide node to translate of negOffset.
  • Itโ€™s done. Just select the pivot and move it to the desired position and rotate it. You can see that the object rotate from that pivot point.
2nd Method
  • Create a locator and name it pivot. Create a polygon cube and name it object. Select the object and group it to itself and rename the group as offset. 

  •  Open up the connection editor and load pivot in Outputs and offset in Inputs. Connect translate of pivot to rotatePivot of offset. Again connect rotate of pivot to rotate of offset.

  • Thatโ€™s it. Now just select the pivot and move it wherever you want and rotate it. The object rotates from that pivot point.


Conclusion : Both of these methods shows a technique to create a pivot control which can be animated. Note that once you have rotated and translate the pivot controller, there is some weird transformation (you can zero out the rotate in this case and reposition as you need ๐Ÿ˜‰ but this is totally natural which can only be avoided by creating a little script to reposition the offset. But I don’t think it is necessary because I am pretty sure the animator will use the pivot controller based on the shot necessity and can easily manipulate it. Hope you enjoyed my little tutorial ๐Ÿ™‚

Also, if you wish to know what I meant about the weird transformation stuff, it is basically something that is taken care of by putting some offset values in the rotatePivotTranslate attribute. You might want to take a look at the tutorial post below to get a good understanding about it!

How to Animate a Rolling Cube …