NekoMDL
Jump to navigation
Jump to search
NekoMDL is a fork of StudioMDL with additional features.
Features
- Increased limits
- 64-bit with no dependancies; can run standalone
- Faster compilation (using new algorithm instead of nvtristrip, https://github.com/zeux/meshoptimizer)
- glTF support, including animation and flexes.(using https://github.com/spnda/fastgltf)
- FBX support, including animation and flexes. (using Assimp, indirectly supports nearly 40 formats. https://github.com/assimp/assimp/blob/master/doc/Fileformats.md)
- Single-file glTF or FBX: support for reading part of the scene tree; support for multiple animations
- Two commands for setting the $jigglebone axis.
- Simple way to configure many procedural bones
- $contents can be set to "debris", to be solid to VPhysics and bullets, but nonsolid to QPhysics.
- Set variables that are used dependent upon command line parameters. (-Dvar=val)
- New command line arguments: -modelname, -outdir, -reloadhlmv
- Conditional macros: $if, $ifdef, $else, $elif, $eldef, $endif
- Some new qc commands, see newcommands.qci in the distribution file for details.
; 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 ; v0.5.1 * Fixed: "$NekoDriverBone" position calculation error * Fixed: When loading mdl in the game, the console reported an error that Keyvalues was missing "{" ; v0.5.0 * Added: "$forcecapsules", the compiler will skip processing this command to prevent errors. * Added: ".gltf" & ".glb" format support, flex or animation are not supported yet. The blender process uses the glb format the fastest. The following is a simple test: (136908 triangular face, divided into four parts, no flex) Export: glb 12.2s | dmx 65.8s | smd 55.7s Compile: glb 1.15s | dmx 1.73s | smd 17.72s ; v0.4.1 * Adjusted: Maximum "$Animation" is 4096 ; v0.4.0 * Changed: parameter "-usenvtristrip" changed to "-nvtristrip" * Fixed: $Keyvalues error reported in the console when loading mdl in the game * Added: new qc command "$NekoDriverBone" ; v0.3.1 * Added: FBX format support (need to add a line of code "$prefer_fbx" to QC before use) * Added: Use Forsyth's model optimization algorithm (faster) instead of the default Nvidia algorithm (the parameter -usenvtristrip uses the old algorithm, slower) * Changed: The program uses 32-bit and turns on large memory support to ensure compatibility * Fixed: Unable to compile collision mesh * Changed: compatible with model 15 dmx (please use model 18 for new dmx export) * Adjusted: maximum Sequences is 2048 * Adjusted: Lower the maximum material limit to 64 to save memory * Fixed: some bugs * Changed: the message printed by the console * Changed: the compilation time is printed when the compilation is completed * Changed: the information starting with "CDynamicFunction:" is not printed * Fixed: Automatic splitting of meshes with an excess number of vertices causing compilation failure ; v0.2-dev * Adjusted: Bone weight culling lower than 5% is reduced to 0.01% * Adjusted: Maximum vertices is 655360 * Adjusted: Maximum faces is 218,453 * Adjusted: Maximum materials is 128 * Adjusted: Maximum bones is 129 |
External links
- Steam Workshop page - extract the 7Z file from the "addon" VPK
|