Poser Binary Morph Data .pmd file format documentation

  • @morkonan It's over at DAZ3D, since it was an Esha/RuntimeDNA product, and it's still free.

  • OK, I'm going to need some help here. The search function at DAZ appears to be deliberately borking any attempt to use variants of the word 'poser' in it's search engine. I noticed while looking at youtube tutorials on Poser Little Helper that the spelling was 'Pozer'. Typing variants of that into DAZ gives things like 'poker' and 'power', completely foiling any attempt. This seems utterly childish and petty behaviour to me, so maybe I've got it wrong and am misinterpreting what's going on, but it does not seem beyond the realms of possibility that, with the exception of content, utilities related to Poser have been purged from the DAZ stable of RuntimeDNA products.

    Please confirm my paranoia, or put me out of my misery with a link. I even looked at a German website where it seems Esha is a moderator, but my Ancient Phoenician is better than my German, so I'm stumbling blind.

  • @morkonan do you see any documentation in the PLH Beta? Is the product a standalone Windows .exe (which I will be unable to make use of) or python scripts?

  • PLH doesn't deal at all with pmd files. Only plain files.

  • Blender can convert pmd. Maybe you can find infos in source codes


    You even have the name of the python file on the picture.

    I've done the job i think :

    If i'm not wrong the PMD Format used by Poser is MikuMikuDance pmd format

    :) :)

  • @barnardino is right, Pozer's Little Helper doesn't handle PMD files as far as I can tell. It was originally made by Staale Loseth who doesn't seem to be around any more. His site has been down for a couple of years, but you can still download via the Wayback Machine:

    https://web.archive.org/web/20151030211110/http://home.online.no/~kjellil/Index-AllStuff.htm (some NSFW stuff further down that page!)

    I have no recollection of it going the RDNA > DAZ route, but that doesn't mean it's not true. ;)

  • @barnardino Ah! that common extention and acronym is entirely coincidental, I believe. I don't think they are the same format at all. I did look at pymeshio and the online MMD PMD Format definition and it is definitely NOT the same as what poser uses. Poser's .pmd files begin with 'PZMD' and MMD/PMD .pmd files begin with 'Pmd' and a 4-byte float version number. I think it quite likely that the files (apart from a header, which seems to have human readable strings containing the UUID, really looks like a binary dump of memory arrays. I could probably decode it with a lot of experiment, but why waste time if documentation already exists. Hence my question.

    I was hoping I could find a MacOS Sierra version of ResEdit, to see if that could open Poser .pmd files, as the Mac origins of Poser may have contributed to the development tools the devs were using (.pmd has been around since Poser 6, at least, according to Nerd3D's tutorial)

  • @englishbob LOL, Life of Brian quotes too!! Thanks for that link. Again an .exe file I can't use directly (with old 32 bit windows plugins required too), but the doco definitely doesn't seem to refer to Poser .pmd files at all. Nerd3D's tutorial on .pmd binary morphs implies that a lot of people were afraid to use the format due to the number of bugs during development, though I never found the bugs to be an issue for me. It was more the obfuscation factor that frustrated me. Coming from a programming background, bugs in other people's software simply meant do-it-yourself, or do without.

  • @anomalaus As far as I know, the things that PLH used to help with can now be done more easily within Poser itself; it's not an area that I get involved with very much.

    I don't know if PMD morphs definitely gave me any trouble, but I felt I had enough anecdotal evidence to feel safer if I removed them from library items that used that format. I don't bother going that far any more, but I still run Poser 11 with binary morphs disabled, and the same with compressed file formats. I prefer files that I can hack in a text editor or spreadsheet. :)

  • @anomalaus
    I made a Python lib some years ago to read/write and deal with Poser PMD-files. Round about 1000 Lines and very little description :)

    Needs some more testing and description to become useful for others. If you are interested to do this, I can send you a copy.

  • @adp Absolutely!^! Send away! 8-D <Graham's number> Thanks!

  • @anomalaus
    What about an email address I can send this file to?

  • @anomalaus
    I made an upload to sharecg.

    Look at the end of the script (locate: if name == "main"), change the pathes/filenames to your needs and give it a try.

    For any questions, email to: os-coder@mailbox.org

  • @adp Cheers! I'm about to crash and burn, but I'll email you when I've had a chance to trawl through the python library. Excellent work on this from a single quick scan!

  • @englishbob said in Poser Binary Morph Data .pmd file format documentation:

    I have no recollection of it going the RDNA > DAZ route, but that doesn't mean it's not true. ;)

    IRRC, a version was available on RDNA. But, it was updated to Beta6 (I think that's the version I tracked down) by the creator and was hosted at a different site, for awhile. Previously hosted versions on other sites, again IIRC, weren't updated to the latest version.

  • As far as I'm aware the .pmd format is just the morph data extracted from the cr2 as standard text and then encoded by i think 'gzip' and placed in the .pmd file to make it more compact - the encoding is why we can't read it but the file needs to be decoded back to plane text to make any sense - it's just a list of morph data though similar to that created by Pozers little helper or one of the many other binary injection utilities

  • @adi
    No. PMD-Files do not contain just compressed text. It's a binary representation of morphdata in a special file-structure.

  • I completely forgot..

    I have Binarymorpheditor and have used it a bit. I'm having issues with it with Poser 11, though. I probably need to update it or something. (Won't write the poses appropriately, but I haven't fully figured out the problem yet. Not permissions, though.)

    Anyway, it's pretty nice and has some nice features. Not sure if that helps, but it's pretty informative and easy to use. (It's an external package. It'll read pmd files directly.)

  • After losing several projects to damaged PMD files, including situations when you copy or rename your PZZ/PZ3 files, I just gave up on them completely several years ago.

    So I just never, never, never, ever, in no situation, no matter what soothing things anyone can say, not in dream or in heaven, no shape or form, not by accident or forgetfulness, I'll just never use any PMD, nor will I ever buy any product that uses PMD.

    I lost more work due to PMDs than to computer viruses, so PMDs are worse than virus to me. And just to be safe, every 15 days or so I double-check to see if poser re-enabled PMDs while I was sleeping.

    No PMDs ever!

  • @adp I finally found the time to delve into your PMD python library. Brilliant stuff! Thank you!!

    Good to have exposure to others' styles of coding and use of language features I've not previously dealt with (had to look up @ decorators, heh).

    Successful test-run importing the module into a custom main replacement script to match my path structure (once I had all the module name prefixes on the library methods sorted). Yay!

    Now to boldly PMD where NVIATWAS has never PMD'd before! X-D