In most 3D APIs (like Direct3D or OpenGL) the API handles drawing these for you with draw functions called "Indexed Drawing" functions. Each of these 3 indices represents a corner of a triangle, and points to a vertex in the vertex list. Here is a quick explanation: The indices are stored in pairs of 3. These are used for connecting the vertices together and drawing the triangles that are used to form the 3D object. The section starts out with a byte (unsigned long in C++) describing how many indices are in the model (MUST be a multiple of 3). This section describes the indices of the model. As you can see, normalizing this weight requires you to divide by 100 and not by 255 or other.Įdge Flag (Determines if this vertex should be used to draw the edge line around the model) Weight of second bone calculated by 100-bone0Weight). Second bone to effect the position of this verted in vertex/geometry skinning)īone 0 integer weight from 0 to 100 (Weight of the first bone for vertex/geometry skinning. First bone to effect the position of this vertex in vertex/geometry skinning)īone 1 id (index in the bone list. The following setup will occur once for each vertex.īone 0 id (index in the bone list. It starts out with a byte (unsigned long in C++) describing the number of vertices in the model. This section stores information about the vertices in the model. This is used to provide information such as the model author, copyright information, etc. The name of the character model, in Shift-JIS encodingĬomment for the model. The English model information is stored in another section.
![mmd base mmd base](https://i.pinimg.com/originals/87/37/ca/8737ca8a7c69b18f1a502352383ba42a.png)
This is only the Japanese model information. This section stores basic user-generated information about the model that follows the file header. In the right column, I have included either what the value of the entry should be, or what it represents if it is user-modifyable.įile starts out with simple three char tag followed by a file version.
MMD BASE CODE
In the left column, I have included the byte length of the entry, and the variable type that is used in native code (C or C++). I am currently working with him, and I edited this to make sense from what I have learned from making the new AniMiku rendering engine. The format is not based on any other known file formats, and so far is completely proprietary to MikuMikuDance.Īrticle originally written by alcexhim.
MMD BASE MOVIE
The Polygon Model Data (PMD) file format is the file format used to store 3D model information for the models used in the MikuMikuDance (Polygon Movie Maker) animation program.Īs with any 3D modeling format, this is an extremely detailed file format which has no known documentation other than what many people around the Internet have reverse-engineered. The content of this page may be of interest to readers, contributors and visitors.