0 of 0

File information

Last updated

Original upload

Created by

zilav

Uploaded by

zilav

Virus scan

Safe to use

Tags for this mod

About this mod

S'Lanter's NIF Helper Tool

Requirements
Permissions and credits
Changelogs
A batch NIF processing tool intended for intelligent S'Lanters


NIF
  • Update tangents and binormals - recalculate tangents, binormals and optionally normal vectors in shapes using modified Unity's code
  • Search and replace assets - perform search and replace on assets paths (textures and other referenced files) in meshes
  • Universal tweaker - change any value in any block types or in the specific block specified by path
  • Universal fixer - fix some common nif issues
  • Attach parent NiNode - the same as Attach Parent in NifSkope applied to NiNode or it's descendants with defined name
  • Convert to and from JSON - convert *.nif and *.kf files to text JSON format (for viewing, comparing, editing) and back
  • Convert strips to shapes - the same as Triangulation spell in NifSkope
  • Adjust transformation - adjust transformation of the root node or nodes matched by Name
  • Rename strings - search and replace in the Strings list in NiHeader
  • Copy geometry blocks - copy geometry data in BSTriShape, NiTriShape and NiTriStrips blocks between meshes preserving existing links. Blocks are matched by name. Used to copy updated geometry data back from reexported meshes preserving original nif data structure and settings
  • Collapse link arrays - remove empty links from link arrays. Also locate and warn about invalid links (pointing to missing blocks) and repeated links (several entries linking to the same block) though they are not removed and require manual fixing
  • Vertex color painting - set/adjust/remove vertex colors and/or alpha
  • Group shapes - group children shapes of the root node using the same diffuse texture under newely created parent NiNode named after texture file
  • Merge shapes - merge BSTriShape, NiTriShape and NiTriStrips blocks under NiNodes matched by name. Running Group shapes and then Merge shapes containing ".dds" basically works as precombination
  • Remove nodes - remove nodes matched by name or type (the whole branch including children)
  • Remove unused nodes - remove blocks not used by anything, optionally remove extra root nodes except single one
  • Convert root node - convert the root node type
  • Change partition slot - change partition slot in BSDismemberSkinInstance
  • Dismember NiSkinInstance - convert NiSkinInstance blocks to BSDismemberSkinInstance
  • Add NiLODNode - move strips and shapes to the added NiLODNode block
  • Set missing names - rename unnamed nodes and optionally the root node after the file name (more readable crash logs and less CK assertions)
  • Update author - update Author, Process and Export Script fields in NiHeader


Report
  • Check for errors - find and report some common errors
  • Find unwelded vertices - find vertices within a specified distance to each other in the same shape
  • Find several strips - find NiTriStripsData blocks with Strips Num larger than the defined value. Each additional strip requires a separate draw call which negatively affects performance. Ideally Strips Num should be 1, larger values indicate unoptimized or badly exported meshes
  • Search for Havok material - find meshes using the specified Havok collision type
  • Find excessive draw calls - find meshes causing excessive amount of draw calls (rough estimation)


Animation
  • Copy anim controlled blocks - copy missing cotrolled blocks between *.kf animation files
  • Copy anim priorities - copy priorities of controlled blocks between kf files matched by name
  • Rename controlled blocks - rename controlled blocks in *.kf animation files
  • Remove controlled blocks - remove controlled blocks in *.kf animation files containing provided strings
  • Update priority of controlled blocks - change Priority values in controlled blocks of NiControllerSequence matched by name
  • Quadratic to linear anim - change quadratic interpolation to linear in matched controlled blocks
  • Fix 3DS exported KF - several fixes for *.kf files after exporting from 3DS Max
  • Optimize KF animations - remove excess repeated keys from transform data blocks
  • Add headtracking anim - add headtracking animation
  • Add NiTransformData - add NiTransformData with quaternion Rotation keys and optionally Translation keys to NiTransformInterpolator
  • Weijiesen's blow up thing - postprocessing for blowing up animation
  • Add blocks from skeleton - create anim controlled blocks in death animation for skeleton bones without collision
  • Add facial anim - add facial animations


Collision
  • Update MOPP code - update MOPP collision code with the proper working one
  • Update Havok settings - change collision parameters (material, mass, friction, etc.)
  • Update Havok inertia - сalculate inertia tensor matrix in simple collision shapes: box, sphere, capsule. Optionally calculate collision center.
  • Update ragdoll constraint - сalculate Twist plane axis (Motor in NifSkope) A and B values in bhkRagdollConstraint
  • Convert FO3 collision - change bhkConvexListShape used in FO3 but unsupported in FNV to bhkListShape


Shader
  • Update shader flags - update shader flags in BSLightingShaderProperty and BSShaderPPLightingProperty
  • Update parallax settings - change parallax values in shaders
  • Convert to shader 3.0 - convert BSShaderPPLightingProperty to Lighting30ShaderProperty
  • Real Time Reflections - NVSE - add RL reflections flag (Unknown10) and remove light fade flag in shaders with environment mapping


Command Line
-OP:"Universal tweaker"
Automatically start processing with the specified operation and close the app when done
-S:"c:\Sniff\My.ini"
Use the custom ini settings file instead of the default Sniff.ini. If provided name
is not an absolute path then it is treated as relative to the Sniff folder.
Can be used to create settings for operations running from command line. Just select
the operation, set values and press Exit.
-I:"c:\Input"
Set Input directory
-O:"c:\Output"
Set Output directory
-P:"armor"
Set Path contains value to process files which path or file name contain the string
-subdir:yes
Include subdirectories (any other value means "no")
-skip:yes
Skip on errors (any other value means "no")
-all:yes
Copy all input files (any other value means "no")
-LOG:"C:\Sniff\log.txt"
Save messages into the specified file

Update tangents in the folder
Sniff.exe -OP:"Update tangents and binormals" -I:"D:\Mod\Meshes" -O:"D:\Mod\Meshes" -subdir:yes

Change Alpha flags on armors (create ini with desired settings beforehand)
Sniff.exe -OP:"Universal tweaker" -S:"ChangeAlphaFlags.ini" -I:"D:\Mod\Meshes" -O:"D:\Mod\Meshes" -P:"armor" -subdir:yes

Check for errors and save report (create ini with desired checks beforehand)
Sniff.exe -OP:"Check for errors" -S:"Checks.ini" -I:"D:\Mod\Meshes" -LOG:"D:\Mod\ErrorMeshes.txt" -subdir:yes