Topology considerations

Topology flaws…

This should make it immediately apparent that we have too few faces in our mesh near the symmetry line. Thus our mesh topology does not work well with the way how we want our skirt to bend and stretch. This is a first hint that our animation and our mesh are closely related to each other. More on this see below).

and cures.

The easiest fix is to just add edge loops (one left to the symmetry line, one right to it). And since the same problem also happens on the backside of the mesh i will add another 2 loops there as well.

Here is the mesh in rest pose after i added the extra edge loops (the selected verts). Note that adding edge loops will automatically weight the new vertices by calculating interpolations from the adjacent vertex weights. In most cases this is good. Although sometimes you might need to tweek the weights manually.

poke_at_legs_03

Note: I also have shifted the edge loops a bit to give a more uniform face size in rest pose. But be aware that i have kept the faces near the symmetry line small! Because here the most stretching will happen. Also note that we have other options to fix this by changing the edge flow. But lets keep this aside for now. We might get back to this within another tutorial.

For now lets get back to frame 30, then select the edge loops one by one and for each loop apply the Levels tool with different Gain values.

Tip: Try to remove weights “from the opposite” side (so use the levels tool such that you can use gains < 1.0) This gives you better control over how the edge loops move.

So when you work on the left foot, then remove weights from the right Hip and vice verse. (but this is just a rule of thumb!)

The final result …

And here is the weighted Skirt. You now can take the skirt and export it to Collada, then Import it to Second Life (or OpenSim, etc…) and do not forget to enable the option “with Weights”. However, we probably see that our skirt does not react nicely to the walk animations of SL. We will see in a moment why that is so.

poke_at_legs_resolved