Wed, Feb 12, 9:09 AM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2025 Feb 11 3:50 am)



Subject: New Utility Idea: Donor Files


bloodsong ( ) posted Fri, 25 October 2002 at 5:43 PM · edited Wed, 12 February 2025 at 9:00 AM

heyas; you know how you can strip out a cr2 and put in your new morphs into it, and distribute that, and then people can use morph manager to insert the morphs into their figure files? okay, well, we need a universal utility that will do that sort of thing, but with... well, anything. so people can create donor files that can be infused into existing files. why? i have sitting here, in my poser libraries, some donor files that have slaving code for the p4 and millenium male and female fingers. they do things like curlindex, curlmid, curlring, curlpinky, curl1st2, curlmid2, curl2nd2, etc. like grasp dials, but more of them! now how can i easily distribute these things? i can't. i can't insert them into an m2 cr2 and distribute that, for obvious reasons. i could distribute the code snippets and let people insert them into their cr2's by hand (via text or cr2 editor). who wants to do that? a lot of people don't want to edit cr2 files; i don't blame ya. suppose you got twelve victoria characters, you want to do that for each of em? bleh! what if we want to do new joint setups for the millenium figures. basically, you can't. you can create the new cr2, but you have to strip the morphs out. and who wants to use the new joints if you can't use the morphs. well, i suppose you can use morph manager to cart them all over. what if i just want to insert one master control dial that lsaves the torso and arm geometry swaps to make it easy to geom-swap the shirt of the mcfs and such? wouldn't it be easier to just have the new dial entries and be able to infuse them into existing files? or am i nuts?? the utility would basically have to read and compare the two files, the donor cr2 (or pp2, etc) and the recipient. actually, it would work better/faster if it just read the parts in the donor and find the matching parts in the recipient. (ie: my new grasping suite would just have hand/finger parts for a smaller file.) then it would add/change anything that is new in the donor file, in the recipient. can it be done with python? heck if i know! i'm not a programmer!


gryffnn ( ) posted Fri, 25 October 2002 at 6:31 PM

Nope, definitely not nuts. Donor files are a really great invention - kind of a surprise that nobody uses them much. I've been meaning to write Dan Wilmes and ask if his next version of CR2Edit can include making Donor Poses. After reading some things Jaager posted, I wrote a how-to for my P4FemMagicTrio pack - it's really not hard to hack the files by hand, but gets tedious. I'm betting Dan could turn it into a button push!


Jaager ( ) posted Fri, 25 October 2002 at 7:03 PM

I think it will take much more than a utility. There is real resistence to the whole process. MM4 will generate the stripped file - quickly - provided that the cr2 either has its extension changed to *.pp2 or a pp2 is opened first and replaced with the cr2 (this lets MM4 get at all of the channels as well as the actor BODY section. But you still must get rid of the geometry calls and the actors and materials sections by hand. Once you have the stripped cr2/pp2, it is easy to copy over a morph and have it be a donor pose. The problem with donor files = the host cr2 must have an existing targetGeom with an identical name to receive the replacement deltas. Now, for hundreds of faces, or body shapes, this is not a problem because they can all use the same targetGeom in the cr2. You can only use one at a time anyway. If you are talking about morphs that can be used together - shape/construction morphs or expressions, there needs to be a host targetGeom for each- if you intend to have more than one present at a time. This means that you have to copy some version of the targetGeoms into the CR2. If you are going to copy 20 host targetGeoms that are empty to accept the content of your donor poses, you may has well just copy the morphs themselves and save the extra step. The clothing morph packs for V2/M2 carry a huge number of morphs, but once you define the clothing shape for each of your characters, these would be prime candidates for use in a stripped version of each clothing cr2 - with one host targetGeom in each group and a donor pose for each character. Yes, it means that there can be a large number of files in the pose library, but, it keeps those morphs from eating up RAM if they are present in the CR2 that is in use and the morphs are not needed. The joint changes can be done with a pose file - no morphs are affected - it is just polite to also have a JNTpose that restores the default values to go with it. IssacNewton redid the JP for his Gymnast character for extreme poses - but this means that moderate poses may pay a price. I think the POS file that sets the extreme pose could also contain JP that work better with it. But then, every POS file must either have JP, including those that are default, or a user must know to use a JNTpose that restores the default when it is appropriate.


markdc ( ) posted Fri, 25 October 2002 at 10:29 PM

Attached Link: http://poserutils.tripod.com

Already one on my site.


wyrwulf ( ) posted Fri, 25 October 2002 at 10:33 PM

The Cr2Donor.zip link is 404


markdc ( ) posted Fri, 25 October 2002 at 11:05 PM

Attached Link: http://poserutils.tripod.com/index.html

Fixed it.


wyrwulf ( ) posted Fri, 25 October 2002 at 11:23 PM

Thanks.


bloodsong ( ) posted Sat, 26 October 2002 at 10:54 AM

er, guys... that's not what i'm talking about. not donor POSE files. those insert the morphs into special morph slots or whatever. i'm talking total code insertion here. okay? in my finger example: my file has: hand: 1fingergrasp, 2fingergrasp, etc etc. finger bits: rotation slave channels pointing to grasp dials. standard file has: (besides all the rest of the entire figure) hand: no 1fingergrasp, etc. finger bits: rotations not slaved to anything. and so i want to press the big button and have my standard file come out as: the whole figure hand: now has the master grasp dials finger bits: now are slaved to the master grasp dials. see?


Jaager ( ) posted Sat, 26 October 2002 at 3:44 PM

A pose file will insert a complete material, I have read, even an unattributed one like the V2P4 lashes mistake. You are wishing to insert an entire channel? The content is not important for this function, but I doubt that it is possible. If it was, we could insert a completely new morph using a pose file. I would think you would have to do the reverse: Hack your new CR2 with a text editor and make a pose file for each of your replicants to provide each of their variables, to use on this. At least that way, you can experiment with your changes and still get your characters back. It is a lot of work up front, but it could reduce your need for stock cr2 to one. The load would be shifted to the pose library, but the content of these files is generally only the unique stuff and thus a bit smaller. As a pz2, MM4 will copy over new channels that are not morphs. Although it will batch delete morphs and/or all other channels with a single click, it will only batch copy channels at the group level. You could make your changes and pare a copy of the CR2 down to just what is new, change that to pz2 and batch copy those channels group by group. Not a single click by any means, especially if you are dealing with digits. I think your question is: will a python script add in entirely new channels (and actors?) ? I have no idea.


lesbentley ( ) posted Sat, 26 October 2002 at 7:43 PM

You should be able to do it as a pose file applied to the character in the Poser interface. Having said that I tried to do an example and it didn't work :( but that was probably a braces thing, I never can get them right.


lesbentley ( ) posted Sat, 26 October 2002 at 8:54 PM

OK, perhaps the reason it didn't work is because I spent the last 3 hours in the pub.

Here is an example that does work. This just slaves the rotateZ channels in the right index finger (Posette or Victoria). You have to create a channel to inject the pose into, by Spawn Morph target, in the case of the pz2 below the morph target must be called "Blank01".

Whilst this file only slaves the rotateZ channels, it should in theory be possible to change (or add) any information in the joint channels via a pz2 (or hd2) file. The only thing I know of that you cant do to a channel via a pz2 is create a new one.

Am I on the right track here? Is this what you are trying to do?

{
version
{
number
}

actor rHand
{
channels
{

targetGeom Blank01
{
name CurveIndex
initValue 0
hidden 0
forceLimits 0
min -100000
max 100000
trackingScale 0.004
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}

}
}
actor rIndex1
{
channels
{
rotateZ zrot
{
{
}
valueOpDeltaAdd
Figure
rHand:1
Blank01
deltaAddDelta 20.000000
}

}

}

actor rIndex2
{
channels
{
rotateZ zrot
{
{
}
valueOpDeltaAdd
Figure
rHand:1
Blank01
deltaAddDelta 20.000000
}

}

}

actor rIndex3
{
channels
{
rotateZ zrot
{
{
}
valueOpDeltaAdd
Figure
rHand:1
Blank01
deltaAddDelta 20.000000
}

}

}

figure
{
}
}


bloodsong ( ) posted Sun, 27 October 2002 at 4:22 PM

heyas; you guys are going the long, hard, arduous way around this. i think. i don't want to do pose files, i want one donor file that injects the new genetics and then you throw it away. i don't want to do it IN poser, i don't see any reason to do it that way. i'm just asking for a text-compare deal that can insert the new/different text from one file into another. no, not even a whole channel; the slave code is just 4 or 5 lines (well, each). les: yes, that is basically what i am trying to do. except i want the control dial injected in there, as well. i'm thinking of end-users who might (no offense) be poser weenies, and what if they spawn a morph target and give it the wrong name and then my injected slaves don't work?


lesbentley ( ) posted Sun, 27 October 2002 at 8:44 PM

Bloodsong, I get your point, but until someone comes up with that utility you mention a pose file seems the only practicable way. Even then, is the utility going to be easier to use than spawning a few MT's?

Perhaps there is one other way, use a macro in a word processing app to alter the cr2.

What I have started to do to some of my characters recently is to add blank targetGeom channels to each body part, 6 to the head, chest, hip, and BODY, 3 to every other part (guess I should have made it 6 in the hands too), that way it's easy to add new morphs or master channels via a pose file. I call my channels "targetGeom Blank01" etc.

This makes things easier for me, but it doesn't help your "poser weenies" unless they have an easy way to add blank channels.

One final thought would be to have a version of Victoria2 etc, with extra blank channels, use RTEncoder to encode it so that the recipient would have to already own the cr2 to use it, and distribute that. If you put blank channels in all body parts then it could be reused for most code injection by any one. The thought of doing it crossed my mind, but I don't think it would catch on.


CyberStretch ( ) posted Mon, 28 October 2002 at 6:08 PM

Attached Link: Freewarehome: File Difference Analysis

It seems what blood is looking for is a file difference type function that would compare one CR2 [donor] to another CR2 [recipient] for differences and give the option to "copy" certain differences from the donor to the recipient? There are a quite a few utilities that will compare two files and highlight the differences and, on some, synchronize the two files. I wonder if you can rename a CR2 to TXT, use the utility, and rename the file back to a CR2? Perhaps, some of these utilities would be able to read the CR2s as is without the renaming? BTW, I did a Google search for "file difference utility" (without quotes) to find the supplied link. There were quite a few hits, but of the first few, this looked promising.


lesbentley ( ) posted Mon, 28 October 2002 at 6:52 PM

CyberStretch. Yes, renaming the files should not cause a problem.


CyberStretch ( ) posted Mon, 28 October 2002 at 7:07 PM

Thanks, les. I was unsure, but I thought I had done it in the past for certain occasions. I guess I could have tried it myself to find out though. ;0)


bloodsong ( ) posted Tue, 29 October 2002 at 2:27 PM

heyas; i know, i'm being stubborn and pig-headed about the way i think i want to do it. (well, that plus i want it to be eeeeeeeeeeeeeeeeeeasy! ;D ) i think the problem with the text compare things... they're not smart. could they really tell where my lone lhand entry goes, compared to a full cr2?


lesbentley ( ) posted Wed, 30 October 2002 at 6:07 AM

No not stubborn, I think your idea for a utility is a good one, only I'm not going to hold my breath waiting for someone to write it.


Privacy Notice

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.