Graft bone weights are lost after export from Daz to Unity?
Are grafts supposed to retain their weights towards bones outside the graft? This is not mentioned in the official documentation of the bridge. However, I have a strong suspicion that, after getting thru the Daz-to-Unity bridge, they lose weights for bones outside the graft.
I have a female-morphed G9 figure with GoldenPalace graft on it. When I put her in a pose where legs are wide apart, the graft looks fine inside Daz: the vertices of the graft spread slightly to reach for the contour of the graft for the spread legs. However, after I export the figure to Unity engine and apply the pose (using an animation that I also exported from Daz for this pose or just by rotating the GameObject joints), the legs are spread but the part of the mesh that corresponds to the graft is left unchanged.
Only the outer ring of polygons stretches to fill the gap between the default graft's shape and the space that the graft needs to fill. But the inner vertices of the graft ignore the pose entirely. It looks as if (aside from the outer ring of polygons) the graft is some rigid accessory (like a ring, or a horn would be), not something from flesh that should stretch with the rest of the body.
This looks poorly because of the wide flat "bands". The stretched polygons lose skin detail both in the diffuse/sss textures and the normal map. Moreover, issues with normals crop up later on. When I export morphs that change the shape of the graft (e.g. "GPL_Majora_Contour Fix 3"), some polygons of the graft (while looking fine in Daz) get behind the outer polygons in Unity, and for those polygons the normals seem to flip. They become dark or invisible and often turn into big rectangular holes.
Here is my (very long) post of how I tried to solve the issue, without much success so far. Can't post it here because of the screenshots.
https://f95zone.to/threads/golden-palace-g9-graft-bone-weights-are-lost-after-export-from-daz-to-unity.229326/
Conceptually, I think there must be different use cases with grafts: in some cases (like horns) the graft actually has to stay rigid and only have non-zero bone weights to the bones of the graft itself. But in other cases (like GP) it's a part of the skin and needs to have similar bone weights as the vertices around the graft. How is this differentiated?
http://docs.daz3d.com/doku.php/public/software/dazstudio/4/userguide/creating_content/rigging/tutorials/weight_mapping_a_figure/start seems to only cover weight painting on figure, not grafts.
Comments
Update: I checked out the weight maps, and it seems that Left thigh and Right thigh joints have empty weight maps while the Shin nodes have non-zero weights only up to the middle of the tighs. The crotch area seems to be only following the Pelvis node. Same with the GP graft: zero weights for the Thighs or Shins and some weights for Pelvis.
Which would mean that in Daz, polygons have something like "elasticity" (?) and stretch after their neighbors even if there are no weight maps? And this system breaks after the export to Unity? (which only relies on bone weights).