Unity Daz Geoshells turn into unskinned meshes in Unity

wittyminx

New Member
Aug 7, 2024
7
2
I ran into this problem with trying to export a G9 model with Golden Palace / Dicktator pussy/dick into Unity using Daz-to-Unity bridge.

Namely, these 2 products have geoshell nodes which add textures: labia minora and labia majora for Golden Palace, dick/testicles texture and foreskin for Dicktator.

After the export to Unity, the geoshells become simple Meshes (unskinned, not bound to any skeleton). While the rest of the geometry becomes skinned meshes (rigged).

So, when I animate models using either blend shapes or bone nodes, the geometry animates but the geoshells stay the same. The geometry just pokes thru the immutable geoshell mesh and the pieces sticking out become just brown like the skin texture instead of pink-ish.

Anyone found a solution for this? Thanks
 

wittyminx

New Member
Aug 7, 2024
7
2
Found the solution for geomaps from GoldenPalace Majora and Minora geoshells. I'll probably make a tutorial video about this since everyone seems to be confused. In short, the steps:

0. GP is a separate mesh. The task is to create a new UV map for it, and then remap to this new UV map the textures from 3 sources: 1) G9 character body, 2) GP majora geoshell, 3) GP minora geoshell. This should be done separately for diffuse, translucency, normal and reflectivity textures. After that, geoshells can be just deleted.
GP uses geoshells to nicely overlay the pussy textures over the base body textures. Since Unity doesn't have a "geoshell" feature, you need to bake the overlays into a single layer.
Before the conversions, in GP controls, "01-material-presets", select the one that fits the body texture the best. E.g. if it's the dark-skinned Amala character, you probably want a darker pussy material

1. the initial step is to create the new UV map. For this, select just the GP node in Daz, then click Daz-to-Hexagon. In Hexagon, switch to 2-view layout, the second view should be UV view. Use the unfolding tool (human head) to slice the surface of GP mesh into a new UV map.
official manual (pretty poorly written, and their tutorial video is in French):
another tutorial video (much better):
"+" button adds selected edges to the list of seams, pressing the "human head" button re-calculates the islands.
I created seams on the borders of the material zones + central edge (view from the front) across the whole mesh). Keep adding seams until there are no islands with too cluttered vertices
Then the most time-consuming part is to manually place/rotate/scale the islands in the UV map editor. Spread them to cover the square map without too much wasted space
Finally, save the GP mesh from Hexagon as OBJ file (check "include uv map", uncheck "flip textures"). This OBJ file is the GP mesh with a new UV map.

2. in Daz, open Surfaces tab, right-click on it, Edit -> "Load UV Set...". Select the OBJ file and name the new UV set "GP_ForUnity"

3. in GP controls, make sure the materials are copied from the character's body to GP (step 3 of its standard setup flow), then select GP node, open Surfaces tab, select all surfaces of GP (Torso, minora, rectum etc), right-click on Surfaces tab, Map transfer. There create new template "Template1", drag all 6 surfaces of GP into it. Then select individual surfaces (not the template), this will allow editing "Target UV Map" parameter, set it to "GP_ForUnity". Can leave file type JPG, set baking quality 10. Click Accept. After this step you should have the G9 textures remapped to the GP mesh according to the UV map you created in Hexagon

4. now you need to repeat this for the GP majora geoshell node and GP minora geoshell node. However, Daz cannot transfer maps from geoshells. The workaround is to temporarily copy surfaces from the geoshell to the GP node.
first half of this video shows the guy doing this: (Note: this guy is still doing the process overall incorrectly because he doesn't create a new UV map like we did in steps 1 and 2, so if you just follow his video, you'll lose the textures for the vagina and colon interior, and those you will need if you spread the pussy)
4.1 Select the GP node, Surface tab, select its 6 surfaces, click Presets tab above, select "!Iray Uber Base" shader.
Select GP Majora Geoshell node, select "Torso" surface, right click on it, "Copy selected surface", select GP node, select "Torso" surface on it in Surfaces, right click on it, "Paste to selected surface"
do this for each of the 6 surfaces.
Then same stuff you did in (3), to export majora geoshell textures with your new UV coords:
- select GP node, open Surfaces tab, select all surfaces of GP (Torso, minora, rectum etc), right-click on Surfaces tab, Map transfer. There create new template "Template1", drag all 6 surfaces of GP into it. Then select individual surfaces (not the template), this will allow editing "Target UV Map" parameter, set it to "GP_ForUnity". Can leave file type JPG, set baking quality 10. Click Accept.
4.2 same for GP Minora geoshell (manually copy each of the 6 surfaces, then transfer maps to your new UVs)
After this step you should have the GP majora and minora textures remapped to the new UVs you created in Hexagon

5. Now you need to open in Photoshop all the new textures you exported and manually merge 1) diffuse, 2) translucency, 3) normals, and 4) reflectivity maps from body + majora + minora.
Note that these are all named differently in the sources. That's because the Daz shader in Unity actually uses less stuff than Daz, and there is data loss during the conversion. Here is what roughly matches to what:
- diffuse: BODY = Template1 Diffuse Color.jpg, MAJORA = Template1 Diffuse Color.jpg, MINORA = Template1 Diffuse Color.jpg
- translucency: BODY = Template1 Translucency Color.jpg, MAJORA = Template1 Translucency Color.jpg, MINORA = Template1 Diffuse Overlay Color.jpg
- normals: BODY = Template1 Detail Normal Map.jpg, MAJORA = Template1 Normal Map.jpg, MINORA = Template1 Normal Map.jpg
- reflectivity: BODY = Template1 Dual Lobe Specular Weight.jpg, MAJORA = Template1 Bump Strength.jpg, MINORA = Template1 Specular Lobe 2 Roughness.jpg
Make sure you resize each of the maps to 2048x2048 as they may come in varying sizes between 1024 and 4096
For MAJORA and MINORA, you also have "Template1 Cutout Opacity.jpg" maps. These you need to use as masks for each of the layers. This ensures that the texture of the pussy blends seamlessly with the surrounding body. Open them with Photoshop as well. In total, you should have 14 layers in Photoshop: 4 (diffise, translucency, normals, reflectivity) for Body, 4 for Majora, 4 for Minora + opacity for majora + opacity for minora.
Now you need to merge them accordingly, also while accounting for opacity.
Here is a good video on working with layer masks in Photoshop:
To apply opacity with layer masks, first select the cutout opacity layer, Ctrl+A, Ctrl+C, then select the layer (e.g. majora's diffusion), click the "rectange with a circle in it" button, then Alt+click the newly appeared white square on the right of the layer's icon to start editing the layer mask, Ctrl+V. Do this for diffuse, translucency, normals and reflectivity layers of both majora and minora.
You might want to adjust colors/saturation etc of the diffuse and translucency layers, especially those of majora. Because these textures were intended for Iray shader in Daz while the body uses PBRSkin shader, and now you are merging all of them for PBRSkin.
Make only diffuse layers visible (majora and minora ones should have layer masks applied), export for Web, save as JPEG. Do this for diffuse, translucency, normals, and reflectivity.
Now you should have 4 new textures - these are merges of the character's body with GP's majora and minora geoshell textures, all properly remapped into your new UV coords specifically for the GP mesh

6. Now you need to apply the 4 new textures in Daz studio to the GP node's surfaces. Though first open the GP's controls and copy the materials from the character's body to GP (step 3 of its standard setup flow). This will put back the PBRSkin shader on GP surfaces. Then select the GP node, open Surfaces tab, select all 6 surfaces of it, in the surface properties find the UV, in the dropdown instead of the "Default UV" select "GP_ForUnity" UV map. Then go thru all the maps these surfaces use and replace G9Female01_D_1002.jpg and similar with the textures you've just created in Photoshop. While there are many params here, the G9 figures have a few maps, and different params just re-use these maps. "D" = diffusion, "SSS" = translucency, "NM" = normals", "R" = reflectivity/specularity/bump. There is also the Ambient occlusion map - this is not used by the shader at all and won't be exported to Unity

7. delete the GP majora and GP minora geoshells in Daz studio. These should make no difference now that GP node has pussy textures of its own

8. (optional) Before exporting to Unity, you can go thru the surfaces in the G9 character's main node and, for the "normal map" parameter, select the NM maps. G9 characters use those maps for "normal detail map" parameter, but it doesn't get carried over by the Daz-to-Unity bridge, so normal maps would just get lost unless you manually link them for "normal maps" params in addition to "normal detail map". You only really need this if you want to have the extra tiny bumps on skin, they only really become visible when the camera is very close to the skin. If you have e.g. ultra close-ups of pussy licking, you might need this

9. Select the G9 node, click Daz-to-Unity bridge. Here, when exporting and if you want the GP morphs to get passed to the Unity prefab, make sure you select the G9 character base node and NOT the GP node when picking the morphs. GP is a geograft, and the bridge can't export morphs from a geograft. In this video the guy explains how to copy morphs of a geograft to the figure: . It's a tedious, error-prone manual process, so you will probably only want to do this for the morphs that you absolutely need. The morphs will then end up as blend shapes on the Body shape in Unity that you can animate
 
Last edited:

wittyminx

New Member
Aug 7, 2024
7
2
Did the same with Dicktator now. It's the same steps, and there are also 2 geoshells, for the dick itself and for the foreskin. Differences:

Step 4.2 where you transfer maps from the foreskin: since only the Shaft 2 surface has material applied to it (the rest of the surfaces are just empty materials with opacity 0), you need to only select Shaft 2 surface for map transfer.

Not sure why but linking the NM map to both the "normal" and "normal details" creates a metallic glossy effect on the glans.

Just like with any G9 characters export to Unity, the glossiness may get overblown after the bridge transfer. You may need to manually reduce Dual Lobe Specular Weight slider from 1 to something like 0.25 on the materials.

Overall, you'll have to repeat the steps of UV remapping and texture merging for every character body * pussy/dick material. Only steps 1 and 2 have to be performed once. Once you have the OBJ file with the UV maps stored, you remap to the same UVs all the bodies, and the geoshell materials.
 
Last edited: