Forum Coordinators: RedPhantom
Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 29 7:57 am)
A targetGeom channel is designed to work as morph holder, that is it can contain deltas (the elements that comprise a morph target). A valueParm channel is usually used as a master channel in an ERC (Enhanced Remote Controle) relationship. A valueParm channel can't contain deltas, therefore it can't work as a morph channel. Most channel types can be used as master (or slave) channels in an ERC relationship, however the trackingScale for most channels is hard coded, the trackingScale for a valueParm channel can be set to any value desired, this makes it the best choice for a master channel in some circumstances.
That's good to know. I'm using a .cr2 with a readscript to load an existing .cr2 and inject channels. I've managed to inject the slaves in the body parts, and the masters in the BODY. I got the initial value of 1 of the master to work by using key kd 0 1, originally it was kd 10 and that didn't work. I want to have the slaves hidden, using hidden 1 doesn't cut it. Is there something else to set as in the case of the initial value?
Ok first the "keys" block. In a static pose you have one "k" line that contains two numbers, the first number is the frame number and will always be zero in a static pose. The second number is the paramiter value, essentialy this is the number that appears on the dial in the Poser interface, except that for a scale channel "1" on the "k" line will be represented by "100%" on the dial. Back to that first number after the "k", thats the frame number. If you have a look inside an annimation pose, like "sexy walk.pz2", in each channel you will see 30 k lines, starting with "k 0" and ending with "k 29" these lines relate to freme numbers in an animation. So if the channel is a scale channel (for example), then; k 0 1 k 1 1.5 k 2 0.5 reads as; in frame 0 set the scale to 100%, in frame 1 set the scale to 150%, 2 set the scale to 50%
Hiding the channels, I have never tried this in conjunction with readScript, I suspect it would work the same as with a straight delta injection pose, that is to say the "hidden 1" line should go directly under the closing brace for the delta section. I have never found much use for readScript (don't have V3), so can't give you the the exact syntax, I think it would depend on how you impliment the readScript. If you posted a section of your code I could probably show you where to slot it in.
I read your thread in Poser Technical about the hidden line under the deltas, that works.
I've made a few morphs that I'd like to distribute.
Injection into the original .cr2 seems to be the best way to do it.
With the readscript, I call the original .cr2, inject my morphs and extra channels. Since since several body parts are affected by the morphs, I'm injecting the ERC and hiding the body part dials. Control is through the BODY. I'm also setting it up to keep my settings if you restore the figure. I thought I might have issues with the dials reappearing if the character is saved back to the library and opened again, but I'm realizing that there is no need to save the character, just a pose.
Anyway, the reason for the readscript means I don't distribute a bulky .cr2, just the changes. They can keep the original morphs without having to transfer them over to my character.
If they have a modified character with additional morphs, they can just edit my file to point to that one. It's only one line in the beginning of the file.
Anywho, I'm pretty new to this sort of thing, but I got it doing what I want it to now.
Not that I truly understand much of it, but it works.
Here's what I got, the body part dials are hidden as well.
readScript ":Runtime:Libraries:character::.cr2"
actor BODY:1
{
channels
{
targetGeom X
{
name X
initValue 1
hidden 1
forceLimits 4
min -100000
max 100000
trackingScale 0.02
keys
{
static 0
k 0 1
}
interpStyleLocked 0
indexes 0
numbDeltas 0
deltas
{
}
hidden 1
}
}
}
This is a snip of the file I tried with a targetGeom instead of the valueParm, there aren't any deltas here, and there's probably more stuff here I don't need.
But it works.
Message edited on: 07/17/2004 16:02
Glad to hear you got it working. The second "hidden 1" line seems to be in the right place, but I don't think it's necessary in this instance. It seems to be reading the deltas that turns visibility back on for the dial, when there are no deltas I think the "hidden 1" statement can just go in the normal place.
"there's probably more stuff here I don't need". As you are just using this as a master channel you could leave out the bits marked in red, these are all default values and Poser will add them back in when the file is loaded, but you can save a tiny bit of disk space by choping them out.
targetGeom X
{
name X
initValue 1
hidden 1
forceLimits 4
min -100000
max 100000
trackingScale 0.02
keys
{
static 0
k 0 1
}
interpStyleLocked 0
indexes 0
numbDeltas 0
deltas
{
}
}
There again, if it ain't broke why fix it?
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.
So what's the major difference if both seem to get the job done?