Not sure if Ken got around to explaining about D-Formers, they are like Poser's magnets system. Pure and simple!
So question about a few things.
I made a simple vest for L'Homme to do promo's with. Well it works wonderfully if I don't pose him but when I pose him it gets a bit crunchy around the arm holes and around the neck. I tried weight mapping edits but while that helped it wasn't the pure solution. I made a few "fix morphs" but that's just too fidgety. I guess I need to bide my time for the Unimesh code to become a reality, don't seem to have these issues in DS when I was making stuff for Genesis.
Also *unreal* you mentioned some scripts you wrote for mirroring JCM's across? Seems interesting. Also my other niggle for right now is that there is an option to mirror weight maps across, didn't seem to do that when I tried it. I know the mesh is equal on either side since I made half a vest and mirror and welded in ZBrush to the other side so yea, it's a very equalized mesh! So not sure what mirroring Weight maps is about but as I stated, didn't work.
Ah, right. makes sense. Magnets was always a weird name. d-formers isn't any more or less weird
Are they the same as Poser? I always wish there was more control of them.
But they're really good and quick for some things. I used a set of them when I made a set of "real eyes" for star. The problem is that her eyes aren't spheres. But the "real eyes" have an iris and pupil. But the eye is a flattened ellipse. So I attached two magnets to her eye rig that would create a field to distort the new eye spheres into the correctly oriented flat ellipse to match her head, no matter what direction the eyes were rotated. I was surprised it worked. This had to do with using (originally) lux render, which expects solid eyes, which star did not have. Works nicely for supefly, of course. Same reason.
RamWolff, I found the same thing. It seemed more like "add mirror values to what's there" rather than replace with mirror. I even tried doing that, then subtracting the original, but that didn't work either. There was no weight diff method.
The script is pretty simple. It makes a dict of verts keyed on (x,y,z) where x>0 and a dict where x<0 (also a dict where x=0). For each vert in one x!=0 dict, there should be a corresponding mirrored -x,y,z vert. The dict entry contains an array of original actor.index verts. This gives me a map between each index and the mirror index. You can do various tests on the 2 dicts for quickly saying not symmetric. Entries are arrays of vert indices since doing this across multiple actors, the same vert (welds) will show up in multiple actors. You can do various very easy and quick tests on the dict and entires to show asymmetry before screwing things up
There's no GUI for the script. And I'm not sure where it is, but I think I kept such things in git on a server somewhere
On thing I found.... For La Femme I actually remade a "donor" rig where I used envelope controls (sphere's and capsules) that almost exactly duplicated La Femmes weight maps. This was important at shoulder and hips. What I found is that they transfer much better to another mesh. Way smoother since they're effectively "infinite" resolution. After the transfer, in the new object, I replace them with weight maps and tune as needed. i did this after going through exactly what you describe, more than once. I took this path because I ended up going back and having to re-work my mesh, which means the weight maps are no longer any good. But the geometric things are just as good, regardless of adding a new vert into the mix. Smooth.
I "did the math" and found that a really good set of envelope controls, which took quite a while to do, but only had to be done once, produced transfers that took way less time to tune, after transfer that the WMs. Even for the HR rig.
Note: This is only true in the few complex joints (shoulder and hip). And especially when the target mesh was much finer and had "stacked" verts (like the thickness of a sleeve with a cuff opening). The transfer did not handle close verst at different depths well at all. A few times of "back to square 1" had me create the better (for my purposes) rigs.
And after asking question about the algorithm that Poser uses to calculate transferred weights, and being told that WMs are always better (no. They're not. "Always" is like "impossible". no such thing in computers. Except your computer will always fail during a critical demo.) I gave up and just went with what took less work (at the cost of one-off coding). I even tried wicked HR donor meshes. Still wasn't as good as well done envelopes. Like Ken mentioned earlier, they're dynamic. dynamic is good (in this case)
This also made me realize that for clothing development rigs, vert movement is very different when a cloth item ends near a joint. Versus body-stocking, like the dev rig. (the cloth slides rather than stretches). Moreover, trying to make a body stocking VM transfer good for that is more work than doing it from scratch. Because it's really a combination of JCMs, 3 axis, and their bump maps. So when the vert is moving weird, which map should you fix? And when you do, what else are you screwing up? uhg. I started to really hate La Femme about then.
I don't know how Dawn 2 will go. Certainly the D2 devs have heaps of experience. If I find myself making anything similar (donor cloth rig) then I'll release them gratis