Daz Scripting & Integration with external app - for use in a possible Vendor Product [SOLVED]
Hello all,
I have an idea for a script-based product and have begun working on a proof of concept. If the POC pans out I would eventually like to become a vendor and try my luck selling it on the daz store. With that in mind I've started reading through the script documentation for samples, object references, etc. but have a few basic questions that I think will shape my next steps.
Part I - scripting questions for vendor products
1) I may not have found it yet, but is there a location in the daz installation files or the daz website with info on what is required for a vendor based script product? For instance, additional references for how to package it, minimum script requirements, best practices, etc.?
2) All the scripts I have bought off the store install to "My Daz Install dir \ My Daz Default Library \ Scripts \ Vendor and/or Product \" with the .dsa files there. Is this the correct place to assume I should be building to? I also see a scripts folder under "My Daz Install dir \ DazStudio4 \ scripts".
3) I'm a former java/javacript UI coder, but it's been many years so I decided to try using the QT Designer that came with Daz Studio to make the UI interface. Is there any issue making a vendor product using a QT Designer made UI? Or is the tool there just for personal use-only creations?
4) If the answer to #3 is that I can use a QT Designer UI file is there a default directory I should store it to? I didn't think including it in a sub-folder under the \Scripts\ folders would be good practice so I'm wondering if a location you can't easily reach from the app such as "My Daz Install dir \ My Daz Default Library \ data \ Vendor Name \ Product Name \ UI \ " would be better?
5) Depending on #4, is there a built in method for finding the default library path? All the DzApp.getXXXPath() don't seem to get me where I expect them to go to...
Part 2 - Integration with an external app?
Part of the functionality I would like to automate is the image manipulation of post-rendered files. I don't yet see anything in the script documentation that would let me do this (but I may not have found it yet). My goal is to keep the user inside Daz Studio to do the post-render work as part of the value-add of my vendor script.
For this i'm not sure if there is a left-turn / right-turn requirement. If I can't directly do it via script calls, do I HAVE to try to make a plugin? I have not researched plugins at all so that may be a dumb question lol.
I made an assumption from seeing DzProcess() that my script should be able to call an external program and pass arguments. As a specific example, I have installed the latest GraphicMagick on my pc and accomplished what I would like my script to do using it's command line options. Is this a valid approach for a vendor product - forcing users to go install another non-daz product?
Depending on the answers above, if I can use GraphicMagick to do the actual work, it seems from their license page I can use and package their app freely. Could I include their app within my vendor product instead of some kind of 'this script requires the latest installation of GraphicMagick' disclaimer?
Thanks again for taking the time to read through these and any help or feedback you can provide!
Comments
Not that I am aware of, beyond the general notes on coding standards in the scripting docs.
/Scripts/Some folder is the usual location for scripts,yes.
I'm not sure on this - I'm also not sure how much advantage there is in using the tool rather than coding the UI directly
What do you mean by the default library path?
---------------------
You might want to look at, and possibly move this thread to by editing the first post, the scripting forum https://www.daz3d.com/forums/categories/daz-script-developer-discussion
Thanks Richard for the feedback. I didn't see the specific scripting forum before posting this. How do I move this thread over there? [Nevermind, found it!]
For #3 I guess my question back would be what is the purpose for including QT Desginer with Daz Studio? I just kind of assumed it was there for the UI creation for our scripts. For example, my son can make a WIX website in 10 minutes that would have taken me days to code the HTML and manipulate the DOM via javascript a decade ago. So when I read about it in another post I thought this was the way to go and I just needed to code the functional parts like getting entered data in text boxes, button push actions, etc. Is there an advantage of NOT using it?
For #4 and 5 - sorry I may have my terminology mixed. I guess the real question I was trying to ask is, if I ended up using a QT Designer .ui file, where would be the best location/directory/folder to put it so that my script file can find it to load it? This from the perspective of assuming one day I would try to put this out on the store as a product.
I ask because it seems like vendors encrypt their script files, but the .ui file is plain text. And I didn't think it would be best to have it sitting in the /Script/VendorName/Product set of folders where it would show up in the Content Library Pane listing of files.
Thanks again for your answers and help!
You may be interested in this: https://www.daz3d.com/dialog-design
Thanks for pointing this out, it looks like this will provide the missing link from my QT UI dialog to Daz Studio objects without the need to do all the internal wiring myself, and I can just focus on the functionality/logic code.
Plus Memorial 50% off sale = bought!