Maya 2011 Dual quaternion skinning

Hey everyone, I was recently taking a look through some of the changes made with Maya 2011 and I came across this:

"Dual quaternion skinning: Traditional smooth skinning in Maya uses linear skinning to make a mesh follow a character’s joints. In areas such as a wrist or elbow, this method can result in a ‘bow tie’ or ‘candy wrapper’ effect where the mesh loses volume as a bone twists on its axis. Dual quaternion is a new method of smooth skinning designed to eliminate these undesirable deformation effects. A new menu in the Smooth Bind Options window (and in the skinCluster) lets you select whether to use classic smooth skinning, dual quaternion skinning, or blend between both methods at a vertex level on the same character. "

I haven’t gotten the chance to get and play with Maya 2011 yet, so I was wondering if anyone out there has played with this instead of the regular smooth skinning. If you have I’d love to hear some more about how well it works at keeping volume and any other thoughts on it.

I haven’t actually played with this technique myself (in Maya or any other package for that matter). Based upon some demonstrations that I’ve seen, I’m inclined to think that the technique largely lives up to the hype.

i’ve done some experimentation with the older dq plugin that crytek had released a couple years ago. what i found at the time was that skinning held up very well in some trouble areas (elbows, shoulders, etc) but created new problems in others (the worst case was when the arms were over the head, the pectorals held way too much volume).

in my opinion, either method would require helpers to offset its downfalls. dq holds volume very well, to the point of too well in some areas, whereas linear does not hold enough volume in most areas, but sometimes slight loss of volume is what you want. it depends on your needs.

the blending feature could be very useful and could offset the downfalls of each, but in games it could be difficult / expensive to implement at runtime (im speaking as a non programmer though, so who knows)

the blended weights options does a linear skin across the character and then you go in and paint the areas where you want the DQ. its works pretty good but i still like to add extra joints to hold volume in certain areas.

Thanks for the info on DQ skinning. It sounds like it could be pretty powerful when blended with linear skinning. I had the same thought as Jeremy, in how difficult it could be to implement at runtime in a game, but for cinematic work it sounds like a way to go. As long as it evaluates quickly it sounds like it could cut down on the amount of corrective shapes you’d need.

I’ve played with a lot of the new skinning stuff in 2011 and I wasn’t all that impressed/pleased. When I first saw the demo of it all I was blown away by all the cool stuff they added to the rigging side of things in 2011, but when I actually got to play with 2011 and use the new skinning stuff, I became more frustrated with it all instead. You have a bunch of stuff you have to make sure is now turned on that used to be defaulted in older Mayas to get even the basic paint weight tool to work properly. The new capsule weighting looked awesome, but in the end I was going right back to the old ways of skinning. As for the DQ, it’s nice, but like others said, it causes problems in other places. All in all, I like the old ways of doing things and find it to be faster than trying to get all the new stuff to work properly.

I tried 2011 for a few days and then I went right back to 2010 and haven’t been back since.

The paint tools are faster and the tools are better in 2011, just painting weights with the post normalization is really not a good idea… that mode is for the capsule weighting and does not paint as expected.

DQ skinning has to be mixed/painted with regular skinning to get the best use out of it and it does beat having to deal with all the extra roll joints and rigging required for those but there were lots of bugs and I finally got hotfix 3 installed.

I played around with the very first version of 2011 which probably explains why I had so many issues. I didn’t even know they had hotfix 1, yet alone hotfix 3, LOL!

Blended linear/DQ skinning is great.

Kinda gutted I can’t use it - The only DQ support I’ve seen in game engines is DQ only, which isn’t any good whatsoever :frowning:

I’m not able to mirror Blended linear weights,
has anyone written mel for that or im missing something
strange on mirroring weight blendweights just flips left to right???

on maya hotfix #2

sunnyC

Sunny, you said you found a solution, can you post it here?

@here is what Sunny came up with and I have logged this with Autodesk.

@underearth- I found a quick fix solution to mirror blend weights for maya DQ and classical skinning in 2011.
it goes like this.

  1. paint Blend weights for one side and mirror skin weights (standard mirror weight UI)
  2. it will flip blend weights to another side (not mirror just flip, say from left side to right )
  3. duplicate mesh and rebind this duplicate mesh to bind joints.
  4. copy weights from old mesh to new mesh.
  5. now mirror weights again on old mesh. this will again flip BLEND weights to original side (say left)
  6. now select duplicate mesh and COMPONENT select original mesh right side only and use copy weights.

Hi guys! Sorry to refloat this topic, but I could not help any more information on the topic. I’m struggling with this at the moment for several characters and I was wondering if there would be any update on this problem, even on Maya 2012

Brad, thanks for that solution, I’m using that right now :slight_smile: I’m new to Maya, so maybe this question is a bit silly, but I suppose the weights of the skin in a character are stored in the skinCluster node. I’ve been coding some small functions that deal with the weights and I had no problem at all, besides the weirdness of how to access the data from a MAX and Softimage point of view :nod: Does anyone know if the DQ Blend weights are stored on the skinCluster as well? Or could I find them somewhere else?

Thanks!

Yes they do live in the skin cluster.
If you select the skin cluster and go in to the connection editor you can explore all the attributes.

getAttr skinCluster1.blendWeights[ vert index];

Also just a link for you that might help in your writing of maya stuff, some faster skin stuff:)

http://www.macaronikazoo.com/?p=417

Awesome, Brad! Thank you!

Hey guys
Latissimus with DQ skinning

Only DQ, any one had any success with it ? I can only use DQ, no blending and joints only. What would be a good joint helper joint positions?

Thanks a lot
Yury

It’s tough to say in the abstract w/o the model, but for lats you might want to try a joint near the inside lower corner of the scapula, parented to the closes spine bone and driven off the elevation of the clav by an expression (you’ll probably also want to slide it up as the clav lifts too). Experiment with the weighting to get soft “fan” of verts that opens when the muscle is fully extended. I’d bet that the influences on this will all be low and soft, otherwise it will look mechanical. OTOH DQ weighting tends to be less happy with the old-school ‘let’s just smooth it out with lots of low weights’ style of assignment – the rotational interp tends to make for larger movements than you’re used to to from linear skinning. Definitely a learning curve :wink:

yeah I seem to have an 90% solution with 2 helper joints,

if anyone is interested

one joint is a child of the middle back and is located right were lowest rib is right were the torso side verts are. This joint is driven by an SCIK that is a child of the shoulder joint and is located almost on the shoulder joint, maybe 1/10th towards the elbow joint.
this joint is influencing verts on the torso.
second joint is a child of the joint one and also driven by SCIK that is also a child of the shoulder joint but this ik is located right on the elbow.
second joint is influencing verts on the lower part of upper arm.

Yury