Tips for binding\painting weights


#81

Sorry if this is a repeat, I think I messed up my previous post. There is a version of bodyShape (1.1) on highend3D that works with Maya 5. I haven’t tried it though.

Forthose who have, how well can you get it to work with shoulders and other multi-directional joints?


#82

Make a connection: meshA.outMesh --> meshB.inMesh
Edit the shape of meshB as required.
That’s brilliant. It doesn’t need to be done that way for every joint, but for the extreme positions, especially in the shoulders and hips, it’s a life saver. Quite simple, and it can probably be made to take only 1 click to set, using Mel.

edit:
Hm, bad news on both those items. I tried the connection, and all seemed rosy - I was indeed able to make nicer deformations very quickly in the hips and shoulders - until I replaced my old Blendshape with the new improved one and tested it. It didn’t look exactly like what I’d been modeling, not a big difference but big enough to ruin it and look worse than the old Blendshape. Tried it several times. I have no other deformers or history affecting this mesh, it’s fairly straight forward. Just another one of these Disappointments of CG, things that should work but don’t.

(And about the Mel, well something went wrong when it hit the command to start the Connection Editor, so I did it by hand.)

Can’t use that Highend thing mentioned because I have to use v6.

Also tried a mirror-blendshape script today that had just enough error in the result to be totally useless, all in all not one of my good days… :frowning:


#83

It didn’t look exactly like what I’d been modeling, not a big difference but big enough to ruin it and look worse than the old Blendshape.
Hmmm. Not good. I still have not had time to test this myself. I am disappointed to hear your results though, because in my simple tests the resulting blendshape deformed exactly to match the one I had sculpted. I thought I was onto something.

I will give it some more thought and testing in the near future and report back.

Edit:
A few days later…
My suggested method doesnt work in practice. When I originally tested it, I only rotated the joint that was associated with the blendshape - and it looked like it worked. However as soon as other joints are rotated unexpected deformations happen. I can see why it doesnt work, but I dont know how to correct for it. I now understand why the bodyShape method takes an itterative approach to come up with the required target blendshapes.

Anyway, sorry to have given anybody false hope.


#84

//Try this one:

// For connecting the outMesh to the inMesh:
// Select shape node of the output object, then select the shape node of the input object; run below:

global proc connectInOutMesh ()
{
string $selection[] = ls -sl -s;

if ((size $selection) == 2)
{
connectAttr -f ($selection[0] + “.outMesh”) ($selection[1] + “.inMesh”);
} else {
error “You must select two Shape nodes…outMesh shape first then inMesh shape.”;
}
}

Atwooki


#85

What we actually need for corrective blendshapes is a new BlendShape deformer in Maya… with features like these:

  • Store deformations as relative translation vectors. Although you need a reference coordinate system for this, which should update with the mesh deformation - maybe the vertex normal? This would allow the blendshape to sit at the END of the deformation chain.

  • No need to keep seperate target objects for editing, store all the data in the mesh itself. There are numerous examples for this workflow, like Lightwave or XSI4 or Mirai. It could also help with single-skin characters, because you only need to store data for vertices that actually deform for the given shape.

  • Some advanced tools to help manage blendshape modeling and mixing for new targets, with stuff like per-vertex masking, mirroring.

This is one situation where the open nature of Maya is more of a problem than a good thing… you really have to hardcode all these features.

The other solution is of course to use another app, but that would only help with facial shapes…


#86

YES. Alias decision-makers if you’re reading this, please make this one of your highest priorities. The humble Blendshape hasn’t changed much since v.1 or whatever, yet it’s the most important deformer for character animation. Time to bring it into the 21st century for all of us who can’t afford a team of programmers developing inhouse tools. Thank you.


#87

I’ve got a rigid skinning dilemma…

I’m skinning a low poly character (designed for realtime), hes about 1400 tris. I haven’t used Maya’s rigid skinning before, in the past I’ve done some light rigging in Max. Anyway, I’m getting the hang of it but here’s my one problem:

If I bind and a joint isnt close enough to any points, a skin cluster node is not created for it, hence I cannot assign vertices to it later… if anyone knows how to trick Maya into making a new skin cluster for a joint, AFTER skinning… please let me know asap. Thanks in advance.


#88

I dont thinck you can add a joint to a skin cluster after a bind. Expecialy with rigid. But I could be wrong. What I could sugest is going back and smooth skin it. The deformations will be easier to work with. But if you dont want to do that. Then select thos cv’s and asighn a cluster to it then parent the cluster to the joint. Its not the best way of doing this but it will work. Just paint the weights with the edit membership tool on the cluster.


#90

Thats a shame, I really hate the smooth skinning tools. Weighting a smooth skin in maya has always been a huge tangled mess for me. Thanks for answering notto and MEL.


#91

Just a quick tip i found today. (not sure if this is a bug or not, maya 6)

I found that if i did a ‘replace’ of 0 to any points and then selected a different joint, then go back the the joint that i just did the replace 0 with, the changed had gone, as in it went back to what it was before. This happened with ‘Hold’ on the joint as well.

I found that instead of doing a Replace of 0, that doing a Replace of 0.001 worked, then it can be removed with a prune values.

Not sure if this is a clever way todo it, but worked for me :thumbsup:

P.S. David Walden (http://www.davidwalden.com/) SkinnyTools mel script is really good. It asically puts all the skinning (smooth) tools that you need in one GUI, and adds loads of neat stuff. Thanks David


#92

I have just spotted this on highend3d
BSpiritCorrectiveShape.mel
I think Christian Breitling has done what I attempted (and failed) to do, but his method works, allowing sculpting of corrective blendshapes to be done while allowing for mesh deformation by the whole skeleton.

Works in maya 6 too.


#93

i ran into this problem before (are we the only ones using rigid bind) and was given this work around by an instructor.

  1. make a cube and scale it way down, about the size of a joint

  2. snap-move it to the joint that won’t take any weight

  3. duplicate and move cubes to any additional problematic joints

  4. select the skin, little cubes, and joints - rigid bind

  5. delete the cubes, the joints still might not have any skin vertices weighted to them but they’re in the bind now so you can add them as you need

and lastly… well, this didn’t always work but it usually did… after a few trys… :thumbsup:

hope it helps.


#94

Wow.

I just went through this entire thread, and that’s all i gotta say.


#95

MeatPuppet: That’s brilliant, thank you!


#96

好,太好了呵呵
不是吧


#97

This is an awesome thread and I’ve learned a ton from reading throught the whole thing. I just have one question, does anyone know if the Smoothflood script that kmp3d mentions is available for 6? I tried the version from Highend3d, but it’s just giving me an error. So I’ve been doing the same thing manually and I really like the results, but of course it would be nicer if I could do it through a script.

BTW, this seems like it should a default option in the Smooth Bind Options, it’s so useful. I mean, it’s called “Smooth Bind”, why wouldn’t you want the weights to be smoothed out? :slight_smile: vbmenu_register(“postmenu_842909”, true);


#98

Interesting thread… :slight_smile:


#99

Originally Posted by gromdt

Thats a shame, I really hate the smooth skinning tools. Weighting a smooth skin in maya has always been a huge tangled mess for me. Thanks for answering notto and MEL.

You are not alone!!
I’ve been working for a while on a character based on the LowMan rig and I have skinned it like thousands of times and it never gets right. Always something that messes up! Last thing I did was deleting the legs and made new ones. Felt I did’nt need the IK/FK stuff. I put it together the “Jason way” with grouping hierarchy the IKhandles. But now the whole leg…but the foot flips 180 when I translate hip down in Y axis. I have tried orienting and freezing the joints…but yarrgh. Rigging only makes me maaad!!

Any pionters or tips from anyone are more than welcome!!


#100

Not sure if this is the right thread for this, but here goes…

I’ve been using the blendshape rigging system (as described by Stahlberg) for my character. The main drawback of this system is that everytime you modify your lvl0 mesh, you need to redo the blendshapes. The suggestion has been made a couple of times that connecting the Lvl0.mesh to the blendshape.mesh fixes the problem. However when I do that, I find that yes, modifications to the Lvl0 mesh alter the blendshapes, but then blendshapes also alter the Lvl0 mesh, altering the blendshapes. So you end up with circular reference. If there is a way around this, pls let me know!

Anyway, a solution…

I use 2 scripts. One to connect the blendshapes to the Lvl0 mesh and then bind to the rig. Then the other script disconnects the blendshapes and rig, and connects the Lvl0.mesh to the blendshapes.mesh. So while I’m working on blendshapes, if a Lvl0 mod is required I run the “disconnect” script, add/change/delete vertices, which are reflected in the blendshape meshes. Then I run the “connect” script to join it all up again.

The script also handles copying of skin weights, so they are not lost. Next modification will be to automate the mirror cut of the mesh when it’s disconnected, and remirroring on connection.

So the result is a system where changes can be made to the base Lvl0 mesh, which are reflected in the blendshapes, without loosing the blendshape deformations.

I’d be happy to post snipets of the mel script that does this, although it’s obviously customised for the blendshapes that my model is using.