Adaptive Overlays

Image information

Added on

Uploaded by

expired6978

About this image

Adaptive Dynamic Overlays (AKA Body Tattoos)

Finally got the overlays to work correctly using my SKSE plugin, it uses a nif template to add an extra node to the Actor and copies the skin's geometry (This is the adaptive part, it will conform to mesh changes).

This feature is included in my NetImmerse Override plugin, which does various other things. You can configure the number of layers, the default will be 3. I'm not sure the consequences to having a lot of layers, essentially the entire body mesh is being re-referenced, which could have a performance impact on low quality PCs as it is being rendered multiple times but with a different texture and shader effects.

Heres what some of the functions look like from my test code:
NiOverride.AddNodeOverrideInt(Game.GetPlayer(), true, "Body [SOvl]", 0, -1, 0xFF00FF00, true) ; Set the emissive color to green
NiOverride.AddNodeOverrideInt(Game.GetPlayer(), true, "Body [SOvl]", 7, -1, 0xFF00FF00, true) ; Set the tint color to green
NiOverride.AddNodeOverrideTextureSet(Game.GetPlayer(), true, "Body [SOvl]", 6, -1, Game.GetFormFromFile(0x809, "BodyTattoo.esp") as TextureSet, true)

NiOverride.AddNodeOverrideInt(Game.GetPlayer(), true, "Hands [Ovl0]", 0, -1, 0xFFFF0000, true) ; Set the emissive color to green
NiOverride.AddNodeOverrideInt(Game.GetPlayer(), true, "Hands [Ovl0]", 7, -1, 0xFFFF0000, true) ; Set the tint color to red
NiOverride.AddNodeOverrideTextureSet(Game.GetPlayer(), true, "Hands [Ovl0]", 6, -1, Game.GetFormFromFile(0x811, "BodyTattoo.esp") as TextureSet, true)

The overrides are also capable of starting/stopping time controllers via script.
I intend to use a special layer designated for Spells "SOvl" indicates Spell Overlay which is the topmost layer to the overlays for a glowing tattoo mod based on your magic proficiency.

3 comments

  1. expired6978
    expired6978
    • premium
    • 2,930 kudos
    Yeah, it's already being used for body paints in my tests. It creates overlays for the Body, Hands, and Feet. It uses a template nif that outlines the basic data to be loaded, then it copies the original skin geometry to the template then attaches the node to the Actor. The node is automatically detached when you equip an Armor that has no skin node (as there is no geometry to copy).

    I remember there being mods for previous games that altered the whole texture just to get things like nail polish and only had specific colors. Now you can just modify the shader properties of the existing overlays to use an alpha texture as well as a custom tint for recoloring. The emissive color can also be altered for glowing.

    Here's the current Papyrus definitions:
    NiOverride.psc

    Currently I can only add specific overlays as the template meshes have to be attached at load-time, which occurs before the save actually loads, so if I were to add the ability to add your own overlays I would need to load data outside the co-save before the actual save is loaded (Probably not going to do this).
  2. nuska
    nuska
    • account closed
    • 950 kudos
    This is highly relevant to my interests. This could also be used for body paintings and marking overlays, right?
    1. Cos76
      Cos76
      • premium
      • 83 kudos
      I think so i hope so that will be great omg