Revision Difference
ModelDoc_FAQ#546723
<cat>Dev.Model</cat>
<title>ModelDoc FAQ & best practices</title>
# Frequently asked questions
## > Can you import MDL/FBX/SMD...
ModelDoc supports:
* Valve's own formats: DMX (should be version 22?), and SMD (technically deprecated, but usable)
* Typical 3D formats: FBX, OBJ, VOX
* Multiple animations per FBX file (also known as "takes" in the FBX format)
What's NOT supported:
* Source 1 and GoldSrc MDL (support was removed)
* 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!*
## > How do I import several animations at once?
Use the *"Add Simple Animations"* feature. The simplest way to access it is by right-clicking *AnimationList*.
<upload src="a50a1/8d972b21c553879.png" size="32842" name="sbox_2021-09-08_12-18-38.png" />
## > How do I create a player model for s&box?
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.](https://wiki.facepunch.com/sbox/Citizen_Model#creatinganewplayermodel)
## > How do I decompile a compiled model (VMDL_C)?
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](https://github.com/SteamDatabase/ValveResourceFormat/releases) explorer to attempt to export individual animations, though they will need some clean-up.
## > How do I move/scale a model in ModelDoc?
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:
<upload src="a4aaf/8d9989cc0f1d3ae.png" size="7247" name="image.png" />
<warning> Beware not to use the last method for models with animations or an armature, as it's prone to break both. </warning>
## > I have missing bones!
By default, bones that are not skinning anything will be transparently discarded. You can prevent this behaviour in two ways:
1) Create a BoneMarkup node for your bone, and tick "Do Not Discard"
2) Set "Bone Cull Type" to "Leaf Only" or "None" on the root "BoneMarkupList" container.
Keep in mind that fewer bones are best for performance.
## > My morph target (blend shape) isn't importing properly
⤶
Make sure there are no underscores in the name. In the DMX specification, underscores are specifically for corrective shapes. See [this page](https://developer.valvesoftware.com/wiki/Flex_animation#Corrective_shapes) on the Valve Developer Community wiki for more information.
⤶
* Make sure the material used by your mesh has morph enabled in its material properties!
⤶
* There must not be any underscores in the names of your shapes. In the DMX specification, underscores are specifically for corrective shapes. See [this page](https://developer.valvesoftware.com/wiki/Flex_animation#Corrective_shapes) on the Valve Developer Community wiki for more information.⤶
#Best practices
* 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.)
* 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, for optimization purposes, some things may 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)*