Hello all geniuses that work with meshes.
In the pursuit of overhauling SDR, I have stumbled across a bug that has been a part of the Oblivion game since day 1 apparently.
It has to do with light levels. There is a function called "GetActorLightAmount" which determines how much light is hitting an actor. It ranges from 0.00 to 100.00. For sneaking around, that amount becomes really important, especially if the actor is in complete darkness, because if so, they cannot be seen.
So the bug I found is a doozy. For reasons I don't entirely understand, Horses, Trolls, and Land Dreaughs always register 0.00 light. I checked all of the other main creatures in the base Oblivion game, and these are the only three.
I ran a bunch of experiments, mixing meshes with skeleton.nifs and various textures (which was super weird looking btw). As far as I can tell, the root cause is the skeleton.nif and how it interacts with the outer layers/textures.
The results were as follows:
- Swapping directories made no difference.
- It didn't seem to matter what the texture was, the effect applied to all horses, all trolls and all Land Dreaughs.
- There has to be at least one visible mesh/texture in order for the light to register. So although a sheep normally registers light, if you remove all the meshes attached to the skeleton, it can no longer be selected or pick up any light. But if you just add one single horn that is floating mysteriously, the game registers the sheep and the amount of light is detected.
- If I put horse textures on a sheep skeleton and visa versa, it was really whacky looking, and pretty much impossible to click on or learn anything new.
So my guess is that the issue is the base skeleton.nif and how it interacts with the meshes/textures.
This is as far as I have gotten. I've tried using blender and nifscope to piece together what is going on and comparing sheep skeletons to horse skeletons, but I have no idea what I am looking at or what to look for.
Are there any experts that are willing to take a look at this and see if they can figure out what is going on?