Unity Daz Geoshells turn into unskinned meshes in Unity

wittyminx

New Member
Aug 7, 2024
8
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
8
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". Note: you will have to do this every time you re-start Daz studio or import a different model

3. (optional) If you want characters to have normal maps on the skin and the genitals, you need to manually set up normal maps in Daz first. By default, when you import a G9 figure in Daz, it comes with a normal detail map (which is the same for all G9 characters), yet the normal map is not set. I can't say if it's a bug in Daz or was done so intentionally - anyways, the missing normal maps have nice details like areola of the breasts/chest and navel. The normal maps are located in \Runtime\Textures\DAZ\Characters\Genesis9\Base\ subfolder inside where you've set up Daz Studio to keep installed content. There are separate NM maps for arms, head, body, fingernals, and toenails

4. in GP controls, make sure the materials are copied from the character's body to GP (step 3 of GP 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

5. 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)
5.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.
5.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

6. 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 roughness 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 (D): BODY = Template1 Diffuse Color.jpg, MAJORA = Template1 Diffuse Color.jpg, MINORA = Template1 Diffuse Color.jpg
- translucency (SSS): BODY = Template1 Translucency Color.jpg, MAJORA = Template1 Translucency Color.jpg, MINORA = Template1 Diffuse Overlay Color.jpg
- normals (NM): BODY = Template1 Normal Map.jpg (if you performed step 3, otherwise you will only have "detail normal map"), MAJORA = Template1 Normal Map.jpg, MINORA = Template1 Normal Map.jpg
- reflectivity roughness (R): BODY = Template1 Specular Lobe 1 Roughness.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, and detail normal map is even 8192
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 roughness) 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

7. 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" = roughness/bump. There is also the Ambient occlusion map - this is not used by the shader at all and won't be exported to Unity

8. 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

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
8
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.
  • The assignment of textures in the Dick geoshell is a bit messy by default. Translucency map is the same as the diffusion map, and for specular roughness the shell uses an "SSS" map (there is no "R" map). These all change (also differently across surfaces) when you play with selection of materials in Dicktator material settings. I ended up making 3 setups by assigning maps manually, for a "light", "medium", and "dark" templates of the dick. And when merging them in Photoshop with the body textures, I still had to play a lot with opacity of layers, curves, vibrance, and color balance to make sure that the dick looks like its part of the character's body, to match the rest of the body texture. So, here expect a lot of manual editing and trial-and-error. You only really see how the dick looks like once it's on your character in the game. Just from the maps, it's hard to tell

Just like with any G9 characters export to Unity, the glossiness will 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 step 1 (creation of UV map in Hexagon) has 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:

wittyminx

New Member
Aug 7, 2024
8
2
Update: I'm almost done putting dicks and pussies into all the Feminine/Masculine body textures, and also on 1 custom character (Kin). Turned out, one has to do some editing on the textures that come from Daz. Here is what I had to do:

  1. on Feminine02 body texture, there is a drawn pussy + pretty long stretch of pubic hair. These one can remove with Photoshop's stamp tool by copying the surrounding skin. Make sure to also edit the normal map, since it has that pubic hair patch as well
  2. on Feminine04 there is a whole cameltoe pussy drawn in the texture - which you have to remove. Because it won't merge well with GP's texture, and also because the drawn one is positioned higher than where GP (or even the Daz's own Anatomical Elements) place the pussy!
  3. Masculine01 and Masculine04 have minor lines on the pubis - if you're making masculine characters with pussies, these will become visible because the GP pussy is lower that those lines. So, remove those in Photoshop
  4. Masculine02 has empty areas around the pubis in the NM map - you can fill them with stamp tool in Photoshop
  5. expect to edit the dick textures a lot. Also by selecting regions (with lasso tool) in your UV-remapped texture maps and selectively playing with vibrance, color balance etc. It may be personal preference, but at least to me the default dick textures felt pretty off-putting, especially on the white-skinned character. You likely need to dial down saturation of the foreskin - by default it's way too red
I didn't like that the GP's pussy is positioned too low on the body, and the clit is barely visible when you look at the girl from the front. IRL that actually differs from woman to woman - I checked some porn to confirm :) For a porn game, I guess it would make sense to have somewhat more pronounced genitals... Unfortunately, GP doesn't let you edit the vulva's length or the position of the clit with morphs. You can try editing the graft's geometry but I guess this will break most of GP's morphs.
 
Last edited: