Studiomdl

From Valve Developer Community
Jump to: navigation, search
Español Русский
Bug:
Attempting to use Studiomdl or a shortcut of it pinned to the taskbar in Windows 8 will result in an invalid target path even when -game and an associated path is specified. However using a shortcut on the desktop still works. This is an issue on microsoft's end unfortunately.
For a guide to studiomdl's usage, see Compiling a model.

Studiomdl is the command-line tool used to compile models from the intermediate Studio Model Data format 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".

Tip:The name "studio" is a throwback to the development of Half-Life 1, during which Valve used 3D Studio Max to create their models.

Parameters

The only parameter required is a QC file. Any others must come before it.

studiomdl [options] <path\QC>

General

-game <gamedir>
Override system-wide game path.
-quiet
Theoretically suppresses console output. In practice does nothing.
-x360
Enable Xbox 360 output (OB).
-nox360
Disable Xbox 360 output (Ep1).
-nowarnings
Disable warnings.

Animation

-definebones
See $definebone.
-printbones
Writes extra bone info to the console.
-printgraph
Writes some kind of animation weight graph to the console.
-overridedefinebones
Equivalent to specifying $unlockdefinebones in QC.

Performance

-fullcollide
Don't truncate really big collision meshes (Ep1 only; OB uses $maxconvexpieces).
-striplods
Ignore all $lod commands.
-minlod <lod>
Throw away data from LODs above the given one (see $minlod).
-perf
Report performance info in console.
-mdlreport <path\model.mdl>
Report performance info for an already-compiled model. A QC file is not needed when using this command.
-mdlreportspreadsheet
Report performance info as a comma-delimited spreadsheet. To do: Usage

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

Unknown

-a <normal_blend_angle>
Auto-smooth faces equal to or below specified angle. Will override normal data for all meshes.
-checklengths
?
-f
Flip all triangles.
-r
"Tag reversed"..?
-vsi <path\[QC|MDL]>
Generate stripping information .vsi file. Works with QC and MDL. (Some sort of memory optimisation function? Possibly related to Xbox 360.)
-stripmodel
Process binary model files (VSI?) and strip extra lod data.
-stripvhv
Strip hardware verts to match the stripped model.
-nop4
Suppresses the "Unable to load module p4lib.dll!" warning, but what is it trying to load it for in the first place?

Output files

mymodel.mdl
Skeleton, animations, bounding/hit boxes, surface materials, LOD index...
mymodel.sw.vtx
mymodel.dx80.vtx
mymodel.dx90.vtx
Vertex data optimised for DirectX 7, 8 and 9 respectively
mymodel.vvd
Remaining hardware-agnostic vertex data, including the UV map
mymodel.phy
Collision mesh data

Input files

The input files may be smd or dmx. With the latest update, CS:GO studiomdl version supports FBX files.

See also