Driving Cluster With Matrices Instead of Handles

Whenever I have to set up a cluster deformer using matrices I have to try and remember how all the different matrix attributes contribute to the overall deformation. I've never bothered to write it down but after discovering a bug in one of my rigs was being caused by an incorrectly set up cluster I decided I need to write it down. So I'm putting the info here in case someone else finds it useful in the future.


So when deforming a shape that has all 1's as it's weight map:

vtx_pos * geomMatrix * bindPreMatrix * matrix


And when deforming a shape that has painted weights:

vtx_pos * geomMatrix* bindPreMatrix * postMatrix* weightedMatrix* preMatrix


So because both modes use the bindPreMatrix as the first step I just ignore the postMatrix and put the inverse or the neutral matrix as the bindPreMatrix.


Then I connect the neutral matrix as the preMatrix, and the offset (delta) matrix as the weghtedMatrix.


For the matrix attribute that gets used by the rigid deformation mode, I just mulitply the weightedMatrix and the preMatrix.together and plug the result in.


Hopefully other people will find this post useful, if nothing else it will be something I can refer people to in the future.




Featured Posts
Recent Posts
Archive
Search By Tags
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square