cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Add more deformers

Add more deformers

(Copied from original User Voice forum) 

 

"We haven't had any new deformers for a long time, and some very basic ones are noticeably absent:

  • Noise (world/local/normal)
  • Displace (vector/UV) - based on an image 
  • Smooth/Relax

I'd also like to see the Maya Muscle system broken out into their individual deformers so they can be leveraged independently, especially:

  • Sliding
  • Self Collision/Rigidity
  • Wrinkle
  • Force

Also the Muscle Jiggle deformer is better than Maya's Jiggle deformer because of the additional cycle and rest weights.

 

Atomizing the cMuscle plugin and bringing it into the fold of Maya's deformer suite would be a great way to finally bless this useful but convoluted tool, as well as expanding its functionality and hopefully adressing speed issues as well.

 

Finally, a way to drive any deformer weight by the stretching or compressing of a mesh. This would encapsulate cMuscle's smoothCompress and smoothExpand, but would also enable stretching and compressing to drive blendshape weights, jiggle weights, or any other deformer.

 

Any other suggestions for new deformers?"

 

"Ninja Dojo has a deform along a path deformer and i know this can be done with more work using motion path and a flow object but i would be nice to have a quicker and intuitive option like how Insert Meshes are in Zbrush along a path."

 

Some links:

https://www.youtube.com/watch?v=heYNKqhX9Is 
https://www.youtube.com/watch?v=f4gQRK7tsQA 
https://www.youtube.com/watch?v=SEU2nMF6ARs

https://www.youtube.com/watch?v=doazrHltwa0

7 Comments
trevor.adams
Alumni
Status changed to: Under Review
 
trevor.adams
Alumni
Status changed to: Gathering Support
 
metamesh
Contributor

Yo have a displace node already, that's called texture deformer. It also works with noise maps/layered textures etc, so noise and displace are already covered.

jwlove
Advocate

I've worked several places that each had a version of these deformers (they were all named differently and some worked better than others, but it's the idea that's similar):

 

- deformer to drive control points of one mesh by another mesh that has different cp order.  For example, you may have a mesh that has been cut apart and you can no longer blendshape them together (even with checkTopology turned off) because the order of the verts do not match - they are coincident in 3D space, but may be vtx 3 on one mesh and vtx 300 on the other.  This deformer basically had a table where each control point of the driven geometry had a corresponding control point index from the driver geometry to snag xyz positional data from - so as an example the attribute value of cp[0] would be 100 and the deformer knew to take the xyz position of driver.cp[100] and apply it to driven.cp[0].

 

Names for the deformer that I recall are: controlPointGlue, pointToPoint, vertSnap(?).  It worked between nurbs and poly, and was also paintable.  We also had a command to run with the deformer that would locate the closest corresponding cp from the driver/driven and populate it for us...  evaluation should be pretty fast since you're directly taking position value and applying it without any additional processing of the data... One place expanded this deformer (or wrote another almost identical to it) where if there was a cp inbetween some others, it would keep a relative position between them.  So, say you had a cp on your driven geometry in the middle of a face of your driver geometry, it would maintain relative position between the cp's of that face.

 

- a deformer for averaging/smoothing control point positions.  This one basically behaved like Edit Mesh -> Average Vertices.  It was great for areas of your deformation that get pinched and "jaggy" to smooth it out and clean the geometry.

 

Names I recall are: wrinkleFree and cpAverage(?)... Editable attributes on the deformer node usually included iterations, and smooth amount, and it was paintable.  One place had an evaluation option of flat out averaging vertices so they are as equidistant as possible, and an option that attempted to maintain edge lengths as best as possible.  Another place had a few similar deformers to this: "deltaSmooth" that activated the smoothing based on how far the deformed control points moved locally from their default position, and a "strainRelaxer" that activated the smoothing based on how compressed/stretched the control points got to their neighbors.

 

 

 

Asside from those Sony Imageworks has an awesome deformer they call "wireSkin" that can be used in place of skinClusters.  It essentially has a spline going through a joint chain and various parameters to control the sharpness of the bend, shearing amount at the bend rather than collapsing/penetrating, and twisting distance/falloff above and below each joint.

 

Painting weights was a breeze because each spline running through a joint chain IS the influence you're painting weights for... So, instead of tediously painting skinCluster weights for each joint, you may have a spline for the spine, then one from the clavicle all the way down through the wrist, then one for each finger.  Your weights were not per joint, but solid white along the spine, solid white along the arm spline, solid white on each full finger for each finger spline, and then blended between those in the hand and shoulder areas...  You could even create some mock muscles by placing these splines to behave like the trapezius and latisimus to help even more if you reeeeaaaaally needed to (similar to using more joints for volume preservation in a skinCluster).  A pose space deformation system was also built into this deformer so you didn't need to have a separate blendShape deformer in the deformation stack.

 

From what I can tell watching some of his youTube videos, the spline deformer system in the Anzovin Rig Tools is similar to wireSkin, so you can watch that to get a bit of an idea what it looked like.  Perhaps you could talk to Imageworks or the creators of Anzovin rig tools about obtaining one of those deformers?

kyle.burris
Alumni

Thanks for the feedback jwlove. There are some great ideas in there.

jwlove
Advocate

Of course!  Thank you for taking the time to read it and I hope to see those deformers in the future!

 

I forgot to mention it in my previous post, but the wireSkin deformer is based on "OCD splines" which stands for "offset curve deformation"

 

here's a siggraph paper they did and you might be able to google search for more info:

http://webstaff.itn.liu.se/~jonun/web/teaching/2009-TNCG13/Siggraph08/talks/2486-abstract.pdf

 

wireSkin utilized the b-splines method

tj.galda
Alumni
Status changed to: Implemented

We've since implemented the new wire deformer and the tension deformer.  We've also moved a number of deformers so they can leverage the GPU as well.

This thread has a number of separate ideas, so please add a new topic for which other ones we should do so we can see the votes & prioritize appropriately.

Can't find what you're looking for? Ask the community or share your knowledge.

Submit Idea