NekoMDL: Difference between revisions
Jump to navigation
Jump to search
SirYodaJedi (talk | contribs) (Changelog, since it's truncated on workshop page) |
|||
Line 15: | Line 15: | ||
* Conditional macros: $if, $ifdef, $else, $elif, $eldef, $endif | * Conditional macros: $if, $ifdef, $else, $elif, $eldef, $endif | ||
* Some new qc commands, see newcommands.qci in the distribution file for details. | * Some new qc commands, see newcommands.qci in the distribution file for details. | ||
{{expand|title=Changelog|<pre> | |||
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 | |||
</pre>}} | |||
== External links == | == External links == |
Revision as of 11:34, 11 August 2024
NekoMDL is a fork of StudioMDL with additional features.
Features
- 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
|