The inevitable- G8-8.1 to G9 character/morph transfer script!

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

  • PaintboxPaintbox Posts: 1,633

    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.

  • LeanaLeana Posts: 10,933

    Mesh is different between each generation of base figures though.

  • Paintbox said:

    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.

    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 the paste_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.

  • mehdi.biz96 said:

    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 the paste_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.

  • cridgitcridgit Posts: 1,757

    What is happening in the world?

  • skyeshotsskyeshots Posts: 148

    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.

Sign In or Register to comment.