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.
Attached Link: arrowprop.zip (4 KB)
The above formulas are very handy, once you know, where you want to move the variable origin. But when you test many different origin settings, you have to calculate and adjust the channel values again and again. Sooner or later, this will become an annoying task, even if you are a very patient being. Fortunately, the formulas are simple enough, so we can use ERC code, and let Poser calculate the values and adjust the channels. The picture shows the channel scheme for the arrow example. The code is made of the same Center channels again. I have added ERC slave-code for the CenterB channels, and some more channels, to evaluate sine and cosine of the zRotateA value. This time, the yCenterA channel is the ERC master. When you work with the model, you can set the yCenterA dial, to move the variable origin along the y axis, and create different rotation centers for the zRotateB rotation. Note that yCenterA moves in the "wrong" direction: Negative yCenterA values lift the origin. Positive yCenterA values lower the origin. To make a more user-friendly interface, you can add an extra master dial, and slave yCenterA to the new master, specifying deltaAddDelta -1. Thanks to the "new" valueOperators (valueOpPlus etc.), we can write code to evaluate sine and cosine of zRotateA. As the algorithm calculates with radian values, the value of zRotateA (degrees) is converted to radian. Then sine and cosine are evaluated. The code needs 20 channels (not shown in the picture). Finally, the xCenterB slave is set to yCenterA * sin(rad(zRotateA)), and the yCenterB slave to -yCenterA * cos(rad(zRotateA)). You can download the example arrowprop.zip (4 KB) to test the code. Use dial "zrotA" (channel zRotateA) to rotate around the Poser origin. Move dial "SetOrigin" at any time, to choose a new origin. "SetOrigin" is the master of yCenterA. Once you have set the preexisting zRotateA rotation, and the new origin, you can use dial "zrotB" (channel zRotateB), to rotate around the new origin. This version of the code can be used for -90 < alpha < 90, i.e. zRotateA can be set between -90 and 90. If you want an automatic variable origin for a wider range of alphas, you need more code.Attached Link: flagprop.zip (73 KB)
That's it. If you were so courageous and took the time to wade through the above stuff, you can download this poseable flag freebie (hero not included). Use dial "Wave" to wave the flag. "Amplitude" adjusts the amplitude, "Turbulence" adds some turbulence. "Falloff" decreases the wave amplitude towards the attached end of the flag. If you want to texture the flag, you need to retrieve a texture template: Rename "flagprop.pp2" to "flagprop.obj". Open "flagprop.obj" in UVMapper. Use menu "Save Texture Map" to save a texture template. Choose a square bitmap format (Width = Height) and save the template.bmp. Be sure you don't save the model to "flagprop.obj" in UVMapper, otherwise you lose the prop data. Rename "flagprop.obj" back to "flagprop.pp2" when you're done. Paint on the texture template to create a texture map, and apply the texture map to the flag prop in Poser.lol! hey, vk, want to write the sequel to my book??? ;) now with the tread-thing, somebody got a cylinder to work in that instance, by parenting magnets to the gears. as the cylinder rotates through the magnet zones, the magnets pull it into the proper shape. also, as the there gear things move, they pass their magnets and zones through the cylinder to keep it in the right shape. of course, this wouldn't work with your train track example. :)
WOW!!! This is awesome stuff, VK. Thanks for posting it :-)
View Ajax's Gallery - View
Ajax's Freestuff - View
Ajax's Store -
Send Ajax a message
I just love this sort of thing. I just finished Denis's (allstereo) tuts on Poser's Dependent Parameters and got a ton of in depth understanding out of it. This is one of the reasons I stay with Poser (despite it's instability, goofy interface, lack of new content, etc). You never see technical discussions of this depth for Daz. I guess they want folks to guess how it all works. This will go a long way with helping me rig my you-really-don't-want-to-know-but-it'll-be-for-sale-on-pervertosity-soon gizmo.
Have you folks ever considered writing a book? B.L. Render's "Secrets of...for Poser 8" is still topical but getting long in the tooth.
Thanks for taking the time to write this.
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.