Thursday, 29 October 2020

Maya Tutorials - Squash and Stretch

Final year, no graded toolkit, that however doesn't mean the lessons stop.

In this first session there was three tasks to do, starting with a five minute pose challenge with moom. Unfortunately I was unable to do this challenge due to technical issues, but the situation was sorted as we moved onto the actual lesson.


Part 1: Basic Squash, Stretch & Volume Preservation

Starting with an already rigged toadstool. Geometry layer hidden to show only the skeleton. Using the distance tool to measure the total length of the skeleton coming to 8 units. The locators in from the measure are then to be parented under the controls.

Import all 6 joints in the rig as well as the distance shape into the node editor. From there add 4 extra multiply/divide nodes. The first multi/divide node is used to control the squashing and stretching. Use it to divide the total length by itself to feed back into the joints. To create the volume preservation, the 3 other multi/divide nodes are needed. The first node is the "normaliser", it's used to create a value of 1 by dividing the distance by itself, just like the last multi/divide node. The next node is the square root, this is achieved by updating the output from the normaliser by the power of 0.5. The output from that node should then go into input 2 of the final multi/divide node. This node is to divide the input by 1, resulting in the final number that can be connected into the joint nodes, scale Y & Z.
Normal Toadstool

Squashed Toadstool
Stretched Toadstool

Part 2: Conditional Squash & Stretch

Starting with this pre-made arem, measurement is taken from the shoulder to the wrist. This time the locators are to be constrained rather than parented, this is to prevent a feedback loop.
Only the distance tool shape and the shoulder & elbow joints are imported into the node editor. From here a multi/divide node and a condition node are needed. Connect the distance to the multi/divide input 1X, this will give you the tools length, however it is not the true length of the arm because of a slight bend required for rigging. To get that number add the translate X values of the elbow and wrist together. This total distance should go be written into input 2, then the output X should be connected to "Colour if True R" on the Condition node. The distance should also be connected to the condition node's first term. From ensure that the condition node's first term is the measured distance and its second term is the true distance, once that's in place set the condition node to "Greater than or Equal to". You can then connect the Out Colour R to the Shoulder and Elbow nodes, Scale X.

Normal Arm
Stretched Arm

Retracted Arm (No Squash)



No comments:

Post a Comment

Major - Reflective Statement

I won't lie, if I really wanted to I could make this reflective statement just be a list of every little detail that went wrong from pre...