The inevitable- G8-8.1 to G9 character/morph transfer script!
Eboshijaana
Posts: 504
Yeah, this is the first thing that came to my mind when I saw the stream; I have to transfer ALL the morphs of my characters all over again. And while we DO have great programs such as shape rigger plus, doing quality transfers like Rivesoft's products do from scratch will not be easy.
So, please, a transfer tool?
Comments
I wonder if morphs can be transferred, since the meshes are very different. Morphs rely on the vertex order / count being the exact same, and it probably changed. Jay Versluis did mention you can unwrap your morph in some way and there is a course by him that explains the process. Just something I remember from the unveiling on YT.
Mesh is different between each generation of base figures though.
For one, making very recent products obsolete would be a dumb choice. Second, we know the autofit works fine and autofit requires clones.
Third, as stated above, each generation gets more complex. We have g2 to g8 character converters in the store, so morph transfers are very possible.
hi everyone im actually fairly new to daz studio and i wanted to transfer a morph from a g8f figure to a g9f since i didnt find any script or plugin that automates this process i tried asking chatGPT since it can write code however i have no experience with daz scripts ( or python in general ) so im gonna share what i got from chatGPT if someone can tell if its usable or can be modified to work well
import os
import sys
import dson.dzdsonimporter as dzimp
import dson.dzdsonexporter as dzexp
import dson.dzdsonio as dzio
import dson.dzdsoncommon as dzcom
import dson.dzdsonutils as dzut
import dson.dzdsondata as dzdata
import dson.dzdsonconstants as dzconst
import dson.dzdsonmaterial as dzmat
# Get references to the selected Genesis 8 and Genesis 9 figures
g8 = None
g9 = None
selection = dzcom.get_selection()
for node in selection:
if node.is_figure() and node.label() == "Genesis 8 Female":
g8 = node
elif node.is_figure() and node.label() == "Genesis 9 Female":
g9 = node
# Check if both figures were selected
if g8 is None or g9 is None:
print("Please select both a Genesis 8 Female and a Genesis 9 Female figure before running the script.")
else:
# Get the file path for the morph to load
morph_path = dzio.get_file("Please select a morph to load onto " + g8.label() + ".", dzio.FileType.DSON, dzio.FileLoadType.OPEN)
# Load the morph onto the Genesis 8 figure
if morph_path is not None:
g8.load_morph(morph_path)
# Get the name of the loaded morph
morph_name = os.path.splitext(os.path.basename(morph_path))[0]
# Transfer the morph to the Genesis 9 figure
g9.paste_morph(g8.morphs[morph_name], morph_name)
print("Morph " + morph_name + " transferred from " + g8.label() + " to " + g9.label() + " successfully.")
else:
print("No morph selected. Script aborted.")
This version of the script uses the
get_file()
method to prompt the user to select a morph file to load onto the Genesis 8 figure. It then loads the selected morph onto the figure, gets the name of the loaded morph, and transfers it to the selected Genesis 9 figure using thepaste_morph()
method.Again, please note that this is just an example script, and it may need to be modified or customized to work properly with your specific Daz Studio setup and workflow. Additionally, as with any script or plugin, it's always a good idea to test it on a backup copy of your scene data first.
ChatGPT continues to show the worth of AI - it's given you a Python script, apparently wildly guessing at function availability, but Daz Studio doesn't use Python.
What is happening in the world?
I think it would be good to have a Genesis 3, 8 & 8.1 to 9 tool.
Yes, would pay money if it was in the store.