Morphs from G3 to G8

1262729313271

Comments

  • RKane_1RKane_1 Posts: 3,037

    Jackfoster

    I'm glad that the finger issue is workable, but I'm running into another one that's got me stumped. No matter which method I use, even going so far as to use a smoothing modifier with collision on my clone so that it matches G3M as closely as possible, the shoulders always seem significantly smaller on Genesis 8, especially on more muscular figures. And I mean the actual shoulders--the deltoids, not the upper arms, which are labelled shoulders.

    Can you post some pics of some of the issues you are running into?

  • I'm glad that the finger issue is workable, but I'm running into another one that's got me stumped. No matter which method I use, even going so far as to use a smoothing modifier with collision on my clone so that it matches G3M as closely as possible, the shoulders always seem significantly smaller on Genesis 8, especially on more muscular figures. And I mean the actual shoulders--the deltoids, not the upper arms, which are labelled shoulders.

     Again, this is a well known issue, and collision can't fix it because it is, well collision based.

    You might try fiddling with scale to cause a collision, but I'd not recommend it.

    The long and short is, if A is set to collide with B the parts of A that do not trouch B will be largely unchanged. Because there is no collision.

    Smoothing is not a good solution for figures, because it smooth things, meaning all the verts shift, and detail is lost (admittedly, Genesis is fair low in detail to start, but you are taking a low detail shape and removing detail by applying smoothing). Smoothing is not the same as projection or shrink wrap wich sill move parts of A into contact with B if they are not already in contact.

    G3's shoulder reqire basically a different kind of bending to look normal, because they are compressed, compared to the A pose. (this is an advatage the A pose has over T. Mor natural shoulders. This comes at the expense of the T pose having more natural armpits.) Genesis 3's shoulder bulge more than G8's so when you move * to T or 3 to A, they don't line up.

    All morph transfer methods, except manally fixing the shoulders and my script will cause some distorion in the shoulders and buttocks for G3M (For g3F you'll see issues at shoulder, hip, buttocks, and below the eyes. There are more obviousl places where 3F and 8F don't line up exactly.

    A poor man's solution suggested earlier in this thread would involve simply importing an non-morph.

    You should have the mesh you created to export morphs. If using Rez's tut, you would have transfered all the morphs from you base figure to this transfer mesh, and saved the file. Load Genesis 8. Set subD and resolution to 0 and Base. Export. Open the file with your transfer mesh. Select the transfer mesh. Use morph loader to load the mesh you just exported as a morph. Dail that new morph to 100% Save the file.

    Next time you wish to copy out a morph, having the morph active will remove the distortions caused by the difference in the base figures.

    Not the most accurate fix, but it's a rough and ready method.

  • RKane_1RKane_1 Posts: 3,037
    edited August 2017

    Singular Blues said:

    I'm glad that the finger issue is workable, but I'm running into another one that's got me stumped. No matter which method I use, even going so far as to use a smoothing modifier with collision on my clone so that it matches G3M as closely as possible, the shoulders always seem significantly smaller on Genesis 8, especially on more muscular figures. And I mean the actual shoulders--the deltoids, not the upper arms, which are labelled shoulders.

     Again, this is a well known issue, and collision can't fix it because it is, well collision based.

    You might try fiddling with scale to cause a collision, but I'd not recommend it.

    The long and short is, if A is set to collide with B the parts of A that do not trouch B will be largely unchanged. Because there is no collision.

    Smoothing is not a good solution for figures, because it smooth things, meaning all the verts shift, and detail is lost (admittedly, Genesis is fair low in detail to start, but you are taking a low detail shape and removing detail by applying smoothing). Smoothing is not the same as projection or shrink wrap wich sill move parts of A into contact with B if they are not already in contact.

    G3's shoulder reqire basically a different kind of bending to look normal, because they are compressed, compared to the A pose. (this is an advatage the A pose has over T. Mor natural shoulders. This comes at the expense of the T pose having more natural armpits.) Genesis 3's shoulder bulge more than G8's so when you move * to T or 3 to A, they don't line up.

    All morph transfer methods, except manally fixing the shoulders and my script will cause some distorion in the shoulders and buttocks for G3M (For g3F you'll see issues at shoulder, hip, buttocks, and below the eyes. There are more obviousl places where 3F and 8F don't line up exactly.

    A poor man's solution suggested earlier in this thread would involve simply importing an non-morph.

    You should have the mesh you created to export morphs. If using Rez's tut, you would have transfered all the morphs from you base figure to this transfer mesh, and saved the file. Load Genesis 8. Set subD and resolution to 0 and Base. Export. Open the file with your transfer mesh. Select the transfer mesh. Use morph loader to load the mesh you just exported as a morph. Dail that new morph to 100% Save the file.

    Next time you wish to copy out a morph, having the morph active will remove the distortions caused by the difference in the base figures.

    Not the most accurate fix, but it's a rough and ready method.

    Singular? What if he re-exports the mesh after collision is used to better match the form then reimports that .obj? That would give him the more accurate fit but not come with the morph warping that colission makes when trying to integrate a morph into a mesh with collision detection on it?
    Post edited by RKane_1 on
  • I just tried it. The process worked just fine up until I tried to transfer a FaceGen Head/Face Morph. It just didn't seem to respond at all. I tried it with others and it worked instantly and yet... Any ideas?

  • RKane_1RKane_1 Posts: 3,037
    edited August 2017

    Autofollow might be off on the Facegen morph you made, would be my first guess.

    If the morph does not have autofollow on, you are literally telling other items fitted to your figure NOT to change or "follow" the morph being dialed. This is often used for ear and eyelash morphs to not upset hair autofitted to figures they are used on. 

    Go to the morph on the G3M figure in Parameter Tab and ensure the autofollow is on by opening Parameter settings on the morph (The little gear to the right of the morph) and ensure that the Autofollow box is checked.

    If that is not it, let me know. :)

    Post edited by RKane_1 on
  • Can someone make a product to automatically transfer G3 TO G8? I am so lazy and would pay for a perfectioned auto system of transfering all G3 to G8 with one-click corrections as needed

  • Singular BluesSingular Blues Posts: 737
    edited August 2017
    RKane_1 said:
    Singular? What if he re-exports the mesh after collision is used to better match the form then reimports that .obj? That would give him the more accurate fit but not come with the morph warping that colission makes when trying to integrate a morph into a mesh with collision detection on it?

     

    The issue with collision in studio is that it's not just collision. It's mesh smoothing as well. I'm not sure it works properly with out aleast 1 smoothing iterations, and you don't want smoothing. Smoothing is bad.

    And it won't fix the the shoulders issue because that is entirely due to the topology adjustments necessary to adjust fro T to A pose. The only ways I know to avoid that are the method my script uses, and manual edits.

     

     

    I just tried it. The process worked just fine up until I tried to transfer a FaceGen Head/Face Morph. It just didn't seem to respond at all. I tried it with others and it worked instantly and yet... Any ideas?

    Define "it." 

    In 2 two words or less.

    Post edited by Singular Blues on
  • I used the "G3F to G8F Manual morph Transfer" script and followed the directions in the PDF. After which I attempted to apply a Facegen morph to no avail. Others applied with varying degress of success, though some Daz morphs didn't change anything and others had quite obvious effects. However changing the slider from 0% to 100% would normally be expected to result in something even if it isn't what I wanted. 

    IT: (used to represent an inanimate thing understood, previously mentioned, about to be mentioned, or present in the immediate context).

    Since I wrongly presumed we were all discussing the same topic and the script is in your tagline SB. I do appreciate the effort you and others have gone to, I just wish that I could use it on my own morphs rather than just DS figures. Since Facegen just uses the base G3F it doesn't feel as if it should be resistant to transfer, but I'm not conversant with the mechanics of DS or scripting. 

    RKane_1: I checked the autofollow in the Parameter Tab and indeed it was not checked, yet checking it had no effect. This is G3F BTW.

    Thanks for whatever assistance anyone should care to offer.

     

  • Singular BluesSingular Blues Posts: 737
    edited August 2017

    I used the "G3F to G8F Manual morph Transfer" script and followed the directions in the PDF. After which I attempted to apply a Facegen morph to no avail. Others applied with varying degress of success, though some Daz morphs didn't change anything and others had quite obvious effects. However changing the slider from 0% to 100% would normally be expected to result in something even if it isn't what I wanted. 

    IT: (used to represent an inanimate thing understood, previously mentioned, about to be mentioned, or present in the immediate context).

    Since I wrongly presumed we were all discussing the same topic and the script is in your tagline SB. I do appreciate the effort you and others have gone to, I just wish that I could use it on my own morphs rather than just DS figures. Since Facegen just uses the base G3F it doesn't feel as if it should be resistant to transfer, but I'm not conversant with the mechanics of DS or scripting. 

    RKane_1: I checked the autofollow in the Parameter Tab and indeed it was not checked, yet checking it had no effect. This is G3F BTW.

    Thanks for whatever assistance anyone should care to offer.

     

    Okay. Hopefully I can spell this out briefly, since I've little time:

    Terminology. A script, in tech terms, is a set of instructions a computer follows. This is why you see a reference in my sig to one script and two tutorials. When you say "script" in this thread, you tend to imply my work, which leads to confusion. My script would almost certainly effect the transfer you want without issue, but it will alos transfer everything else you added to G3F with facegen, as they are all going to be in the same folder. That's what the script does. Transfer the full contents of folders it finds.

    The issue you are having:

    In a word, Autofollow. I could be wrong about this, but if I am, it means youare not following the instructions in the Tutorial correctly. You are instructed to apply a morph and then export an object. Before doing that, look at the object youare about to export. The morph you import later will look exactly like that. Because that's all the data the software has to make the morph. If the shape isn't in the export, it won't be in the import.

    Follwing Redz directions, the import morph will always look exatly like the export object. If it goes weird, the Morph loader settings were wrong. if nothing happens, either the export object looked like that, or you imported the wrong obj file.

    Daz has an option called autofollow. When Autofollow is off, wearable items do not take on the shape of the thing they are being worn by. This is useful when you want to change a facial feature, but not affect hair. However, autofollow off morphs will not transfer to the G8 target using Redz's manual method. If you, instead, use Redz's Tranfer Utility method, the morph should transfer.

    If you are using that method, and they aren't working, you've managed technical voodoo. I was in IT for 10 years. I know such voodoo happens, but it's gonna be hard for anyone to guess what's going on without a step-by-step, blow-by-blow, screenshot-by-screenshot account of your actions.

    I made an assumption so let me clairfy. Once autofollow is set for a wearable, it stays set. You can't unset it.

    Basically, the morph is there in the base figure, but not in the wearable. Whatever state autofollow is in, when you dial the morph, the current weables will adopt the morph in that state. If it is off, you dial it, it is then off in the weable. If you then turn it on, the wearable does not change states. The morph is still off. The inverse is also true.

    To reset autofollow for a normal wearble, you basically have to delete the item and load it fresh. For Redz tut, it depens on what the state was when you saved the file. If it was undefined, then reload the file. If it was set, then you basically have do the tut over from the begining.

    So, to use RKane's suggestion, you need to load, g3, make sure autofollow is on, then fit the G8 target to g3. And the target has to have never previously been fit to G3 with morph on during this session of Studio. Otherwise, you need to reload or restart studio and start fresh.

    Post edited by Singular Blues on
  • mikekmikek Posts: 195

    About GenX2 from the store (to get older figures to Genesis 3) does that plugin work with the current DS? On the site https://www.daz3d.com/genesis-generation-x2 it says compatible with 4.9 but in the description it lists "installer for DAZ Studio 4.6".
    And the second question: does it have issues when transfering morphs like the methods we have currently for G8?

  • nonesuch00nonesuch00 Posts: 18,142

    I used the "G3F to G8F Manual morph Transfer" script and followed the directions in the PDF. After which I attempted to apply a Facegen morph to no avail. Others applied with varying degress of success, though some Daz morphs didn't change anything and others had quite obvious effects. However changing the slider from 0% to 100% would normally be expected to result in something even if it isn't what I wanted. 

    IT: (used to represent an inanimate thing understood, previously mentioned, about to be mentioned, or present in the immediate context).

    Since I wrongly presumed we were all discussing the same topic and the script is in your tagline SB. I do appreciate the effort you and others have gone to, I just wish that I could use it on my own morphs rather than just DS figures. Since Facegen just uses the base G3F it doesn't feel as if it should be resistant to transfer, but I'm not conversant with the mechanics of DS or scripting. 

    RKane_1: I checked the autofollow in the Parameter Tab and indeed it was not checked, yet checking it had no effect. This is G3F BTW.

    Thanks for whatever assistance anyone should care to offer.

     

    I have transfered one FaceGen morph but using the manual procedure in the PDF & not a script.

  • marth_emarth_e Posts: 180

    I just love Singular Blues' script. So easy to use and works like a charm. Just wondering if there is going to be also a script to transfer morphs from G3M to G8M?

    Thanks a lot, Sigular Blues, and keep up the great work,

    Martha E.

  • AllenArtAllenArt Posts: 7,169
    marth.e said:

    I just love Singular Blues' script. So easy to use and works like a charm. Just wondering if there is going to be also a script to transfer morphs from G3M to G8M?

    Thanks a lot, Sigular Blues, and keep up the great work,

    Martha E.

    He's said he's working on one but has no time frame he can give.

    I think it's a he. I hope so so that I don't offend. Seems like a he ;).

    Laurie

  • marth_emarth_e Posts: 180

    Thanks a lot for the info, Laurie. Really appreciate it. :)

     

  • JackFosterJackFoster Posts: 143
    edited August 2017
    mikek said:

    About GenX2 from the store (to get older figures to Genesis 3) does that plugin work with the current DS? On the site https://www.daz3d.com/genesis-generation-x2 it says compatible with 4.9 but in the description it lists "installer for DAZ Studio 4.6".
    And the second question: does it have issues when transfering morphs like the methods we have currently for G8?

    GenX2 still works for the current version of DS. I just used it recently with no issues. It works really well, in my opinion, and there doesn't really seem to be any major issues with it.

    Just take note that it can't be used to transfer morphs to G8 directly.

    Edited to add:

    I fixed my shoulder problem. The clone I used smoothing and collision on did end up working--I just had to use it for all the major morphs I transferred. It may not be an ideal solution, but it worked for me.

    Post edited by JackFoster on
  • dmitriiviktorovdmitriiviktorov Posts: 1
    edited August 2017

     

     

    Post edited by Cris Palomino on
  • AllenArt said:
    marth.e said:

    I just love Singular Blues' script. So easy to use and works like a charm. Just wondering if there is going to be also a script to transfer morphs from G3M to G8M?

    Thanks a lot, Sigular Blues, and keep up the great work,

    Martha E.

    He's said he's working on one but has no time frame he can give.

    I think it's a he. I hope so so that I don't offend. Seems like a he ;).

    Laurie

    'tis true. I shan't bore you claiming pverty and whinging on about my problems, but I am working on the script, as time permits. I finished the necessary morphs (I use studio to extract data the script needs, and to do this I need both figres to have the sme shape, so that their common veticies share spacial coordinates) yesterday.

    I'm running the script I use to extract the data even now. I figure this first run will take an hour total and cover half the data. The next several runs will average 30 minutes each and cover the other half. (this script in not efficient. I could optimize I suppose, but I only need to use it the one time. per G8 figure) There will be 4 of those runs. So I should have full data set in 4 or 5 hours. Then I have to change that data into a set of 23500 or so instructions which took me 3 days the first time, but I was making it up as went then. I just can't guess at how long it will take this time because I have real life, such as it is, and I actually work more effiencently on tedious tasks when I don't know what I'm doing. The problem and solving it being a form of reward. Now I know exactly what to do, so it's not an interesting problem, just a big one.

  • mikekmikek Posts: 195
    edited August 2017

    GenX2 still works for the current version of DS. I just used it recently with no issues. It works really well, in my opinion, and there doesn't really seem to be any major issues with it.

    Ok thank you thats good.

    @Singular Blues:
    Something I noticed with the script is for some body morphs it will bend the fingers upwards. The only similarity I noticed for the morphs where it happens is they did usually increase the finger length. But I'm not sure if its really connected with that. Is this expected for some morphs or is there a way to fix this?
    Here is how it looks. Top left is G3F without morph, top right is with morph. The bottom row is the same with G8F after the transfer with the script.

    Post edited by mikek on
  • That's probably not something that can be fixed.  Be nice if it could be, real trick of the script is it just copies the deltas from one figure to the other. The only changes it makes to deltas is it removes those that don't apply.

    To make a perfect fit, one would need to know exactly what the cause of this is (I have a guess) and how to calculate that cause's effect (if my guess is right, I have no clue).

    This is a knind of know issue effect. It impacts the entire arm and probably related to the changes between figre poses. Overall, it's not a high priority to fix, because even at its worst, it just don't cause a lot of notable distortion. If it isn't what I think it is then it would down to an issue with bones, which might be something that cold be fixed, but I'm not sure. Again, it's such a small problem, I'm not sure it's worht the effort.

  • mikekmikek Posts: 195
    edited August 2017

    Ok I see.

    So I have been experimenting with the "adding clones to G8F" method from redz to see if it works better for me. When following that path after creating the clones and everything one comes to the part where the morphs are transfered. Usually the scene to transfer them looks like the image below on the left side where one dials in the morph for the transfer.. Trying to fix an issue instead of doing so I have zeroed the figure, hid it again to then dial in the clone morph. The result looks like the right side image. Same mesh pose but the skeleton is in T pose instead of A. Interestingly if I start there with the actual morph transfer (dial in, export...) it produces the same issue for me with the fingers bending upwards like the script. This isn't the case when the skeleton has the A pose. So as you wrote it looks like it could be related to the change from T to A pose.

     

    Post edited by Richard Haseltine on
  • We don't allow black boxes to screen nudity, and it wasn't really needed here as the figures were not shown textured. https://www.daz3d.com/forums/discussion/3279/acceptable-ways-of-handling-nudity#latest

  • mikek said:

    Ok I see.

    So I have been experimenting with the "adding clones to G8F" method from redz to see if it works better for me. When following that path after creating the clones and everything one comes to the part where the morphs are transfered. Usually the scene to transfer them looks like the image below on the left side where one dials in the morph for the transfer.. Trying to fix an issue instead of doing so I have zeroed the figure, hid it again to then dial in the clone morph. The result looks like the right side image. Same mesh pose but the skeleton is in T pose instead of A. Interestingly if I start there with the actual morph transfer (dial in, export...) it produces the same issue for me with the fingers bending upwards like the script. This isn't the case when the skeleton has the A pose. So as you wrote it looks like it could be related to the change from T to A pose.

     

     

    Yes, either due to the bone deltas not being quite right or the vertex normals not being quite right.

    So to fix it, you need to figure out which, and then figure out by what factors are the deltas changing. I can think of ways to the first, but not the second. Someone might be able to solve the second problem (probaby, more like it) but I personally haven't thought of a way, and the issue is small enough so far, that I don't care to.

    It's possible the more extreme male morphs will prove this to be a larger problem, but we're nowhere near that bridge right now.

  • emotionaldreams2emotionaldreams2 Posts: 141
    edited August 2017

    AT RISK if you use this script on DAZ Connect products.

    Updated the script to support connect but I do not own connect content, so it is not tested. 

    Somewhat Unpredicitable results when there is more than one Library.

    This should not result in breakage, but transfers will fail. However, should is not equal to safe. Breakage of your stff is still possible.
    Updates to the script now allow correct handling of main library files if you have 2 or more libraries. It should also properly find and copy files from other libraries, but this is not yet tested. The script will only save files to your main library, so if you want to have the files in a secondary lib, you need to copy them there yourself.

    We now return to your regularly scheduled comment, already in progress

     

    IT'S DONE!

    No, actually it isn't. But it works. Props to mork for doing a lot of the heavy lifting so I didn't have to.

    What am I talking about? Well, way up thread I said I had a method for transfering Morphs with their ERC intact. Which I did... Do. You know what I mean. I also said it was too dangerous to be released into the wild. New-queue-lar levels of dangerous. I figured if I could work out a way to automate some or all of the process, then actually do that automation, I'd release that.

    Well, I did it.

    Let's talk limitations first.

    This software is so Alpha it's slightly Omega. Use at your own risk. It probably can't break anything, but they said the same about the RMS Titanic.

    Fingernails. Toenails. It won't do them. The geometry was too darned messy for me to work out how to reliably handle them, so I skipped it entirely. The nails will, instead, follow the nailbeds. As a result they should be free of distortion and well shaped, but they may not match exactly, and any special nail morphs won't transfer. However, the script doesn't know about this limit, so if a nail morph file is included in the process, it will process it. The results of that should be, effectivelly, an empty morph, but a possibility for error exists.

    The script is not interactive. No UI, no notification. I don't know how to do that stuff. This is my first Daz Script. (I don't think small, unfortnately.) If I do a later release, I may add something, but my main goal has always been just getting it to work. Still no reall UI but Progress bar is implemented. So far the longest time between updates to the bar is 2 minutes 11 seconds. So allow five or six minutes before worrying the script is frozen. At this point, try the cancel button on the bar. Note, it make take sometime before the cancel takes effect. 

    One user reported total fubar after forcequitting. I can't say how this script could cause that directly, but even so, it implies that Daz might be doing important stuff while it seem frozen, so only force quit as a last resort.

    It almost certainly won't handle Connect products. Right now it tries to write back to the same library it is working in. I mean to fix that at some point, after which it might be able to work with Connect. Should now handle connect properly, but I'll need feedback from Connect users to confirm.

    It will also probably fail if you have more than one library, if the source morph is not in your base library. Again, something I mean to fix, but I only have the one library, and don't feel like making a new one atm. It wasn't necessary to reach "it works." This is not trivial. To make it easy to use, I wanted to be sure to use the Studio UI to find morphs, rather than requiring the user to find them. But because of a quirk in the way morphs can be saved, so morphs own themselves, and don't seem to report their file location. So I had to hack around to make it work. Hacking the hackery to distinguish between Connect and non Connect makes me cry. Fixed, see above.

    As a result of this hackery, some files may not trasfer at all, ever. Basically, because they own themselves, and report their names generically, they may have the same "label," as far as the script method is concerned, as another file or files. This means the script will always find one of them and never find the others. I can't think of a way around that, right now. I did work around the most common way this happens by having the script first ask for the file's location and only hack around when it doesn't get an answer, but I don't have enough products, frankly, to test all the possible failure modes.

    I pretty much didn't document it at all.

    It reads compressed and uncompressed files but only writes uncompressed.

    Did I meantion no UI. Because no UI. At all. Well, a progress bar with history and cancel buttons, but that's all. It seems to take about 9 seconds, on average to run one morph. This would be about 4 to 7 minutes for an average character, and about double that for a typical Morph pack. During this time, Studio will be busy. Make a sammich or something. Call your mom, if you have one. These numbers are based on 50 to 100 morphs and my slow laptop, so your values will vary. But don't go forcequiting because something like 200 Plus is taking a long time. that's twice the size of any test I've run. Clicking new History button will allow you to see what the script is currently working on, and the progress bar attempts to display that info, anyway, but it might not fit.

    The script is attempting almost 24,000 operations per file. Mind you, when working with a file where most of those ops are invalid (most expressions, for ex) it will run much, much faster. But morphs tend to run slow.

    Reports of looping behavior have been diagnosed and corrected. The Script no longer attempts to deal with all Libraries, but will, draw on the last library it finds matching content in. The Base library is checked first. Connect is checked last. I can't predict more than that. This may lead to mismatch or issues if you have a single product in spread across more than one library. But, as far as I know, you shouldn't be doing that.

    How to Use

    1. Load Genesis 3 Female. Make sure it is selected.
    2. Find one (1 and only 1) Morph from the set you wish to transfer and mark it as favorite. (if you mark more, the script will only work with first one it finds, which may not be the one you want).
    3. Run the script
    4. Studio will lock up, and you will get the wait manipulator. It's thinking. Remember, 9 seconds per morph file. Ish
    5. Studio will become responsive. This means it's finished. It may have errored out, but it's finished.
    6. Load Genesis 8 Female. Find your morphs
    7. Report any misbehavior to this thread.
    8. Enjoy

    There's no ERC freezing, there's no trying to fix transfer related distortions (although the eyes might be slightly small, that related to the fact that G8's eyesballs are closed meshes and G3's are not). There's, in fact, nothing more to do. Once the Script finishes successfully, the figure will be fully set up, and all the links between the files will be maintained.

    This is true even with respect to files that link to other products, irrespective of whether you have transfered those other products. The script doesn't "tranfer" as much as it translates. All of the commands built into the G3 files are present in the resultant G8 files. This means it transfer whimsically misspelled name for Victoria 7, then transfer Victoria 7 later, the first product will be connected to V7 (after you reload the figure, if it is open).

    Good night, and good luck.

     

    EDITS

    2017/08/08: Updated script to correct type missmatch error in expressions/morphs containing links to Mouth Open Wide.
    2017/08/11: Updated to handle Connect, multi-library support and progress.
    2017/08/15: Updated to properly copy pngs, corrected nested for loops, maybe fixed process looping.
    2017/08/16: Actually fixed looping behavior.
    2017/08/19: Fixed bug created by inattention during last fix.
    2017/08/22: Fixed many things. Nothing G8M related.

    hmmm. im getting nothing. after following adn running. your instructions. "find your moprhs". find them where? i looked through the poaramenters. don't see the morph i created. :cool:

    Post edited by emotionaldreams2 on
  • AllenArtAllenArt Posts: 7,169

    AT RISK if you use this script on DAZ Connect products.

    Updated the script to support connect but I do not own connect content, so it is not tested. 

    Somewhat Unpredicitable results when there is more than one Library.

    This should not result in breakage, but transfers will fail. However, should is not equal to safe. Breakage of your stff is still possible.
    Updates to the script now allow correct handling of main library files if you have 2 or more libraries. It should also properly find and copy files from other libraries, but this is not yet tested. The script will only save files to your main library, so if you want to have the files in a secondary lib, you need to copy them there yourself.

    We now return to your regularly scheduled comment, already in progress

     

    IT'S DONE!

    No, actually it isn't. But it works. Props to mork for doing a lot of the heavy lifting so I didn't have to.

    What am I talking about? Well, way up thread I said I had a method for transfering Morphs with their ERC intact. Which I did... Do. You know what I mean. I also said it was too dangerous to be released into the wild. New-queue-lar levels of dangerous. I figured if I could work out a way to automate some or all of the process, then actually do that automation, I'd release that.

    Well, I did it.

    Let's talk limitations first.

    This software is so Alpha it's slightly Omega. Use at your own risk. It probably can't break anything, but they said the same about the RMS Titanic.

    Fingernails. Toenails. It won't do them. The geometry was too darned messy for me to work out how to reliably handle them, so I skipped it entirely. The nails will, instead, follow the nailbeds. As a result they should be free of distortion and well shaped, but they may not match exactly, and any special nail morphs won't transfer. However, the script doesn't know about this limit, so if a nail morph file is included in the process, it will process it. The results of that should be, effectivelly, an empty morph, but a possibility for error exists.

    The script is not interactive. No UI, no notification. I don't know how to do that stuff. This is my first Daz Script. (I don't think small, unfortnately.) If I do a later release, I may add something, but my main goal has always been just getting it to work. Still no reall UI but Progress bar is implemented. So far the longest time between updates to the bar is 2 minutes 11 seconds. So allow five or six minutes before worrying the script is frozen. At this point, try the cancel button on the bar. Note, it make take sometime before the cancel takes effect. 

    One user reported total fubar after forcequitting. I can't say how this script could cause that directly, but even so, it implies that Daz might be doing important stuff while it seem frozen, so only force quit as a last resort.

    It almost certainly won't handle Connect products. Right now it tries to write back to the same library it is working in. I mean to fix that at some point, after which it might be able to work with Connect. Should now handle connect properly, but I'll need feedback from Connect users to confirm.

    It will also probably fail if you have more than one library, if the source morph is not in your base library. Again, something I mean to fix, but I only have the one library, and don't feel like making a new one atm. It wasn't necessary to reach "it works." This is not trivial. To make it easy to use, I wanted to be sure to use the Studio UI to find morphs, rather than requiring the user to find them. But because of a quirk in the way morphs can be saved, so morphs own themselves, and don't seem to report their file location. So I had to hack around to make it work. Hacking the hackery to distinguish between Connect and non Connect makes me cry. Fixed, see above.

    As a result of this hackery, some files may not trasfer at all, ever. Basically, because they own themselves, and report their names generically, they may have the same "label," as far as the script method is concerned, as another file or files. This means the script will always find one of them and never find the others. I can't think of a way around that, right now. I did work around the most common way this happens by having the script first ask for the file's location and only hack around when it doesn't get an answer, but I don't have enough products, frankly, to test all the possible failure modes.

    I pretty much didn't document it at all.

    It reads compressed and uncompressed files but only writes uncompressed.

    Did I meantion no UI. Because no UI. At all. Well, a progress bar with history and cancel buttons, but that's all. It seems to take about 9 seconds, on average to run one morph. This would be about 4 to 7 minutes for an average character, and about double that for a typical Morph pack. During this time, Studio will be busy. Make a sammich or something. Call your mom, if you have one. These numbers are based on 50 to 100 morphs and my slow laptop, so your values will vary. But don't go forcequiting because something like 200 Plus is taking a long time. that's twice the size of any test I've run. Clicking new History button will allow you to see what the script is currently working on, and the progress bar attempts to display that info, anyway, but it might not fit.

    The script is attempting almost 24,000 operations per file. Mind you, when working with a file where most of those ops are invalid (most expressions, for ex) it will run much, much faster. But morphs tend to run slow.

    Reports of looping behavior have been diagnosed and corrected. The Script no longer attempts to deal with all Libraries, but will, draw on the last library it finds matching content in. The Base library is checked first. Connect is checked last. I can't predict more than that. This may lead to mismatch or issues if you have a single product in spread across more than one library. But, as far as I know, you shouldn't be doing that.

    How to Use

    1. Load Genesis 3 Female. Make sure it is selected.
    2. Find one (1 and only 1) Morph from the set you wish to transfer and mark it as favorite. (if you mark more, the script will only work with first one it finds, which may not be the one you want).
    3. Run the script
    4. Studio will lock up, and you will get the wait manipulator. It's thinking. Remember, 9 seconds per morph file. Ish
    5. Studio will become responsive. This means it's finished. It may have errored out, but it's finished.
    6. Load Genesis 8 Female. Find your morphs
    7. Report any misbehavior to this thread.
    8. Enjoy

    There's no ERC freezing, there's no trying to fix transfer related distortions (although the eyes might be slightly small, that related to the fact that G8's eyesballs are closed meshes and G3's are not). There's, in fact, nothing more to do. Once the Script finishes successfully, the figure will be fully set up, and all the links between the files will be maintained.

    This is true even with respect to files that link to other products, irrespective of whether you have transfered those other products. The script doesn't "tranfer" as much as it translates. All of the commands built into the G3 files are present in the resultant G8 files. This means it transfer whimsically misspelled name for Victoria 7, then transfer Victoria 7 later, the first product will be connected to V7 (after you reload the figure, if it is open).

    Good night, and good luck.

     

    EDITS

    2017/08/08: Updated script to correct type missmatch error in expressions/morphs containing links to Mouth Open Wide.
    2017/08/11: Updated to handle Connect, multi-library support and progress.
    2017/08/15: Updated to properly copy pngs, corrected nested for loops, maybe fixed process looping.
    2017/08/16: Actually fixed looping behavior.
    2017/08/19: Fixed bug created by inattention during last fix.
    2017/08/22: Fixed many things. Nothing G8M related.

    hmmm. im getting nothing. after following adn running. your instructions. "find your moprhs". find them where? i looked through the poaramenters. don't see the morph i created. :cool:

    Your morphs will likely be in the shaping tab under G8F under the same category and  under the same names they were on G3F.

    Laurie

  • AllenArt said:

     

    Your morphs will likely be in the shaping tab under G8F under the same category and  under the same names they were on G3F.

    Laurie

    shoot after doing them manually one at a time now you time me. *laughing* thats where they were at. oh well :)

  • That^.

    On the parameters tab, and probably the shaping tab, too, you can type the label of the morph and it will filter out all that are not that morph.

    If the morph was, originally "Victoria 7," and you type Victoria 7, then all morphs with Victoria 7 in the label will be displayed and none of those without it in the lable will show.

    Update on G8M. I finished yesterday, and determined that, because I tried to account for fingernails, I'd messed up the whole system I use for creating the mapping. The good news is the script seems fully functional to the same degree as the G8F script. The bad news is the mapping is wrong, so the results are crap. Correctly fuctioning crap, but still crap.

    I've had to rewrite the script I use to make the map, but I think I have that sorted. So, I just need to make a new mapping. On the upside, I have a more efficient spread sheet, so hopefully I'll have a working beta in the next 2 days.

  • That^.

    On the parameters tab, and probably the shaping tab, too, you can type the label of the morph and it will filter out all that are not that morph.

    If the morph was, originally "Victoria 7," and you type Victoria 7, then all morphs with Victoria 7 in the label will be displayed and none of those without it in the lable will show.

    Update on G8M. I finished yesterday, and determined that, because I tried to account for fingernails, I'd messed up the whole system I use for creating the mapping. The good news is the script seems fully functional to the same degree as the G8F script. The bad news is the mapping is wrong, so the results are crap. Correctly fuctioning crap, but still crap.

    I've had to rewrite the script I use to make the map, but I think I have that sorted. So, I just need to make a new mapping. On the upside, I have a more efficient spread sheet, so hopefully I'll have a working beta in the next 2 days.

    i like it. its workin. just saved in wrong place. i'll await ur fix :)

  • I have no idea what needs fixing?

    If you mean the G8M script, then never mind. But if the G8F script is broken, I don't know about it.

  • I have no idea what needs fixing?

    If you mean the G8M script, then never mind. But if the G8F script is broken, I don't know about it.

    oh i was referrring to u sayin u had to new mapping.  the script is fine. and i only use the female characters. not worried about g8m :)

  • barbultbarbult Posts: 24,260
    edited August 2017

    Is the Singular Blues G3F to G8F script supposed to be working on content installed with Daz Connect now? The file history made me thing so. I tried it tonight for the first time and it failed.

    I loaded G3F and selected her. In the Parameters pane I found Kerry Body and marked the heart as a favorite. Kerry was installed with Daz Connect. Then I ran the script. Almost immediately I got an error message that said "An error occurred while reading the file, see the log file for more details." This was in the log.

    2017-08-29 23:30:33.050 Loading script: D:/DAZ 3D/Studio/My DIM Library/Scripts/From Forum/G3 to G8 Script Morph Transfer/G3F to G8F Morph Transfer.dsa
    2017-08-29 23:30:33.190 DEBUG: Owner: FBMKerry
    2017-08-29 23:30:33.253 DEBUG: D:/DAZ 3D/Studio/My DIM Library
    2017-08-29 23:30:33.315 DEBUG: D:/DAZ 3D/Studio/vMaterials for DazStudio 1.4
    2017-08-29 23:30:33.315 DEBUG: D:/DAZ 3D/Studio/Daz Connect Data
    2017-08-29 23:30:33.347 WARNING: Script Error: Line 24010
    2017-08-29 23:30:33.347 WARNING: ReferenceError: Can't find variable: sTargetPath
    2017-08-29 23:30:33.347 WARNING: Stack Trace:
        <anonymous>()@D:/DAZ 3D/Studio/My DIM Library/Scripts/From Forum/G3 to G8 Script Morph Transfer/G3F to G8F Morph Transfer.dsa:24010
    2017-08-29 23:30:33.362 Error in script execution: D:/DAZ 3D/Studio/My DIM Library/Scripts/From Forum/G3 to G8 Script Morph Transfer/G3F to G8F Morph Transfer.dsa

    --------------------

    Edit: This is where the Kerry morphs are installed in Daz Connect:

    D:\DAZ 3D\Studio\Daz Connect Data\data\cloud\1_38573\data\daz 3d\genesis 3\female\morphs\raiya\kerry

    Post edited by barbult on
Sign In or Register to comment.