Modding Skyrim with TESSnip and Nifskope

Post » Sat May 19, 2012 8:09 pm

Most notably in the dismember partition and that unknown in set to zero in the nitrishapedata block.

What?

It looks like you were trying to point me to something, but it didn't make it into your post.

What unknown int?
User avatar
Floor Punch
 
Posts: 3568
Joined: Tue May 29, 2007 7:18 am

Post » Sat May 19, 2012 12:42 pm

Ah sorry, Unknown Short 1, in the nitrishapedate in a f3 nif exports as an 8. in skyrim nifs its always a zero. I have no idea if that affects anything if you miss it, but I mentioned it in the mini tut.
User avatar
Greg Cavaliere
 
Posts: 3514
Joined: Thu Nov 01, 2007 6:31 am

Post » Sat May 19, 2012 12:41 pm

I'll be making stabs at the LightingEffectShader today too, if you come up with anything solid, let me know which name field you've found it in. Right now that block is a mess from my decode, there's a bunch of extra floats at the end that as far as I could tell, were only present based on the first int of the block, it didn't seem quite right. I found a couple of things last night that are very wrong too.

2) CompressedMeshShape is brand-new, it was a major PitA to work out, and it will probably be a while until we understand it better for exports on that block. I've never really 'gotten' collision, but I'd first look and see how it compares to a PackedStripsShape.

3) That's no good, I don't recall any problems there, did you add that block with NifSkope? After my nif.xml updates, corwin made some corrections and ensured that 5 games worth of .nifs would still load properly before releasing his. I've merged that into mine, i'm just in the middle of a pc swap, so I'm not totally up and running yet.

1. Found a few things while testing the settings in the shader property:

  • In the unknown floats list (the one you need to expand) the first unknown float is the same as the 'alpha' setting in the material property of Oblivion nifs. If an alpha property is applied setting this to lower than 1 will add transparency to the mesh, so 0 is invisible while 1 is completely visible.

  • Like already mentioned - in the same list the third unknown float is the same as the 'glossiness' setting in the material property of Oblivion nifs. Low values make the specular effect look 'dry', while high values make it look 'wet'. Unlike in Oblivion nifs the effective range seems to be 0-1000 and not 0-100.

  • The seventh float in the list made my game lock up when I changed it to something else but 2 (only tried once setting it to 0.5). Not very helpful I guess. :shrug:

  • The unknown float set (which is grayed out by default) directly below the expandable list apparently controls the strength of the cubemap effect if a cubemap is added. I only found it in nifs with a cubemap and with a value of 15 the cubemap effect was very strong, while with a value of 1.5 it was subtle.

2. Again a new collision type...hrmph. Hope it won't take as long as the Mopp shape for Oblivion to get this working.

3. I generally have problems opening nifs with the old mopp shape in place since I installed the new xml. If I try it says 'failed to load block x, previous block was bhkCollisionObject' and 'failed to load nif'. And everything but the collision branch is gone. Doesn't happen with other collision types. But maybe it's just a messed up Nifskope install, I will try to reinstall. I have the latest version (1.0.22).

Oh, and thanks for your effort of course!
User avatar
lolli
 
Posts: 3485
Joined: Mon Jan 01, 2007 10:42 am

Post » Sat May 19, 2012 8:21 pm

Ah sorry, Unknown Short 1, in the nitrishapedate in a f3 nif exports as an 8. in skyrim nifs its always a zero. I have no idea if that affects anything if you miss it, but I mentioned it in the mini tut.

In the original Steel Plate F pair, that value is set to 8.

I duplicated as much as I could between the original and my modified version, and it still won't render.
User avatar
Jonathan Montero
 
Posts: 3487
Joined: Tue Aug 14, 2007 3:22 am

Post » Sat May 19, 2012 9:17 pm

@madcat and his not appearing sword

you need to replace the 1stperson model for the sword to appear in the players hands if the "normal" version of the sword has a WNAM entry, if you want it to appear in your inventory too you definately need that WNAM 1st person entry
WNAM is the 1stperson model of a given weapon and links to a static, hence create a STAT 1stperson item and MODL it to your new model, then change the non1stperson weapon's WNAM to direct to your 1stperson STAT formid... lol hope that didnt sound too confusing XD
User avatar
Siobhan Thompson
 
Posts: 3443
Joined: Sun Nov 12, 2006 10:40 am

Post » Sat May 19, 2012 1:57 pm

@madcat and his not appearing sword

you need to replace the 1stperson model for the sword to appear in the players hands if the "normal" version of the sword has a WNAM entry, if you want it to appear in your inventory too you definately need that WNAM 1st person entry
WNAM is the 1stperson model of a given weapon and links to a static, hence create a STAT 1stperson item and MODL it to your new model, then change the non1stperson weapon's WNAM to direct to your 1stperson STAT formid... lol hope that didnt sound too confusing XD

So if I just delete the WNAM it'll work? Or will it asplode?
User avatar
Allison Sizemore
 
Posts: 3492
Joined: Wed Jul 19, 2006 6:09 am

Post » Sat May 19, 2012 11:37 am

I just thought about what you are trying to do, and it might be due to the morph? have you replaced both nifs ?
User avatar
c.o.s.m.o
 
Posts: 3419
Joined: Sat Aug 12, 2006 9:21 am

Post » Sun May 20, 2012 1:02 am

Yes, I am replacing both nifs.

I've even tried replacing both morph halves with the same mesh and it's still not.

It seems I'm not the only one having problems with this exporter from the sound of things on the NifTools forum...

My objective is to do some rigging fixes to the female Steel Plate armor (meshes\armor\nordplate). I'm just doing a test run by just stripping out the unnecessary neck weighting in the collar piece. Some of the vertices at the very front tip of the collar have 100% weight to the neck bone. :facepalm:
User avatar
Sam Parker
 
Posts: 3358
Joined: Sat May 12, 2007 3:10 am

Post » Sat May 19, 2012 11:37 am

@madcat and the sword
yup nothing will explode if you remove the WNAM but you wont have an inventory model anymore, rather make a new STAT entry and direct that WNAM to it ;)

didnt try morphs and rigged stuff yet so cant really comment on that
User avatar
Carys
 
Posts: 3369
Joined: Wed Aug 23, 2006 11:15 pm

Post » Sat May 19, 2012 3:30 pm

Also, can we decide on a thread for these conversations? The overarching chat dies in the main threads, and picks up random "i can't search forums" threads, and it's getting annoying to keep up with what's what.

This is now officially peeing me off. :toughninja:

You graphics modding thread on the nexus I am going to post in... until some sort of master thread happens.

And this thread on this forum. Seeing as Jaysus will probs update and link in th first post. SO it's mostly contained.
User avatar
Queen of Spades
 
Posts: 3383
Joined: Fri Dec 08, 2006 12:06 pm

Post » Sun May 20, 2012 2:27 am

3) That's no good, I don't recall any problems there, did you add that block with NifSkope? After my nif.xml updates, corwin made some corrections and ensured that 5 games worth of .nifs would still load properly before releasing his. I've merged that into mine, i'm just in the middle of a pc swap, so I'm not totally up and running yet.

Seems I had an old version of your nif.xml, now opening nifs with a Mopp TriStripsShape works. But I still can't copy the old Mopp over to a Skyrim nif, it always says 'unkown block'. When I try to copy each part of the collision branch one by one it works, but the subshapes in the bhkPackedNiTriStripsShape get deleted and the field is grayed out so I can't add them back in. Nifskope also becomes incredibly slow when I copy/paste hkPackedNiTriStripsData into a Skyrim nif.
User avatar
Jamie Moysey
 
Posts: 3452
Joined: Sun May 13, 2007 6:31 am

Post » Sun May 20, 2012 12:42 am

maybe import the mopps as obj and once you got em in a skyrim nif copy/paste over their shapedatas... not sure... didnt bother with collission so far, im too much in love how the game renders stuff now, the inventory item view is also great for screenshots in nearly render quality
User avatar
u gone see
 
Posts: 3388
Joined: Tue Oct 02, 2007 2:53 pm

Post » Sat May 19, 2012 3:09 pm

This is now officially peeing me off. :toughninja: You graphics modding thread on the nexus I am going to post in... until some sort of master thread happens. And this thread on this forum. Seeing as Jaysus will probs update and link in th first post. SO it's mostly contained.
Sounds like a plan.

Seems I had an old version of your nif.xml, now opening nifs with a Mopp TriStripsShape works. But I still can't copy the old Mopp over to a Skyrim nif, it always says 'unkown block'. When I try to copy each part of the collision branch one by one it works, but the subshapes in the bhkPackedNiTriStripsShape get deleted and the field is grayed out so I can't add them back in. Nifskope also becomes incredibly slow when I copy/paste hkPackedNiTriStripsData into a Skyrim nif.
Actually it looks like there is a problem somewhere, either in the nif.xml I'm using at the moment, or the build I'm using. Loading a .nif that has a CompressedMeshShapeData has that block floating off outside of the root node AND linked from the CompressedMeshShape. Looks like PackedNiTriStripsShape is set to end/die with Oblivion files (v20.0.0.5); Looking at the *Data block, changes to Fallout 3 needed that. It's likely that if this block exists for Skyrim it will be the same. You could try replacing that vercond with this one as a personal test: vercond="User Version != 12"

In my last play session, I was mucking about with console commands before I quit and found out that the game does geometry culling, this reduces the overall polycount nicely, especially in outdoor scenes.
I haven't started on that LightingShader node, but came up with a good testing plan yesterday. I'm too worn out from festivities to give that a go tonight however, hope everyone had a good thanksgiving!
User avatar
Frank Firefly
 
Posts: 3429
Joined: Sun Aug 19, 2007 9:34 am

Post » Sat May 19, 2012 11:45 am

I suppose this is the right place though OT from the current discussion. I've created my own fork of TESsnip to allow editing of ESP files and ESM files without FOMM. What I noticed is that the FULL substructure changes meaning depending on whether its an ESM or ESP file. When its an ESM, the strings are an integer used to lookup into the files in the Strings folder where there are English (at least for me) versions of the strings. When the file is an ESP, the FULL structure is just a normal string embedded in the file. TESsnip was never designed for this kind of behavior and was rather cumbersome trying to make work but I got enough of it going to make my own armor placeholder with custom description.

I really like the idea of the strings being externalize but would be nice for ESP as well without having to convert everything to ESM files.

Here is that build if anyone is interested in it. http://www.mediafire.com/?c1h4hb6lqx73j09 (git link is available in the readme). Anyway i think it might be useful with the existing tutorial though i was only using it for ARMO records not WEAP as per the tutorial.
User avatar
Wanda Maximoff
 
Posts: 3493
Joined: Mon Jun 12, 2006 7:05 am

Post » Sat May 19, 2012 5:29 pm

there also seems to be something wrong with the formids, had a piece of the riverwood inn dissappear because one of the swords in my mod seemingly had the wrong formid, i can only speculate that it overwrote the other one tho tessnip didnt tell me its a duplicate and with the mod index numbers in front that shouldnt happen anyway... guess a CS would truly be nice afterall lol

il post that skyrimsnipper on the mainthread holo
User avatar
abi
 
Posts: 3405
Joined: Sat Nov 11, 2006 7:17 am

Post » Sat May 19, 2012 7:39 pm

So is there any way to get armor into blender yet?

I can not seem to find a answer or explanation on that, just lots of people arguing over blender being good or not lol. o_O
User avatar
He got the
 
Posts: 3399
Joined: Sat Nov 17, 2007 12:19 pm

Post » Sat May 19, 2012 10:42 pm

Seems it is possible to add new items to the game using the TESnip approach. The trick, it would seem, is to get new items to store in saved games. I added some armor and with a little work was able to purchase it, craft it and enchant it. But its gone when loading from a save, whether in my inventory, a followers, or just lying on the ground.

One flukey thing I noticed was the Full Name field appears to be encoded somehow. I can edit as a string and it appears properly named in game, but the viewer identifies the entry as an invalid ID. It seems to read as corrupted even if I don't edit the field (just save with TESnip). The viewer properly reads the Full Name field on vanilla armor, but it seems to be mapped somewhere that I cannot find.


Have you made any progress towards persistence in-game?
If by "the viewer" you mean Skyrim Viewer, that's because the current release was going off of old information about the FULL and other related fields. See my response below:


I suppose this is the right place though OT from the current discussion. I've created my own fork of TESsnip to allow editing of ESP files and ESM files without FOMM. What I noticed is that the FULL substructure changes meaning depending on whether its an ESM or ESP file. When its an ESM, the strings are an integer used to lookup into the files in the Strings folder where there are English (at least for me) versions of the strings. When the file is an ESP, the FULL structure is just a normal string embedded in the file. TESsnip was never designed for this kind of behavior and was rather cumbersome trying to make work but I got enough of it going to make my own armor placeholder with custom description.

I really like the idea of the strings being externalize but would be nice for ESP as well without having to convert everything to ESM files.
Actually, that's not entirely true. We've decoded this a bit more:
bit 7 (hex 0x80) in the TES4 record header is the 'isLocalized' flag. If this flag is True (which it is in Skyrim.esm and Update.esm), then this tells the engine that any field of type 'lstring' (aka, localized string) should be a 4 byte number referencing the string entry in the .DLSTRING, .ILSTRING, and .STRINGS files for that mod. If the flag is False, it means that any field of type 'lstring' should be a zero-terminated string. Also, those string files can be packed into BSA's as well, so it's a [censored] to look them up if you're doing it with an external program.

The 'lstring' type fields I've found so far are FULL, DESC, RNAM, CNAM, BPTN, DNAM, ALFD, ANAM, TNAM
User avatar
carrie roche
 
Posts: 3527
Joined: Mon Jul 17, 2006 7:18 pm

Post » Sat May 19, 2012 4:28 pm

I've not made any progress on the persistence issue. Kind of getting annoying. Decided to work on other projects . The update on the localized string is good but I swear I tried that and it didn't try loading my strings. But I was trying a lot of things and could have missed it. Thanks for the heads up on the other ones.
User avatar
FoReVeR_Me_N
 
Posts: 3556
Joined: Wed Sep 05, 2007 8:25 pm

Post » Sat May 19, 2012 7:58 pm

Actually it looks like there is a problem somewhere, either in the nif.xml I'm using at the moment, or the build I'm using. Loading a .nif that has a CompressedMeshShapeData has that block floating off outside of the root node AND linked from the CompressedMeshShape. Looks like PackedNiTriStripsShape is set to end/die with Oblivion files (v20.0.0.5); Looking at the *Data block, changes to Fallout 3 needed that. It's likely that if this block exists for Skyrim it will be the same. You could try replacing that vercond with this one as a personal test: vercond="User Version != 12"

In my last play session, I was mucking about with console commands before I quit and found out that the game does geometry culling, this reduces the overall polycount nicely, especially in outdoor scenes.
I haven't started on that LightingShader node, but came up with a good testing plan yesterday. I'm too worn out from festivities to give that a go tonight however, hope everyone had a good thanksgiving!

I have to admit I don't really know what I'm doing with the nif.xml, I couldn't find a vercond in the section for PackedNiTriStripsShape so I simply replaced every vercond in the xml with the line you suggested. That may be completely wrong, but it didn't cause more bugs, neither did it help.

I've got one more question not directly related to the new nif structure. I replaced the mesh of the 'ambient eagle' (the birds you see circling in the sky sometimes) with an animated cliffracer from my Sheogorad mod. That works fine (the cliffracer shows up with textures and moves along the same path as the eagle would), however the wing flap/head/tail movement animations of my Cliffracer don't work and I can't find the error. The cliffracer has a skin instance and is rigged to a few bones. The bones do animate in game (tested that by applying a mesh to a bone directly), but the cliffracer does not. So it seems to be a problem with the rigging/skin instance. In Nifskope everything looks fine. If anyone would be kind enough to look at it, http://www.mediafire.com/file/ia7yjlu228s67er/Cliffracer.nif is the nif.

EDIT: Oh, and of course the cliffracer with all its animations did work in Oblivion, so it's not messed up by default already.
User avatar
Laura Simmonds
 
Posts: 3435
Joined: Wed Aug 16, 2006 10:27 pm

Post » Sun May 20, 2012 2:26 am

arrrrrr... could the game be broken in regards to mod support?
just realized that all the items i added replaced references in the game... like whole buildings and stuff lol, seems like it doesnt add a mod index to the formids at all -.-
any suggestions which formids are save to use?

edit: oh lol, forgot XD
form ids starting with 01 should be random... worked in fallout at least... hence just add an 01 at the start where there is probably 00....

edit2:
mmh... well its ok now but the objects cant link to each other anymore since i added the 01 -.-

edit3:
all is good lol, just dont name your formids like 01000001 ...rather do 010a0001 (the first 01 will be replaced with the mod index... if you start with 00 however it will be static and most likely conflict with somin)
User avatar
Genevieve
 
Posts: 3424
Joined: Sun Aug 13, 2006 4:22 pm

Post » Sat May 19, 2012 8:13 pm

I suppose this is the right place though OT from the current discussion. I've created my own fork of TESsnip to allow editing of ESP files and ESM files without FOMM. What I noticed is that the FULL substructure changes meaning depending on whether its an ESM or ESP file. When its an ESM, the strings are an integer used to lookup into the files in the Strings folder where there are English (at least for me) versions of the strings. When the file is an ESP, the FULL structure is just a normal string embedded in the file. TESsnip was never designed for this kind of behavior and was rather cumbersome trying to make work but I got enough of it going to make my own armor placeholder with custom description.

I really like the idea of the strings being externalize but would be nice for ESP as well without having to convert everything to ESM files.

Here is that build if anyone is interested in it. http://www.mediafire.com/?c1h4hb6lqx73j09 (git link is available in the readme). Anyway i think it might be useful with the existing tutorial though i was only using it for ARMO records not WEAP as per the tutorial.
Any chance you would share the source, the version you have posted seem to have the "copy / paste" issue I run into when not running TESSnip through FOMM, or just the changes you did to TESSnip.

Yours truly
Zilvereyes
User avatar
Jonathan Montero
 
Posts: 3487
Joined: Tue Aug 14, 2007 3:22 am

Post » Sat May 19, 2012 5:52 pm

edit3:
all is good lol, just dont name your formids like 01000001 ...rather do 010a0001 (the first 01 will be replaced with the mod index... if you start with 00 however it will be static and most likely conflict with somin)
I was using 0A000001 and was not having success so switched to 00A00001. The later does not persist in the save file. The former does not get instantiated using player.additem. Is there something else that has to be changed for the upper byte to be used? Or should I just be using 01000001 and the game will sort out the conflicts for me somehow?


Any chance you would share the source, the version you have posted seem to have the "copy / paste" issue I run into when not running TESSnip through FOMM, or just the changes you did to TESSnip.
Thought I posted the link in the readme but maybe not. You can download a zip or get it from https://github.com/figment/tesvsnip. Original source code is available on sourceforge somewhere.
User avatar
Jon O
 
Posts: 3270
Joined: Wed Nov 28, 2007 9:48 pm

Post » Sat May 19, 2012 2:38 pm

-snip- Guess it's all good
User avatar
Grace Francis
 
Posts: 3431
Joined: Wed Jul 19, 2006 2:51 pm

Post » Sat May 19, 2012 2:41 pm

Ok now I understand how that upper byte works a little better. Just set that upper byte to 1 and its changed automatically (in my case it changed to 02xxxxxx) and the added benefit was that the item was actually persisted across saves where it was not when the id was 00xxxxxx. This ensures some level of scope to avoid conflicts. I assume that they will update mods that refer to other mods so that IDs are remapped for scripts.
User avatar
YO MAma
 
Posts: 3321
Joined: Thu Dec 21, 2006 8:24 am

Post » Sat May 19, 2012 8:25 pm

@formids

-ALWAYS start em with 01 (01 tells the game to replace the 01 with your mod index hence preventing any possible conflicts, 00 makes it fixed and unchangable basicly always overwriting vanilla refs or somin, 02 etc dont do nothing but also can overwrite vanilla stuff

-01000001 does not work, try 010a001 instead and go from there (010a002, 010a003,etc)
User avatar
Laura Richards
 
Posts: 3468
Joined: Mon Aug 28, 2006 4:42 am

PreviousNext

Return to V - Skyrim