Left 4 Dead 2

Left 4 Dead 2

253 ratings
nekomdl (modified studiomdl)
8
2
2
2
3
2
2
2
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
4.420 MB
Jan 19, 2024 @ 12:21am
Apr 27 @ 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

...
105 Comments
Edison Gar Apr 17 @ 10:16pm 
If flex verts is over 10000, is it possible to compile it? Cause I did and when I test in the game and it results crash.
тефтельки Feb 17 @ 9:09am 
When using nekomdl for my model, something happened to my eye coords? The eyes in game don't work, when im using normal compiler it's fine
AtomicTEM Feb 7 @ 5:33am 
Would it be possible to add a $inlcludemodel type qc commands that doesn't ignore models or textures?
Vavency Feb 1 @ 3:13pm 
Looks like I found a chicken and an egg problem:
```
$declaresequence "pose"
$append "pose" origin 1.0 1.0 1.0
```
`pose` exist in an animation mdl thus the need for `$declaresequence`, nekomdl ends up crashing with access violation.

I don't expect this to be fixable as even simple append like `hidden` don't take affect.
Moon. Jan 20 @ 12:15pm 
Hey, would it be possible to increase the vertex limit? Models that compile fine with cra0kalo give an assert error with this one. It's great to finally go over 64 mats, but I have to split models anyways because of the vertices.
zarawig Jan 15 @ 11:46pm 
为什么在进行gmod模型编译时、模型会出现裙子的一根骨头额外翘起?vrd动画编译的两根腿骨哪根在前、哪一边的裙子就会额外翘起
Pro100_Red_Mushroom Dec 29, 2024 @ 10:09am 
would it be possible to allow flexfile to be defined under bodygroups for SMDs?
so for example:

$bodygroup BodygroupModel
{
studio "BodygroupModel1.smd" {
flexfile "BodygroupModel1.vta" {
defaultflex frame 0
flex "Flex1" frame 1
}
flexcontroller my_group range 0 1 "Some flex"

%Flex1 = "Some flex"
}
studio "BodygroupModel2.smd"
blank
}

this would be very useful for toggleable parts of a model that have flexes, like beards and such.

also, great work! :luv:
Agent47 Dec 14, 2024 @ 8:23am 
well well I did some tests and here I leave you the advantages and disadvantages of this modified mdl study

1)ADVANTAGES

-128 MATERIALS ARE ALLOWED TO THE EXTENT OF

-THE ANIMATION SEQUENCE CAN BE EXTENDED UP TO 60 FRAMES PER SECOND

-CAN SUPPORT MORE THAN 100 BONES

2)DISADVANTAGES

-WHEN USING THIS COMMAND $FileBufferSize
THE MODEL IS COMPILED ACCORDING TO THE VERTICES OF THE MODEL FOR EXAMPLE I HAVE A MODEL WITH GREAT DETAILS THAT OCCUPIES A LARGE NUMBER OF VERTICES SO YOU CAN USE IT UP TO 64

(BUT THEY DON'T CONFIDENT IF YOU CAN COMPILE IT BUT IF YOUR MODEL HAS VTA FILES VTA. I'M SORRY TO TELL YOU THAT THE EXPRESSIONS WILL NOT BE COMPILED, THEY WILL BE IN THE EASY EXPRESSIONS SECTION BUT THE MESH WILL BE DIVIDED UP TO 100 TIMES SO IT'S NOT WORTH COMPILING IT WITH A CDM THANK YOU..
mav Nov 18, 2024 @ 5:30pm 
what is "AppendScale"?
白某人 Nov 10, 2024 @ 6:41am 
@Agent47 That's what happened to me:steamthumbsup: