VC++ 2015 Redistributable is required for 64-bit builds. 32-bit build is forthcoming.
For previous changelogs, see - https://github.com/hexabits/nifskope/releases/
Changelog
2018-02-22
- Introduced new "Error Color" to match how missing textures are rendered (magenta). If you would prefer no Error Color you can turn it off in Startup Defaults. Currently only applies to files utilizing shaders (Skyrim and FO4).
- Fixed the tentative rendering fixes from the last release
- Meshes with missing textures will no longer show up black.
- Parts of meshes will no longer be invisible.
- Fixed partitionless skinning rendering (present in Civilization IV and earlier games)
- Any crashes during the save function no longer write a corrupt/incomplete file.
2017-12-27
- (Tentatively) Fixed a longstanding bug with some GPUs rendering meshes as invisible due to shader issues. Particularly AMD cards.
- Fixed shader selection for Skyrim so Multi-Layer Parallax shader works again.
- Support more Oblivion NIFs in some foreign distributions which have inexplicably outdated NIF versions (possible packaging issue). The original American release has most files at 20.0.0.5 but there can be variants of 20.0.0.4, 10.2, 10.1.0.106, and 10.0.1.0.
- Cubemap slots now have a default cubemap if one is not assigned. It is a debug cubemap made of solid colors red/cyan, green/magenta, and blue/yellow.
2017-12-21
- Fixed a crash bug with copy/paste on < 20.1 NIFs
2017-12-19
- Fixed bug where transparency turned to wireframe when an object was selected.
- Tweaked nif.xml to show bhkRigidBody data for FO4 (pre-Elric) more correctly.
2017-12-17
UI
- New UI theming engine.
- New Dark/Light theme with user customizeable palettes.
- Toolbar icon size selection (in Settings > General > Theme)
- Copy/Paste branch overhaul
- Strings maintained on copy/paste for 20.1.0.1+. Each block has its string indices updated with a new string brought over from the source file. See gallery below for an example.
- Relaxed the linking restrictions on Paste Branch when a link points to the root node. This allows NiCollisionObject branches to be pasted onto other NIFs more easily for example.
- Pasting a branch is now 20-30x faster, more so for extremely deep branches.
- NiCollisionObjects are now auto-linked if pasted on top of an NiAVObject (node or trishape)
- Add New Ref for None refs:
- New row copy/paste (incl. multi-row paste). Ideal for quickly pasting types like Vector3 or Color4.
- Click single row, Ctrl + C, click one or many rows, Ctrl + V
- Fully undoable.
- Caveat: Strict type validation (e.g. cannot paste int<->uint or uint<->ushort)
- NOTE: You cannot multi-copy multiply selected rows. Only the first selected value is copied. You can only paste a single value to multiple rows.
- New array-compound copy/paste. Any flat array or flat compound i.e. an expandle item with no more expandable items under it can be copied and then pasted on other arrays/compounds.
- Ref arrays (such as Children array on NiNode) can be reordered using Ctrl-Up and Ctrl-Down on individual Refs.
- Icon res upped 2x for high DPI.
- Updated all URLs to NifTools websites, added URLs to the NifTools Discord
- Hold X or Y to constrain axis of motion in UV Editor
- Hold spacebar as alternative to using MMB for panning in viewport
- 'Reject Changes' button for NifBlockEditor windows (e.g. Edit Transform). Sets the values back to when you first opened the window.
- Auto-expansion of more items in Block Details. Modified Textures array expansion to a more general "end array" expansion. Will now apply to Connect Points, etc. Expand NiSkinPartition partition array always, expand NiQuatTransform in interpolators always, expand Children array of NiNode if relatively small.
- Flags window for editing the vertex attributes for BSTriShape. It hides the bits that need to be auto calculated from the flags and updates the rest of it after you set them. It also recalculates the Data Size. This means you can now turn vertex attributes on/off for FO4/SSE without breaking the NIF.
- Import/Export improvements
- Import/Export menu options are now disabled dynamically based on the NIF version instead of always disabled.
- Exports/Imports more shader settings and texture paths for Skyrim and later. Will create shader properties and texture sets for the newly imported OBJ.
- BSFadeNode, et al. are now seen as an NiNode for exporting a selection or for parenting an imported mesh.
- Settings > Resources improvements
- Add archives from the file dialog only if they contain a textures or materials folder, the same as done with the Auto Detect button.
- Disallowed manual editing of list items in Archives, but maintained it in Paths.
- Correctly mark the pane as modified for editing list items and toggling Alternate File Paths option.
Rendering
- New texture loader. Supports DX10-header DDS files and BC7, etc. Is also much faster.
- First stage of renderer rewrite. Removed many bottlenecks. NIFs with thousands of blocks could go to 20FPS or lower. They are now renderered about 3x faster. Some NIFs with 10,000+ blocks are now 4-5x faster.
- Node axis visualization (Show Axes and Show Nodes must be on). Lets you see the orientation of a node i.e. how objects under that node will be oriented.
- Reworked segment visualization for FO4 BSSubIndexTriShape. See gallery below for an example.
- LOD Slider FO4 support (BSMeshLODTriShape)
- RGB Falloff now supported in FO4 shaders
- BSPackedCombinedGeomDataExtra (CK generated _OC NIFs) can now be loaded. The geometry baked into the extra data cannot currently be viewed.
- For skinned shapes, the triangles/strips used for rendering are now the ones from the partitions. So certain NIFs which only had triangles on their partitions will render now and the rendering will be generally more accurate in the event the partition and the shape triangles aren't in sync.
- Also made a spell which lets you update the shape triangles from the partition triangles (for NiTriShape only so far).
Data Management
- Spell updates for SSE/FO4 NIF versions
- Transform > Apply now works for BSTriShape
- Texture > Export Template now works for BSTriShape
- Face/Smooth Normals updated for SSE, incl. skinned meshes.
- Update Tangents updated for SSE, incl. skinned meshes.
- Spells for managing NiControllerSequence and NiDefaultAVObjectPalette
- Updates for latest nif.xml
- Major NIF format decoding, esp. in bhk blocks for Bethesda versions, and major non-Bethesda version decoding was done across the board.
- Reduced nesting of HavokMaterial, HavokColFilter and constraint descriptor types
- This fixed the coloring of collision wireframes based on their layer (e.g. static, clutter, biped)
- This fixed the display of some constraints no longer working.
Fixes
- Fixed long elusive checkbox list crashing e.g. when editing bitflags like shader flags
- Fixed cross-platform build issues
- Fixed game detection for 64-bit builds
- Fixed "Close All Windows" (taskbar option) crash
- Fixed display of bhkConvexListShape and sub-shapes in hkPackedNiTriStripsData
- Fixed BGSM/BGEM priority over the shader property blocks for things such as Double Sided, ZBuffer Test, ZBuffer Write
- (32-bit Only) Fixed longstanding bug with MOPP code regeneration. The byte array was not correctly updated so all binary data created by this spell has always been corrupt. Confirmed to happen in 1.1.x by a tester.
- Fix texture loading for non-Bethesda games. The path was being cleaned in a way which Bethesda games require.
- Fixed Update Tangent Spaces for FO4. Tangents were never updated for FO4, only Bitangents, due to an issue with
set<T>
. - Fixed Transform > Apply for all NiTri* based NIFs. It was not transforming Tangents and Bitangents if the Transform had non-identity rotation. So it was required that you also ran Update Tangent Spaces after.
- Fixed KFM file loading
- Fixed Stripify for large shapes.
- Selecting rows in very large flat arrays is no longer slow with Row Hiding on.
- Fixed camera motion when changing the default up axis in Render settings.
- Fixed Color3/Color4 behaviors (allows > 1.0, value doesn't show as hex RGB when > 1.0). BSEffectShaderProperty's Color4 alpha most commonly uses values > 1.0.
- Fixed rigid body selection in viewport (clicking on rigid body axes). Rigid Body axes now turned on/off with Show Axes.
Non-Bethesda specific changes
- NiMesh initial rendering support (geometry for versions 20.5+)
- Corrected NiTexturingProperty UV set selection in 20.1+ NIFs, which also applied to NiMesh NIFs. Lightmaps and such were not getting the correct UV sets so the entire appearance was broken.
- Corrected NiVertexColorProperty vertex color rendering for 20.1+ NIFs. The information moved to a single Flags field which was not being read by the renderer. Vertex colors did not show up at all before this fix.
- 20.3.1.1 and 20.3.1.2 support, including the header version which does not have block type strings and only hashes.
- Usage/Access are retained for NiDataStream with copy/paste
- Fix palettized NiPixelData texture loading
Gallery
Block String Preservation on Copy/Paste
Note: My copy/paste actions in the GIF do not necessarily make a valid NIF