Thu, Jan 30, 10:17 PM CST

Renderosity Forums / Poser Technical



Welcome to the Poser Technical Forum

Forum Moderators: Staff

Poser Technical F.A.Q (Last Updated: 2024 Dec 04 2:47 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: Life, the universe, and yrot.


lesbentley ( ) posted Sat, 06 July 2002 at 5:30 PM · edited Thu, 30 January 2025 at 10:12 PM

What does it all mean, life, the universe, and...well...joint channels?
Below is the Y rotation channel (Twist) from Posette's left thigh, with line numbers added. I understand bits of this, but there are yawning gaps in my knowledge, perhaps someone could fill a few in.

1 rotateY yrot
2 {
3 name GetStringRes(1028,2)
4 initValue 0.465075
5 hidden 0
6 forceLimits 0
7 min -40
8 max 40
9 trackingScale 1
10 keys
11 {
12 static 0
13 k 0 1.3152
14 }
15 interpStyleLocked 0
16 }

1= ? Internal name of channel, why two parts? What is the function of each part? What happens if either part is changed?).
2= Opening brace for this channels parameters.
3= "GetStringRes(1028,2)" I think this is some kind of call to a location within the RSR, Changing this to a text string displays the string as the title of the dial.
4= ? Don't know what this means, one might suspect that it determined the initial rotation for this channel, but changing this value to "2.465075" or "80. 465075" made no discernable difference when loading or manipulating the character.
5= Determines weather or not a parameter dial for this channel is sown in the pallet, 0 to show, 1 to hide dial.
6= Weather the "limits" are set on or off for this rotation.
7= Sets the extent of the minus value for rotation that can be achieved for this dial [channel?], if "Limits" are set "on", (does it also affect the minus value for rotation that that can be injected by a pose file?).
8= Same as 7 above, but for positive values of the dial.
9= Sets the increments that this channels dial will move in, e.g. with a value of "2.5" the dial will move in increments of "2.500".
10= Must relate in some way to the following four lines.
11= {
12= ? Don't know what this does.
13= ? This consists of two values, I don't know what the first "0" after the "k" does, but the second value determines the initial rotation for this channel when the character is loaded, this initial value does not show on the dial, however if this value is "injected" from a pose file, it will show on the dial.
14= }
15 ? this is a complete mystery, I couldn't see that changing this value to "1" made any difference.

16= Closing brace for this channels parameters.

So the lines that stand in need of further clarification are:
1, 4, 12, 15.


bloodsong ( ) posted Sat, 06 July 2002 at 6:25 PM

heyas; 1: hmmm... never contemplated that. 3: the getstringres is a lookup table, to give correct names to things in the various differnt language editions of poser. 4: initvalue is actually the value of the memorized state. the initial value is actually in the k 0 entry (see below). 12: i think there was a note on this in the secret cr2 manual pre-release pdf. ah, it's something to do with the animation properties being set to static. (non-animating?) 13: these are the keyframes and the value in each keyframe. so, at keyframe 0 (ie: the default) the value is 1.3152. 15: interpstylelocked 0 means it is a channel that deforms the mesh. a setting of 1 is a channel that changes geometry instead of deforming the mesh. if you want to read the official un-released cr2 manual, you can contact curious labs and request it. tell them the poser techs sent you ;)


Jaager ( ) posted Sat, 06 July 2002 at 8:24 PM
  1. is the name that other channels or other files use to find the channel. If it is an ERC master, change = not work If a pose file is supposed to adjust it, change = "Some data in this file does not apply...." 5. (1) does not work for morph channels if done from a CR2 - will hide if done from a pose file. 6. (4) means that the user cannot alter the option from within Poser 9. TS of 2.5 will jump 5-10-15-20 as you turn the dial. 10. is part of the formating - sometimes needed in a pose file.


Ajax ( ) posted Sun, 07 July 2002 at 12:02 AM

1.The first word establishes the dial type, the second word is it's internal name. 3. Nerd's site (I think) has a full list of the lookup table values and what each of them means. I use it a lot with a find replace to rename all of the "xRotate" dials to "bend" etc. By using the lookup table, you ensure that people with Poser in different languages will see the names in their own language. 4. To expand on what bloodsong said, when you use "restore figure" this is the value that the dial will be set to. Also, it sets the favoured IK angle, I believe.


View Ajax's Gallery - View Ajax's Freestuff - View Ajax's Store - Send Ajax a message


lesbentley ( ) posted Sun, 07 July 2002 at 1:20 AM

Bloodsong.
4: "initvalue is actually the value of the memorized state.", Bloodsong, I don't understand what you are saying here, what do you mean by "memorised state"? Changing the value of a channel, then saving the cr2 does not alter this value, and altering the value in a text editor does not seem to change anything.

12: A secret cr2 manual, WOW!!! Wait whilst I put my Commando gear on, blacken my face, and find my grappling irons.

15: I'm a bit lost on this point too, I had a look in the P4 Nude Man and found one place where the value of "interpStyleLocked" is "1", it's in the "geomChan hipGeom" channel, it seems to be something to do the blHipNoGen.obj, if this channel is un-hidden the dial makes the bit of the hip where the genitals fit disappear, but how this is actually working is beyond me. It's quite intriguing I've never come across "geomChan" before, can it do other things besides hide a bit of geometry? Where can I read up on it, is it in the cr2 manual you mention?

Jaager.
5: I never noticed that before, I can hide a joint channel by editing the cr2, but can only hide a morph channel from a pose file, strange! Also it was necessary to unhide the geomChan mentioned above by a pose file.

9: You say "9. TS of 2.5 will jump 5-10-15-20 as you turn the dial." Well I must revise my statement slightly. Setting a tracking scale for the yrot (Twist) channel of Posette's left thigh to "2.5" will defiantly result in the Twist dial moving in increments of "2.500" (it is necessary to click on the dial to see the exact value otherwise Poser rounds the value off to the nearest whole number)... Pause whilst I put on my pedantic hat, pencil a chevron on my shoulder and say in my haughtiest voice "And after all Posette's left thigh was the subject of my post". On the other hand if I change the tracking scale of the "targetGeom RoundFace" channel in Posette's head to 2.5, nothing seems to change the tracking scale is still 0.016176. I don't want to jump to a wrong conclusion, but perhaps joint channels interpret the TS literally, and morph channels do something else (though what I have no idea), all I can say with the confidence of empirical knowledge is that my statement is correct for Posette's left thigh.

Thank you Bloodsong, and Jaager, for yet again shining a bit of light into the darkness of the void.


Ajax ( ) posted Sun, 07 July 2002 at 5:24 AM
  1. the "memorised state" is a special group of settings that the figure keeps memorised for certain actions. Within Poser, you can set the memorised state by using "memorise figure" (under the edit menu I think). These are the settings that get restored when you use "Restore figure" under the same menu. They are also used as favoured IK angles. On some figures if you turn on IK in the legs and then yTrans the hip down, the knees bend backwards or sideways. On others the knees bend just right. Which way they go depends on the favoured IK angles, which depends on the memorised state. 15. The big application for this is "geometry switching". Anton's "Changing" series of products at DAZ are an example of this. When you turn the dial, the geometry is replaced by a different one. For example you could set up a figure with a bunch of different heads and as you turn the dial it could have, say, a wolf head then a lion head then a human head, all from different geometry files. You can find out more about it in the files section of the PoserTech Yahoo group.


View Ajax's Gallery - View Ajax's Freestuff - View Ajax's Store - Send Ajax a message


Jaager ( ) posted Sun, 07 July 2002 at 12:56 PM

TS - yes, I was describing the effect on targetGeom channels - and I think valueParms. If I set the TS of a character head morph to 0.5, the morph will jump from 0 to 1 and back as I turn the dial. For rotations, it needs to do what it is set to do, for targetGeom there seems to be an element of "We know better than you, what you want." to it. On rotations = with a JCJ group, I set the TS to 0.5 to get fine control, but the dial only shows whole numbers - it blinks, but does not show the increment. The male figures have two separate hip groups - with and aithout - The menu genitals switch determines which of the two.


lesbentley ( ) posted Sun, 07 July 2002 at 8:14 PM

Thank you all once more for taking the time and trouble to enlighten me a little bit. I feel like it's my birthday, Christmas, and New Years Eve, and Guy Forks Night, all rolled into one. I have learnt so very, very much from this thread.

Bloodsong, Ajax, the news about (4.) initValue, is wonderful, I can restore a figure - like a morphed and scaled Posette - to a predefined state, rather than just restoring her to plain old Posette, and I don't even have to hack the cr2, I can set it up with just a couple of clicks in the interface, wonderful. I have never seen an instance of any character doing that, and it's so simple when you know how.

Ajax, your explanation of (1.) the makeup of channel names is very interesting, and tends to suggest that it may be possible to have two channels controlling the same rotation, this could have interesting implications for ERC. I am trying to set up a walking motion using ERC, and if I could have two channels, one with the limits set on, and the other with them set off I think I could achieve a more realistic motion.

(15.) Geometry switching, I have to learn how to do that!

I'd also like to thank Jagger for a contribution in another thread, about code injection, another wonderful vista of possibilities opening up there. So much to learn and do, and only one lifetime to do it in!

As far as the tracking scale for targetGeom is concerned changing this value seems to have no effect at all, and, as this value varies from morph to morph, I can only assume (as I think Yatrus postulated) that this value is calculated dynamically "on the fly", what data Poser references to arrive at this seems a mystery, perhaps it is based on a set fraction of the maximum vertex offset in the morph? I have noticed that if a slave joint channel is controlled by a master that uses targetGeom (Akin's null morph system) as opposed to valueParm, then the effective tracking scale always seems to be 0.02, regardless of what it is set to in the master, or what the deltaAddDelta value is set to in the slave, changing the deltaAddDelta value will however affect the amount of mouse movement necessary to effect a given change. It's interesting to speculate that if poser is calculating the TS based on delta values in the morph, then it may be possible to change the tracking scale by putting a dummy delta in the master.


dke ( ) posted Sun, 14 July 2002 at 7:01 PM
  1. Hidden 0 or 1 You can make it hide direct in the cr2 for morph channels by moving this line down below the deltas. It seems like the hidden does hide it, but as soon as it hits the delta lines for a morph, then that forces it back on. So if you move the "Hidden ..." statment down below the morph delta list, then it will turn it off/hide it again. Not sure though if changing the order of these things is something that will become a 'bad' thing to do in some future version. Just my little two cents, since all the 'golden' answers are above :)


bloodsong ( ) posted Mon, 15 July 2002 at 1:30 PM

dke: no kidding!??!?!?!? oh! i have to try that! did you move it, or did you copy it down there?


dke ( ) posted Mon, 15 July 2002 at 4:26 PM

ahhhh.... wellll... :) Would appear I did it both ways :) Some places I moved it, and in some others I have it in both places. So I'm not to sure if the ones with two copies have a reason, or are just like that because I hadn't gotten around to removing the first one. :) I was mucking about with creating MOR/Pose files, and for the ones that were removing the Morph deltas, I wanted to hide the dial at the same time. So if you place a Hidden 1 line after the closing brackets for the deltas section, it will hide them. The one above doesn't seem to matter if you have a deltas section in the channel, which is why I came to the conclusion that the deltas section forces hidden to be false. Perhaps due to some internal code(s) that need it not to be hidden to load/build the morph delta list? Not sure what moving them will mean for future versions, or even the ProPack, but in general it doesn't seem to matter a lot what order things are in. Course, someone could point me out completely wrong on that issue, but... :)


Ajax ( ) posted Mon, 15 July 2002 at 7:27 PM

Wow. That's a very cool and interesting discovery. I'll have to try this out. Thanks dke.


View Ajax's Gallery - View Ajax's Freestuff - View Ajax's Store - Send Ajax a message


dke ( ) posted Mon, 15 July 2002 at 8:31 PM

Well here's some exact code from the MOR/PZ2 file for the Mohawk II addon. This kills and hides a morph channel. As I mentioned, I don't think you need the first "Hidden 1" line, and I think you could likely leave out the keys section as well and then you wouldn't be resetting the dial values. And probably the "interpStyleLocked 0" line too :) You can definately leave things out if you want. targetGeom RoundCrown { hidden 1 keys { static 0 k 0 0 } interpStyleLocked 0 indexes 0 numbDeltas 50000 deltas { } hidden 1 }


bloodsong ( ) posted Tue, 16 July 2002 at 4:59 PM

heyas; thanks, dke, but why didn't you tell anybody before!???! this is like, the poser discovery of the ... well, of the month, at least! :) wohoo!


dke ( ) posted Tue, 16 July 2002 at 5:22 PM

Cool! Do I get a ribbon :) or a popsicle or something :) Actually I'm just happy to have had something to say that didn't get an answer like "Well, duuhhh!" :) Haven't been at it as long as you expert types, so I usually just try to keep my head down and not make any blatantly rediculous comments. But I'll check my brain and see if there's anything else worthwhile in there I haven't mentioned :)


bloodsong ( ) posted Wed, 17 July 2002 at 4:17 PM

heyas; you get a cookie. :) ::gives dke a cookie:: oh yes, brycetech was going nuts with trying to hide morph dials a couple months ago. they just would NOT hide. but now we can! muahahahahahah! :)


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.