Remove unused morphs from Genesis figures with Python
Hope this isn't considered spam (as I posted this elsewhere before) but I found a way to get rid of unused morphs from Genesis figures with a Python script in a rather simple way.
You just need the Python script 'RemoveMorphs' by SVDL - it's from 2006. Yes, 2006!
1. If you have that script go to the 'svdl' folder in 'poserScripts'. There you'll find some files that have the ending *.exc .
2. Just copy one of them. I used the 'blMilMan_m4b.exc' file (no changes inside that needed) and renamed it 'Genesis2Male{3f4c7dca-28ea-0ecef925e 155625984f8}.exc' for Genesis 2 Male figures.I did another copy of a *.exc file that I renamed 'geometry{08648f34-56a4-0eb2-4d5b-849b06ee0130}.exc'
for Genesis 1 figures.
I don't have Genesis 2 Female or the Genesis 3 characters to test it but I assume the workaround is the same.
Everything that is within the {however this is called} you'll find inside your DSON folders. The numbers and letters may be different in your folders and you have to name the *.exc files after YOUR *.obj names. But the path where you find that should be
auto_adapted->data->DAZ 3D->Genesis->Base->Genesis->geometry{08648f34-56a4-0eb2-4d5b-849b06ee0130}.obj
or:
auto_adapted->data->DAZ 3D->Genesis 2->Male->Genesis2Male->Genesis2Male{3f4c7dca-28ea-0ece-f925-e155625984f8}.obj
3.a) Now create a Genesis 2 figure. As you know it loads with lots of morphs you will not use. For example you don't need aging morphs for teens and no female breasts for men except you're creating a transsexual teen who rapidly ages.
My example is a Genesis 2 Male character that is saved as a Poser scene file (*.pz3) with 440 MB (including hair). Look at the head parameters.
3.b) Use the 'RemoveMorphs' Python script.
4. It's possible that the Genesis figure will switch from Subdivision 1 to OFF. Just move the camera a bit and it will be back in shape.
It's also possible that you'll see nothing in the Parameters tab, no morphs. Just save it as a scene file and reopen it. Then the parameters will show.
5. Now you see that the unused morphs vanished in the head parameters and if you save it as a scene file (*.pz3) it is a reduced size. In my example from 440 MB to 121 MB! It's important that you have saved it first as a Poser scene file and not a character file in your Poser runtime library because it could be that it tries to create an *.obj file into Libraries->Character that is different to the one that relates to the DSON information.
6. Use 'Poser File Editor' or something else to turn the scene file (*.pz3) into a character file (*.cr2). You now delete the information a character file does not need as 'movieInfo', 'prop GROUND', 'actor UNIVERSE', 'controlProp FocusDistanceControl', cameras and lights, 'doc', 'illustrationParms', 'renderDefaults' and 'faceRoom', save it and then change the ending of the file from *.pz3 to *.cr2 and move it to the Character folder in the Runtime.
Comments
always unused morphs thanks for the tip
Here's a link to download the script...
https://www.renderosity.com/mod/freestuff/?item_id=34576
I've never tried it (on anything!) because I wasn't certain if it might remove JCMs; how does the figure bend afterwards?
So far no issues with bending. But of course you should always keep a copy of the fully morphed character that you created. I use the characters with removed morphs only for renders. This way I can use a group of Genesis figures with my rather simple 8 GB RAM.
At least with G2F, a LOT of pointless morphs get added - for example, merely create a G2F stock figure, and you'll find up to 1/4 MB of morphs each for Girl6, Teen Josie 6, Aiko 6 (etc) in your PZ3 (anything you have your your 'data' directory). You'll even find things like "TJ6 face morphs" in your stock G2F or Aiko6. I'd think one would NOT get this morphs unless one created a TJ6, or applied a TJ6 'pose'/'morph' to the G2F. Instead, because the TJ6 face morph kit is in the 'data' directory, it gets added to every PZ3 you create.