ousnius / nifly

C++ NIF library for the Gamebryo/NetImmerse File Format
GNU General Public License v3.0
54 stars 21 forks source link

FO76 - NifFile::GetTextureSlot returning empty strings #36

Closed SK83RJOSH closed 2 years ago

SK83RJOSH commented 2 years ago

Hello!

I know Fallout 76 isn't fully supported as of now, but I did some testing with a modified version of PyNifly and found most models, skeletons, and etc seem to load perfectly. The only issue I've come across so far is that texture are not populated correctly it seems. I'd be willing to toss a PR your way if you could give me some pointers on where to get started. 😄

SK83RJOSH commented 2 years ago

After a bit of digging, I see that this only affects nif files with a bgsm specified. Would loading these be out of scope for nifly? Even when these are specified, there's (always?) an accompanying BSShaderTextureSet specifying which textures to load. I'd be happy just to get those working for the time being.

Unfortunately I didn't get very far scouring existing documentation on nifs. I might need to poke around NifSkope to see how they're managing to handle the texture sets correctly (assuming that this doesn't conflict with the clean room design).

SK83RJOSH commented 2 years ago

Managed to do something clean room done BGSM/BGEM files by looking at the previous work. I'll need some feedback, and ideas for how this could be better integrated with NIFs themselves. Ideally, there would be a new option to resolve bgm files, and I don't love the modifications made to streams. #37 for tracking.

ousnius commented 2 years ago

As you already noticed, FO76 doesn't carry proper texture set blocks in its NIF files. See #37 for my reply on that.