Jump to content

NifSkope 2.0 Dev


Jon

Recommended Posts

That's an interesting way. But do you need to reboot?

I noticed that sometimes does not work without rebooting (if you want to use the application with the executable file that has exactly the same name but is located in a different location), I am not sure what are the reasons for this, suppose that the windows must reload again the entire registry but this is just my assumption.

 

This might be an alternative method.

If it works, sure, we learn a lifetime.

Link to comment
Share on other sites

Hey Jon, will you be adding the custom block structure that was mentioned back in 2012 ?

Link to comment
Share on other sites

NifSkope 2.0 Experimental Build (2016-05-07)

 

Could anyone that reliably gets the "long pause on double-click-to-open issue" please test this build and tell me if the issue persists?  I disabled some things that could be causing it.   It also fixes an issue where some parts of the app thought the current directory was the directory of the file you opened when double clicking.  This was breaking shaders namely.

This seems to have helped. The pause is still there but nowhere near as long so it might be fixed. It was less than 5 seconds for sure.

Link to comment
Share on other sites

Edit: By the way, when you say previous version could break the shader, could this be the cause of this issue:

 

I created the nif by just copying The two NiNode of the cooking plate and the pot under a parent node in an other nif, and the pot is purple in CK and in-game, while it's properly rendered in NifSkope:

 

No I don't mean the game's shaders or the NIF shader properties.  I just simply meant NifSkope's own shaders, the ones that provide normal mapping, environment mapping, glow, specular etc. 

 

I would however like to see this NIF that doesn't work in game but renders fine in NifSkope just to see what is wrong with it, and given that I attempt to be as WYSIWYG as possible I could maybe even mimic the issue in NifSkope, so that you know something is wrong. 

 

Hey Jon, will you be adding the custom block structure that was mentioned back in 2012 ?

 

The what?  I didn't start working on NifSkope until Nov 2013 so I'm not sure I know what you're referring to.

 

This seems to have helped. The pause is still there but nowhere near as long so it might be fixed. It was less than 5 seconds for sure.

 

Do you happen to have your extracted assets or BSA/BA2 archives on a non-OS drive that spins down?  Any remaining "periodic delay on first double-click" could be attributed to that. 

Link to comment
Share on other sites

 

I would however like to see this NIF that doesn't work in game but renders fine in NifSkope just to see what is wrong with it, and given that I attempt to be as WYSIWYG as possible I could maybe even mimic the issue in NifSkope, so that you know something is wrong. 

 

Don't have it since I fixed it with TrickyVein's instructions, but you can easily reproduce it yourself :

Open Meshes\props\KitchenPot.nif

 

Change the name of the BSLightingShaderProperty to something irrelevant (i.e. not a bgsm filepath) like KitchenPot.

 

Done, the mesh will be purple in game/CK, but nifskope still have it textured.

 

Edit:

This also mean that when copying those nodes (or more likely, their parent node given the case), their name should remain as is (which is how I "discovered" the issue), or the issue will arise.

Link to comment
Share on other sites

Nifskope still renders textures in a texture set apart of a BSShaderLightingProperty, regardless.

 

It doesn't mean that something is wrong with NifSkope; the model still has to reference a valid material. 

 

As for copying nodes from one .nif to another, any block can only make use of strings that exist in the destination .nif file. You can view these in the header information. 

Link to comment
Share on other sites

Well in NifSkope since the Name in the BSLSP is not a valid BGSM, it defaults to the properties on the NIF.   Apparently in game, anything that is not a valid BGSM/BGEM path in the Name will break the appearance.   A bit silly that they don't also default to the properties on the NIF.   I suppose that I can mimic this easily so that the issues are immediately apparent.

 

There are actually several things I've found that NifSkope neither warns of or cleans automatically.  I actually have auto-sanitization on save completely disabled for FO4 meshes since I have yet to audit if all the sanitization is still valid for them.  I actually plan on overhauling the entire "Spells" system and a part of that will probably be expanding on sanitization.

 

Additionally I think I'm going to move a lot of things back to the "warning log" style of output but I'm going to need to re-redo the message class.   I also need to figure out where I'm going to fit a permanent warning log/console in the UI.   That way as the NIF is modified I will be able to spew out errors that aren't too intrusive.  For example in the copy/pasting blocks situation,  when the Name / Wet Material strings on the shader properties point to a non-empty string that isn't a valid material path I will be able to output warnings as it happens. 

Link to comment
Share on other sites

Do you happen to have your extracted assets or BSA/BA2 archives on a non-OS drive that spins down?  Any remaining "periodic delay on first double-click" could be attributed to that.

No, I don't. I only have one drive and everything is on it.

In my case the pause is generally only the first time after starting it following a fresh boot. Then seems ok for hours. I don't use it that much so I don't know if it goes back to a slow start on load eventually or not. I just know the update was faster at loading than before :P

Link to comment
Share on other sites

 For example in the copy/pasting blocks situation,  when the Name / Wet Material strings on the shader properties point to a non-empty string that isn't a valid material path I will be able to output warnings as it happens. 

 

This would be immensely useful and to beginner NifSkope users especially as it's consistently one of the most common causes of crashing and easy to miss. 

 

Funnily enough though, a lot of meshes in the vanilla game don't include valid material paths and somehow mysteriously work...

 

Also I'm pretty sure that where a material is used, the entire Shader as it's displayed in NifSkope is also ignored. Materials include all of the flags (seemingly) that BSShaderLightingProperties do and even include additional information like double-sided, alpha, emissive properties that can be attached to NiTriStrips/BSTriShapes as additional properties. Attaching an alpha property to a node in NifSkope does nothing, but checking off this box in the material is what enables transparency, for instance.

 

So I don't know if in making the transition to Fallout 4 a lot of stuff in the .nif format simply became obsolete, redundant or what, but it kind of seems like a lot of useless stuff has been left in with them, at least if a .nif uses a material.

Link to comment
Share on other sites

Corwin's 2.0 has nothing to do with my 2.0.  He worked on it for a while and then up and left, complete with a goodbye letter.  I wasn't sure if he even wanted any of his code to be used, but I wasn't going to do that anyway.  He did a ton of stuff I had no interest in doing or that I just outright disagreed with.   I did implement some of the things that were on his TODO list,  but only because I already wanted those things anyway.

 

I don't remember filtering/sorting being on his TODOs but I've wanted to implement filtering for a long time.   Sorting I don't really understand so much.   The blocks should always display in the order they are defined in the file and I see no benefit to sorting for display purposes only.   Filtering has obvious uses, like showing all the blocks of a certain type in the file. 

 

What exactly was the use case for which you were asking?

Link to comment
Share on other sites

Has there been any progress toward the issues of getting FO4 meshes to render properly? More often than not when I open something complicated, like an architrcture mesh, pieces are missing or the whole thing simply doesn't display.

 

Also, any chance of being able to render the stuff in Meshes\PreCombined ? I haven't had any luck getting any of the ones I've clicked on there to display.

Link to comment
Share on other sites

I believe it was a request to order the blocks in the file and not just visually.

 

I'm unsure if I asked before for a spell to clean the strings by checking for their use and removing unused entries. I have some examples where older versions of the tools inserted large amounts of invalid strings for node names.

 

I also have some that the game can load, but nifskope cannot because of an older version corrupting the block offsets when the paths of textures were edited and became shorter than the original paths. I think the two problems were related as the nif's were created around the same time.

Link to comment
Share on other sites

Has there been any progress toward the issues of getting FO4 meshes to render properly? More often than not when I open something complicated, like an architrcture mesh, pieces are missing or the whole thing simply doesn't display.

 

Also, any chance of being able to render the stuff in Meshes\PreCombined ? I haven't had any luck getting any of the ones I've clicked on there to display.

 

Just turn off shaders (Alt-S).  The shortcut won't work if there is animation in the NIF.. not really sure why.  Haven't tracked that down yet.  If you want, disable shaders permanently in Settings > Render.   I can't really do anything about it since I don't have an AMD card and have no idea why AMD drivers are failing so hard.  They're far too strict and don't compensate for shader code that Nvidia/Intel render just fine.  They also fail miserably and go completely invisible.  When Nvidia fails on a shader it just looks the same as if shaders were off.

 

Edit: I will also add that glslLangValidator says nothing is wrong with my shaders.  So it's basically impossible to tell what the issue is without just rewriting them and hoping I don't run into the issue again.

 

There is nothing to render in Meshes\PreCombined.  Why do you need to see them?  The data is generated by the CK and should never be touched.   If you want to visualize parts of it, you can click on BSPackedCombinedSharedGeomDataExtra to see the bounding spheres for the objects.  There are also navcut collisions and such which cannot be rendered because they are a bhkPhysicsSystem.  When I do end up rendering collisions those will render if you have Show Collisions on.   Anyway, the data in those NIFs is all conceptual/mathematical,  not strictly visual. 

 

 

I believe it was a request to order the blocks in the file and not just visually.

 

I'm unsure if I asked before for a spell to clean the strings by checking for their use and removing unused entries. I have some examples where older versions of the tools inserted large amounts of invalid strings for node names.

 

I also have some that the game can load, but nifskope cannot because of an older version corrupting the block offsets when the paths of textures were edited and became shorter than the original paths. I think the two problems were related as the nif's were created around the same time.

 

You can already reorder blocks however you want, but I would advise against it unless you know what you are doing.  Ctrl-Up/Ctrl-Down can change any block number.   You then need to turn off auto-sanitize on save.

 

The most recent experimental build I posted here has a spell for removing header strings enabled but I've since made a few fixes.  Don't use it on anything with BSClothExtraData for now.  I've fixed that since that build.  However also don't use it on anything with transform managers, controller sequences, etc.   It's removing too many strings from some of the animation variables and I am not sure why yet.

 

I'd need to see the NIFs.  I don't really understand what you are saying.  Are you saying NifSkope corrupted some block sizes?  It basically couldn't have unless you were using one of the non-GitHub builds I've posted here, in which case I need to know which build and if you can still make it happen.  My current build, I removed some text from texture paths, saved, and it reopened just fine. 

 

----

 

Edit:  And about block reordering,  in a perfect world NifSkope would have drag and drop which lets you move the blocks in any order you want.  However there are a lot of hurdles with doing that and so it will be a while.

Link to comment
Share on other sites

Good to know about the recent experimental build and controller managers/sequences.

 

It's only if you run the Compact Strings spell which probably no one would have known was there now unless I'd said something.   :P

 

My actual releases will have it disabled again until I fix it.

Link to comment
Share on other sites

Just turn off shaders (Alt-S).

Bleh. Someone buy this man an AMD card :P

 

There is nothing to render in Meshes\PreCombined.  Why do you need to see them?  The data is generated by the CK and should never be touched.   If you want to visualize parts of it, you can click on BSPackedCombinedSharedGeomDataExtra to see the bounding spheres for the objects.  There are also navcut collisions and such which cannot be rendered because they are a bhkPhysicsSystem.  When I do end up rendering collisions those will render if you have Show Collisions on.   Anyway, the data in those NIFs is all conceptual/mathematical,  not strictly visual.

I was trying to see if the precombined mesh data had a particular piece in it, but it turns out the issue I was trying to solve has an ESP based workaround instead. Stupid engine bugs.

Link to comment
Share on other sites

You can already reorder blocks however you want, but I would advise against it unless you know what you are doing.  Ctrl-Up/Ctrl-Down can change any block number.   You then need to turn off auto-sanitize on save.

 

The most recent experimental build I posted here has a spell for removing header strings enabled but I've since made a few fixes.  Don't use it on anything with BSClothExtraData for now.  I've fixed that since that build.  However also don't use it on anything with transform managers, controller sequences, etc.   It's removing too many strings from some of the animation variables and I am not sure why yet.

 

I'd need to see the NIFs.  I don't really understand what you are saying.  Are you saying NifSkope corrupted some block sizes?  It basically couldn't have unless you were using one of the non-GitHub builds I've posted here, in which case I need to know which build and if you can still make it happen.  My current build, I removed some text from texture paths, saved, and it reopened just fine. 

 

----

 

Edit:  And about block reordering,  in a perfect world NifSkope would have drag and drop which lets you move the blocks in any order you want.  However there are a lot of hurdles with doing that and so it will be a while.

 

OK then it would just be visual, nevermind on that then.

 

OK I'll be keeping an eye until you get that spell working 100%, my issue here is mostly with weapons so I don't want to break anything.

 

I am meaning very old versions of nifskope/tools (~2009) and I am unable to open those files to fix the ones with the corrupted header. However Fallout 3 loads them just fine (weird). I will get some together for you to look at.

Link to comment
Share on other sites

Sorry about the absence. Had a harddrive failure and had to order new bits since it was my main drive where Steam and everything was (though now I have joined the ranks of SSD SUPER FAST HOLYSHIT, because ordering a new boot drive AND Steam Install Drive seemed a better idea, so hey, sorta balances out the data that was lost). I'll be seeing if I can break this shiny new build :D

Link to comment
Share on other sites

Oh so I was going to post the new shaders that Arthmoor helped me test for AMD cards but since you hadn't been around I decided to wait. :P

 

Shaders 2016-05-11

 

Just replace your shaders folder with that.  Arth at least no longer has invisible meshes and environment mapping is working as intended.  If you could also try to find meshes that were previously not rendering correctly and see if they now render fine I'd appreciate it.  Since you had slightly different issues than Arth. 

Link to comment
Share on other sites

Every mesh I've opened so far that I had issues with before all show up how they're supposed to now, so it looks like you've fixed it :) I'll keep you posted if I find any it chokes on.

 

EDIT: In other news, I was actually able to rescue my savegames for FO4 and I'm pretty sure 10-11 days on a single save is the cutoff point for the game collapsing under errors, especially if you've been adding/merging lots of mods, so to anyone having weird glitches while modding it.. you might check how big your save is.

Link to comment
Share on other sites

@Jon:

 

The latest update to the CK included Elrich, which processes NIFs, textures (TGA, DDS), and Havok data for use in Fallout 4.

 

The Elrich PDB files were also included in the update.

Link to comment
Share on other sites

Are there plans for implementing the UV editor for BSTriShape and other BS" like you can edit UVs of NiTriStrips or "Shapes?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...