Welcome to the Poser Forum

Forum Moderators:  Boni, Kendra    Forum Coordinators:  darknewt, Jules53757, SpookieLilOne, gmm2

Poser F.A.Q (Updated: 2016 Nov 29 4:50 pm)


 Subject: Converting OBJ morph targets to PP2 targetGeom deltas?

3dcheapskate opened this issue on Sep 30, 2010 · 13 posts

Top of Forum Print

  3dcheapskate    ( ) ( posted at 4:41AM Thu, 30 September 2010 

I have an OBJ file for my original prop, and I also have separate OBJ files for each morph target.

I now want to create a PP2 file that includes all the morph target data (I'm reasonably familiar with the PP2 file format).

My current method of creating the deltas (don't laugh!) is to import the OBJs into a spreadsheet, write simple formulae (A minus B) to convert the absolute coordinates of the morph targets to deltas, and then cut-and-paste these deltas into the targetGeom deltas in the PP2. (Yes, I like doing things the hard way!)

Now there MUST be a more sensible way!
Advice please

*I know that I can import the original OBJ in Poser6, and then load the other OBJs as morph targets, but I can only save this as a PZ3/PMD pair.  
Yes, I can then extract the necessaries from the PZ3 to make a PP2, but the deltas are still hidden away in binary form in the PMD, which is not what I want .  
(I also want the PP2 to work with DAZ|Studio, which doesn't seem to understand PMDs)*

Pete Williams (aka the 3DCheapskate) still posts stupid stuff at all the usual places



  EnglishBob    ( ) ( posted at 6:56AM Thu, 30 September 2010  · @3709145

Turn off binary morph targets in your preferences, then save from Poser to get embedded deltas. You may want to leave them turned off since I've heard they have - issues, sometimes...


  3dcheapskate    ( ) ( posted at 7:15AM Thu, 30 September 2010  · @3709149

Thanks EB, that makes it so much easier :thumbupboth: !

(That's the big [only?] advantage of doing things a really stupid, long-winded way. Discovering the proper, sensible way is such a relief!)*

Pete Williams (aka the 3DCheapskate) still posts stupid stuff at all the usual places



  EnglishBob    ( ) ( posted at 7:48AM Thu, 30 September 2010  · @3709162

Quote - Discovering the proper, sensible way is such a relief!

:lol:

Mind you, I have no room to laugh. I use spreadsheets quite often for generating morphs - the language in my head which describes what I want translates into formulae much more readily than it does into modelling processes. :)


  ockham    ( ) ( posted at 9:33AM Thu, 30 September 2010  · @3709186

The especially nice part about letting Poser do it:  Poser automatically omits the
all-zero delta lines, and calculates the 'indexes' and 'numbDeltas' lines correctly.
Those tasks can be extremely time-consuming and error-prone if done manually.
(Yeah, I started that way too.)

My python page
My ShareCG freebies

  3dcheapskate    ( ) ( posted at 3:08AM Tue, 05 October 2010 · edited on 3:12AM Tue, 05 October 2010 · @3710960

Thanks again EB + ockham. I've just released the result of all this (my first morphing model - a chess pawn) as a freebie. Letting Poser create the deltas saved me a lot of work.

Does anybody have any suggestions on a good way to extract the PP2 data from the PZ3?
MorphManager, with it's expand/collapse facility, is good for seeing what's in the PZ3. That helped me find the bits I wanted to delete. But I ended up using a plain old text editor to delete the bits I didn't need. Definitely an error-prone way to do it.

Pete Williams (aka the 3DCheapskate) still posts stupid stuff at all the usual places



  EnglishBob    ( ) ( posted at 3:13AM Tue, 05 October 2010 · edited on 3:14AM Tue, 05 October 2010 · @3710961

Quote - Discovering the proper, sensible way is such a relief!

 With that in mind - you could save the prop to the props library? :-)


  3dcheapskate    ( ) ( posted at 12:30AM Fri, 04 March 2011  · @3771898

I knew I'd asked a very similar question before, so I'll add my new question to this old thread. It follows on beatifully from EB's last reply - shame I didn't ask the question 5 months ago!

If you've imported an OBJ into Poser 6, how can you save it out directly as a PP2? How do you "...save the prop to the props library" ?

I can only see the "File > Save As" option, which only lets me save as a PZ3. What am I missing?

Pete Williams (aka the 3DCheapskate) still posts stupid stuff at all the usual places



  EnglishBob    ( ) ( posted at 3:07AM Fri, 04 March 2011  · @3771936

Select the prop you want to save.

Open the section of the props library where you want to save it - create a new section if desired.

Click on the (+) button at the bottom of the library palette.

That's the basics. If your prop was parented to a figure at the time you saved it, you will be asked if you want to make it a smart prop (so it will position and parent itself to that same body part next time you load it).

You can also save more than one prop together using the Select Subset button.

Simples. :-)


  3dcheapskate    ( ) ( posted at 8:48AM Fri, 04 March 2011  · @3772038

Thanks EB - I like seemples !

Pete Williams (aka the 3DCheapskate) still posts stupid stuff at all the usual places



  dorkmcgork    ( ) ( posted at 3:03PM Sat, 05 March 2011  · @3772462

spreadsheets here too

i also use them to translate the morphs to the opposite side, like rshoulder to lshoulder

i made an index of comparative positions on the opposing sides to line up the vert numbers

go that way really fast.
if something gets in your way
turn


  3dcheapskate    ( ) ( posted at 10:44PM Fri, 18 March 2011 · edited on 10:47PM Fri, 18 March 2011 · @3777825

dorkmcgork - indeed, for some morphs spreadsheets are definitely still the easiest way! I'm intrigued by your morph-mirroring indices...

Anyway, another question, sufficiently related to the thread title to add it here.

I know that the custom geometry for a prop can be externalized in the prop declaration, e.g.

prop Bishop
    {
    storageOffset 0 0 0
    objFileGeom 0 0 :Runtime:Geometries:3DCheapskate:Chess2a:Bishop.obj
    }

But what about the morph targets? Is there any to externalize these? E.g. the 'RoofExtend' in the following. My guess is that it's not possible...

prop PBB-base
    {
    ...
    channels
        {
        groups
            {
            groupNode Morph
                {
                parmNode RoofExtend
                parmNode CanopyShorten
                }
            }
        targetGeom RoofExtend
            {
            ...
            numbDeltas 53
            deltas
                {
                 ...
                }
            }
            ...etc... 

Pete Williams (aka the 3DCheapskate) still posts stupid stuff at all the usual places



  3dcheapskate    ( ) ( posted at 8:53AM Wed, 23 March 2011  · @3779340

(...other than Poser's .PMD 'binary morph targets' I mean, obviously. That's where this thread started, trying to avoid those things!)

What I'm really asking is, I guess, is there a way to use external .OBJ files as morph targets for Poser and DAZ|Studio? I'm fairly certain there isn't, but I'd like a second opinion...

Pete Williams (aka the 3DCheapskate) still posts stupid stuff at all the usual places



 To create a post you must first sign in or register an account.