Digital Art Zone

 
   
1 of 3
1
Morphs & Genesis: On Coding Level; Workaround/Fix Found
Posted: 20 September 2012 01:32 PM   [ Ignore ]
Active Member
Avatar
RankRank
Total Posts:  383
Joined  2003-10-09

Hi all…

This is not a request for help about how to create morphs, or even what avenues one may take to create them.  I need help in line with the equivalent of CR2 coding, and placement of MT’s within Genesis file structure itself.  I guess this would be the DSON file structure.

I am well versed in the world of CR2’s, and all the coding manipulation all the way through to Gen4 figures, but the new DSON/Genesis format is kicking my azz in regards to how some things work.


O.k., here goes…  Ultimately I need to know exactly how does Genesis digest, and link created morph targets.  I am experiencing some unwanted anomalies which may not even be that, but just illegal linkage due to my lack of understanding of Genesis’ core code.

First, no, I do not need help with where in DS’s file structure to place morphs, so please don’t add links to amateur tutorials on how to do this.  No need…

I am going to use millighost’s great Genesis morphing suite for Blender as a for example.

The code structure for the created .dsf file is a little different from others (DAZ, FaceGen, etc.), but has all necessary code to create a viable morph target.  As an aside;  From what I see, all vertex displacement data is within the DSF file, so I can’t fathom there is any “invisible” code linking to any hidden asset files anywhere.  It seems the DSF morph target files are self contained.

So, the issue I am having has to do with both changing the morph target location within the DS/Genesis Parameters node tree (Universal, Head, Actor, etc.), and MT linking with Genesis failing, creating unusable null and void parameter sliders.

Millighost’s .dsf exporter defaults to setting a morph target in Universal.  Even if it is a compound MT based off a previously created MT which already had a dedicated parameter location.  So, I edit the DSF file to relocate the MT where I want it on the node tree.  This works fine, and is not the inherit issue.

O.k., here is where the issue starts, and my confusion on just how the MT’s link to Genesis.  Let’s say I want to keep the created MT in the default “Universal” location, but I also want to add it to “Actor/Head/Universal”.  If I edit the code to reflect the new location, AND even give it a modified name (changed throughout the DSF file as well) it will null and void the first MT (Universal location).  Even more so, if I decide I don’t like the Universal location being null and void, and delete (or remove) the newly edited MT/location, this does not reinstate the first MT (Universal).

There are no longer two of the exact same MT’s (with different names) stored in the DS file stucture, but it seems only the newer saved one is “live”, and if I put it back into the DS file stucture it appears back in the morphs list, and works again.  However, the original first morph remains dead.  Now, if I re-save the original MT from Blender overwriting the first it reinstates that morph again, and null and voids the second edited one with a different name/location.

So, my underlying question is, why is this?

How is Genesis assessing, and linking to the individual morphs?

Is there some hidden data protocol that is overwritten each time you save a newer version of the same set of vertex displacement data regardless if identifiers have been changed?  You can’t have the exact same morph, yet named different; Head1, Head2, Head3, etc.

It’s just not possible to have duplicate locations for the exact same mesh data (even with different names)?  If so, why?

How exactly is Genesis linking these DSF morph files?  The only difference I see in any of the DSF files I have studied (besides how an author created the structure) is in the “parent id” reference.  It seems it could be either “#Genesis”, or “#geometry” without any difference (they both work).

Any help from the masters would be greatly appreciated, and I’m sure this would be a good learning example for a lot of other people as well.  I can’t believe I am the only one who has encountered this, or is interested in knowing this for future work.

Thank you in advanced for your time, and any help you can give.


*EDIT:  Testing done in DS Pro 4.5.0.114 (but I assume this relates to all DS4/Genesis versions).

 Signature 

Take care all..        “It’s easy to clean up when you got money.”        *Old Post Count:  Don’t know, don’t care…  *New Site Status:  Doesn’t matter one iota.
Ken

Profile
 
 
Posted: 20 September 2012 02:45 PM   [ Ignore ]   [ # 1 ]
New Member
Total Posts:  3
Joined  2012-02-28

No answers, just adding my voice on this…because I’ve noticed the same anomalies and I was thinking it was something with Milghost’s script, but now I’m not sure.  Also, I’m having trouble with running the script since I updated to 4.5.0.114…it won’t load a dsf from the new content, but if I go back to the old content, it loads them.  It’s coughing up some weird UTF encoding error in the python interpreter, but that may ultimately be something on my end, though.

Profile
 
 
Posted: 20 September 2012 03:05 PM   [ Ignore ]   [ # 2 ]
Active Member
Avatar
RankRank
Total Posts:  383
Joined  2003-10-09

Lady Phoenix Fire Rose:  (cool name)

I had the same issue when trying to load Genesis DSF into Blender from 4.5.0.114 as opposed to 4.0.3.47, but not to fear, it is because the 4.5 series DSF’s are compressed.

You just need to set aside an uncompressed version, and all will be well again.  I’ve been creating MT’s for Genesis with DS4.5 and Blender now with no issues (other than the opening post issue) just like I was with DS4.

I used Dimension3D’s updated DSF Toolbox (updated to address this issue), but I believe it is possible to just “unzip” the compressed DSF file to an uncompressed one using a utility such as 7-Zip.

I created a folder right next to the original (compressed) Genesis.dsf, and called it “Uncompressed Genesis For Blender MT’s” and placed the uncompressed version in there.

Blender has no problem with the mesh call, and DS has no problem, because it already finds the correct unaltered version.

I hope this helps…

 Signature 

Take care all..        “It’s easy to clean up when you got money.”        *Old Post Count:  Don’t know, don’t care…  *New Site Status:  Doesn’t matter one iota.
Ken

Profile
 
 
Posted: 20 September 2012 03:44 PM   [ Ignore ]   [ # 3 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  14324
Joined  2003-10-09

Are you changing both the id and the name, or only the name? The id has to be unique.Also, are you changing the settings under scene as well as under modifier_library?

 Signature 

DAZ Studio Frequently Asked Questions

Index of free DAZ Studio scripts and plugins list

Profile
 
 
Posted: 20 September 2012 03:54 PM   [ Ignore ]   [ # 4 ]
Addict
Avatar
RankRankRankRank
Total Posts:  4545
Joined  2007-09-13

Actually…that’s my daughter’s name.  She was checking something and DIDN’T LOG OUT!!!!!! I just started looking through the forums and never noticed I wasn’t posting as me.

SO…

I’ll check it out…otherwise, I’ll need to drop the $20, because I prefer Blender over Hexagon…(yeah, call me weird…)

 Signature 

1432 old posts

My ShareCG gallery.

Just because something costs a lot, doesn’t mean it’s the best…

It just means it’s expensive.

Profile
 
 
Posted: 20 September 2012 04:32 PM   [ Ignore ]   [ # 5 ]
Active Member
Avatar
RankRank
Total Posts:  383
Joined  2003-10-09

Richard:

Yes, I changed all identifiers throughout the entire file.  All ID’s match (including file name).  That’s what is so baffling.  It should register as it’s own MT, but somehow is linked to Genesis on a level that I can not see.


mjc1016:

You sly dog…  Masquerading as a young lady to get compliments now, are you?

I know you know what you are doing, so you should have no problem getting it to work.

And, I agree with you in using Blender over Hex for MT’s.  I find myself using the Hex bridge less and less now since millighost updated his scripts to import MT’s to build upon as well.  Using Blender’s sculpt tools is such a bonus.

 Signature 

Take care all..        “It’s easy to clean up when you got money.”        *Old Post Count:  Don’t know, don’t care…  *New Site Status:  Doesn’t matter one iota.
Ken

Profile
 
 
Posted: 20 September 2012 04:40 PM   [ Ignore ]   [ # 6 ]
Addict
Avatar
RankRankRankRank
Total Posts:  4545
Joined  2007-09-13

I’ve tried using Hexagon, really I have…but, then again I’ve been using Blender since 2003 (?)...the early days.  It’s only been recently that I feel like I’ve finally gotten the ‘hang’ of it, though.

Two items that I’ve been using forever…Blender and GIMP.  And I like both better than ‘pay for’ alternatives.

 Signature 

1432 old posts

My ShareCG gallery.

Just because something costs a lot, doesn’t mean it’s the best…

It just means it’s expensive.

Profile
 
 
Posted: 20 September 2012 08:17 PM   [ Ignore ]   [ # 7 ]
Addict
Avatar
RankRankRankRank
Total Posts:  4545
Joined  2007-09-13

Well, that’s one problem down…figured out how to unzip a dsf file. 

Just use unzip in a console, and pipe the output to a txt file and rename it after it’s done.  Using a GUI version doesn’t give that option, so it fails because it’s trying to overwrite the file it’s unzipping while unzipping it.  Trying to send it to a different directory wasn’t working, either.

 Signature 

1432 old posts

My ShareCG gallery.

Just because something costs a lot, doesn’t mean it’s the best…

It just means it’s expensive.

Profile
 
 
Posted: 21 September 2012 02:14 AM   [ Ignore ]   [ # 8 ]
Active Member
Avatar
RankRank
Total Posts:  383
Joined  2003-10-09

Glad you got it mjc1016.  Sorry it was a little bit messy for you.

I did a test with 7-Zip, and it was quick and easy.  All I had to do was right-click on the Genesis file, and then click “unzip here”.  Quick and painless.

O.k., D3D earned his money I spent on the DSF Toolbox today.  I gave it a good workout, and was able to achieve some satisfactory results with some of the issues I am experiencing.

I ultimately created my own master template to use for all future MT’s, and used in conjunction with DSF Toolbox, I am getting usable MT’s that are not null-ing out, or cross referencing unique ID’s into one ID any longer.

Genesis is respecting the unique ID’s such as Head01, Head01a, Head01b, etc. even though they are all copies of the same file now.

It seems the Blender script wasn’t creating an asset file section, and I don’t know exactly how important that is to the overall file, but I manually added one in my master template for solidarity.  DSF Toolbox threw errors when I tried to load the assets page, and that clued me in to the situation to rectify it.

Overall, I got the MT’s working mostly as expected in 4.5.0.114, but there is still a little weirdness going on.  My slider gradient values start off correctly when I first load DS after working on the files, but every subsequent restart of DS sets the last MT to a solid black slider.  Most of my sliders are solid black now.


Still interested in any insight from the DSON masters if you guys can muster it…

 Signature 

Take care all..        “It’s easy to clean up when you got money.”        *Old Post Count:  Don’t know, don’t care…  *New Site Status:  Doesn’t matter one iota.
Ken

Profile
 
 
Posted: 01 October 2012 10:48 PM   [ Ignore ]   [ # 9 ]
Active Member
Avatar
RankRank
Total Posts:  383
Joined  2003-10-09

Well…

Back to square one.

I was working all day trying to solve SickleYield’s Mutations For Genesis morphs pack, and no matter what avenue I take they all end in failure with attributes of my opening post.

I even wrecked some of my own morphs that I managed to get working before.  Luckily, I believe in backing up the backups.

I did discover that even the same DSF morph file saved in another location, and then hand transferred into the morphs folder ends in failure.  If that is deleted, and the original backup restored, then it works again.

So, it seems to have something to do with the exact “first” saving location.  Just like everyone else, first time use of SickleYield’s morphs works, but then fail on second launch to never work again.  I couldn’t use the methods I used above to get them working again.

I surmise it has to do with the original save location (SickleYield’s exact path), and, for some reason, the “access data” section inclusion.

Even if I add the access data section, and go through the DSF Toolbox I still end up with a “temporary” fix that fails on subsequent morph fixing, or future launches.


Still looking for help, and any insights anyone can give on the subject.  Would be nice if everyone can start using some of the morph sets out there that were working just fine in Pro 4.0.

 Signature 

Take care all..        “It’s easy to clean up when you got money.”        *Old Post Count:  Don’t know, don’t care…  *New Site Status:  Doesn’t matter one iota.
Ken

Profile
 
 
Posted: 02 October 2012 05:08 AM   [ Ignore ]   [ # 10 ]
Active Member
Avatar
RankRank
Total Posts:  925
Joined  2007-01-04

I get the feeling it’s the file structure, or lack of, that’s the problem, with 4.0 the file structure was still under development so you could get away with some right crap, with 4.5 the DSON format is pretty much nailed down so everything has to be done correctly, but what gets me is why they work at all let alone just the first time you load them.

Safe to say your better off using MorphLoader and the CMS rather than the Blender script with 4.5

 Signature 

**shuffles of with a new headache** tongue wink

Profile
 
 
Posted: 02 October 2012 03:29 PM   [ Ignore ]   [ # 11 ]
Active Member
Avatar
RankRank
Total Posts:  480
Joined  2010-06-18

Hi…

I agree with Bejaymac here. The .dsf file created by the Blender script has a flawed file structure and is incomplete. It may work if left alone, but any editing to it results in failures or bad behaviour.

Adding any ‘missing’ sections may fix one issue but create new ones and even editing in DSF Toolbox does not fix the flawed structure, nor does re-saving the morph asset from within DS because, while it adds and reorganizes the .dsf to the correct formating, there are ‘artifacts’ left over from the Blender script generated .dsf and you still end up with errors. Even removing the ‘artifacts’ does not always fix the .dsf’s problems.

Out of curiousity I tested each of those methods to replicate the issues you have been experiencing and went over every line in the resulting .dsf files.  Overkill I know, but I was curious…  my conclusion is not to use the script with 4.5 or at all until it is updated to write the .dsf files to the correct DSON format

Using MorphLoader and saving the Asset from within DS, generated a .dsf that was fully editable and could be saved under multiple names and work correctly in DS

nicci… smile

Profile
 
 
Posted: 02 October 2012 03:44 PM   [ Ignore ]   [ # 12 ]
Active Member
Avatar
RankRank
Total Posts:  383
Joined  2003-10-09

Bejaymac:

I agree it has something to do with the file structure, but I disagree with having to use MorphLoader, as opposed to the Blender script (or even Hexagon/DS bridge).  I prefer not having to deal with the sizing issues, but thank you for the suggestion.  I will do some testing.  Oh, and I am already using the CMS at all times, so that can not be included in the issues.

I have already solved a viable workaround for all “my” custom MT’s, or any future MT’s using a combination of a custom hand edited DSF template and DSF Toolbox.  Please read my post #8 above for details.

However, some of the freebie morphs out there that I have downloaded (SickleYield’s for example) refuse to work in 4.5, but work fine in 4.0.  Even odder, some of the freebie morphs out there do work, such as SickleYield’s conversion of DieTrying’s 182 V4 morphs.

I can not find any variables within the code to explain why, or why not.  Also, since I can not apply my fix above to other people’s MT’s (all result in temporary fixes with subsequent failure) it leads me to believe it is more than just file structure itself, and might have to do with directory location of first saves.

Example for testing;  Select any “working” morph file, make a copy, and put it in a safe location (well away from the DS directory).  Let’s call the morph file “A”, and is in the main DS Morphs directory in folder “Z”.  Let’s say the safe place you put the copy of “A” is in a folder named “W”.

You now have the exact same two morph files.  One located in the DS directory and can be read by DS, and one that isn’t.  Now, delete the one in the DS directory, and open up the backed up file in a text editor, or dedicated tool such as DSF Toolbox.  Now, save that file to the DS directory folder “Z”.

Reopen DS/Refresh Genesis, and try that morph you selected for the exercise (if it even shows up now).  How’s that working?

I get results from not available, to null and void, to works one time and the next morph fix null and voids it.


If you just select your backup copy, and place it back into folder “Z” you will have a perfectly working morph again (if that is what you started with).  It was not re-saved in any way, so is viewed as the original “first” saved version (even though a copy), and works.

Another reason I believe it has something to do with DS viewing the file over included data is because of how I see my text editor respond to the same two files located in the two different folders in different locations.  If I load the file from folder “Z”, and then try to load a second instance of the file from folder “Z” it fails (It registers it as already loaded).  However, if I load the exact same file from a different location (folder “W”) it loads that exact same file.

I believe DSPro 4.5 is somehow working like the text editor on some level viewing the morphs from location as opposed to data structure itself (or the only variable).  If you re-save the first file from folder “Z” back into folder “Z” it works, but if you save the other exact same data structure file loaded from folder “W” it fails.  It can’t be anomalies in the data file itself when they are identical.  There has to be an outside factor that we are not privy to, or is somehow an introduced bug with 4.5 that needs to be explored by the coding team.

 Signature 

Take care all..        “It’s easy to clean up when you got money.”        *Old Post Count:  Don’t know, don’t care…  *New Site Status:  Doesn’t matter one iota.
Ken

Profile
 
 
Posted: 02 October 2012 04:13 PM   [ Ignore ]   [ # 13 ]
Active Member
Avatar
RankRank
Total Posts:  383
Joined  2003-10-09

niccipb:

You posted when I was writing…

Insightful, but I respectfully disagree.

I am not some newb, opening a file for the first time.  I have been hacking Poser/DS code since Nerd, and rbtwhiz (Rob Whisenant) first unleashed their findings in Poserverse.

I do read every line of code, and I do not view it as overkill, but being thorough.

In other words, I do know what I am doing with the information at hand.

My template is clean.  There are no “left over” artifacts.  I know how to identify them, and made any necessary corrections.


I agree with you that the Blender script needs work, and the resulting code is not optimum (even though it does work), but you must have missed my entire post where I stated I use a combination of “three” things to create a clean and working DSF file (to original DAZ coder’s standard).

I disagree with your assessment of the DSF Toolbox.  Yes, it does introduce the artifacts because of how the Blender code is written (easy to rectify), but it does (and the most important thing in my eyes) restructure the vertex data/deltas to the correct DSON formatting.


I’m not making morphs for anyone else, so I have nothing to worry about, but I would like to correct the morph files in all the packs I have downloaded.

“Using MorphLoader and saving the Asset from within DS, generated a .dsf that was fully editable and could be saved under multiple names and work correctly in DS”

Could you please elaborate on this workflow.  Maybe it will yield the results I need, and possibly what the other content creators (releasing MT’s) need to know (like SickleYield).

 Signature 

Take care all..        “It’s easy to clean up when you got money.”        *Old Post Count:  Don’t know, don’t care…  *New Site Status:  Doesn’t matter one iota.
Ken

Profile
 
 
Posted: 02 October 2012 05:26 PM   [ Ignore ]   [ # 14 ]
Active Member
Avatar
RankRank
Total Posts:  925
Joined  2007-01-04

I’ve been working on other issues for some of my friends, so fortunately I’ve got my beta tester head on.

The Blender script is adding garbage to the file, and because DS4.5 doesn’t recognise the garbage it stops processing the file after it’s first load. The morphs work after the garbage is deleted, but because these aren’t proper DSON files I wouldn’t be surprised if they break again in the not to distant future.

In the attached pic the section “highlighted” in gray is the garbage that’s stopping SickleYield’s morphs from “working”, I don’t have any of yours to check, but as you both used that script it’s odds on that you have the same garbage in your files.

TBH there really is only one way to make sure that your custom content for Genesis will work, and that is to save it into the DSON dsf files inside DS4, 3rdparty scripts will always be flaky.

Image Attachments
crap.jpg
 Signature 

**shuffles of with a new headache** tongue wink

Profile
 
 
Posted: 02 October 2012 05:45 PM   [ Ignore ]   [ # 15 ]
Active Member
Avatar
RankRank
Total Posts:  480
Joined  2010-06-18

Hi…

Please don’t misunderstand my meaning. I wasn’t in any way assuming or inferring that you didn’t know what you are doing.

I was referring to my own overkill in reading every line of the code which included side by side comparisons of the vertex delta lines. My eyes were killing me after that.

I was and am very interested in trying to understand why the Blender script when edited and any edited versions of it, do not always work as intended, if at all. I was a very regular user of it until 4.5 and I started to notice some problems.

I did read all of your posts and followed the same steps that you listed and had the same errors. I do agree with you that the DSF Toolbox does create the right formatting and there are artifacts. And as I said, even re-saving the .dsf from DS creates the correct DSON formatting, but with artifacts.

But what I have found in my testing of any file made from the Blender script that I edit through any method, still will fail or error in some way. Even when starting with a clean template. But it can be hit or miss, or even very minor.

As for using Morphloader… It is just the standard method for import of morphs from an outside modeler that I use ( and I do use Blender as my modeler ). After setting my parameter settings I save the morph asset from DS.

I can then open the .dsf morph file in my text editor (PSPad) and change groups, names, whatever and resave or rename as a new morph and it loads in DS with no errors.

I do hope that Millighost updates the script to the final DSON standard and adds some additional features, because it is a handy tool to have.

nicci… smile

Profile
 
 
   
1 of 3
1