Showing posts with label deformation. Show all posts
Showing posts with label deformation. Show all posts

Monday, 29 November 2010

Using upper arm roll_01 to help deltoid deformation

In this post I'm going to expand the function of the upper arm roll joint system I posted about here.
The aim is to improve the deltoid deformation as the arm is raised from this

...to this, simply by driving the translateX and rotateZ channels of l_arm_roll_01 via the defDriver_l_arm_roll_01_twistMod joint that makes part of the upper arm roll system.


Sunday, 28 November 2010

No-flip upper arm roll joints

For those that know what roll joints are, skip ahead to the next bit.
Roll joints are helper joints to eliminate the 'sweet wrapper' effect that linear skinning gives when twisting along the joint axis. By distributing the rotation across a number of joints you can maintain volume in the mesh, and the more joints you use the less volume you lose.


180 degree twist distributed over one joint
180 degree twist distributed over four joints

In this post I'll be covering how I set up roll joints for the upper arm to give a nice distribution of down-axis twist deformation regardless of the rotation values of the arm joint.
Generally it's a bad idea to drive any roll joint directly from the rotation of another (you can get away with driving forearm roll joints from the wrist so long as you choose your wrist joint rotation orders very carefully). This is especially true for the upper arm which has such a large range of movement it is guaranteed that an axis will be crossed which will give you sudden changes in Euler rotation values, making it impossible to use them to drive a twist joint.


Wednesday, 24 November 2010

Helping volume preservation through a modified bind pose

One of the major problems with linear skinning is volume loss on the model. Generally this is most noticeable at the elbows, knees and buttocks and is also the cause of the 'sweet wrapper' effect if a joint is rotated along its down axis.

There are lots of solutions for helping maintain volume. If you're familiar with Maya 2011 you'll probably have noticed the blended dual quaternion (DQ) skinning for example which is a great solution. Unfortunately if you're producing assets for a game engine you're generally stuck with linear skinning. I have come across game engines that support DQ skinning but only as a complete replacement to linear skinning and in my experience it's only really worthwhile if you can use both methods together. It is also computationally more expensive which is a factor in game development.