Мегамощная утилита для обновления Ниф файлов.
При этом с понятым графическим интерфейсом!
Лежит здесь:
https://www.nexusmods.com/newvegas/mods/67829
Отчего мало известна за приделами сообщества мододелов Фол-аута (Ньюс Ве Газ).
Работает со всеми версиями ниф файлов игр от беседки!
Однако, сторонние версии файлов (например 4.2 от ФФЕ) не открывает (из принципа) (т.к. заточена только под игры от беседки).
В целом, это не критично, если конечно, не заниматься каким-то особо лютыми шаманствами. ^-^
Что умеет...
А умеет, Пакетно, за один проход т.е. обновить тысячи файлов!
Способна найти и изменить любой (известный) параметр в ниф файле.
Нужно указать новый путь к текстурам? Пожалуйста!
Хотите удалить какие-то свойства? А мы уже здесь!
Желаете изменить флаг, или какой-то параметр? Дада, щаз сделаем!
И так далее, а вот чуть более подробный список:
- обновлять данные радиуса шейпов.
- конвертировать ниф в .json ака в текстовый файл и обратно.
- внедрять Bound Box и RootCollisonNode там где их нет (но хорошо было бы иметь).
- поиск и замена ассестов (ака текстур, материалов и пр.)
- обнулять трансформации. Т.е. ставить точки опоры шейпов в нулевые координаты.
- сливать несколько шейпов в один (хотя здесь работает несколько странно и обновить пакет моделей не получается)
- переименовывать объекты и менять содержимое экстра стрингов.
- изменять параметры свойств (сменить значения тресхолд альфы, или поменять цвет материала и пр.)
- менять иерархию внутри файла.
- удалять ноды и шейпы согласно их имени!
- копировать блоки между ниф файлами...
- менять цвет вертексов в настройках шейпдаты.
- группировать шейпы в новые ноды.
- удалять ноды согласно их типу.
- удалять пустые и не использующиеся ноды.
- задавать имена безымянным нодам.
- искать вертексы с нулевым весом в скиндате.
Например, изменение пути к текстурам будет выглядеть как:
- зайти в search and replace assets
- в верхней строке указать, что найти.
Если работает широкими граблями, то делаем пустую строку!
- в нижней указать то, чем заменить.
NiSourceTexture\File Name
"@_A_Steel_helmet05.dds"
"textures\new\@_A_Steel_helmet05.dds"
Т.е. во всех файлах, все текстуры сменили путь с одного на другой!
Примечание.
"Universal tweaker" operation
Block to process: NiTexturingProperty
Path: Base Texture\Filter Mode
Value: FILTER_TRILERP
Примечание.
Не понимает, некоторые объекты МВ!
NiRendererSpecificProperty
NiBSPNode
Впрочем, это весьма большие редкости и как правило не встречаются в "обычных" ниф файлах.
Примечание.
Конвертация в текстовый файл позволяет
быстро копировать различные значения контроллеров, или цвета вертексов.
Как в самом файле, так и между несколькими. Т.е. на самом деле, это весьма интересная возможность!
Примечание.
Поддерживает командую строку и создание .ини файлов с пресетами настроек.
Примечание.
(консольные команды)
Operation to run -op:"Update bounds"
Custom settings file -S:"c:\sniff.ini"
Input folder -I:"c:\Input"
Output folder -O:"c:\Output"
Path contains option -P:"armor"
Including subdirectories -subdir:yes
Skip on errors -skip:yes
Copy all input files -all:yes
Save messages log -log:"c:\sniff.log"
So for example to remove nodes in the nifs, first run
Sniff.exe -S:"SettingsRemoveNodes.ini"
to create a custom ini file with necessary settings (select Remove nodes operation, set params and exit Sniff to save the ini, no need to run the operation itself).
The final command line to remove nodes:
Sniff.exe -op:"Remove nodes" -S:"SettingsRemoveNodes.ini" -I:"C:\Meshes\Input" -O:"C:\Meshes\Output" -subdir:yes
When executed with the valid operation defined with -op param, Sniff will automatically start processing and close itself when done.
А еще автор активно добавляет всякие хотелки просителей Прекрасного! ^-^
За что Ему Отдельный Мега Респект и Богатый Поклон от всего Сообщества!
Оригинальное Ридми:
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