Forum Coordinators: RedPhantom
Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 14 12:36 pm)
https://helpdaz.zendesk.com/entries/124136-distributing-add-on-products-that-use-inj-rem-pose-files
It's for V3, but I'm thinking the same rules would apply to V4?
"Because Victoria 3 CR2s are only distributable without DAZ morphs included (even derivative morphs), character add-on creators must rely on the end user to own and inject these morphs themselves, or create a readScript file to inject the morph(s) for them. [See methods of distribution below]DAZ maintains a policy that allows the distribution of most products' CR2 files in order to facilitate the creation of complimentary products by 3rd party developers, as described above"
It sounds as though as long as the .cr2 doesn't contain any delta/morph information, I should be good? I'm looking at the default Victoria 4.2.cr2 (No morphs injected) and I don't see anything except parameters and readscripts, nothing that can be used to reproduce the mesh.
You ought to ask DAZ support directly, don't rely on forum people for answers on something that serious.
PMD files can add new targetGeom channels. To avoid including copyrighted morphs, the PMD should be generated from a figure that has been stripped of all morphs, except the ones you made yourself. Nerd3D has a tutorial "Poser 6 PMD Injection".
Another option might be to use RTEncoder.
The Gen 4 EXP system was designed so you don't have to distribute the .CR2's, by adding the channels into the EXP system and running the updater the default DAZ .cr2's will show the new channels once loaded into Poser/DS.
Sadly getting the channels into the EXP system is a major PITA if you don't have the DS Advanced Figure Setup Tools, as it has an exporter.
It is possible to do it by hand but it is a lot of work (especially if it's an FBM) as I've done it for a couple of custom face morphs.
Quote - But with that approach you wouldn't be able to add the morphs to an existing character, only the default cr2, right?
Yes, that's right. Only the default cr2 is affected by the update. Strictly speaking it is not the cr2 that gets updated, it's a some pz2 files. The default cr2 has 'readScript' lines which 'call' the pz2 files. However when you save the default figure back to the library from the Poser interface, those readScript lines have been been replace by the actual channels that were read in from the 'called' pz2 files. A copy (saved from Poser) of the original figure has all the channels from all the previous updates, but does not itself get affected by any subsequent updates, the reason it does not get updated is because it does not contain any of the readScript lines.
You could edit the readScript back into any cr2, and it would then get updated like the original, but that's not something the average end user would want to do. Perhaps a Python script could be written to add the necessary readScript to the cr2, but Python is not my field.
There is another method to add channels that is almost the answer, and with a bit of tweaking could possibly become the answer.
Cage wrote a py script (on my request), that acts on a figure in Poser. You select the figure, then run the script. The script gives you a File Open dialogue where you browse for the pz2 that you want to apply, the script checks to see if all of the targetGeom (morph) channels in the pz2 exist in the figure, if any of the channels in the pz2 do not exist in the figure the script creates them. The script only creates blank channels (no deltas). After running the script, you still need to apply the pose to the figure to inject the deltas and any other settings.
This is great, but perhaps still a bit clunky for the average end user. If the script can be modified to also apply the pz2, I think that would be an acceptable solution.
I will write to Cage and ask. I have hung back so far, because I am always begging favours from Cage, and don't want to be a pest, but I think this is something really worth while, so I will ask.
Thanks les, that does sound like the way to go. I'm quite confortable with python scripts and even wrote a few simple tasks myself, but you are right, some users might find the solution difficult to follow. Let me know how it goes, in any case, the script you mention in it's current state sounds quite good.
Quote - Les to the rescue.
More like Cage to the rescue.
I have received a reply from Cage. Seems that I caught him at a buissy time, when he is just about to move house. Never the less, he has kindly said that he will try to make the modifications I requested, before the move. If not it may be a few weeks until he gets sorted out.
It really amazes me what Cage can do with Python, he can make it jump through hoops like no one else I know.
http://www.the.cage.page.phantom3d.net/morph_slot_maker2a.py
Cage has come good with the py script I asked for. Cage is my Poser Hero!
The script is hot off the press, and I have only had time for a little testing in P6, so it should be considered a beta version until it has been tried in other versions of Poser. I feel fairly confidant that it is sound, but one can never be completely sure until something has been tested in all circumstances.
The purpose of the script is to work on a figure loaded in Poser, and apply a Delta Injection Pose, and if that pose contains new channels not already in the figure, the script adds those new channels to the figure.
It works like this. Select the figure in Poser, run the script, and click the Run button that pops up. You will be presented with a File Open dialogue. Browse to and select the pz2 that you want to apply, click the Open button. The script will run for a few seconds and terminate. Once the script's icon disappears from the task bar, the job is finished. If you want, you can save the figure to the library so that you don't need to run the script the next time you load the figure.
I asked Cage if it was OK to redistribute the script.
Me: "Also would it be OK if I distribute the file, with full credit to you or course."
Cage: "If it seems to work and it could be useful to people, I'd love to have it out their for their use."
So you can include the script with poses you distribute, but please give full and prominent credit to Cage in the readme file.
I also intend to package the script in a self installing zip, so that if you prefer, you can give a link to the download instead of including the script in a distribution. I will try to get the script zipped and posted with instructions by this Sunday.
With respect to adding new channels, the script only adds new targetGeom (morph) channels, not new valueParm (FBM) channels. However P6 and above provide a way to add valueParm channels via the pose file. You can use 'createFullBodyMorph' in the pz2, I will say more about this in a subsequent post. It is posible that Cage may do an updated version of the script that obviates the need to use 'createFullBodyMorph', but we will have to wait and see.
The script applies the whole pz2, not just morph data, so you should be able to include ERC, joint rotations, maps and material settings, everything that you could normally apply via a pose file.
If you have any problems what so ever with the script please let me know.
Finally I'd like to say a big thanks to Cage for providing this script. I know this will make life much easier for me, and I'm sure the same goes for many others.
I don't know Cage, but he seems very generous indeed.
It runs fine in Poser 2010, and it adds the channels and morphs the figure, but the morph is not what it should be.It's mangled in some areas.
I'm not sure what the problem is as I have zero python experience.
Can you share the first version of the script that just adds the blank channels please? I'd like to see if that would work any different. :)
Attached Link: Old version - morph_slot_maker1g.py
> Quote - Can you share the first version of the script that just adds the blank channels please? I'd like to see if that would work any different. :)As requested, linked above is the earlier version that just adds the blank channels, and does not apply the pz2.
Xameva,
Although I have posted the earlier version, as requested, I find it hard to imagine that the script itself could be responsible for mangled morphs. I assume that the part of the script that applies the pz2, does just that, causes Poser to read the pz2, and should not (in my understanding) have any effect on the deltas, other than to cause Poser to read them as part of the pz2 file. However it would be good to get to the bottom of this, and discover what is causing the problem. Any extra information you can provide would be appreciated.
The best I could do is send you the poses and the original standalone .py script. I didn't make the morphs or the custom channel, so I don't have much idea of the inner workings. I'm doing this for my friend Meipe, who created this product: http://www.renderosity.com/mod/bcs/index.php?ViewProduct=86953
For his morphs the customer has to download and install python, then bring the Victoria .cr2 into the folder with his .py script, then double click the script to create a new, modified .cr2. I'm trying to figure out a way to make it a lot easier. :)
He explained why it needs the custom channel (and not use the community channels) but I don't entirely understand. English isn't his first language. Something like it needs to be at the very top, above the community channels, JCMs, etc. Maybe the script is rearranging the area where his custom morph channel goes?
The placement of the targetGeom channels in the channel stack is important, they should go above the any of the joint parameter, Offset, or transform channels for correct operation. In my tests in P6 the script has so far always created the channels in the correct location in the channel stack. As to the order of the targetGeom channels amongst themselves, I don't know how that is determined, but it is usually not relevant. If these are joint correction poses, I guess it is possible that the morphs are meant to go in none standard places in the channel stack. If that's the case, then I'm afraid you are sunk, because the script is designed to avoid that.
As promised, if somewhat late, I have packaged Cage's "morph_slot_maker2a.py" in a zip file for easy installation. The zip also contains readme file and a pose file to start the script, as an alternative to starting it from the Python Scripts menu. The file is hosted at Antonia's Free Site.
This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.
Hi,
I was wondering if you're allowed to distribute the V4 / M4 .cr2 (default, no morphs)? I'm adding a custom morph channel to it (not a community channel, a whole new channel), and the other option would be to have the user I give it to take their own V4 .cr2, and run a script that creates a new .cr2 with the custom channel.
It'd be much easier if I could just give that new .cr2 so they wouldn't have to do that. But if it's not allowed then I'll have to do it that way. :)
Thanks!!