Adding to Cart…
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2024 Daz Productions Inc. All Rights Reserved.You currently have no notifications.
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2024 Daz Productions Inc. All Rights Reserved.
Comments
What script API do you use? I can probably debug it from that information (I assume your script is encrypted).
This is quite helpful. I would recommend backing up the morphs folder first before beginning especially if you have 3rd party stuff.
It has been helpful to find many passive morphs, jcms, and other things, which are dialing in on my characters when the figure is not enabled.
I have found it useful to make categories, for things like expressions, monsters, and children, that I don't use often.
I do find that some pas have made characters that have content dialing in with each figure I load. Even passive morphs, can add to the lag, so this allows me to disable those.
If you bring up the script IDE pane, paste the below and click execute:
On my system, this will print:
You can, but you do not need to. In the Options tab of Turbo Loader Manager, there is a "Reset Morph Directory..." button. This button will rename every .tlOff file back to .dsf in the selected directory and subdirectory. So any changes made by this script (or any of the Turbo Loader scripts in the future) can easily be undone.
Yeah, I was surprised by the amount of stuff that is pulled in myself.
Is there a video tutorial showing this in action by any chance?
River put a video demo on the product page.
It took a while, but I managed to reduce my G8F morph count from 30036 to 13814 (through a lot of "Sophie's Choice" moments), and here are my results:
I'd say the whole initial set up process could be sped up by adding a few more search filters (such as PA). I think the dream of loading under 2 minutes could be done by disabling more of the countless expression sets (yes I have a problem), but I think this is a good place to start.
The next step will be to try out saving configurations for particularly large projects - I'll report back any updates when that happens.
Thanks again - I no longer have to play musical chairs with my morphs folder :)
Gah! Thank you :)
OK, I have a problem, I am either misunderstanding something or my setup on the PC is bonked. When I load the Genesis8 Female figure, 5 zillion or so morphs show up, all unknown products which isn't surprising, I like to use manual folders so if the database is bonked I'd never know.
I uncheck everything except the morphs I want to use as a mininal set, the script runs, fine, everything else has been renamed. But then when I load a specific product that uses disabled morphs, I get the message they can't be loaded, run the script, and the morphs don't show up to re-enable, the only ones that show up were the originally enabled ones.
Any idea what I am doing wrong, or what secret button I'm missing?
Just to be sure... you are running the Turbo Loader Manager? The Scene Config script would only show morphs in use. If you are running the Turbo Loader Manager, did you by accident clear the morph list and re-inspect the figure? That could give you the behavior you are seeing as inspecting the figure (after clearing) that only has the enabled morphs would only show those morphs. If you did, don't panic. Use the Reset Morph Directories button in options to turn everything back on and start over.
LOL. ~14K is your reduced set because of all the expression morphs?!?! You need to go to Expression Sets Anonymous!
Still it is an improvement. But I would make an expression morph set and disable all of them except when you want to use the expressions. Then you can use the Scene Config to save only the expressions in actual use for the scene.
That is good to hear!
That's probably exactly what I did, I knocked them out by loadiing a second time. I didn't panic anyway, I already found the reset button to rename them, and even if you didn't include that button I do remember how to maunally recursively change the extentions of files in directories relative to a root ;)
I am using two content directories, one for items installed by DIM, the other for products insalled by other sites, just in case a misbehaving product from another site bonks the gene pool which is more like a gene ocean at this point. Specificaly the Pacific.
I am glad you were able to recover quickly!
To be clear, it is safe to reinspect a figure and it will only ADD newly detected morphs to the current morph list. It's only if the list is cleared that things go bad
Large library huh? I stopped buying characters because it made DS so slow; I am thinking it is safe to expand my gene pool again now.
I have about 1100 G8F/G8.1F figures let alone libraries of body morphs of different varieties. My load time dropped from around 11 mins to shortly under 2 with the morph libraries and very few characters enabled.
I thought you might be using that API... I've been testing it and the other DzAssetMgr API since about the time I sent the query; the products API seems extremely unreliable. I've got variable results from it on the same system at different times.
The "Genesis 8 Starter Essentials" stuff is, perhaps, distracting because the files actually come from "Genesis 8 Female Starter Essentials", which is a product which shares its ID with the Male product and is, IMNSHO, extremely confusing.
I get the same result for your script as you do at present (after enabling DAZ Connect temporarily, for the first time, on this installation and a complete system reboot), however when I run TurboLoader on a G8F which I inserted from the "Genesis 8 Starter Essentials" pseudo-product in Smart Content/Products there is no "Genesis 8 Starter Essentials" entry in your "Name" list. The Curl is in HEAD again, along with the other eyelashes morphs. I was not logged in to DAZ Connect; my default is not to log in. The script identifies a number of products as disabled (curiously, as there are no tlOff files in my file system and I did just reboot) these products contain no morphs:
(I trust that PNG will show up correctly after I post this; please someone fix forum image insert, DAZ is meant to be about images!)
Here's some more info from script operations immediately after cancelling the TurboLoaded modal dialog:
Same as you still. Using the same 'relPath' (with or without the spurious leading /) with the other API gives more revealing information, first the script:
And the result of that:
Executing Script...
Found 1 assets
assetName PHMEyelashesCurl.dsf
productID 42071
productName Genesis 8 Starter Essentials
isCloudInstalled false
needsCloudInstall true
isInstsalled false
getAsLocalFile G:/DAZ 3D/Studio/Core/data/daz 3d/genesis 8/female/morphs/daz 3d/head/phmeyelashescurl.dsf
So even though it is clearly installed from DIM "isInstalled" is still false; I had observed this before while searching for assets by path; I have to search for assets that are !installed. Apparently the argument to the function and isInstalled itself just refers to DAZ Connect installation.
I suspect that might be the solution to the problem in TurboLoader. I have no way of reporting bugs to DAZ, YMMV, but I suggest using the findAssetsForFile forAPI, four times, (since the assets may or may not be hidden and they may or may not be installed in DAZ's opinion). It does also seem more logical to me; you have your hands on an asset, why trust an API that is clearly primarily aimed as DAZ Connect rather than the thing you have in your hands?
Nice! Thanks for sharing!
Interesting. And hopefully very helpful A lot of my coding for using the DS database (Smart Collections, Content Wizard, and even TL) is spelunking through the DS script API, trying this and trying that, as it is not well documented. I will investigate.
That's a great idea - I think when I'm ready to tackle it, I'll do just that and create multiple Scene Configs based on the type of expressions.I also have to review all of the helper morph packs I have and figure out what I can disable from there.
Hello River
already bought :-) but one question maybe already answered : how daz updates of morph are managed? Example : I change the extension of all morphs and Daz make an update of a character I assume it will create new .dsf files. How the tool will work ? will it appear in the list of active morphs again ? and if I hide it again , will it rewrite the exisitng .tlOff file ?
Thanks !
The ideal way would be to re-enable the morphs, install update, and then disable. However, the Turbo Loader Manager is set up to overwrite the existing .tlOff files. After installing an update/new content, you would load a G8 character, run Turbo Loader Manager again, and re-inspect the figure. TLM will find the updated/new morphs. For updated morphs, the list won't change. For new morphs, they will be added. Then execute to disable morphs again.
That's OK for me ! Time to test and thanks for the amazing work !
You're welcome! Please post results!
@jbowler :
First, thank you for the code study. It was very helpful.
Regarding that the image insert is broken; It is not, but it is just convoluted to get the image to show at full size as intended.
This is not the defacto - ONLY - way to insert a (near) full-size image, but the technique I have been using here for years :
1. Once you have finished your post writing and have attached your thumbnail (but not yet inserted image, which will just be the same thumbnail as you are getting in your posts) press the 'POST COMMENT' button.
2. Right-click on your thumbnail and open up image in new browser tab -- copy full url address (should not be pre-post thumbnail address).
3. Select 'Edit' post at top right of your post (I know, right? Why the hell do you need to edit your post to insert the image correctly -- If anyone can show this is not needed, is most welcomed -- I would love an easier way).
4. Create an insert point for where you want your image set at (place cursor) and select the 'image' tool in the comment toolbar.
5. Paste the url into the 'url' section, and for 'width' - change it to 800 pixels if over 800 pixels. Do not change 'height' -- Forums will auto-correct ratio. If very large image, repeat url paste on second tab (Link), and select an image view directive -- I set mine to open in a new window if users click on large image for full-view.
6. Press 'SAVE COMMENT' to finish your post with the image now in-line at wanted posted size, les anything past 800 px wide which requires click to open full size viewing.
jbowler image :
Hope this helps, and as I said, if anyone else wishing to give a simpler solution, please do...
I never post the comment first and then edit. At least for me, this works:
@RiverSoftArt :
Okay... Remove the "/thumbnails" from the url is the trick to not have to edit -- Thank you.
@jbowler :
Just follow what RiverSoftArt posted...
Here are my own timings. I run timing tests on a fresh instance of DAZ Studio and use the Script IDE to load a scene. The IDE outputs execution time in seconds/milliseconds and that is what is in the table here (the times are in seconds):
Times with an "empty" DSON cache are obtained by removing the cache (deleting the whole cache directory) before launching DS. The times for a "full" cache are the times from a subsequent invocation without the cache. This ensures that the results are independent of any stuff in the DSON cache.
The first set of tests are for the load of a single gensis 8 basic character, the script is:
(With <CMS dir> replaced by the root CMS directory where my
<em>Genesis 8 Female Starter Essentials</em>
are installed.) The "Full Content Directory Set" is my entire set of products from DAZ, Renderosity and other outlets. The "reduced" set is the set I normally use; it eliminates the vast majority of DAZ G8 characters that I own resulting in a more than ten times speed improvement for the load of a G8F (assuming the DSON cache has been built). The last result in that set is the result of removing all morphs except the eyelashes morphs from my "full" set. Obviously this is rather silly because I've lost the whole point of DAZ Studio by removing things like the basic face morphs, however it does demonstrate the base problem; I get an 80 times speed improvement!The second set of results are somewhat more useful. I loaded a real scene (the last one I was working on before doing this timing) which is fairly simple - a character sitting on a chair - but is fully posed and expression'ed. The scene was also dForced and I admit after TurboLoadering and then trying to reduce the morphs some more I had lost some morphs, perhaps the bend control morphs ([1], [2]) that I always have installed, this resulted in bad wardrobe poke-through. The final set of figures is the result of that tweaking; you can see there was no benefit from it.
There is an important caveat to my "scene" timings; because TurboLoader removes unused morphs in the "scene" script DAZ reported two missing products:
To get a timing figure I had to write a new scene after skipping the missing products (unfortunately DAZ doesn't tell me what files were missing in the dialog, but I have the log and they do all look spurious). So all the timing figures I quote were with the modified file written after the TurboLoader eliminated morphs had also been eliminated from the scene file. This isn't a bug in TurboLoader; the Genesis 8 Starter Essentials morphs that were needed are still included (the character expression is based on those morphs).
The result shows that TurboLoader is better than my content-directory-manager approach where the DSON cache has to be rebuilt; I get a 3x speed improvement, TurboLoader provides a 6x (almost 7x) improvement. In the case where the DSON cache is up-to-date TurboLoader comes out slightly ahead - a 5x speed improvement compared to a 4x for my reduced CMS approach.
I have yet to try a hybrid approach using TurboLoader to eliminate just the DAZ G8 characters that it correctly identifies as products. The problem with my approach is that I end up with a Smart Content view full of warning triangles for missing products. I'm not sure what TurboLoader causes to happen to Smart Content, but the ability to do a reduced per-scene configuration seems very attractive. It might be nice to have a script to load a scene after loading its reduced configuration; something of a major extension to TurboLoader because it would effectively take over the DAZ open functionality.
Sweet! Thank you so much for sharing!
IMO there should be a "reset" button to clear all the tlOff files. I tried running the "reset morph dir" command; it seemed to succeed but it actually didn't rename anything because I ran it in the parent directory of all my DAZ CMS installation directories. I had to select the CMS directories one-by-one to get a complete reset. I also found that if I wasn't cautious about saving the state I could, somehow, get into a situation where TurboLoader did not know about some of the tlOff files, even though I have only ever run it on G8F and G8F eyelashes. I think it was something to do with re-scanning a G8F after the first scan; this seemed to find extra, perhaps recently exposed, morphs.
Quite apart from DAZConnect I've also observed duplicated assets as a result of duplicated products; I examined one of the pose products I have and found it was in both the DAZ3D (CMS) store and LOCAL_USER. At that point I just said AAARGH and stopped.
Content Wizard: my test scene was based on a Thwaites character installed using Content Wizard, so I tried a couple of things to see why the body and head morph assets weren't mapping to a product. It seems possible that the issue is that the runtime support files list is empty; I checked using the studio Content DB Editor and there were no runtime support files listed for the CW generated product. The product was in LOCAL_USER but, IRC, CW asks for enough information to generate a separate CMS store (BTW, I'm just hypothesising based on the very very poorly documented Qt Script APIs...)
It's ok. I'm a compulsive obsessive computer programmer; I debug.
I wanted to have a reset that did not depend on TL not getting confused and forgettings, something that would work no matter what. So it is not as user friendly but more fool proof.
Not sure what you mean here.
Based on TL, I realize CW could be improved. I think that will have to wait for a CW follow-on though.