Smooth weight painting

RoygeeRoygee Posts: 2,247
edited December 1969 in Daz Studio Discussion

Hi all :)

I'm having a problem getting smooth deformation between face groups. I'm trying to rig this fox - the tail is just an example - same thing between all groups. The tail has three bones and the ugly distortion is between each bone. The bones are in a hierarchy - bone1 the parent, bones2 and 3 parented. This pic shows parent and children weights and all faces are accounted for in the groups and given weighting. In the pic, only the parent bone has been moved.

The two videos I've watched - the duck and the sash use very different approaches for assigning weights. In the duck one, the face group is selected and the selection expanded by two iterations. Filled 100% and smoothed 10%. In the sash one, the selection is expanded a lot more, filled 100% and smoothed 100%. This is obviously because a different type of deformation is needed.

I have tried both and all sorts of combinations between, but can't get a smooth deformation.

Another problem is that in expanding the selection, the expansion goes both ways - bone 1 expands too far into the hip - I obviously don't want the backside deformed when the tail wags!

What puzzles me is that, with all the faces accounted for and weighting allocated, the whole tail should move smoothly when only the parent is moved, regardless of what the smoothing between face groups is.

I would really appreciate any advice in solving this issue - even some sort of "rule of thumb" to get me on track would be great.

Comments

  • namretteknamrettek Posts: 168
    edited September 2012

    I am no expert at weight painting. I just did my first figure a few days ago.

    I posted to this thread - http://www.daz3d.com/forums/discussion/7158/P90/#101885

    Basically-

    while having the weight map brush tool selected, right click in the screen and select “Fill weight by selection sets”. This fills all the maps for all the group faces with red.

    Then I just move one group smoothed the maps with the smoothing brush with a .8 sensitivity. I did each map painting as little as possible just to smooth out what was needed. You of course can adjust the sensitivity. I just hit ctl z if I did too much.

    Just ran the brush over them until they looked good. A few places I had to work on some other parts of the figure, but mostly I just painted on the maps where I selected. It was incredibly quick and painless.

    Then I did several different “poses” (just dragging parts) and smoothed until they looked good from every angle.

    Post edited by namrettek on
  • SickleYieldSickleYield Posts: 7,629
    edited December 1969

    The best rule of thumb, added to the good advice above, is that if you're seeing these inappropriate pointy things on movement the polys are not painted "hard" enough to the main bone to which they're attached. When that happens, usually you're looking at something that needs to be at 100% (full red) but isn't, and the above solution is the best.

  • RoygeeRoygee Posts: 2,247
    edited December 1969

    Thanks for the advice, guys. I've taken a look at namrettek's post and figured out what to do. I'm assuming that using the "Fill weight by selected sets" applies to a figure that has not had any weighting applied? Because when I do that, only the faces allocated to the selected bone light up.

    I'll try emptying a copy of my model, see if that works.

    In the meantime, I used the ease-out setting between parent-child bones and the forward movement - parent to child - is now smooth as silk. The ease-in didn't work too well between child and parent, but I then used it in posed positions and that worked OK - actually a bit too strongly, so I'll play around with the sensitivity settings.

    Is there a quick way of reducing the weighting, or even totally deleting? All I can think of that may work is to set it to fill 0.

    Really good dino there, namrettek

  • namretteknamrettek Posts: 168
    edited December 1969

    Right click on the "bad" map. choose remove selected. Then go up to unused maps - left click and the deleted map will appear in the list. Select that. Hit add map and then a new empty version will be there.

  • namretteknamrettek Posts: 168
    edited December 1969

    It does go quicker after a few tries. I just resculpted the dino, brought it into DS4 grouped, rigged, and am weight painting now. In less time than it took me to group the first version!

    I also painted it and added displacement maps.

    However, I have run into a snag.

    Here I added a pic with the area under his shoulder - the displacement map is a bit stretched. I'm not sure how to fix this. Maybe a lot of smoothing is not the best way to do weight mapping...

    Any ideas?

    stretching_displacement.jpg
    600 x 600 - 128K
  • Joe CotterJoe Cotter Posts: 3,259
    edited December 1969

    What does the underlying mesh look like in that area? It is very possible that the topo of the mesh could use some tweeking or that the mesh needs more polys in that area to deform well. The direction of the polygons are a big part of topography and have a big influence on how a mesh deforms in a given area. If the direction of the polys goes against the deformation it will give bad results. If the poly count is too low displacement maps won't have enough to work with to produce a good displacement. Displacement maps (unlike bump and normal maps) are poly dependent.

  • namretteknamrettek Posts: 168
    edited December 1969

    Gedd said:
    What does the underlying mesh look like in that area? It is very possible that the topo of the mesh could use some tweeking or that the mesh needs more polys in that area to deform well. The direction of the polygons are a big part of topography and have a big influence on how a mesh deforms in a given area. If the direction of the polys goes against the deformation it will give bad results. If the poly count is too low displacement maps won't have enough to work with to produce a good displacement. Displacement maps (unlike bump and normal maps) are poly dependent.

    It seems one has to know exactly how to do the whole thing before you start. Makes it a little tough to figure it out.

    I have included a pic with a wire of the polys over the texture.

    The whole model is almost 70,000 polys. Daz seems to slow down every now and then while I weight paint it. Don't know that I can bring in a larger model.

    I also included a pic with the polygons in that area unstretched.


    Roygee, not trying to hijack your thread. This has to do with wieght painting. Hopefully we can all learn a little something. and by we I mean ME. heheh

    stretching_displacementPOlys2.jpg
    600 x 620 - 358K
    stretching_displacementPOlys.jpg
    600 x 620 - 297K
  • Joe CotterJoe Cotter Posts: 3,259
    edited September 2012

    Poly count looks high enough. As for the topo, it looks like it could use tweaking but I mostly understand the basic concept without having the hours under my belt to speak authoritatively. Basically my understanding on topo is that the polygons need to follow the main axis of morphing (bend/twist etc..) But ofc this needs to be modified by how much the mesh needs to move in other directions. Topology is an art in itself from what I've gathered in various tutorials, and there are going to be compromises at times.

    The main thing is that from all of what I've seen, weight painting for rigging and topology are intimately connected. Displacement and poly count are also. Topo also effects uv and therefore texture stretching also. widely varying poly sizes will cause much distortion in texturmaps when the mesh is morphed/distorted.

    Post edited by Joe Cotter on
  • RoygeeRoygee Posts: 2,247
    edited December 1969

    No problem about jacking - let's share what we can glean and all learn something.

    Looking at the topology around the shoulder and comparing it with one of the best deforming meshes - Genesis - it looks good to me. So I'd say it was a matter of getting the fall-off right so that the movement of the shoulder doesn't affect the chest or collar (whatever is the adjoining mesh) too much.

    Thank you for your help so far - I have the tail deforming just great and will continue with the rest tomorrow. What I did was empty the weighting that was there using your method. Then selected each group in turn and gave them 100% weight each, no smoothing. Then used the smoothing brush at 20% sensitivity - ease-out between parent and child and ease-in between child and parent.

    Works like a charm on the tail, but I suspect it will have to be different on the legs - there I'd want a sharper deformation, so I'll see what sort of settings I'll need for that and let you know tomorrow.

    Cheers

  • RoygeeRoygee Posts: 2,247
    edited December 1969

    OK, with your help and some experimentation, I have found a reasonably efficient way of smoothing the fall-offs between bones.

    Gave each bone 100% weight in the X-axis, copy and paste to the other axes as per the duck tutorial, but no expansion of selection or smoothing, .

    Set the weight brush to "smooth", .5 and select "Ease-in-out". Then I rotate the bone to the maximum it will be rotated to in one axis, select that axis in the weight-paint mode and give it a light brush till the deformation is clean. Rotate in the opposite direction and normally it is OK, may need a bit of smoothing. Set that axis rotation to zero and go on to the next.

    Of course, what strength you set the brush at and how much smoothing you want depends on what sort of bend you want. My character is a cartoon figure, so doesn't need sharp bends.

    This method gets to use the Tri-Ax method as I think it is intended - different weights per axis.

    The next step is my least favourite one - setting parameters. Does anyone know whether there is a method of mirroring parameters? Please let there be!

  • namretteknamrettek Posts: 168
    edited December 1969

    Roygee said:
    OK, with your help and some experimentation, I have found a reasonably efficient way of smoothing the fall-offs between bones.

    Gave each bone 100% weight in the X-axis, copy and paste to the other axes as per the duck tutorial, but no expansion of selection or smoothing, .

    Set the weight brush to "smooth", .5 and select "Ease-in-out". Then I rotate the bone to the maximum it will be rotated to in one axis, select that axis in the weight-paint mode and give it a light brush till the deformation is clean. Rotate in the opposite direction and normally it is OK, may need a bit of smoothing. Set that axis rotation to zero and go on to the next.

    Of course, what strength you set the brush at and how much smoothing you want depends on what sort of bend you want. My character is a cartoon figure, so doesn't need sharp bends.

    This method gets to use the Tri-Ax method as I think it is intended - different weights per axis.

    The next step is my least favourite one - setting parameters. Does anyone know whether there is a method of mirroring parameters? Please let there be!

    Awesome. I'll try that smoothing method.

    I have not started trying to set joint parameters yet.

    If you select the "fill weights by selection sets" you don't have to copy and paste. It fills up every map with 100 percent red.

  • niccipbniccipb Posts: 483
    edited December 1969

    Roygee said:
    The next step is my least favourite one - setting parameters. Does anyone know whether there is a method of mirroring parameters? Please let there be!

    Do you mean like setting the rotation limits on the left limb and then transferring them to the right limb?

    If so, yes it's easy...

    Using the Joint Editor tool select the bone, then in the parameters tab click the gear cog for the rotation parameter and select Parameter Settings

    Set your limits and click ok... do the same for the other rotation parameters. Then do the same for each bone down the limb.

    Then in the viewport Right-Click on the top bone in the limb and select Edit>Mirror Joints, change node to Selected Recursive, just ignore the Mirror Axis, then click Accept.

    That's it... it will mirror all three axis' for each bone in the limb...

    Hope this helps... :)

  • RoygeeRoygee Posts: 2,247
    edited December 1969

    Thanks so much. both of you - real time-savers. :)

  • stitlownstitlown Posts: 276

    Hi guys, know I'm a bit late to this thread (like 5 years - haha) but it seems a highly logical location for my issue and nothing better was throwing itself up.

    My issue is "unweighting" as part of the refinement process.  I'm converting clothing rigged and weighted in now-defunct Quidam onto G2 figures with great results, but it is a slowish process made slower for the fact that there does not appear to be an "unweight" funtion. [Quidam had 2 paint functions as I recall. Weight-on and weight-off, both able to be done with a paint brush, very like Studio.]

    But in Studio it appears there are only 3 options 1. Paint-on with the "p" brush.  2. Smooth weights across nearby vertices with the "s" brush. and 3. Delete the map and start over [which is a great option in many instances ... but not in many others.] 

    Does anyone know if there is an "unpaint" technique that I'm just too dumb to see?  And if not, is there a way to make a suggestion to the developers to add a "u" brush to the "node weight map brush" tool?

    Cheers, Lx

  • stitlownstitlown Posts: 276

    Again, years late to the discussion, but just in case it is useful for setting parameters.  MJC has a script called "Restore Limits" that will save all the parameters in a generated script so you can reapply the originals after a major cock-up-event, or some such other, has occurred.  I found that great for first adding all the parameters for a new model which had everyting at +/- 180 on the rotations.

    1. Run the MJC script

    2. Edit the generated script in wordpad or notepad or similar.  Way easier and faster than the one-at-a-time Studio interface, especially if many of the joint parameter limits are the same (ie copy / paste).

    3. Run the generated script.  All fixed. 

    4. And if you want to tweak - edit again and run again.

    A heads up.  In DS4, the generated script did not work for me because the code for a function was not generated into the generated script.  But it was easy to find that code in MJC's source script and copy it in and Bingo!

    Cheers.  Lx

  • Richard HaseltineRichard Haseltine Posts: 96,718
    stitlown said:

    Hi guys, know I'm a bit late to this thread (like 5 years - haha) but it seems a highly logical location for my issue and nothing better was throwing itself up.

    My issue is "unweighting" as part of the refinement process.  I'm converting clothing rigged and weighted in now-defunct Quidam onto G2 figures with great results, but it is a slowish process made slower for the fact that there does not appear to be an "unweight" funtion. [Quidam had 2 paint functions as I recall. Weight-on and weight-off, both able to be done with a paint brush, very like Studio.]

    But in Studio it appears there are only 3 options 1. Paint-on with the "p" brush.  2. Smooth weights across nearby vertices with the "s" brush. and 3. Delete the map and start over [which is a great option in many instances ... but not in many others.] 

    Does anyone know if there is an "unpaint" technique that I'm just too dumb to see?  And if not, is there a way to make a suggestion to the developers to add a "u" brush to the "node weight map brush" tool?

    Cheers, Lx

    ctrl(Win)/cmd(Mac) paint to remove weight, I think (that's the modifier I have, not sure if it's the default though).

  • SickleYieldSickleYield Posts: 7,629
    edited May 2017
    Hold down alt while painting. edit: or it might be ctrl. Sorry Richard!
    Post edited by SickleYield on
  • stitlownstitlown Posts: 276

    Thanks guys.  Did I just miss the obvious, or is the solution a bit obscure?

     

Sign In or Register to comment.