Tue, Nov 26, 4:28 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: Center of rotation question...


electranaut ( ) posted Wed, 07 August 2002 at 1:16 PM · edited Tue, 26 November 2024 at 4:27 AM

Hi, Perhaps this is a dumb question and there's something obvious I've missed somewhere but here goes... I've started making my own poseable props (.cr2's) but my modelling program requires me to scale down the newly imported prop by a VERY large amount. This is all well and good but of course, it means that when the prop is placed on the ground the rotation dials no longer spin the object around it's center but around the original center which is now way above my prop. Does anybody know how I can scale and relocate my prop whilst keeping the center of rotation relative to it and not to it's original imported size? Or do I just have to scale the hell out of the prop BEFORE I export it from my modeller? Any help is much appreciated!


SAMS3D ( ) posted Wed, 07 August 2002 at 2:38 PM

Well it does depend on the modeling program you are using, we ususally do a 0,0,0 position for the model before we export it out. Also, we reduce scale by alot too. Sharen


maclean ( ) posted Wed, 07 August 2002 at 2:39 PM

It's not your app. Every modelling app in existence requires you to scale down by huge amounts for poser, because the poser universe is the size of a pinhead. The best thing to do is import to poser using the 'percentage of figure size' check-box on the import dialog. You can also use 'center' and 'drop to floor' on the same dialog to ensure your prop comes into poser in a normal position. Don't sale it in the modeller. It's acommon problem. I export from 3d max in 3DS format and have it down to a fine art now, but it took me a while. If you're bringing in separate peices of a model to assemble them in poser, you have to find the right percentage for each piece, or get near it and scale them in poser. mac


SAMS3D ( ) posted Wed, 07 August 2002 at 2:50 PM

You know maclean, we always scale down and position it at 0,0,0 or it comes in HUGE and off somewhere in outer space no matter what we tell Poser to do. We have done this for a long time too, but this is the best way we have found that works. Especially dealing with 3ds export and then we change our mesh into an object before we put it in Poser, I really think every modeling program does something a little different, but I agree with you on your assesment of the Poser Universe being small and a common problem. Sharen


SAMS3D ( ) posted Wed, 07 August 2002 at 2:53 PM

Also it might not be a bad Idea to tell us what modeling program you are using and then maybe a person with the same program can better tell you what they do, that might help. Sharen


SAMS3D ( ) posted Wed, 07 August 2002 at 2:58 PM

I guess the other thing I should state is we don't usually import our models, we go through the conv the heir, because it is easier for us to maniputlate it that way, so we don't get the option to positon it or even scale it before it is converted. Sharen


bloodsong ( ) posted Wed, 07 August 2002 at 3:20 PM

heyas; import your obj into poser, scale it down to a poser size, then export the obj out of poser for your final geometry. now, if your obj imports about the size of jupiter and scaling it down to the minimum of .1% doesn't get it small enough, then import it with the '% size of poser figure' set at 100 or 50 or whatever is appropriate. sharen and mike, you guys can do that, too, and use the new geometry from poser in the phi file. just be careful that poser doesn't create any degenerate facets when you export it. this should only happen on very thin or very pointy bits, but do keep your original obj handy in case that happens.


SAMS3D ( ) posted Wed, 07 August 2002 at 4:30 PM

I am going to try this, but I have had lots of trouble doing it this way before, but hey time to learn maybe an easier way. Thanks bloodsong.....Sharen-


Ajax ( ) posted Wed, 07 August 2002 at 7:02 PM

My advice would be exactly what bloodsong said. The only thing I'll add is that having done all of that you may still want to adjust the centre of rotation. It's easy to do but since I don't have Poser on this machine I can't remember the exact menu sequence. For props I think it's under object -> properties. There's a button to show the local axes (ie a set of axes at the rotation centre) and it makes three new dials show up on your prop, allowing you to adjust the centre point. For figures, you can use the joint editor to position not only the rotation centre of the whole figure but also the rotation centres of each individual joint.


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


maclean ( ) posted Thu, 08 August 2002 at 3:24 PM

What bloodsong is suggesting is exactly what I do. I export from 3d max in 3DS format, (because I've had nothing but hassle with the habware obj plug-in), import to poser at 'percentage of...', export from poser and run the obj through uv mapper, then make a PHI file and open it in poser. This may seem a long, roundabout way of doing things, but since I started this way, I've had zero problems. I also keep all files; the 3DS, poser export (I just add a 'P' to the end of the name to differentiate from the uv mapper ones), the uv mapper files and, of course, the final obj, which goes into Geometries. This way, I can go back to any stage in the process and add or change things. Plus I keep 2 pz3 files; 1 of the assembled 3DS objects and 1 of the assembled obj objects. Initially, I mass-planar map everything, then once I've tested the figure and it's ok, I go back and map the Geometry obj properly. Often, I make a cr2 and then decide to add extra body parts. If so, I just open the pz3 file, add in the parts and remake the final obj and PHI. As I said, it may seem like overkill, but I'm working on a pack which currently has 20-odd posable figures, with up to 30 parts each (and I'm only halfway through it!), so I like to double-protect everything. I also 0,0,0 in max, so I don't use the 'floor/center' options, but I don't scale in max, because the difference is so ridiculous. Also, Sharen, I like to run stuff through uv mapper to split vertices (absolutely essential), and to get rid of the normals, which can knock 10 - 20% off the file sizes (plus DAZ doesn't want normals) electranaut....it would help to know what app you're using. mac


bloodsong ( ) posted Thu, 08 August 2002 at 5:46 PM

heyas; you can change the center of rotation (and scaling) for the BODY with the joint editor. however, in my experience, it doesn't stay fixed. :/


Ajax ( ) posted Thu, 08 August 2002 at 6:14 PM

Hmmm...That's strange. I've changed the body centre on a lot of figures. Never had a problem.


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


VK ( ) posted Fri, 09 August 2002 at 3:21 AM

As far as I remember, the y coordinate of the BODY center point always goes to 0, when I issue a 'Restore Figure' menu command. Even if I store a different y value (origin, yOffsetA, and yOffsetB) manually in the cr2. This is true for all non-standard figures I've tested (for example the Poser robots and many other cr2's). I'm using Poser 4.0.3 for Mac. For a P4 Nude Woman cr2, the y value of the BODY center point always goes to 0,425. For a P4 Nude Man cr2, it goes to 0,467. I don't know yet, where these values come from, and why Poser generates a different bug variant for the standard figures and other figures.


Ajax ( ) posted Fri, 09 August 2002 at 9:07 AM

When I adjust the body centre, it's usually because I want it at 0,0,0 which would explain why I haven't noticed it. I wonder if the problem could have something to do with memorisation. If you memorise the figure after adjusting the centre but before saving it, maybe that will reset those mysterious default values. Of course, it will also screw up the IK settings.


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


Ajax ( ) posted Fri, 09 August 2002 at 9:11 AM

However, if that is the problem, it would be a relatively simple matter to hack the cr2 to set the body centre point wherever you want it.


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


VK ( ) posted Fri, 09 August 2002 at 11:50 AM

Ajax, this is what I presumed before, too, because the unwanted center reset happens, when the 'Restore' command is applied. Actually, the x and z coordinates are also affected, but I have these always at 0, anyway, so only the y value bothered me.

The weird thing is: The faulty reset happens, even if I store my own value manually in the cr2. I.e., I write my value into the 'origin' parameter of 'BODY', plus, I write the same value into the 'initValue' and 'staticValue' parameters of the 'OffsetA' and 'OffsetB' channels (which is probably not required). The value is still reset to 0 (or 0,425 or so for Posette).

BTW, the problem is the 'Restore>Figure' command. It resets all body parts properly, except of 'Body'. When I select 'Body', and use the 'Restore>Element' command, 'Body' is properly reset.


Ajax ( ) posted Fri, 09 August 2002 at 5:07 PM

OK, I tried replacing 0.424623 with 0.0 throughout the BODY section of Posette. No go. Then I tried replacing it in the BODY and hip sections (screwing up the hip joint centre just to see if it made a difference). Still no go. Then I tried replacing it in the abdomen as well, so I wound up replacing it through the BODY, hip and abdomen. There were no other occurences in the whole file. That last one worked. When you restore the figure, the BODY joint centre must be being replaced from the abdomen or some combination of the abdomen and the hip I think. The bad news is, that probably means the problem isn't fixable :-( I suspect this is an honest to gooness bug in the program. When they were coding the restore figure command they must have put something in that makes the body settings get overwritten with the settings from another body part.


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


maclean ( ) posted Fri, 09 August 2002 at 5:44 PM

You should ask bloodsong about this. She knows all about restore/memorize. mac


Grey_cat ( ) posted Fri, 09 August 2002 at 10:50 PM

file_19191.jpg

This a render of something I'm working on. The Corridor is made up of more than three dozen props, not one was scaled in poser. I always create the prop full size and scale it down to poser size in my modeling program. It is the only way you can be sure it will be the right size and be in the right place. By the way poser size is 1/96 of fullscale (if fullscale is done in inches).


bloodsong ( ) posted Sat, 10 August 2002 at 9:55 AM

heyas; first, don't screw with the offseta and offsetb things. very dangerous. ;) that isn't the centerpoint, anyhow. it's is some arcane calculation thing that i don't really understand, even reading the cr2 specs. second, when you hack the cr2, the 'memorized' values are in... (let me see if i can remember) the k 0 settings, and the... no, it's backwards, the memorized values are in the initvalue setting and the initial value is in k 0. i think. (i have to look it up!) here is what happened with me. i created interchangeable tail figures for my heavy horse. they were basically long, tubular figures with a tail base, and tail segments. very simple. well, i wanted the center of the body to be in the center of the tail base, so when you stuck the tail on the horse, and then scaled the tail, it wouldn't fly off the horse's butt. so, quite easily, i put the body center coordinates where the tailbase center coordinates were. and it worked! the tail scaled from the tailbase. well, then i posed the tail. see, i built it straight out, and.... well, horses' tails hang down. so i lifted it up into the air, and i made it bend so it hung down. and THEN when i scaled it.... it no longer scaled from the tailbase center. it was more like somewhere down and forward of the current tail's center of mass. and the body circle moved, as well. while the tail was lying down, the circle went around it... but after i posed the tail, the circle kinda encircled the new configuration.... it was all very strange and frustrating. so that's why i say it doesn't stick.


VK ( ) posted Sat, 10 August 2002 at 1:58 PM

Ajax, I think you found the culprit. The origin of 'abdomen' is in fact the same as of 'BODY'. And it seems, as if the 'Restore>Figure' command copies the origin of 'abdomen' to the 'BODY' origin. This makes some sense to me, since the center of 'abdomen' is the center of a standard human body. It seems, as if Poser copies the origin of the body part, which has the external name 'Abdomen' (i.e. 'abdomen', 'Abdomen', or 'GetStringRes(1024,5)' in the library). This also makes some sense to me, because you can turn on/off the effect within Poser, by simply renaming actor 'abdomen'. So, if your figure has an 'Abdomen', the origin of 'Body' is reset to the one of 'Abdomen'. If your figure has no 'Abdomen', the origin of 'Body' goes to zero (it seems, at least). However, a body part named 'Abdomen' is ridiculous for some figures, so I would prefer a 'Restore>Figure' command, which resets 'Body' to the 'origin' values stored in the library. BTW, what bloodsong wrote, is of course correct. You should never tamper with original libraries. I always make a duplicate cr2, before I take it to the text editor.


Ajax ( ) posted Sat, 10 August 2002 at 5:30 PM

Sigh, I guess somebody should write to CL to suggest they fix the BODY-Abdomen thing some day. You up for that, VK? Bloodsong, could you have moved the tailbase, instead of moving the BODY of your tail? Unless you actually move the BODY, the centre point stays put. That's why when people postion a figure by moving the hip, the figure winds up rotating around the centre of the workspace - because the BODY centre is still where it started.


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


bloodsong ( ) posted Sat, 10 August 2002 at 5:39 PM

ummm.... ajax; i can't remember. i probably did move the tail base, because i try not to use the body to move things (wreaks havoc with trying to save the pose and all). the body center stays put when you move the hip? um... i don't think so. that would mean when i drop the eagle to the floor, it should quit rotating around this huge circle. (well, and rotate around a smaller circle.) or wait, does drop to the floor drop the body not the hip??? argh! it can't be set to copy the abdomen center to the body center, the tail don't even have an abdomen. i'm so confused :/


Ajax ( ) posted Sat, 10 August 2002 at 6:51 PM

Heh heh. I assure you, the body centre won't move unless you move the body. Drop to floor does move the hip, not the body, but it doesn't change the position of the body centre so your eagle should continue rotating around the same point. VK says that if the figure has no abdomen, the body centre gets overwritten with zeros.


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


VK ( ) posted Sun, 11 August 2002 at 3:45 AM

Ajax, no need to write to CL, I guess. They have fixed ALL bugs in Poser 5. (Just kidding : )


electranaut ( ) posted Mon, 12 August 2002 at 2:49 PM

Thanks for all your help and debate on this subject guys. I've learned quite a bit and shall be applying all the suggestions to see what works best for me. BTW, my modelling package of choice is Rhino 2.0. I don't know if many people use this (probably because it specialises in NURBS, so I have to convert before exporting) but I'm comfortable with it and it does run okay on my ANCIENT PC (Can you believe I'm still working with a Pentium 166? Need to sell some models soon, I think...) Thanks again, I'll keep you posted of how I go...


bloodsong ( ) posted Wed, 23 October 2002 at 5:51 AM

heyas; okay, so tell me if this is right... you build your figure with the (front) feet on the floor in the center of the poser universe, and the body center is at 0,0,0. thus, when you scale the figure, it stays on the floor and just scales up and down. which means it rotates around its feet. yah? then when you restore the figure (regardless of where/how/when it was memorized) the body center switches from 0,0,0, to the centerpoint of the abdomen, if there is one. if there is no abdomen, and you restore the figure (as above), the center jumps to 0,0,0, regardless of where else you may have tried to put it. i think that explains my tail behavior. flat out, on the floor, it scaled/rotated from its center. so i put the body center in the tail base so it would scale/rotate from there. then i positioned and posed the tail, and memorized it that way.... um...and then i guess i restored the figure, because that's when the tail started scaling and rotating around some other point that wasn't in its base? btw, ajax, in your question above there, about why i put the body center in the tail base, and you said, why can't you just move and rotate the tail by grabbing the tailbase, not the body? well, you can. but what i wanted it to do was to SCALE from that point. right? you stick tailbase in the horse's butt, and then if you want a smaller tail, you grab the body of the tail and scale it down. and when it scales down and pops out the horse's butt, that is annoying, right? see, if it would scale from the center of the tail base, once you position that, you can scale it to your heart's content and it won't move. now let me see if i have this other bit straight.... if you build your eagle up in the air... and it doesn't have an abdomen.... it will rotate around the zero point on the ground, right? and if you move the body center into your eagle's hip or whatever... then it will rotate/scale around its hip, until you restore the figure, when it will go back to rotating/scaling around the zero point. right? okay, just one thing i don't understand. when you scale a poser human, their feet stay on the floor and they just get bigger/smaller. but when you rotate the body, they rotate around their hip?? (or abdomen) that is... i'm pretty sure the humans scale from the ground. you mean, they don't, if you restore them??


VK ( ) posted Wed, 23 October 2002 at 5:33 PM

hello bloodsong, Yes, I think you're right, except for the last one: When I scale my Poser humans, the feet don't stay on the ground. They scale (and rotate) around the abdomen, unless I set the origin to 0 0 0. As far as I can see, Poser's scale channels perform a common scaling operation, that is, every vertex moves on a straight line towards the rotation center (down scaling) or away from the rotation center (up scaling). Here's a little experiment to prove the theory: 1. When you down scale the geometry, all vertices move towards the center point. When you down scale more and more, the vertices should pass the center point, and then move away in the opposite direction. You can for example move the 'xScale' channel towards 0, to move the vertices on a straight line along the x axis towards the x coordinate of the center point. If you set a negative 'xScale', the vertices should move beyond the x coordinate of the center point, so that the geometry is mirrored in the yz mirror plane. Right? 2. Of course, this doesn't work, because you can't set negative scale channel values. 3. But if you use a valueParm master channel, and make the scale channel a slave, then it works. You can set the master channel to negative values, and the scale channel slave follows. 4. The negative scales work as expected: Is you set a scale channel to -1, the resulting shape is the mirrored variant of the generic geometry. Negative 'xScale' mirrors in the yz plane, negative 'yScale' in the xz plane. Negative 'scale' mirrors the geometry in the center point (which is the same as mirroring in the xy, the xz, and the yz planes). 5. The resulting geometry has 'reversed normals' (as expected): The scale channels move the vertices, but don't adjust the facets. Therefore, the surface of the mirrored geometry is 'inside out'. You can use the 'Reverse Group Normals' command in the Group Editor, to adjust the normals.


VK ( ) posted Wed, 23 October 2002 at 5:36 PM

file_19194.jpg

Here's the code for the xScale channel, to mirror prop 'lefthand' along the x axis (in the yz plane): valueParm xScaleMaster { name xScaleMaster initValue 1 hidden 0 forceLimits 4 min -1 max 1 trackingScale 0.004 keys { static 0 k 0 1 } interpStyleLocked 0 } scaleX xScale { name GetStringRes(1028,6) initValue 0 hidden 0 forceLimits 0 min 0.001 max 100000 trackingScale 0.004 keys { static 0 k 0 0 } interpStyleLocked 0 valueOpDeltaAdd _NO_FIG_ lefthand xScaleMaster deltaAddDelta 1.000000 }


bloodsong ( ) posted Thu, 24 October 2002 at 3:33 PM

ooooh! i seem to remember poser figures staying on the ground when they scaled. maybe that was p2.... why can't you just change the scaling min from .01 to -1?


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.