Forum: Poser Technical
Subject: The Stupid Poser Hack Question List
_dodger opened this issue on Dec 19, 2002 ยท 50 posts
VK posted Fri, 20 December 2002 at 7:53 AM
- Poser uses the offsetA and offsetB channels to temporarily store the origin coordinates (center point) of a body part. The offsetA and offsetB channel code is a template: When the model loads, the origin coordinates of the body part are copied to the offsetA channels, and the reverse values are copied to the offsetB channels. A zero coordinate results in a "0" value in the offsetA channel, and a "-0" value in the offsetB channel. The offset channels are only used with the rotate and scale channels, which rely on the body part origin (translations don't need the origin). If a body part doesn't use rotate and scale channels, then you can remove the offset channels. The rotate and scale channels only work properly, if they are arranged between the offsetA and the offsetB channels. The channel order must be: offsetA rotate/scale offsetB. If you place the rotate/scale channels before the offsetA or after the offsetB channels, then the body part rotates/scales around 0 0 0 (i.e. Poser can't evaluate the actual origin). 3. "geomResource" refers to geometry resources, which are stored in the Poser application file ("ACTR" resources in the resource fork of the app file on a Mac, or in the "Poser.rsr" file on a PC). The number following geomResource is the resource ID. In Poser 4, there are five internal geom resources: ID 4 "box.obj" ID 6 "ground20x20Lines.obj" ID 7 "liteIcon2.obj" ID 44 "ball.obj" ID 148 "liteIcon.obj". "box" is a common box prop. "ground20x20Lines" is the ground plane. "ball" is a sphere (used to display the spherical falloff zones). The "liteicons" are used to display the light arrows in the Poser scene. Note that the magnet/wave zones don't use the internal "ball.obj", but the "ball.obj" in the /geometries/props folder. You can store any geometry in the Poser app file, and then load it with the "geomResource" call. Of course, editing the app file is not recommended. The "geomHandlerGeom" refers to a geometry resource stored in the "figureResFile". Since one figureResFile can contain multiple geometry resources, the resources must have an ID. "13" is the default ID used in a standard figureResFile. If you add "alternateGeom", or other geometry resources to the figureResFile, you must assign unique resource ID's (and use these IDs in the "objFile" parameter of the "alternateGeom" command, or in the "geomHandlerGeom" parameter). 5. The Poser4 User Guide reads: "Posers default Cameras are set to 25mm and have all the attributes of a real-world 25mm Wide Angle Lens. You can experiment with other focal lengths such as 50mm, which resembles the human eyes view, and 100mm, a lens favored by Portrait Photographers. Each time you set the focal length, the Scale will also reset. Scaling Down from 100% to 25% zooms in, while scaling up from 100% to 1000% zooms out." 8. Never seen this effect. "GetStringRes()" tells Poser to use a string from the internal string resource list. This shouldn't affect the hidden parameter. 9. When the model loads, Poser checks, whether the internal channel names match a channel name from the string resource. This test is not case sensitive. If a matching string resource is found, Poser replaces the channel name by the proper GetStringRes() call. If you use for example the internal channel names "up-down", "bend", "turn" etc., then Poser finds a matching string resource, and stores a GetStringRes() call in the document code. For some reason, this doesn't work with the rotate channel names, although there are string resources for these names (ID 9 to 11). 11. Poser seems to store several boolean parameter values in a single binary number. You see the decimal representation of the binary in the library/document code, for example "4" for the forceLimits parameter, or "32" for the customMaterial parameter. The parameters are still boolean, so any value other than 0 means "true" or "turned on". When the model loads, Poser replaces any non-zero value by the proper decimal number, i.e. "4" or "32". You find this information in the cr2 reference of Anthony Hernandez. I don't know, whether it's still available or not, and I don't have it.