Left 4 Dead 2

Left 4 Dead 2

303 ratings
nekomdl (modified studiomdl)
10
2
2
3
3
3
3
2
2
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
4.420 MB
19 Jan, 2024 @ 12:21am
27 Apr @ 8:55am
39 Change Notes ( view )

Subscribe to download
nekomdl (modified studiomdl)

Description
this content is useless if you are not a modder.

Changelog

Supports glTF, FBX, VRM and other formats. Please set the DMX export version to Binary5 Model 18.
Due to a compiler algorithm bug, too many vertices of a material in a single file (the exact number is uncertain) will cause a stack overflow, so the file will be automatically split when the number of vertices in a single file exceeds $MaxVerts.
When the compilation of a complex model fails (the generation of the vtx file is interrupted), try to reduce $MaxVerts and increase $FileBufferSize (8/16/32/64/...).
Supports up to 128 materials.
For other features, please refer to the attached changelog and NewCommands.qci

Changelog

v2.1.3
  • New qc command: $RenameMorph

v2.1.2
  • New qc command: $MaxBones

v2.1.1
  • Increase the maximum number of flexed vertices to 511451.
  • New qc command: $FileBufferSize; default is 8mb. if your model has very much detail, or very much animation, a larger file buffer will be needed. Increase its size appropriately to prevent compilation failures, and the compiler will also take more memory.

v2.1.0
  • glTF&Assimp: fix wrong end frame causing compilation failure
  • Fix the bug that $CmdList can't be parsed

v2.0.5
  • Increase the maximum number of vertices in a single source file to 51w (511451), beyond which it will be split automatically.
    make sure $NoDecal is turned on in vmt, or make sure the number of vertices in each source file does not exceed 65536.
  • Fix a bug that prevented compilation.

v2.0.4
  • New $Animation option: AppendScale
  • Fix a bug in glTF reading

v2.0.3
  • New command: $NoFastGltf
  • Fix some bugs

v2.0.2
  • Fixed inability to correctly parse filenames without extensions.
  • Using caching to improve loading speed of 'innode' options.
  • glTF and Assimp: fix the animation used by default when ‘pick’ is not used.

v2.0.1
  • Fix 'InNode' error.

v2.0
  • glTF support for animation, default up axis changed to Y, support for node transforms。
  • Throw away the FBX sdk.
  • Use Assimp model loading library, supports over 40 formats including FBX, PMX, VRM. Support for Animation/SceneNode/Mesh/MorphTarget.
    https://github.com/assimp/assimp/blob/master/doc/Fileformats.md
  • New qc command: $FPS, sets the default animation frame rate and the animation sampling rate for glTF or Assimp.
  • New source file parameters: 'InNode', 'SampleRate', 'Pick'. Ability to load part of the meshs or one of multiple animations in a single file. Only support glTF&Assimp(FBX..).
    More details in the NewCommands.qci file.
  • $UpAxis added parameters: 'glTF', 'Assimp'
  • DMX: Does not display an error when a vertex has too many influenced bones.

v1.4.1
  • New commands: $JiggleBoneRealign, $ReverseJiggleBoneRotation.
  • Use meshoptimizer instead of forsyth to optimize vertex caching, nvtristrip is no longer recommended.

v1.4.0
  • Upgrading to 64-bit.
  • The program is completely independent and no longer depends on the external vphysics.dll.
  • Floating point numbers support scientific notation.
  • Fixed the problem that after using $PushD, the source file with the absolute path could not be read normally.
  • $IF macro support || operator.

v1.3.3
  • Fix $NekoDriverBone not supporting bones with “.” bone names
  • Fix not recognizing source files with uppercase suffixes in qc.

v1.3.2
  • Adjust the maximum number of materials to 128。
  • Use UTF8 encoding.

v1.3.1
  • Fix a bug in $DefineVariable.
  • Fix a bug in $EndIF.

v1.3.0
  • The $if command supports '==' and '!=' expressions.
  • Fixed unused bones not collapsing.

v1.2.0
  • When the obj model cannot find the material texture, use the material name instead of "debugempty".
  • obj model $Scale support.
  • Enter standalone mode when the command line parameter does not include "-game".
  • Added qc commands: $if,$ifdef,$elif,$eldef,$else,$endif,$UndefineVariable,$Msg.
  • Supports defining variables through command line parameters, usage: [-D<variable_name> <value>]

v1.1.0
  • Added fbx animation support.

v1.0.3
  • Added "debris" as a valid option for $Contents.

v1.0.2
  • Fixed: Will not collapse bones with vertex weights.
  • Changed: Bones that have only been used by $Attachment will not collapse.

v1.0.1
  • Changed: Do not collapse bones with no vertex weights used by $Attachments and $Bonemerge.

v1.0
  • Added: $NekoModel flex related parameters for FBX and DMX support. The usage can be found in the example qc.
  • Added: Fallback to use FBXSDK to parse fbx files, upgrade sdk version to 2020.3.2.
  • Added: Use the libraries required for static linking, no more dlls. note that when compiling models with $CollisionJoints, need to load vphysics.dll in the game directory.
  • Added: Does not compare sequence differences with the mdl file to be overwritten. This can be turned on with the command line parameter [-checksequenceorder].
  • Added: Hot reloading hlmv without checking if the title bar is the same as $ModelName.

v0.9.4
  • Fixed: When the driver bone of $NekoDriverBone is the parent of a procedural bone, the angle calculation of the procedural bone is incorrect.
  • Added: New command line parameter: "[-reloadhlmv]", which will hot-reload HLMV after successful compilation.

v0.9.3
  • Added: New command line parameter "[-blender <path>]", tells the compiler the directory where the Blender executable is located.
  • Changed: Call Blender to convert FBX to glTF. FBX now has the same functions as glTF. No longer dependent on fbxsdk.


v0.9.2
  • Added command line parameter [-maxbones <number>] to set the maximum number of bones in the compiled model

v0.9.0 ~ v0.9.1
  • Changed: Modify the file buffer size in other places, now the entire model can have up to 1 million triangles.
  • Fixed: When automatically splitting a model with too high number of vertices, the split part will become an empty model.
  • Added: support for glTF unskinned meshes.
  • Fixed: glTF does not support $lod command.

v0.8.0
  • Changed: Increase the buffer size for writing files to prevent high-polygon models from causing memory overflow and crashes.
  • Changed: New icon

v0.7.0
  • Added: $NekoModel supports eyeball and eyelid options
  • Changed: The maximum number of cmds for animation is 128
  • Added: gltf mesh $scale support
  • Added: Apply $scale and animation parameter scale when reading animation parameter "forceboneposrot"
  • Added: $scale support for dmxeyelid, eyelid, eyeball

v0.6.2
  • Fixed: Parameter "-outdir" does not support relative paths

v0.6.1
  • Added: command line parameters "-modelname"&"-outdir"
  • Added: glb morph targer(shape key) support

v0.6.0
  • Added: support gltf morph targer, glb not supported yet
  • Added: new qc command "$NekoModel", support gltf using flex
  • Changed: $hbox does not write information about the capsule
  • Fixed: "noautodmxrules" causes error report
  • Changed: $NekoDriverBone logic, supported bone collapse

...
120 Comments
FilmAFrame 13 Oct @ 4:15am 
Can you add $subd next? That command is exclusive for Alien Swarm and Source Filmmaker
could something like V-HACD [github.com] be integrated internally to be used when attempting to compile a physics mesh for a model that is not prepared as such?
Aeris>︿< 22 Sep @ 11:39am 
just wanted to report that complex character model that goes beyond the limit of L4D2 with facial flex make crash in hlmv or ingame evne tho it's compile just fine still. any help or fix would be appreciate. but thanks for making this tool! it been super useful
Lily's Cherry 16 Sep @ 1:42am 
太牛逼
nekonacho  [author] 9 Sep @ 9:09pm 
256 is not the upper limit for mdl.
It is the upper limit for the source engine.
Rexcilius 28 Aug @ 2:51pm 
can this go past the 256 bonelimit?
Toppi 7 Aug @ 12:39am 
It seems that recent patch 2.3.0 have problem with $collisionjoints as its subcommand $mass, $inertia, and $rootbone etc resulted as a "bad command"
ched salvia 26 Jul @ 5:28pm 
you're the best! fuck the default studiomdl XD
Sirhephaestus 8 Jul @ 5:01am 
That is unfortunate because dx80 still has powerful uses in CS:S, plus causes issues for people using it if there's no model. Thanks for the reply though.
nekonacho  [author] 8 Jul @ 3:22am 
dx80 related features have been removed.