- Aug 7, 2024
- 17
- 5
Not sure if this is an issue with the Golden Palace for G9 graft or a general issue with the Daz-to-Unity bridge (possibly also Daz-to-Unreal bridge).
I have a female-morphed G9 figure with GP graft on it, and in "lying with legs spread" pose 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, the legs are spread but the part of the mesh that corresponds to the GP 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. Note how these stretched polygons lose skin detail both in the diffuse/sss textures and the normal map. That's because the outer polygon ring in GP is pretty small by default, and not much space in the UV maps is given to them. And even if it would have more detail, clearly this isn't how the pussy should look like. It should get wider, like it does in Daz.
I'm not sure why GP doesn't follow the pose in Unity but my best guess is that, during the export, the bone weights on the GP's vertices get lost, at least to the upper leg nodes, because it's a graft. The official Daz-to-Unity (and -Unreal) bridge docs say that they can't export morphs on grafts - that's clear. Probably these bridges also fail to export bone weights?
I'm on Unity 6 preview but I tested: this also comes up in Unity 2023.
My initial idea of a solution was to programmatically set bone weights on the vertices of the graft from Unity, at runtime (
So I tried solving this in another way (and it didn't work): in Hexagon, create a morph that would deform the GP graft to the exact state it has in this pose, then export the figure to Unity with this morph included, and then export the animation with this morph applied at 100%. Supposedly this should look wrong in Daz (because the GP graft already stretches for the pose, and the morph would even further exaggerate the stretching) but should come out fine in Unity (the morph would fill in for the lack of stretching in the pose). The problem with this workaround is that Hexagon won't let me import a graft with a stretched outer contour. Here is a screenshot of what you get in Hexagon if you try to import GP from a figure that's in a "legs spread" pose. I've selected the outer edges to make it clear that the outer shape of the graft is imported to Hexagon as if there is no pose. Yet all of the inner vertices are stretched properly. I tried moving the vertices of the graft's contour manually (even synced their positions with the positions of the corresponding vertices in the female figure by copy-pasting exact XYZ coords) - yet during import from Hexagon back into Daz they all get reset silently.
After a lot of attempts with Hexagon (I tried different combinations of settings "Reverse deformations" and sub-options there), the best I'm getting in Unity is this:
While the graft's inner vertices more or less stretch fine (I guess those still could be improved with some manual edits in Hexagon), the outer ring of polygons has incorrect normals. The lighting gets all messed up - it shows those polygons darkened as if they were on the bottom side of the figure. That's most likely because Hexagon forces the outer contour of the edges of the graft to their default state for the graft, and this rotates the outer ring of polygons to look inside the figure instead of outside. I couldn't find a way in Hexagon to edit normals on vertices. I'm not even sure that data would get carried over 2 bridges correctly anyway.
Any ideas?
If there is no solution, I guess I'll have to leave these stretched polygons as they are. It's just only this pose with wide open legs where it's so severe. Also, strangely, with Dicktator graft I don't see the issue. Maybe it still has to do with how bone weights are assigned in Golden Palace, so it's Meipe who can fix this? I posted this question also on Renderotica's support forum
I have a female-morphed G9 figure with GP graft on it, and in "lying with legs spread" pose 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, the legs are spread but the part of the mesh that corresponds to the GP 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. Note how these stretched polygons lose skin detail both in the diffuse/sss textures and the normal map. That's because the outer polygon ring in GP is pretty small by default, and not much space in the UV maps is given to them. And even if it would have more detail, clearly this isn't how the pussy should look like. It should get wider, like it does in Daz.
I'm not sure why GP doesn't follow the pose in Unity but my best guess is that, during the export, the bone weights on the GP's vertices get lost, at least to the upper leg nodes, because it's a graft. The official Daz-to-Unity (and -Unreal) bridge docs say that they can't export morphs on grafts - that's clear. Probably these bridges also fail to export bone weights?
I'm on Unity 6 preview but I tested: this also comes up in Unity 2023.
My initial idea of a solution was to programmatically set bone weights on the vertices of the graft from Unity, at runtime (
You must be registered to see the links
). However, I don't know what those weights are. Maybe I could find them with the weight painter tool in Daz (
You must be registered to see the links
) ? Still, it's a hell to try to find out the indices of those vertices at runtime inside a game. It's a huge array of vertices and I don't know how they are sorted in the model. Besides, I really don't want to create a new mesh for each pose and break the logic of mesh sharing between instances of models instantiated in the game scene. After all, a mesh is supposed to be a static asset that the game loads once, not edits on the fly.So I tried solving this in another way (and it didn't work): in Hexagon, create a morph that would deform the GP graft to the exact state it has in this pose, then export the figure to Unity with this morph included, and then export the animation with this morph applied at 100%. Supposedly this should look wrong in Daz (because the GP graft already stretches for the pose, and the morph would even further exaggerate the stretching) but should come out fine in Unity (the morph would fill in for the lack of stretching in the pose). The problem with this workaround is that Hexagon won't let me import a graft with a stretched outer contour. Here is a screenshot of what you get in Hexagon if you try to import GP from a figure that's in a "legs spread" pose. I've selected the outer edges to make it clear that the outer shape of the graft is imported to Hexagon as if there is no pose. Yet all of the inner vertices are stretched properly. I tried moving the vertices of the graft's contour manually (even synced their positions with the positions of the corresponding vertices in the female figure by copy-pasting exact XYZ coords) - yet during import from Hexagon back into Daz they all get reset silently.
After a lot of attempts with Hexagon (I tried different combinations of settings "Reverse deformations" and sub-options there), the best I'm getting in Unity is this:
While the graft's inner vertices more or less stretch fine (I guess those still could be improved with some manual edits in Hexagon), the outer ring of polygons has incorrect normals. The lighting gets all messed up - it shows those polygons darkened as if they were on the bottom side of the figure. That's most likely because Hexagon forces the outer contour of the edges of the graft to their default state for the graft, and this rotates the outer ring of polygons to look inside the figure instead of outside. I couldn't find a way in Hexagon to edit normals on vertices. I'm not even sure that data would get carried over 2 bridges correctly anyway.
Any ideas?
If there is no solution, I guess I'll have to leave these stretched polygons as they are. It's just only this pose with wide open legs where it's so severe. Also, strangely, with Dicktator graft I don't see the issue. Maybe it still has to do with how bone weights are assigned in Golden Palace, so it's Meipe who can fix this? I posted this question also on Renderotica's support forum
You must be registered to see the links
Last edited: