StudioMDL (Source)
Jump to navigation
Jump to search
- For a guide to studiomdl's usage, see Compiling a model.
Studiomdl is the command-line tool used to compile models from intermediate formats exported from modeling packages to the binary .mdl format that is read by the Source engine.
It can be found at ![]()
common\<gamename>\<gamefolder>\bin\studiomdl.exe.
-game and an associated path are specified. Using a shortcut on the desktop, however, still works. This is an issue on Microsoft's end, unfortunately. [todo tested in ?]Parameters
The only parameter required is a QC file. Any others must come before it.
studiomdl [options] <path\QC>
General
-game <gamedir>- Override the VProject game path.
-quiet- Suppresses some console output, such as spewing the searchpaths.
-x360- Enable Xbox 360 output, overriding the Gameinfo.txt
-nox360- Disable Xbox 360 output, overriding the
Gameinfo.txt -nowarnings- Disable warnings.
-maxwarnings <int>- Print no more than the specified number of warnings.
Animation
-definebones- See $definebone.
-printbones- Writes extra bone info to the console.
-printgraph- Todo: Appears to dump xnode data for each node?
-overridedefinebones- Equivalent to specifying $unlockdefinebones in QC.
-checklengths- Prints engine-ready keyframe data for each animation.
Performance
-fastbuild- Skip processing DX7, DX8, X360, and software VTX variants (use
.dx90.vtxonly). This speeds up compiling. -preview- Skip splitting quads into tris. This changes the rendering flags for the model, most likely resulting in slower performance or buggier rendering in-engine.
-fullcollide(only in
)- Don't truncate really big collision meshes (in all games since
, use $maxconvexpieces). -striplods- Ignore all $lod commands.
-minlod <lod>- Throw away data from LODs above the given one (see $minlod).
-mdlreport <path\model.mdl>- Report performance info for an already-compiled model. A QC file is not needed when using this command.
-perf <path\model.mdl>- Same as
-mdlreport. -mdlreportspreadsheet- Report performance info, per-LOD, as a comma-delimited spreadsheet. It will appear in the form:
Path to VTX, VTX file extension, LOD number (1 is the root lod), tri count, number of batches rendered, number of materials used
- Must be used with -mdlreport or -perf!
Note:It doesn't actually write a spreadsheet to disk.
Debug
-d- Dumps various glview files (10 per LOD per VTX file),
-h- Dump hitboxes to console.
-n- Tag bad normals.
-dumpmaterials- Dump names of used materials to the console.
-i- Ignore warnings.
-t- Replaces all materials with the default pink check pattern
-parsecompletion- Prints an easily parseable message indicating whether the compile was successful or a failure.
-collapsereport- Prints info on which bones are being retained and which bones are being collapsed.
Other
-nop4- Disables Valve's Perforce integration. Unless you actually have Perforce set up for your game/mod (a highly unlikely scenario), you should use this.
-verify- Compile the model, but don't actually write the results to disk.
-a <normal_blend_angle>- Auto-smooth faces equal to or below specified angle. Will override normal data for all meshes.
-f(removed since
)- Flip all triangles.
-vsi <path\[QC|MDL]>- Generates a VSI file from a QC or MDL.
-stripmodel <path\model.mdl>- Strips down a model, removing its LOD info.
-stripvhv <path\sp_hdr_x.vhv>- Strips down hardware verts (VHV) of their LOD info.
-makefile- Generates a simple makefile for later compiling. It also parses the QC for any errors, and runs in
-quietmode. -basedir <path>- Runs studiomdl in the context of the provided path.
-tempcontent <path>- Adds the provided path as a content search path.
Nonfunctional
-r- "Tag reversed".
-ihvtest- Probably meant to test the model collision for any physics errors. Skips whatever argument is provided after it.
Input Files
StudioMDL supports a range of input formats. These include SMD, DMX, and OBJ for reference meshes and VTA files for vertex and flex animation.
Counter-Strike: Global Offensive also supports FBX, but with limited functionality. Flexes are not directly supported, nor are FBX sequences, however an SMD/DMX sequence can be used on an FBX model.
Output files
mymodel.mdl- Skeleton, animations, bounding/hit boxes, surface materials, LOD index…
mymodel.sw.vtxmymodel.360.vtxmymodel.dx80.vtxmymodel.dx90.vtx- Vertex data optimised for software rendering, XBox 360, DirectX 7, 8 and 9 respectively.
Note:.360.vtxfiles are just byteswapped.dx90.vtxfiles. mymodel.vvd- Remaining hardware-agnostic vertex data, including the UV map
mymodel.phy- Collision mesh data
See Also
- Common Studiomdl errors
- Crowbar, a popular graphical interface for studiomdl which also supports model decompiling and other advanced features.
- Studiocompiler, a graphical interface for studiomdl
- GUIStudioMDL, another graphical interface
- Source Model Compiler, a web based model compiler and QC generator.
- Fixing the 5% Weight Bone Link Cull, for SFM
| |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||