ModelDoc FAQ & best practices
- Valve's own formats: DMX (should be version 22?), and SMD (technically deprecated, but usable)
- Typical 3D formats: FBX, OBJ, VOX
- Source 1 and GoldSrc MDL
What's NOT supported:
- Multiple actions/animations per file automatically. You can however use the same FBX file as the source of more than one animation, and trim the frame ranges accordingly; this is done with the Citizen's shotgun reload.
- Vertices with more than 4 weight influences. Weights will automatically get culled and normalized, which is far from ideal; best to plan your skinning with this in mind from the start!
Use the "Add Simple Animations" feature. The simplest way to access it is by right-clicking AnimationList.
Ideally, you shouldn't decompile a model. You're likely to get something that's not usable without some (if not lots of) work. If you want to modify something someone else made, you should ask them first!
The cleanest way to generate source files back out of an existing VMDL is to open it in ModelDoc, and use the Export As... function. It can export any meshes (including skinned ones) as FBX or OBJ. It will also attempt to export the maps used by the model's materials.
You may also try to use the Valve Resource Format explorer to attempt to export individual animations, though they will need some clean-up.
Make sure there are no underscores in the name. In the DMX specification, underscores are specifically for corrective shapes. See this page on the Valve Developer Community wiki for more information.
Unless your model is meant to be a fully static thing, it should have at least one animation sequence. Just bindPose should be enough. Otherwise, some things will invisibly break (morph targets won't work, IK data will mysteriously go missing, etc.)
When working with others, or when distributing your source files, your FBX files should be binary, and not ASCII. This is because Blender users can only import binary FBX files.
Keep the download size of your addon in mind. Compress your files and masks up to the point that's needed. Your character model shouldn't be 300 MiB on its own. See the Material Editor category on this wiki for more information.
If your model has multiple materials, name them accordingly. If a material has a period in its name everything after it will get omitted, resulting in multiple materials of the same name, which gets collapsed into only one when imported (example: Blender naming materials .001, .002, etc. when using the same names)