Mon, Jan 20, 11:50 AM 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: External Morph Targets unstable beyond 90º swings ?


NikKelly ( ) posted Tue, 05 April 2022 at 10:52 AM · edited Mon, 20 January 2025 at 9:33 AM

I've ported several free MMD PMX-format  'props' to Poser by exporting them from free PMX Editor as OBJ+MTL. I've also used their inherent 'transforms' to craft modified versions as 'External Morph Targets' (EMTs). Here's the neat, lidded box that prompted this query.

https://www.deviantart.com/greenth1ng/art/MMD-DL-Iron-Checkpoint-Crate-On-the-Run-911908822

There's a bunch of pitfalls: That editor exports L/R reversed. Textures may need vertical-flipping. Poser does not have import scaling for EMTs...

There's also a weird effect, which may be related to 'gimbal lock'. I'll come to that...

Okay, if model is too 'handed', PMX Editor has a 'mirror' tool, used prior to export. IMHO, best avoided, as may derange UV mapping.

Textures may be v-flipped by hand, using eg free Irfan View's nimble image tools. Alternative is to set each material Color_Texture V-Scale to -1.

That scaling ? PMX Editor has an export scaling field. So, start with default x1, import to Poser at 100% default, scale via parameters, see what looks good. Typically ~3.5 % of original scale. Now delete from scene. Re-export from PMX Editor at that scale, so 0.035 instead of 1. Should import well to Poser.

I won't delve the eye-watering arcana of PMX Editor, but essential work-flow is:

Load 'clean' PMX file. Press PMX View tool-bar 'T' to open a 'Transform' window. From Bone menu, select relevant 'Bone'. It pops up RGB 'gimbals'. Drag  relevant rotation / movement XYZ to desired morph's limit. Still in that window, File, Update_Model to 'bake' it. PMX View window re-builds with these changes. Export as eg nameEMT, again at eg 0.035 scale.

In Poser, select object, Object, load morph target. Several scary moments later, a new dial should appear named eg nameEMT.

Right-click on dial, select settings. Set Min-Limit 0, Max-Limit 1. This prevents over-dialled morph exploding across scene like an unruly FBX.

So far, so good...

But, playing with this neat, lidded box, I discovered a problem: If EMT's lid was hinged wide open ~270º, the morph exploded. EMT of ~45º, okay. EMT of ~90º, okay. EMT beyond ~120º exploded. And, looks very wrong in mid-range: See below. So, something amiss with morph's math if EMT beyond 90º, but takes a bit further to 'break bad'...

I'd had similar problems with a PMX door+frame, the door going 'totally poltergeist' beyond ~120º EMT swing. I put that down to some quirk of model conversion and/or my unfamiliarity with PMX Editor's 'Transform' tools...

Any-one else have this problem with External Morph Targets unstable beyond ~90º ??

Images: #123 have EMT with ~90º swing, #4 has ~120º swing, should be very similar to #2. But is not...  ( 0.375 = 45/120 )

jJIQgMui82y59pvtm3XMaVfNy3WVHQyeazdDcs6M.jpg


primorge ( ) posted Wed, 06 April 2022 at 6:21 AM · edited Wed, 06 April 2022 at 6:31 AM

The morph target is behaving normally. Morphs are only linear transformations or, basically, shortest path transformation to end result. Stages at start and finish of transformation will be accurate, tween of rotation will be inaccurate. For a rotation either parent the lid to the box body (2 objs) and adjust the origin of the lid with the joint editor to rotate as desired or turn the prop into a figure and rig accordingly with bends OFF for involved actors.

I'm leaving for work but I'll post a demo of both methods when I get home this evening...


NikKelly ( ) posted Wed, 06 April 2022 at 7:52 AM

Thank you.

Linear interpolation ? Yeah, that fits. And I've done the origin/parent thing with eg a tool-box. Though I may not need demo, please, please, post it !!

This box is a single object, but I can 'fork' original, editing it to stand-alone tub & lid OBJs. Still, I'm a bit sad, as it means I must be very wary of other MMD/PMX morphs.

From what you say, 'linear' morphs should be okay. So eg a panel-van's sliding door should be okay, while its hinged cab doors may be okay-ish with a modest angle of eg ~45º. But its big tail-gate doors, which swing ~270º, must be 'Poserized' as you describe...

Again, thank you.


primorge ( ) posted Wed, 06 April 2022 at 7:11 PM · edited Wed, 06 April 2022 at 7:11 PM

Prop Method

I imported the crate .pmx into Blender and immediately export as a Wavefront Obj, dumping all of the vertex group info, rigging, etc from the pmx during the export conversion to Obj. I keep the UV data. I have an add on that lets me import and manipulate working XNALara and MMD files. In this instance I just want Blender as a conversion tool...

rW51DsIfcsUMou4TPTnvIFkOahlkJNprzC4W9Mbq.png

I import into Wings3D, which will be faster, for me, to perform the following operations. I create new materials for the lid and crate body named CrateLid and CrateBody. I export out of Wings and in the export options choose create group for each material. this gives me an Obj with 2 groups and 2 materials for the crate. 

Group naming conventions for Poser can be picky about certain things, if the Prop is destined to be a Poser figure it's important that you don't name any groups Body, in particular the internal actor name. In this case CrateBody is fine. The conversion trips from Blender to Wings and the edits only take a few minutes really, the edited object is low poly and not complex at all.

I import into Poser with the following settings...x0MkVmD8GsfqJzVAiSMUArOdXjwoyIGZl9a4hO4s.png

This will give me a roundabout normal sized Crate, center positioned, for working in Poser. I can rescale to a particular desired scale now. Note that before you can do any accurate editing of the origins, forthcoming, the object must be at default 100% scale. So if you want to scale the object the scale must be baked, this will be covered during the next steps.

I open the grouping tool, select the Crate and select group CrateLid, which will highlight all red, and click the Create Prop Button. I now have a separate lid in scene. I perform the same operation for the CrateBody group. The resulting new props have any scale transformations baked as default 100%. I delete the original Crate obj and am left with the CrateLid and CrateBody props...

l8zz4SnK86tduKq9bf8pcipkm97h7FdGLIgqJ73n.png

oxalu25QRb78MiwVlouAp9S9CLFuxm3CwCutyP5X.png

HzBYP5kj0WVVpykt3irILmLrHSxBMNk7TSDMoGR9.png

I parent the CrateLid to the CrateBody and with CrateLid selected open the Joint editor. The center(Origin) will be a green cross and the end point will be a red cross. At the moment both are situated at the center of the CrateLid prop. Use the translate tool to make position edits, hovering the tool will show a bullseye cursor. I want the origin and end point to be positioned thus as shown, and centered X, in order for the X Rotation (the rotation we're concerned with for hinge) to operate as needed... It's generally easier to make origin and end point manipulations via orthographic views; top and side, with the concerned prop in outline style or wireframe...

AeTqNSo4QUTy2KMA97ZbhgxxruKaS2sZJbrMdo32.png

Test your lid rotation and adjust as needed. Once satisfied force limits in the dial settings as desired. Save the props to the library with the following settings...

select subset

choose both props

save...

The resulting prop will load with the CrateLid parented to the CrateBody and articulated as set up... Note that the geometry will be embedded in the pp2, that's something that can be remedied via editing the pp2, if desired, redirecting to an external obj in Geometries, or by using a Python utility script  that automates this. Not that big of a deal unless the prop is a commercial endeavor...

iNRDDPSB71C7ZeONZtBWhaVlNsE0JXnMIkJvPYEy.gif

If you need the figure set up method I'll post it tomorrow evening... tired from work and making the thumbnails is a bit boring. Let me know if you'd like to see, it's really not that much more involved but requires a different approach in certain aspects.








NikKelly ( ) posted Wed, 06 April 2022 at 8:50 PM

So lucid !! Thank you.


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.