Optimizing MMD Models using PMXEditor PMXinfo
First of all, you should get Inochi-PM’s newest version of PMXEditor, fully translated with many useful plugins, it can be found on the LearnMMD download page. It will make cleaning a lot easier.
Now, open up the problematic model in PMXE. Then, go to File>PMXInfo on the smaller window, and a new window should open up.
Based on the errors you get, I’m going to categorize this article, so it’ll be easier to find the specific fix you need.
System
- Additional UV: Go to the smaller window in your PMXEditor and make sure your tab is on “Info”. Then, change the “UV number” to a number between 0-4, depending on how many additional UVs you’re using. It’s 0 for most models.
Model Information
- Model Name and Comment: You really shouldn’t get an error here… It’d be a good idea to put something in there though. You can do it through the “Info” tab on the smaller window. The “JP” and “EN” button tells you what name and comment it’ll show based on the language of the user’s MMD.
Vertex
- Bad Normal Number: Go to your PMX View window, make sure only V is checked on the top left, and Ctrl+A. Then, go to your smaller window>Edit>Vertex>Repair Invalid Normals, and press Ok.
- Bad Weight Number or Unset SDEF Value or SDEF vertex – Bad bone-ref number: Like how you fix bad normals, select all vertices and go to the smaller window>Edit>Vertex>Set bad SDEF values to BDEF2 values, click Ok.
- Alone (surface non-reference) n/o vertices: Go to the smaller PMXE window>Edit>Vertex>Select non-reference face(s). After this, simply go to your PMX View window and Shift+Delete.
Face
- N/O Invalid Vertices: Sorry, there’s no fix for this one in PMXE ^^;
- N/O Faces: In PMX View, check V and F on the top left corner and Ctrl+A, then go to Edit>Face>Delete Invalid Faces, and press Ok.
- N/O Overlapping Faces: Select all vertices and faces like above, then go to Edit>Face>Delete Same Faces, press Ok.
Material
- Missing Material Name: This numbered material doesn’t have a name, just go into the Material tab in the smaller PMXE window, find the material, and give it a name.
- Duplicate Material Name: This numbered material has the same name as another material that came before it. Go to the Material tab and change one of the duplicates to something different.
- Materials Containing No Surface/Faces: The numbered material is just… empty? Just delete it in the Material tab.
- Invalid Texture: PMXE can’t find this texture, try changing the destination in the Material tab>Texture/Memo>Tex or make sure your texture is in the right folder. You want the destination to be something like: (SubFolder)/FileName.FileExtension. There won’t always be a subfolder.
- Invalid SPH/SPA: PMXE can’t find this sph or spa, try changing the destination in the Material tab>Texture/Memo>SPH or make sure your sph or spa is in the right folder. You want the destination to be something like: (SubFolder)/FileName.FileExtension. There won’t always be a subfolder.
- Invalid SPH/SPA Setting: Go to the numbered material in the material tab, then, in the drop-down box next to Texture/Memo>SPH, choose either Multi-Sphere, Add-Sphere, or Sub-Tex depending on what you need.
- Invalid Toon: PMXE can’t find this toon, try changing the destination in the Material tab>Texture/Memo>Toon or make sure your toon is in the right folder. You want the destination to be something like: (SubFolder)/FileName.FileExtension. There won’t always be a subfolder.
- Total Number Of Materials: This is just making sure each face is assigned to only one material, you should be fine here ^^
Bone
- N/O Bones: This is just the number of bones you have, there shouldn’t be an error.
- Missing Bone Name: This bone has no names, check the position of it and give it one.
- Duplicate Bone Name: This bone has the same name as another bone before it, just replace the name of one of them.
- Circumference: This is a bit confusing, but what this means is that the bone listed is parented to a bone that has the listed bone as a parent. So for example, you could have the head bone with the upper body bone as a parent, but the upper body has the head bone as the parent. To fix this, change one of the parents to another, correct bone.
- Sequence Order: For this, just go to the bone listed and make sure that it comes after the bone in its “parent” box.
- Invalid Parent: Make sure the parent bone isn’t -1, change it to another, correct bone.
- OK Sequence Order: This is basically the same as Sequence Order, but it deals with the “Append“ parents, just make sure the listed bone is below its parent.
- Invalid OK Parent: This is basically the same as Invalid Parent, but it deals with the “Append“ parents, just make sure the listed bone’s parent isn’t -1.
- Invalid Display Destination: The bone listed is parented to a bone that doesn’t exist, just change it to a different bone.
- Invalid Granted Parent: This is basically the exact same as Invalid Display Destination, if you fix the one above, this should disappear too.
- Invalid IKTarget: Make sure the IK Target that this bone is set to isn’t -1.
- Invalid IKLink: I couldn’t find a fix for this or recreate this error, but I’ll update this post as soon as I find it. Meanwhile, remaking your IK seems to fix this.
- Unregistered Bone: This bone isn’t registered in the display pane tab, find the right pane to put it in on the left, then go to the Bone drop-down menu on the right, select the bone, and click +Add.
- Duplicate Registered Bone: This bone is registered more than once in the Display Pane, just find the duplicates and delete it.
Morph
- Missing Morph Name: This morph doesn’t have a name, just find the morph in the Morph tab in the smaller PMXEditor window and give it a name.
- Duplicate Morph Name: This morph has the same name as another morph above it, find and compare the duplicates in Transform View to see which one works. Delete the one that doesn’t work. If they all work, change the name of one of the morphs
- Invalid Morph Offset: If you go to the Morph tab and click on the morph listed, you’ll see a list of a lot of numbers in the center box. Check the number after the colon but before the parentheses and make sure that they’re from 0 to the total number of vertices the model has (which can be found in the Vertex tab in the smaller PMXE window, it’s the number above and to the right of the large box)
–
- Unregistered Morph: This bone isn’t registered in the display pane tab, find the Morph/表情 pane on the left, then go to the Morph drop-down menu on the right, select the morph, and click +Add.
- Duplicate Registered Morph: This morph is registered more than once in the Morph/ 表情 Display Pane, just find the duplicates and delete it.
Display
- Missing Frame Name: This display pane doesn’t have a name, just add the names in the Display tab in the smaller PMXE window.
- Duplicate Frame Name: This display pane has the same name as another display pane above it, just delete this one and transfer any morphs and bones into the one before.
- Invalid Registered Bone: Somehow a bone that doesn’t exist was registered in one of the frames, just find and delete it.
- Invalid Registered Morph: Somehow a morph that doesn’t exist was registered in one of the frames, just find and delete it.
- Look-Frame Registration/System Frame Condition:
RigidBody
- Missing RigidBody Name: This rigid body doesn’t have a name, just add the names in the RigidBody tab in the smaller PMXE window.
- Duplicate RigidBody Name: This rigid body has the same name as another rigid body above it, just delete this one and transfer any joints linked to this body to the duplicate.
- Invalid Bone: The body is set to follow a bone that doesn’t exist, just click on the body with the error, then go to the right of the window where it says “Link Bone”. Click on the drop-down menu and find a bone with the same name as the body. If you can’t find it, just delete the body and you should be fine.
Joint
- Missing Joint Name: This joint doesn’t have a name, just add the names in the Joint tab in the smaller PMXE window.
- Duplicate Joint Name: This joint has the same name as another rigid body above it, just delete this one. If this breaks your model, try deleting the joint above it or rename one of them.
- Invalid RigidBody A: This means the joint is missing a rigid body to attach to, go to the Joint tab in the smaller PMXE window and find the joint, find the right rigid body to use in the drop-down menu next to “Con Body A”. The joint name should give you a clue on what body to use.
- For example, if the joint name is “頭-左髪横”, that means the A Body should be 頭. If this body name doesn’t exist, you should either make one or delete the joint, depending on whether you need this joint or not.
- Invalid RigidBody B: This means the joint is missing a rigid body to attach to, go to the Joint tab in the smaller PMXE window and find the joint, find the right rigid body to use in the drop-down menu next to “Con Body B”. The joint name should give you a clue on what body to use.
- For example, if the joint name is “頭-左髪横”, that means the B Body should be 左髪横. If this body name doesn’t exist, you should either make one or delete the joint, depending on whether you need this joint or not.
SoftBody**
(This should only be used for models for MMM/MikuMikuMoving, MMD doesn’t support this)
- Missing SoftBody Name: This soft body doesn’t have a name, just add the names in the SoftBody tab in the smaller PMXE window.
- Duplicate SoftBody Name: This soft body has the same name as another soft body above it, just delete this one.
- Invalid Material: An invalid material is assigned to this softbody, just find the numbered body and change the material to the correct one.
- Invalid RigidBody: An invalid rigidbody is assigned to this softbody, just find the numbered softbody and change the rigid body to the correct one.
- Invalid Vertex: An invalid vertex is assigned to this softbody, just find the numbered body and reassign the vertices.
- Multiple Invalid Vertex: I haven’t been able to create this error myself, but it should be similar to “Invalid Vertex”.
- Invalid Material Vertex: A vertex assigned to this softbody is not a part of the material you assigned it to, just find and delete it, or reassign the vertices.
Cleaning Up…
After this, you’ll need to get rid of the excess display frames and translate the model.
The only display panes you need are:
- “Root”-Root (The only bone you put in here should be the motherbone/全ての親)
- “表情”-Expression
- “センター”-Center
- “IK”-IK
- “体(上)”-UpperBody and “体(下)”-LowerBody
- It could be just “体”-Body
- “腕”-Arms
- “指”-Fingers
- “足”-Legs
And optionally:
- “髪”-Hair
- “服”-Clothes
- “羽”-Feathers/Wings
- “その他”-Other/Misc
So, delete everything that isn’t listed here or is a duplicate. You might need to recheck PMXInfo after this since some bones might be misplaced.
To translate the model, go to Edit>Batch Name Editor. At the top should be a drop-down box, you would need to translate the bones, facials, and display frames:
- “ボーン”
- “モーフ”
- and “表示枠”
After selecting a section, use Edit>Japanese Name to English Name (Use Dictionary) to automatically fill in some of the English names from the PMXE directory. You might need to do some of those manually since not everything is named perfectly. Google translate should help with that!
SAVE model with a new name…
You’re all done at this point! Be sure to save your model as a separate file so you can go back to the old one in case anything goes wrong.
Optimize your downloaded models…
Remember, before using a model, fix errors with PMXInfo and rename things to English for easier use!
Have fun with MikuMikuDance!
– SEE BELOW for MORE MMD TUTORIALS…
— — —
– _ — –