Morphs from G3 to G8

1353638404171

Comments

  • If you need someone to test UX for that UI for you, I'm very happy to, and will still purchase the final product. <3

  • scorpioscorpio Posts: 8,309
    I think the specific term is DzWidget. It's a method (object) in DazScript. It's what defines a script User Interface, if a script has one. I'm not sure how far I want to push that, as the important thing is a script that does the thing, rather than one that looks pretty, but the sheer scope of what's now possible is going to require some kind of UI, and I've tended to avoid that bit.


    Because, to repeat myself, I see the background bit as most important. Still, having the most informative possible UI is probably a good thing.

    And just to explain what I mean by "sheer scope." This thing I found isn't going to be a just a more slick or more effective method of making transfers. Rather, it is going promote this script to a real replacement for GenX2. Unless I fail. And even then, the method is certain to work for all current Genesis figures.

    This is very good news, as is your script is so important to moving on to G8 but to have the ability that Genx gave would be excellent.

  • scorpio said:

    This is very good news, as is your script is so important to moving on to G8 but to have the ability that Genx gave would be excellent.

    As a final product it would probably end up like GenX with core features and addon packages, owing to the fact that I don't actually have all of the Gen3/4 figures (though I did in the deep past, except for freak.) and providing individual figure support is going to be a job of work and a half. But I will proof of concept with what I do have, to make sure the script has that functionality. 
     

    Hanabi said:

    If you need someone to test UX for that UI for you, I'm very happy to, and will still purchase the final product. <3

    I will and I'll keep you in mind 

    Look forward to it then when it is ready.

    Me too. Not looking forward to the bit where I make it ready, tho. Why can't I just wave my hand and all be done?

  • RCDescheneRCDeschene Posts: 2,799
    edited January 2018

    Okay, here's what I have for you, assuming I'm even doing this right...

    The product here is just an example of what every other morph I've tried that isn't GenX-natured.
     

    Executing Script...Owner: FBM-FWAran02E:/COMPUTER/DAZ 3D/CONTENT/DAZ 3DE:/COMPUTER/DAZ 3D/CONTENT/GENXE:/COMPUTER/DAZ 3D/CONTENT/RCDESCHENE/My DAZ 3D LibraryE:/COMPUTER/DAZ 3D/CONTENT/RCDESCHENE/My 3rd Party LibraryE:/COMPUTER/DAZ 3D/CONTENT/DAZ 3DIn null: Processed 0 files.Result: Script executed in 0 secs 753 msecs.


    http://docs.daz3d.com/doku.php/public/read_me/index/36871/start

    Untitled1.png
    1600 x 900 - 440K
    Untitled2.png
    1600 x 900 - 243K
    Post edited by RCDeschene on
  • Okay, here's what I have for you, assuming I'm even doing this right...

    The product here is just an example of what every other morph I've tried that isn't GenX-natured.
     

    Executing Script...Owner: FBM-FWAran02E:/COMPUTER/DAZ 3D/CONTENT/DAZ 3DE:/COMPUTER/DAZ 3D/CONTENT/GENXE:/COMPUTER/DAZ 3D/CONTENT/RCDESCHENE/My DAZ 3D LibraryE:/COMPUTER/DAZ 3D/CONTENT/RCDESCHENE/My 3rd Party LibraryE:/COMPUTER/DAZ 3D/CONTENT/DAZ 3DIn null: Processed 0 files.Result: Script executed in 0 secs 753 msecs.


    http://docs.daz3d.com/doku.php/public/read_me/index/36871/start

    I do not have this product (Sorry) but this may be pointing to an error in way I wrote the male script handling.

    Being able to see your log would help, but the most immediate troubleshooting step you can take (which is based completely off of the first thing that popped into my head, and thus not best practice troubleshooting) is to go to facorites in the parameters tab and make sure nothing at all is favorited. Then switch to all and search for FBM-FWAran01. This should return 1 morph. Favorite that. Run the script.

    While this is not best practice troubleshooting, it does differentiate between two classes of errors which should each cover about half of the possible errors, so It's not bad troubleshooting. It eliminates half of what could be wrong. The possibilities being A) the script is dropping because the morph you select is returning null. That happens sometimes with controls that are not morphs themselves. The script is supposed to correctly handle that exception but it may be borked. 
    B) There is library error. Either the file is not in the libraries listed, or the script is collecting the list of libraries but not looking in all of them.

    If the script is able to transfer using FBM-FWAran01, then problem is related to A. If not, it is B.

  • HavosHavos Posts: 5,300

    Okay, here's what I have for you, assuming I'm even doing this right...

    The product here is just an example of what every other morph I've tried that isn't GenX-natured.
     

    Executing Script...Owner: FBM-FWAran02E:/COMPUTER/DAZ 3D/CONTENT/DAZ 3DE:/COMPUTER/DAZ 3D/CONTENT/GENXE:/COMPUTER/DAZ 3D/CONTENT/RCDESCHENE/My DAZ 3D LibraryE:/COMPUTER/DAZ 3D/CONTENT/RCDESCHENE/My 3rd Party LibraryE:/COMPUTER/DAZ 3D/CONTENT/DAZ 3DIn null: Processed 0 files.Result: Script executed in 0 secs 753 msecs.


    http://docs.daz3d.com/doku.php/public/read_me/index/36871/start

    I noticed that the morph you added as the favourite was a HD morph. Do you get the same error with a non-HD morph?

  • Havos said:

    Okay, here's what I have for you, assuming I'm even doing this right...

    The product here is just an example of what every other morph I've tried that isn't GenX-natured.
     

    Executing Script...Owner: FBM-FWAran02E:/COMPUTER/DAZ 3D/CONTENT/DAZ 3DE:/COMPUTER/DAZ 3D/CONTENT/GENXE:/COMPUTER/DAZ 3D/CONTENT/RCDESCHENE/My DAZ 3D LibraryE:/COMPUTER/DAZ 3D/CONTENT/RCDESCHENE/My 3rd Party LibraryE:/COMPUTER/DAZ 3D/CONTENT/DAZ 3DIn null: Processed 0 files.Result: Script executed in 0 secs 753 msecs.


    http://docs.daz3d.com/doku.php/public/read_me/index/36871/start

    I noticed that the morph you added as the favourite was a HD morph. Do you get the same error with a non-HD morph?

    This shouldn't make a differece, as the key factor is just finding a DSF file. HD or noD, it's DSFs all the way down.

    HD morphs use a second DHDM file or the HD bits, but can contain regular morphs as well. Even if they don't, they'll still end up being treated as any other DSF.

    No, this is different.

    And I can see the morph selected was not the one I thought, so the actual question is where is this file stored. As in, where, exactly, on the hard drive, starting with drive letter all the way through to .dsf is this file?

  • Singular BluesSingular Blues Posts: 737
    edited January 2018

    Okay, I think I got it.

    What's happening might be connect related. The most recent version of the script hard coded the primary search path. It uses the App Manager to get the library path, but the path to Genesis 3 Morphs is spelled out. That path won't work for Connect. So that would likely be the cuase of a null result. This is a Connect product, no?

    If so, I'm not going to fix it.

    Given what I have on my plate now, it doesn't make sense to make changes I can't really test. I have an idea of how to deal with it, but it makes more sense to put it into the new script.

    Because the new method will require a beta test, first beta release will be feature limited and free. It will correct this issue.

    Post edited by Singular Blues on
  • First update. The most annoying thing about keeping one's self alive is it eats into time that could be used to do interesting stuff.

    In this case, it's taken a week to do about half a day's work. (Probably a full day, but half of that was figuring out a mistake).

    Between the old script and the work done this week, all of the core script functions have been proved but one. That one's gonna be tricky, but I think I know how to it. And if I don't, I have a second idea. I'm honestly not sure which is the easier way to go.

    As of now, however, of the ToDo on this project, I have now proved the concept of copying necessary files between figures, locating the correct data and employing a "no touch" mecahnism for morph tranfer between figures, found a glaring error in the orginal script which suggest it's been doing expressions wrong the whole time (sorry). The proof of concept still unproven is figuring out a way to load properties on an already loaded figure. Failing that, my fallback position is to have the script load the target figure, but this is a case I wanna avoid because it limits the ultmate utility of the script.

    I expect the G8/G3 ready version of the script prototype to release for testing within 2 weeks. At a certain point, later, there will be a G2 and Genesis ready version, as well. But those will be limited release for feedback testing, only. I gotta save something for potential sales.

    Generation 4 support will likely not be part of the initial offering. Largely because it's pretty easy to take the stuff from Generation 4 forward, but not at all obvious how to go the other way. (I think it can be done, but working out how seems like a whole other product.)

  • mats76mats76 Posts: 289

    Now that is what I would call a massive update, amazing progress and looking forward to it.

    Best of luck to you.

  • RedzRedz Posts: 1,459

    First update. The most annoying thing about keeping one's self alive is it eats into time that could be used to do interesting stuff.

    In this case, it's taken a week to do about half a day's work. (Probably a full day, but half of that was figuring out a mistake).

    Between the old script and the work done this week, all of the core script functions have been proved but one. That one's gonna be tricky, but I think I know how to it. And if I don't, I have a second idea. I'm honestly not sure which is the easier way to go.

    As of now, however, of the ToDo on this project, I have now proved the concept of copying necessary files between figures, locating the correct data and employing a "no touch" mecahnism for morph tranfer between figures, found a glaring error in the orginal script which suggest it's been doing expressions wrong the whole time (sorry). The proof of concept still unproven is figuring out a way to load properties on an already loaded figure. Failing that, my fallback position is to have the script load the target figure, but this is a case I wanna avoid because it limits the ultmate utility of the script.

    I expect the G8/G3 ready version of the script prototype to release for testing within 2 weeks. At a certain point, later, there will be a G2 and Genesis ready version, as well. But those will be limited release for feedback testing, only. I gotta save something for potential sales.

    Generation 4 support will likely not be part of the initial offering. Largely because it's pretty easy to take the stuff from Generation 4 forward, but not at all obvious how to go the other way. (I think it can be done, but working out how seems like a whole other product.)

    This looks very exciting. So glad to hear you’re making progress. I’m happy to help testing if you should need volunteers and will gladly buy the final product too. :)

  • nonesuch00nonesuch00 Posts: 17,922

    Same here, just PM to ask me to test. My entire DAZ content library hasn't ran any of your prior scripts yet and it's decent number of products to test with although far from comprehensive.

  • I'd be happy to help when testing is needed also.

  • mats76mats76 Posts: 289

    Let me know if you need help with testing.

  • The G3/G8 side is going to be open beta to be clear. Largely because that stuff doesn't really do anything the the current script can't, in principle (though some stuff, if you made it do the the thing, it would only do so-so with). The fundamental capacity, for example, to convert from G8 to G3 is in the data. It might tedious to reverse engineer, but it is there.

    So, the thing the new version will have, in principle, is pretty high fidelity transfers both ways without a need to reverse engieer, but like all of the first betas it won't have a UI (I'm designing the UI in parallel). This is one thing I'm iffy on. I'm doing the open beta mostly to catch bugs, but also as a thanks for your support. That said, I haven't decided whether I should make G8 to G3 an option or reserve that for sales. On the one had, as I've said in the past, being able to go one way implies the ability to go the other. That said, having the ability is not trivialBasically, the closed betas will add G2 support, then Genesis support, and finally, a version with UI

    So, techically, it's several alphas and one beta.

  • Question, and I don’t know if this has been asked already, but do you think that your script will be able to transfer morphs added to Genesis 3 by GenX? I’ve been looking at G8 as a new starting point for character creation since GenX sadly went away but if your product is able to transfer G3 morphs to G8 seemlessly then maybe that could bridge the gap. With G8, I appreciate the flexibility of the model for anime products like Sakura as well as allowing for more realistic details and advanced texturing but I would miss all the creatures and other fantasy morphs in particular for Gen1-3 collected over the years. As it is, I try to keep all of my morphs on each generation with GenX depending on what I’m doing and I still buy morphs for M4 and Gen1 during sales so I’m keeping my fingers crossed that this could work.

  • Looks like intresting things have been developing in this thread. I'm going to have some reading to do to catch up. I'd love to see a path to bring morphs all the way from V4/M4 up to G8/M8. 

    The barrier for me really is all the other things necessary - pose converters, skin map UVs... 

    I have a handful of G8/M8 content at this point - but I'm having a terrible time getting enthused about it as a new character platform. 

  • Question, and I don’t know if this has been asked already, but do you think that your script will be able to transfer morphs added to Genesis 3 by GenX? I’ve been looking at G8 as a new starting point for character creation since GenX sadly went away but if your product is able to transfer G3 morphs to G8 seemlessly then maybe that could bridge the gap. With G8, I appreciate the flexibility of the model for anime products like Sakura as well as allowing for more realistic details and advanced texturing but I would miss all the creatures and other fantasy morphs in particular for Gen1-3 collected over the years. As it is, I try to keep all of my morphs on each generation with GenX depending on what I’m doing and I still buy morphs for M4 and Gen1 during sales so I’m keeping my fingers crossed that this could work.

    The existing script can do that, but it has some limitations as to how it does it.

    Trying to keep this short, because I do go on. The things you think of as morphs exist in the Daz framework as properties which are attached to modifiers which are morphs, the script has to hack around to find all the related morphs. (A property is not a morph, and neither is a morph a property. The scripting method "DzMorph" which deals with morphs is not documented. To find morphs with a script you tend to have start by finding the properties they are associated with. This makes the scripting ... interesting because the commands for dealing with properties don't reall work on morps. Again, a property is not a morph, and neither is a morph a property. Morphs are elements, and the method DzElement works on them, but it's trick to use the property to find the right element. Do it wrong, and you can end up with the figure itself, and bad bad things can happen from there with script trying to litteral conver the figure Genesis 3 into Genesis 8.) So, parenthic included, it's really importnat to make sure the script only deals with the morph properties. How it does this is by figuring out where the files for these properties are saved, under the assumption that they are saved as Daz would want them to be.

    GenX does this, it seems, a bit differently. By inspecting the web of connections between modifiers, and then giving you the option to transfer everything connected to the morphs or just the morphs selected. (The next script probably won't do that. For philosopical reasons. There's a risk of overwrites inherent in either method, but the GenX method isn't my style). Anyway, for morphs already transfered by GenX to genesis 3, the script doesn't care that they were moved in that way. All it needs to know is where the file is saved.

    The issue that then crops is that there are two ways to save GenX'd morphs. Either save them with the default path, which means all of your GenX'd material will be in the same folder, or to customize the path at save time. One assumes most people use option one, and with that assumption, running my script to transfer any one morph previously transfered by GenX will tend to transfer all of them at the same time.

    I've been cagey about not quite recommending this. Largely because it can take a long time, and it's pretty have a load on the script engine. But it does work. There's just always a crash risk when you overload something, and by long time, I mean hours, potentially.

    On the flipside of this, the prototype script I'm working should do it in minutes. To give a sense of what I mean, transfer of 20-ish medium sized morphs tended to take 2 to 8 minutes (depends on the data complexity of the files). Now, I've yet to test a full transfer using the new method, but time for file adjustment using htis method is running around .6 seconds, and the actual transfer of 20-ish morphs happend so fast, I wasn't sure the script had run, the first time I got it to work.

    So, at worst, one would expect it could handle several humdred medium and large morphs in less than 10 minutes, which is 33% faster than I've seen the old script go. I rather expect it's actually faster than that.

    Looks like intresting things have been developing in this thread. I'm going to have some reading to do to catch up. I'd love to see a path to bring morphs all the way from V4/M4 up to G8/M8. 

    The barrier for me really is all the other things necessary - pose converters, skin map UVs... 

    I have a handful of G8/M8 content at this point - but I'm having a terrible time getting enthused about it as a new character platform. 

    As far as the difference between new and old,  the new script will be far mor capable. That said, Generation 4 is not on my list right now because the most straightforward way I can think of do it involves my learning more about poser formats that I do at the moment. If I can invent a way to work around that, I will. However, it's important to not that each figure, excepting G3 and G8 is going to need special code because of the differences in their skeletons. This is true of Gen4 as well, with added complexity of being a different file format entirely.

    Agent Unawares has what is probably the best pose converting option there is going. There's a second that is useful when a pose has saved pose controls, but this is uncommon. You can find the pose converter by following the link in their signature. They commend just a few posts up.

    G8's UVs are, largely G3, so if you can get a map into that format, you can apply it to G8. For this, you should study the Map Transfer Utility. Unfortunately, there's no built in way to convert maps from older figures, as the material zones of G3 and G8 are incopatible with the old map layouts. I think there are geo graft products to solve that, and there is a manual method, but it requires Blender.

  • dracorndracorn Posts: 2,333
    edited January 2018

    [EDIT: Original was sent from my phone - I reformatted it to be more readable here].

    Hey, SingularBlues, I'll definately be a customer. I have a couple of questions.

    1. Will the new script be able to transfer fingernail morphs?

    2. Will it have some sort of morph maintenance, such as being able to deactivate/remove unwanted morphs?

    3. I have Gen-X morphs in the default folder that I had converted with your free script, all at once. I have a fast PC and it did it in under 10 minutes. I have new morphs I want to add, so I assume that it will convert them all over again and overwrite the existing morphs, correct?

    4. I have searched high and low, but I can't find where your script put my Gen-X morphs - I wanted to remove a couple (the fingernail morphs that didn't work).

    Thanks!

    Post edited by dracorn on
  • Singular BluesSingular Blues Posts: 737
    edited January 2018
    1. Yes (Edit: the male version of the script already has this, but new sript will be A) gender nuetral and B) give better results at the nails.
    2. No, but there will be a separate script for this purpose.
    3. Correct. The product version will have the ability to specify individual morphs for transfer, but the debug version will follow the same logic as the old script
    4. Open GenX. At the bottom of the GenX window there is space for entering a file path. The path there is last one your transfered to. Best I can do. In order to avoid system conflict risk, the script attempts to recreate the exact path the source files came from. Because of that, I can't provide more than a general prediction. Wherever your GenX files live in the Genesis 3 folder, you will find the result file in the same place in the Genesis 8 folder. Note, this is utterly agnostic to your personal choice of library management. The script always writes to the default library. More than likely, the new sript will provide an option, but again this won't be in the alpha releases. You can attempt to manually locate the file by copying the name  (not label, the name) of a file you know to be in the folder you see, then using your OS search function to searc the Morph folder for that name. This may not work but it is another option.
    Post edited by Singular Blues on
  • dracorndracorn Posts: 2,333

    Thanks for your answers - I'm pretty happy with them and am looking forward to your product.

  • nonesuch00nonesuch00 Posts: 17,922

    #3 is what I want so maybe I will wait for the purchasable product instead of testing that would clutter my G8 runtime areas.

  • dracorndracorn Posts: 2,333

    One more question:

    Will the script convert morphs between G8F and G8M?

  • dracorn said:

    One more question:

    Will the script convert morphs between G8F and G8M?

    Yes.

    The first debug release may not, but the public beta will eventually be able to transfer between any combination of G3 and G8. The closed beta will eventually support any transfer between Genesis figures. All of this I'm sure I can do. Whether cross gender capacity will be built into the first alpha depends on how generic I can make the base script. As it is, it's quite generic now, relying on the figure selection to get data that was previously hard coded, thus requiring separate scripts. At maximum "generic-ness" the only transfer specific issue is building the required mesh data to enable high fidelity transfers.

    Legacy/Poser support will, one hopes, provide bidriectional transfer from Generation 4/3 to Genesis(n) but I still don't know if that's possible (and I'd have to be successful enough with the base product to reasonably invest in Gen3 figures). Potentially, that expansion will enable the addition of non-Daz figures to the bag of tricks, but I make no promises about that. I do know that unidirectional transfer from Generation 4 formats to Genesis works, but until I have a plan for going both ways, I'm not commiting to that.

  • dracorndracorn Posts: 2,333

    Whoo hoo!

  • IllidanstormIllidanstorm Posts: 655
    edited January 2018

    This is a promising script and I used it right away!

    I'm just wondering is it supposed to scan for +2 hours or am I doing it wrong? 

    I marked the morph as a favourite on normal G3F and it scanned all my morphs that I have. 

     

    Edit: Ok fixed it. Apparently I had a copy of my morphs that it scanned. Now it works

    Post edited by Illidanstorm on
  • This is a promising script and I used it right away!

    I'm just wondering is it supposed to scan for +2 hours or am I doing it wrong? 

    I marked the morph as a favourite on normal G3F and it scanned all my morphs that I have. 

     

    Edit: Ok fixed it. Apparently I had a copy of my morphs that it scanned. Now it works

    Yes, in fact it is supposed to do that. The issue being related to not being able to get the data it needs directly from the API, the script brute forces the answer by scaniing you libraries until it finds what it needs. This is one of the many flaws that made me resist promoting it as a product for sale.

    This limitation is mine, not the API's. So the next version of the script will not do that. It still brute forces to find files, but this is limited to a single product folder instead of every morphs folder for every library studio is aware of. Because it now gets the location directly from Studio, even duplicate data should not cause issues, because Studio will only load one of any dupes it encounters. 

    Of course, having dupes is bad, but this probably won't impact the script in the future.

  • BabsDoProdBabsDoProd Posts: 45
    edited January 2018

    Thanks for answering my questions! Yeah, I don’t mess with anything regarding file locations and folders, I stick to the defaults because there’s just so much lol! I do know that GenX saved all the morphs to one default folder and I back that folder up on a regular basis and placing a backup copy into its default directory worked like a charm when I set up a new DAZ machine for my brother. It sounds like this is just the product I need to make the leap to G8 and stay on the cutting edge. Looking forward to the finished product!

    Post edited by BabsDoProd on
  • Whelp, everthing's totally gone to crap. Not sure if it's kosher to link a gofundme, but I have one. Badly in need of help Really hate admitting that, but I'm at the end of my ability.

  • firewardenfirewarden Posts: 1,454

    Are you going to sell this script or something similar in the DAZ store? And pardon if you've gotten something in the store already and I've missed it.

Sign In or Register to comment.