Fri, Nov 29, 7:04 AM CST

Renderosity Forums / Poser Technical



Welcome to the Poser Technical Forum

Forum Moderators: Staff

Poser Technical F.A.Q (Last Updated: 2024 Nov 13 12:50 am)

Welcome to the Poser Technical Forum.

Where computer nerds can Pull out their slide rules and not get laughed at. Pocket protectors are not required. ;-)

This is the place you come to ask questions and share new ideas about using the internal file structure of Poser to push the program past it's normal limits.

New users are encouraged to read the FAQ sections here and on the Poser forum before asking questions.



Checkout the Renderosity MarketPlace - Your source for digital art content!



Subject: CR2 Editing Tip: Embedding New Morphs inside Pose Files


DraX ( ) posted Mon, 03 September 2001 at 2:51 PM · edited Mon, 25 November 2024 at 6:49 PM

Hi, guys, not sure if you've become aware of this yet, but it is possible to embed a new morph into a Pose file. It's actually easier than it sounds. First off, you have to have a cr2 file or pz3 file that contains the morph you want.... let's assume it's for the figure's head. In this example, the fiure is Michael, and the character is my upcoming Apocalypse character for MassiveMike. First step is to strip all information from the cr2 file (make sure you backed it up), with exception of the second listing for the head. Your cr2 (in a text editor) should now look something like this: version { number 4.2 } actor head:1 { name GetStringRes(1024,2) [More Miscellaneous Information....] The next step is to remove everything from the head except for the morph itself. You'll find the morph in Channels, under TargetGeom Apocalypse (replace apocalypse with the name of your morph). Remove anything under channel that is not part of the morph you are trying to use. You should be left with the following (leave any and ALL parameters of this morph intact) actor head:1 { name GetStringRes(1024,2) on [More Info continues] channels { TargetGeom Apocalypse { name Apocalypse [More Info continues] } } } Now, what need to do here, is simply change the name of the TargetGeom to soemthing that already exists in the Michael cr2 file, in this case, I'm going to use TargetGeom Old. We change the line that reads TargetGeom Apocalypse to TargetGeom Old. The line below it, which reads "name Apocalypse" is left intact. This is where Poser gets the name it displays on the parameter dials. Save this file as a pz2 pose file in your libraries, open Poser, load up Michael, and apply your morph. You will notice that where it once said "Old" in the parameter dials, it now says "Apocalypse" (or whatever you named your morph). When this dial is set at 1, your morph will be applied. To ensure that it will be fully applied everytime and stay that way, I usually set the min and max (under the setting for the TargetGeom) to 1, and forcelimits to 1, but you don't have to do it that way. If you want to hide the morph dials on the figure that you won't be using, try soemthing like this: targetGeom AfAmerHead { hidden 1 forceLimits 1 min 0 max 0 } Add that channel for each morph that you which to lock to zero and hide from the user, replacing AfAmerHead with the name of the morph (helps to look at 2 cr2 file side by side) Remember, kiddies, this technique with will work on ANY figure, just set the name of the TargetGeom to whatever Morph you want to replace/hide/lock. (and of course, this will NOT allow you to use a Michael Morph on Dork, or a Vicki morph on Mike, and so on, and so forth.)


Wizzard ( ) posted Mon, 03 September 2001 at 11:05 PM

good stuff Drax! it gets more and more amazing what can be done with the pz2 files 8 ) THank ye muchly Cheers


wyrwulf ( ) posted Mon, 03 September 2001 at 11:46 PM

Great find, Drax. Thanks for posting the info.


DraX ( ) posted Tue, 04 September 2001 at 12:20 AM

No problem, basically, you can use a pose file to do anything short of adding conforming clothing or props... it can be used to change the parameters of any part of the currently selected object. In the case of the morphs, it's not so much adding a new morph, but changing the parameters and deltas of an existing one


DraX ( ) posted Tue, 04 September 2001 at 3:42 PM

Since there's been some confusion (see the related thread in the Poser Forum), let me refine one of the steps... You CANNOT embed an NEW morph into a pose using this method. You can ONLY replace the deltas for existing morphs (as well as parameters like name, etc.) using this method. actor head:1 { name GetStringRes(1024,2) on [More Info continues] channels { TargetGeom Apocalypse { name Apocalypse [More Info continues] } } } The value of TargetGeom MUST BE CHANGED TO ONE THAT ALREADY EXISTS. Since the figure in question is Michael, I'm going to replace the Old Morph with the Apocalypse Morph. So, below, where it reads: TargetGeom Apocalypse { name Apocalypse I will change it to read: TargetGeom Old { name Apocalypse


Jim Burton ( ) posted Tue, 04 September 2001 at 4:26 PM

Well, I hate to say it, but if you have to give up one morph to add another it isn't going to be super useful, we all need dozens of them little dials to turn, gotta morph, gotta morph. My C isn't up to it, but what we really need is some kind of morph exchanger in the public domain, that would let you pull a fitted morph out of a CR2 save it to a file which you could send to someone who would also have th eprogram to put it back in his similar CR2. Not a object file, just the differences that Poser uses. It is easy enough to do that manually, or with CR2 Editor (or maybe with morph manager, which I've never used), if you have both CR2s, but it would be nice to automate the process.


DraX ( ) posted Tue, 04 September 2001 at 4:59 PM

Well, let's say the morph is for a specific character... In this case, Apocalypse.... There is no need for you to change the facial attributes of this character once you have him installed, he gets used as-is. It's also a character based upon MassiveMike, so I cannot redistribute the cr2. This means that EVERYTHING has to be done from pose and prop files... it simply makes for easier installation of the character. I can think of several other characters this is useful for. True, it does become absolutely useless for morphs that you simply want to install onto a figure and use freely. I figured the most useful aspect of this is for single characters which are fully made and not designed to be changed... just pose-and-render..


Grey_cat ( ) posted Wed, 05 September 2001 at 12:17 AM

As far as I can tell there is no reason why the Poser program can't add dials automaticlly via a menu. You do that now manually. The problem is that it would have to done in the Poser program., and the only ones that can change that are at CL. When you edit the data file (obj file) or a string file like the cr2 file you do it outside the program, but adding a dial is done when you're in the program. Writing a C or VB program won't work.


DraX ( ) posted Wed, 05 September 2001 at 4:35 AM

Grey_Cat... the parameter dials are automatically added for those already written in the cr2 file.... the reason one cannot use a pose file to add these, is that pose file simply CHANGE parameters, not add new ones.


Jim Burton ( ) posted Wed, 05 September 2001 at 7:17 AM

I was thinking of something like a little utility that would work outside Poser, it would let you select the morphs you wanted to extract and then save them to a file along with the information for which body part they fit. You would then run the program again to fit th emorphs to another figure, all you should have to do is tell it which one. It should count vertices on th epart, just like Poser does, to keep you from adding morphs to the wrong figure. The dial would then be there when you opened the figure in Poser, just like DraX said. You could probably do this with a MS Word script, incidently, but not everybody has Word. Anyway, Drax, as I read this, you can change the name of the new morph, right? So if I put some empty morphs in Supermodel Vickie's CR2 (reserved1, reserved2, reserved3, etc.) I could then supply an Pose to fit the morph with its correct name? That is an intresting idea.


DraX ( ) posted Wed, 05 September 2001 at 1:46 PM

In theory, yes, you could, Jim... You could have the morphs setup as such (not all info has been included): TargetGeom Reserved1 { name Reserved1 ........ } And then in the pose file, have it like this: TargetGeom Reserved1 { name SupermodelMorph ........ } The possibilities are endless, so long as you supply the reserved morphs in the cr2. Hell, you could even set the original attributes of the reserved morphs to hidden, and unhide them when the pose is applied.


Rio ( ) posted Tue, 14 January 2003 at 4:49 PM

wow! how incredibly awesome of you to share this! thanks!!!! would make a good article for the magazine too! hint hint ;) really thanks!! ;) Rio


lesbentley ( ) posted Wed, 04 February 2004 at 5:52 AM

Nearly 3 years on. So this is where it all started, it's like finding the Dead Sea Scrolls. In post #6 Jim Burton (bless his socks) said: "Well, I hate to say it, but if you have to give up one morph to add another it isn't going to be super useful..." I wonder if the people with Victoria 3 would agree with him?


ynsaen ( ) posted Mon, 14 June 2004 at 8:12 PM

les -- gotta say thinks to you for pulling this out of the archives. I've been trying to find this one myself becuase I just knew it couldna been the the way it seemed originally.... bless YOU for this one...

thou and I, my friend, can, in the most flunkey world, make, each of us, one non-flunkey, one hero, if we like: that will be two heroes to begin with. (Carlyle)


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.