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
- Multiple animations per FBX file (also known as "takes" in the FBX format)
What's NOT supported:
- 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.
You need to create a model that will have an animgraph that will respond properly to the inputs of the Animation Controller. This involves rigging, animating, and creating the graph yourself.
If you can't or don't want to do all this for your new character, you will need to bind it to an existing character skeleton. See this section of the Citizen page for more info.
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.
It is recommended you modify location and rotation manually in a separate modelling program. Alternatively, for scale you can use the ScaleAndMirror node for scaling your model. If you have a static model without armature, you can change a model's location, scale, and/or rotation in the same RenderMeshFile node you used to import the model:
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)