Jump to content

NifSkope 2.0 Dev


Jon

Recommended Posts

thx for 6, awesome timing ;)

 

I actually putzed around for 10 days or so before releasing it. :P

 

And actually, not sure if you have beta access or not yet, but I don't actually parse the BTR files correctly in the current release which may or may not be pertinent to your uses.  They changed BSSegmentedTriShape to BSSubIndexTriShape for the water grids**,  but the BSGeometrySegmentData is the same.  It's just that the top of the block is now based on BSTriShape instead of NiTriShape.  Anyway, it's already going into the next release (probably tomorrow).

 

**Edit:  Apparently only *some* of the water grids.  The rest are just BSTriShape, which is kind of strange.

Link to comment
Share on other sites

 

I actually putzed around for 10 days or so before releasing it. :P

 

And actually, not sure if you have beta access or not yet, but I don't actually parse the BTR files correctly in the current release which may or may not be pertinent to your uses.  They changed BSSegmentedTriShape to BSSubIndexTriShape for the water grids**,  but the BSGeometrySegmentData is the same.  It's just that the top of the block is now based on BSTriShape instead of NiTriShape.  Anyway, it's already going into the next release (probably tomorrow).

 

**Edit:  Apparently only *some* of the water grids.  The rest are just BSTriShape, which is kind of strange.

 

AFAIK the segments are really only needed for LOD level 4, so it can disable chunks in the loaded cells, while the higher LOD levels are always fully used. So in older games they always just use one segment for everything or they are ignored as far as I can tell.

I am spending some more time later today looking at btr and bto.

Link to comment
Share on other sites

Then until I put out a full release:  https://drive.google.com/open?id=0B9F4jSOO-JcpcjI3T0Z6UVdITHc

 

Shaders/xml hotfix.   XML update to load the BTR files with BSSITS and the shaders to fix a shading issue with double sided geometry and BTR files. 

 

Great Thx.

 

This is new in some BTO. Do not know what it does yet.

    <niobject name="BSDistantObjectLargeRefExtraData" abstract="0" inherit="NiExtraData">
        Extra integer data.
        <add name="Unknown Byte" type="byte">The value of the extra data.</add>
    </niobject>
Link to comment
Share on other sites

Oh right,  I noticed that while parsing files in 010 Editor with my binary templates, but I didn't realize the XML didn't have it / it was new.  Thanks for pointing that out.

 

 

Another issue I need to fix is several texture paths are like this:  skyrimhd\build\pc\data\textures\...  in the BSShaderTextureSet for lots of NIFs and my texture lookups don't compensate for that, so if any NIFs load without textures, that's probably why.

Link to comment
Share on other sites

 

Great Thx.

 

This is new in some BTO. Do not know what it does yet.

    <niobject name="BSDistantObjectLargeRefExtraData" abstract="0" inherit="NiExtraData">
        Extra integer data.
        <add name="Unknown Byte" type="byte">The value of the extra data.</add>
    </niobject>

 

This is just a random thought, but according to some feedback from people who've been streaming / watching streams, it seem z-fighting / mountain flickering have been dealt with. Might be related ?

Link to comment
Share on other sites

This is just a random thought, but according to some feedback from people who've been streaming / watching streams, it seem z-fighting / mountain flickering have been dealt with. Might be related ?

 

It seems that z-fighting is generally less for intersecting surfaces, but that also the mountain peaks/cliffs were udpated, moved or more added?

 

I am confident the byte above is a flag for the new Large Object Distance setting in the launcher, a secondary grid if you will that goes beyond uGrids for large references. I posted a bit more detail at http://forum.step-project.com/topic/11518-dyndolod-skyrim-special-edition/?p=185973

Link to comment
Share on other sites

Downloaded the latest alpha 6 to test something for someone, and managed to make it crash.

 

I opened an existing Skyrim nif, changed the user versions from 12/83 to the new 12/100 for SSE format, saved, and crash when trying to re-open it. I assume we're not up to par on switching formats?

Link to comment
Share on other sites

Doing that has never been correct, and NifSkope has never actually tried converting anything when that value is changed.  The only reason it ever worked was that very little changed between games for the most vital blocks (NiTriShape/NiTriShapeData) and when it came to NiTriStrips/NiTriStripsData nothing changed at all. 

 

When a block did change, it also typically only added more data at the end.  When a block removes/adds rows in the middle, NifSkope will never do anything other than write the data back out into the place it used to, which is now the incorrect place.

 

SSE on the other hand isn't even remotely the same format, and there is no converting between versions.   Version 100 doesn't even use NiTriShape/NiTriShapeData.  If you want to continue using NiTriShape/NiTriShapeData, just export things as you would for Skyrim and don't change the version number.   The way the data is laid out in a version 83 NIF is just not valid for version 100, so for the engine to read the old data the version needs to stay at 83.

 

 

Also, you need to make sure nothing is NiTriStrips and that everything has tangents.  I added spells in the Batch menu for this.  

Link to comment
Share on other sites

semi related question  what versions of Nifscope (and friends) would you suggest for dealing with mods for Skyrim/Skyrim SE?? also what are the absolute latest versions of Nifscope and Nifutils (i need the second to do collisions)

 

Link to comment
Share on other sites

semi related question  what versions of Nifscope (and friends) would you suggest for dealing with mods for Skyrim/Skyrim SE?? also what are the absolute latest versions of Nifscope and Nifutils (i need the second to do collisions)

 

There's a link right in the original post to the latest version of Jon's NifSkope 2.0 branch. ...as of 10/29/2016, NifSkope 2.0dev6. NifUtils I don't believe has been updated for years...I'm still using 1.2.2 of NifUtilsSuite.

Link to comment
Share on other sites

 
Also, you need to make sure .....  that everything has tangents.  I added spells in the Batch menu for this.  

 

Jon, you are my all-time Nifskope hero!   :unworthy:

I was struggling with this on some of my old resource files when I read about this batch function in the new Nifskope. Saved me hours of work and a nervous breakdown.

Link to comment
Share on other sites

 

...Also, you need to make sure nothing is NiTriStrips and that everything has tangents.  I added spells in the Batch menu for this.  

Is there any way to run a batch process to check and add tangents to a group of NIFs all at once? or are we limited to opening each misbehaving mesh manually and re-saving them? Thanks a bunch.

Link to comment
Share on other sites

Is there any way to run a batch process to check and add tangents to a group of NIFs all at once? or are we limited to opening each misbehaving mesh manually and re-saving them? Thanks a bunch.

I've done a fork of 2.0.6 dev in which I ported an old batch fork. I've also put up an updateSSE spell but it's still experimental, works on static meshes but effects are still under investigations.

 

REMOVED

 

@Jon. On the NifXML there's an update on NiParticleSystem that baffles me. The data field is actually doubled for version 100, one uint and one for NiPSysData. I've renamed it in PSySData because the set was giving me problems

 

FOR EVERYONE: if you update to user version 100 manually, be sure to not do it on a NiParticleSystem node, the model will be screwed due to the additional ints added.

Use my spell if possible

Link to comment
Share on other sites

Is there any way to run a batch process to check and add tangents to a group of NIFs all at once? or are we limited to opening each misbehaving mesh manually and re-saving them? Thanks a bunch.

 

There will be plenty of batch converters and things that update the tangent data in batch,  in fact zilav might already have something out, I forget.  

 

On the NifXML there's an update on NiParticleSystem that baffles me. The data field is actually doubled for version 100, one uint and one for NiPSysData. I've renamed it in PSySData because the set was giving me problems

You're reading it wrong. It took effort for me to understand too, as figment is the one who wrote it.  However, the way particle system blocks are done at all is just completely wrong and I'm surprised they even parse.  You can see the way it's really done (for all Beth games) in my template repository on GitHub.

 

FOR EVERYONE: if you update to user version 100 manually

This cannot be done under any circumstances.  I'm not sure version 100 even supports NiTriShapes. 

 

Plus, the code is horrible

 

Yeah, if you're going to advertise a fork on my own thread, can at least be a proper fork?  You took all of my changes since when that fork was first done and inserted them manually in two commits under your own name.  It completely obliterates the commit history and is honestly sort of offensive.  The way it was done I couldn't even pick out the changes for your SSE spell if I tried.

 

Link to comment
Share on other sites

There will be plenty of batch converters and things that update the tangent data in batch,  in fact zilav might already have something out, I forget.  

 

You're reading it wrong. It took effort for me to understand too, as figment is the one who wrote it.  However, the way particle system blocks are done at all is just completely wrong and I'm surprised they even parse.  You can see the way it's really done (for all Beth games) in my template repository on GitHub.

 

This cannot be done under any circumstances.  I'm not sure version 100 even supports NiTriShapes. 

 

 

Yeah, if you're going to advertise a fork on my own thread, can at least be a proper fork?  You took all of my changes since when that fork was first done and inserted them manually in two commits under your own name.  It completely obliterates the commit history and is honestly sort of offensive.  The way it was done I couldn't even pick out the changes for your SSE spell if I tried.

 

 

I'm extremely sorry if I offended you, I've deleted the repository.

 

Nifskope isn't intended as an upgrade or batch tool, I get that, I shared my day of crazy coding and code bending just while answering a question while I was reading this thread, I understand my mistake. Plus, that wasn't intended as advertising, was just sharing. As to why it was so malformed, well, it was actually an old fork from an unspeakeable named writer who did the batch capability in the first place. I did not upgraded from that and just overwrote it

 

Could not find any examples of NiTriShapes in skyrim SE lot still, also all the examples from the effect subdir are BSTriShapes.

Link to comment
Share on other sites

I've deleted the repository.

 

Just FYI, if you'd put the repo up with the commit history intact, and your own changes in your own commits, I could have had the chance of pulling or at least cherrypicking them.  But as it stood I had to dig through 12 months of my own changes just to find yours. 

 

However, if you were to contribute, I'd need you to start directly from my fork,  add the spells you've added in your repo,  then pull request.   In another branch you can merge back in the batch scripting on top of this so that you can continue to have your version with batch scripting.  

 

Also it's not that I don't want batch scripting, it's that I haven't really looked at that person's fork very closely, but from what I remember I would do things a bit differently.

Link to comment
Share on other sites

Sorry if this a wrong thread for my question. A while ago I transitioned to Nifskope 2.0. For a while it used to be a standard operation with nif-files to change the BS Num UV Sets to 4097 for the meshes to work with the Creation Engine. I've been trying to look for the BS Num UV sets node in the newest version of NifSkope to no avail. Is there any documentation what happened to this node? From what I've understood, changing the UV Sets value to 4097 is still necessary for the nif files to be compatible with skyrim.

Link to comment
Share on other sites

Well it's pretty simple, it's in the same exact place it always was:

 

J4tlx2d.png

 

Data can't change location, so it will always be directly after the Vertices array.  What can change is how I display it and "Num UV Sets" was just completely wrong in both name and presentation.  There is not 4097 UV sets in the file.  The number is two options stored in the same field,  1 = Has UVs,  4096 = Has Tangents.

 

Secondly, if you read the changelog in the latest release you'll see I've added a spell in the Batch menu which adds this flag and updates the tangents for you.

 

Anyway, I will be changing this name again since people can't really seem to grasp the change,  and the exact way you set the options will probably change as well. 

Link to comment
Share on other sites

Hello good sir me again. Back with another idea /request. Might it be possible in the future to toggle the display of a BsTrishape on and off to help in reaching those pesky verts that are buried in complex objects with multiple BsTrishape?

Link to comment
Share on other sites

Right now what you see (the scenegraph) is not separate from the NIF itself.  Meaning the status of the NIF is what you see.  I was going to wait until rewriting the renderer to add a proper scenegraph, like Max or Blender has.  But in the meantime you can add or subtract 1 from the "Flags" value on any trishape or node to hide or unhide it.  Just realize that this also signals to the game what is hidden so you need to revert the value. 

Link to comment
Share on other sites

@Jon

 

Idea / request.

Is it possible that Strings in the header are also numbered as in the picture below.

This would facilitate work with NIFs which have a lot of Strings.

E2lImtfl.png

Link to comment
Share on other sites

NifSkope 2.0 Pre-Alpha 6

 

I have updated the release.  Mostly memory leak fixes.  I also updated the UI for the various Flags boxes, such as BSXFlags and also all NiAVObjects (nodes, tri shapes).

 

Regarding the object flags,  the last 8 bits aren't even supposed to be read in by the engine, but I did find some files which had an option in the last 8 bits set.  But please take caution with ALL of these flags options, because them being listed in the UI to check on or off doesn't mean you should.   :)

 

 

----

 

@IP  You already can if you hover over the part in each row where it says "Strings",  it will pop up and tell you the index.  Not the most usable, but I'm not sure if I can change the name without repercussions.  The name field there is sometimes referenced directly by name in other code.  I will look into it though.

Link to comment
Share on other sites

Thanks for the update Mr. Jon! Always on point! :)

 

quick suggestion and feature request. Knowing that you added the uv editor (which is GREAT btw) I still find myself tweaking the values manually on the UV xy. Is there ANY way we could have the rendering window update real time with out exiting the editor box? additional like we chatted about before being able to choose which demical gets moved with the arrows/scroll wheel.  This would make editing UV freaking epic in Nifskope.

 

Again thank you for your work sir. don't know why you do what you do, but greatly appreciate that it's you doing it!

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...