MMD Tools/PMX error checker quick reference

To run the PMX error checker, open a PMX model in PMX editor and click File(F), PMX info(F).
OR
Open a PMX model in PMD editor and click File(F), State verification of PMX data(F).

(There is also a PMD error checker, which is not included in this quick reference tutorial. The output of the PMD error checker is not exactly the same as the output from the PMX error checker.)

## Categories of PMX errors and number of errors in each category:

System 1 error (category 1 of 10)
Model Information 2 errors (category 2 of 10)
Vertexes 5 errors (category 3 of 10)
Faces 3 errors (category 4 of 10)
Materials 8 errors (category 5 of 10)
Bones 10 errors (category 6 of 10)
Morphs 3 errors (category 7 of 10)
Display panel 10 errors (category 8 of 10)
Rigid bodies 3 errors (category 9 of 10)
Joints 4 errors (category 10 of 10)

## System (category 1 of 10)

1. More than 4 additional UV maps Fix: Delete additional UV maps in excess of 4.

## Model Information (category 2 of 10)

1. No model name Fix: Add a model name.
2. No model comment Fix: Add a model comment.

## Vertexes (category 3 of 10)

1. Vertexes which have invalid normals Fix: In the PMX editor information window, click Edit(E), Vertex(V), Repair invalid normals(R). (PMD editor: Unauthorized modification of normal(R)).
2. Vertexes which have invalid vertex weights Fix: In the PMX editor information window, click Edit(E), Vertex(V), Normalize(N) (PMD editor: Weight normalization(N)
3. Vertexes which are missing an SDEF weight value Fix: In PMX editor information window, click Edit(E), Vertex(V), Bad SDEF values to BDEF2 values(D). (PMD editor: The BDEF2 of(D)a bad SDEF vertex)
4. Vertexes whose SDEF bone indexes refer to a bone which does not exist Fix: In the PMX editor information window, click Edit(E), Vertex(V), Repair bone(B), (PMD editor: Fix unreferenced bone(B).
5. Vertexes which have no face (i.e. isolated vertices, Blender: loose geometry) Fix: In PMX editor information window, click Edit(E), Vertex(V), Select non-reference faces(s)(F). (PMD editor: Select alone (non-reference plane) vertex(F)). Then in the PMXView window press Delete (or Shift+Delete) to delete them.

## Faces (category 4 of 10)

1. The vertex index of a face's vertex does not exist in the model Fix: No automatic fix for this error.
2. Invalid faces (faces which are not triangles, the same vertex is listed twice, causing the face to be an edge).

Fix: Select all the faces in the PMXView window, then click Edit(E), Selected faces(F), Delete invalid faces(N). (PMD editor: Delete the wrong side(N)).

1. Duplicate faces (Blender: Doubles, Remove Doubles) Fix: Delete the duplicate faces. Select all the faces in the PMXView window, then click Edit(E), Selected faces(F), Delete same(P). (PMD editor: Delete duplicate surface(P)).

## Materials (category 5 of 10)

1. Materials with no name Fix: Give these materials a name.
2. Materials with duplicate names Fix: Rename the materials which have duplicate names.
3. Materials which have no faces Fix: Delete the material OR assign the faces to a new material. To assign the faces to a new material, select the relevant faces in the PMXView window, then click Edit(E), Selected faces(F), Truncate(T). (PMD editor: Is taken to a new material(T)). OR to separate vertices to a new material, select the relevant faces in PMXView, then click Edit(E), Selected faces(F), Truncate separate vertex(K). (PMD editor: Removed to a new material by separating vertex(K)).
4. Texture name refers to an image file which does not exist Fix: Add a texture image file with the correct name into the model folder, or rename one of the texture image files in the model folder to the correct name, or delete the incorrect texture image name in the PMX model.
5. Sphere texture name refers to an image file which does not exist Fix: Add a sphere texture image file with the correct name into the model folder, or rename one of the sphere texture image files in the model folder to the correct name, or delete the incorrect sphere texture image name in the PMX model.
6. Sphere texture is named but it is disabled Fix: Either enable the sphere texture in the PMX model, or delete the name of the disabled sphere texture in the PMX model.
7. Toon texture name refers to an image file which does not exist Fix: Add a toon texture image file with the correct name into the model folder, or rename one of the toon texture image files in the model folder to the correct name, or delete the incorrect toon texture image name in the PMX model.
8. Counting faces which have materials. Each face should be assigned to exactly one material.

## Bones (category 6 of 10)

1. Number of bones (too many bones) Fix: Delete bones, presumably. How many bones is too many? Sorry, I don't know.
2. Bones which have no name Fix: Give them names.
3. Bones which have duplicate names Fix: Either rename or delete the bones which have duplicate names.
4. Circular reference (Bone A is parent of bone B, but bone B is also parent of bone A, for example.) Fix: Edit the bone parent and child references in PMX editor.
5. Incorrect order of bones Fix: The parent bone should always be listed before its child bone. Re-order bones to fix this error. Note that a parent-child pair of bones should be in the same deformation tier to correct this error.
6. Index of parent bone refers to a bone which does not exist Fix: Give this bone the index of a parent bone which does exist, or no parent bone(-1).
7. The index of a child or destination bone refers to a bone which does not exist Fix: Give this bone the index of a child or destination bone which does exist, or no child/destination bone.
8. "Bone hierarchy order check failed". Errors related to "Grant parent" aka "Gr parent" bones. (A bone copies the rotation and/or movement of its "Gr parent" bone.) Fix: A Gr parent bone must be listed before its Gr child bone. Also check that the index of the Gr parent bone refers to a bone which exists. Other Gr parent conflicts may also cause this error. Note that a parent-child pair of bones should be in the same deformation tier to correct this error.
9. The index of the IK target bone refers to a bone which does not exist Fix: Give the bone the index of an IK target bone which does exist.
10. The name of an IK linked bone, refers to a bone which does not exist Fix: Give the bone the index of an IK linked bone which does exist.

## Morphs (category 7 of 10)

1. Morphs with no name Fix: Give them names.
2. Morphs which have duplicate names Fix: Rename morphs which have duplicate names.
3. Morph invalid offset reference (Vertex index in a vertex morph or UV morph is out of range. The vertex index is higher than any index of a vertex in the model OR the material index of a material in a material morph does not exist OR a morph name in a group morph refers to a morph which does not exist.)

## Display panel (category 8 of 10)

1. Display panel groups with no name Fix: Give them names.
2. Display panel groups with duplicate names Fix: Rename display panel groups which have duplicate names.
3. Bones not assigned to a Display Panel Group Fix: Add all names of bones to display panel groups.
4. Morphs not assigned to a Display Panel Groups Fix: Add all names of morphs to display panel groups.
5. duplicate listing of a bone name Fix: Delete the duplicate bone names listed in Display panel groups.
6. Duplicate listing of a morph name Fix: Delete the duplicated morph names listed in Display panel groups.
7. Display panel bone name refers to a bone which does not exist Fix: Delete these names of non-existent bones in display panel groups.
8. Display panel morph name refers to a morph which does not exist Fix: Delete these names of non-existent morphs in display panel groups.
9. Zero display panel groups Fix: Add display panel groups to the model.
10. Root and/or Expressions (System) Display Panel Groups (the two "System" Display Panel Groups) do not exist Fix: Add these 2 display panel groups to the model.

## Rigid bodies (category 9 of 10)

1. Rigid bodies which have no name Fix: Give them names.
2. Rigid bodies which have duplicate names Fix: Rename the rigid bodies which have duplicate names.
3. Rigid body bone name refers to a bone which does not exist Fix: Input a different bone name for this rigid body, which is the name of a bone that does exist.

## Joints (category 10 of 10)

1. Joints which have no name Fix: Give them names.
2. Joints which have duplicate names Fix: Rename joints which have duplicate names.
3. Name of rigid body A of a joint refers to a rigid body which does not exist Fix: Input a different rigid body A name for this joint, which is the name of a rigid body that does exist.
4. Name of rigid body B of a joint refers to a rigid body which does not exist Fix: Input a different rigid body B name for this joint, which is the name of a rigid body that does exist.

### Additional notes:

The mmd\_tools\_helper add-on can be used to automatically fix IK errors and Display Panel errors of an MMD model: https://github.com/Hogarth-MMD/mmd\_tools\_helper/archive/master.zip

When correcting invalid faces, or duplicate faces or materials with no faces. you need to select faces, not just select vertices. This image shows how to select faces:

Disclaimer: I have not exhaustively tested all of these fixes. Some of the fixes are copied from these 2 tutorials:

PMX Validation: Every modeler should know and do https://permayuyuko.deviantart.com/journal/PMX-Validation-Every-modeler-should-know-and-do-469367980

PMD info guide to fixing models [tutorial] https://likeabaka.deviantart.com/journal/PMD-info-guide-to-fixing-models-tutorial-615658649