nekomdl (modified studiomdl)
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
…