4 個の投稿 / 0 new
最終投稿
#1 2020-07-11 10:28

Looking for specifications for the pmx and vmd formats & the mmd armature/skeleton bone layout.

Hey SpiritofRabbit desu-

Does anyone know where a rabbit can find a solid specification for the file formats associated with mmd. I need to know how the data is stored in .pmx files and in .vmd files in particular. Is there some sort of official documentation or reference for devs who want to be able to read and write the files and manipulate the data structures associated with mmd. I also would very much like to see some sort of chart or map which defines the bones associated with a typical model. Is there a standard. Ive looked at quite a few mmd models and there is more variation than you typically see. There seem to be just a lot of bones and I'm not sure what the purpose of some of them could be. You have your dummy bones, shadow bones, maybe a few other types as well, above and beyond what seem to be the core deformation bones. At first I thought perhaps, some of the bones might be a kind of control rig. I don't think that's the case though. Anyway I would like to under stand the purpose of each bone and would like to know if there is some baseline standard that exists for the armature. Ive looked here and there but so far have not had any luck finding anything definintive. The rabbit would be super thankful to anyone who could illuminate the path forward toward an understanding of these things. cheers and thanks for reading this message,

2020-07-11 20:28

I seem to recall that .vmd files are just spreadsheets that list the name of every bone (in Japanese) and the time of each instance that the x,y,z coordinates were moved for that bone.

2020-07-13 06:41

I know of a couple of pieces of documentation that are out there in English.

There's one on the MMD Fandom Wiki for the .VMD format that lists out the structure decently well. You'll want to be a little wary of this one, though; some sections are incomplete, and others are a bit misleading.
https://mikumikudance.fandom.com/wiki/VMD_file_format

As for .PMX files, there's someone on GitHub that has compiled several tables on the format in much greater detail:
https://gist.github.com/felixjones/f8a06bd48f9da9a4539f

There's also someone else on GitHub who's distributing a few Python scripts that deal with .VMD and .PMX files. They might be helpful if you're willing to dig around in the code a little bit, or the scripts themselves might be just what you're looking for. There's one in particular that converts .VMD files into a comma-delimited (.CSV) format that you might find useful:
https://github.com/Nuthouse01/PMX-VMD-Scripting-Tools

PMXEditor also has a built-in .CSV conversion tool for .PMX models that might also be useful:
https://www.deviantart.com/inochi-pm/art/PmxEditor-vr-0254f-English-Vers...

Of course, if you're good with Japanese (unlike me), you might be able to find some documentation on that side of the web. There's an information page for MMD on Nico Nico Pedia that might be a good place to start if you want to try that route:
https://dic.nicovideo.jp/a/mikumikudance

As for the bone structure standards, there's the generic body, legs, arms, and head structure that you find on most models, but after that it's usually pretty model specific from what I've seen. If you want to see some examples of just basic bone structures, you might try the model bases on places like DeviantArt:
https://www.deviantart.com/mmdfakewings18/art/MMD-Bone-Set-2-DL-283844256

One thing to note, though, is that model makers sometimes simply forget to delete unused bones, so those pointless-looking bones might actually be pointless.

2020-07-13 20:21

Thank you Pr0nbotz and Thank you Isometric very much for the information and links.
It is very kind of you to take the time to reply. Being able to convert things into .csv will help quite a bit. The python will be good to have as well. I will check everything out and if possible I will try to create a guide in English from what I learn, which I will make available. I have done some past work using blender and the mmdtools extension:

https://github.com/sugiany/blender_mmd_tools

There is also an extension which serves to translate the bone names in place within blender:

https://github.com/Hogarth-MMD/mmd_tools_translation

That work was all so that I could move the data into Unreal Engine 4 as an experiment to see how it would work. I was successful although not without some problems. Retargeting the rigs presented some issues as the number of spine bones, as well the spine structure for a mmd model is quite different from the standard rig used by UE4. Changing the bone structure is possible but then it will not work with vmd data. Physics don't transfer either so that has to be built from scratch again inside the engine, although its possible to bake physics into a animation sequence in blender which translates, but its not real physics at that point.

I want to build a simple c++ frame work which can be used to create tools and toys for the mmd ecosystem. When I've done that I'll open source it and make it available.

The rabbit thanks you guys very much again for the helpful leads.

SpiritofRabbit