Morrowind/NifSkope Tutorial 1

From NifTools
Jump to: navigation, search

NifSkope Tutorial 1: Nif No Glow

How to eliminate enchantment effects in the mesh itself.

Contents

Introduction

The 'plastic wrap' look of enchanted items has often dissatisfied both players and modders for years. Numerous 'no-glow' and 'reduced glow' mods have been produced over time. Though good solutions they often have unwanted side effects and limitations. Firstly, a mesh maker cannot mandate the use of such mods, and thus cannot control the look of their work under all conditions. Worse, an unfortunate choice of No Glow along with a lack of comprehension can expose the modder to brickbats from less tech-savvy users. Second, Enchantment can interact badly with some meshes that use alpha effects or NiTextureEffects. Setting enchantment points to 0 prevents such problems but can feel less than satisfying. Finally, I'm told some No_glow solutions disable the ability of detect enchantment to work, an unfortunate limitation. The technique I detail here is not a replacement for these solutions, but another weapon that modders can use when appropriate to control the desired appearance of a mesh asset. Mod savvy players can also use this technique if creating personal custom equipment.

Background

This technique came about from trying to use the techniques pioneered by (amongst others) Axel and Bjam, in 'Freedomforce' by Irrational games. Although not very similar to Morrowind in play, it uses the same graphics engine, Nif 4.0.0.2. We quickly discovered that Freedomforce was quite happy to display 'bump maps' but in doing so they suppressed gloss maps that are used extensively in Freedomforce. My suspicion has always been that the much detested 'magic glow' of Morrowind was a gloss effect, albeit a very unsubtle one. It occurred to me that if I was right, then we could suppress magic glow at the Nif level, by making it impossible for the game engine to display any other NiTextureEffect dependent effects. Better yet, we could set the bump map effect to 'no effect', suppressing many of the changes to a meshes appearance when it was enchanted. While there is a school of thought that is not convinced that magic glow is an NiTextureEffect coupled with a primitive gloss map, the discovery that bump maps DO suppress the magic glow certainly adds weight to the argument. Note that to display any observable effect, a bump map requires a valid NiTextureEffect and enchantment does cause the game engine to add one. If my theory is correct, the mechanism is that enchanting the item adds an NiTextureEffect and this activates the bump map. The bump map has luma settings of 0 and so exhibits no effect. It's presence, even though inactive, suppresses the gloss effect of 'magic glow'.

NifSkope Surgery

For this example we will convert a 'pair' of Better Bodies boots to 'Nif-No-Glow'. I'll assume you already have these boots added in the CS as 'xx_myboots', that they have a suitable enchantment and you dislike the look of the enchanted boots. Be aware that it is very difficult to give a foolproof recipe for this. The exact steps you will take depend very much on the actual Nif You are amending. I'm also assuming you are no neophyte when it comes to NifSkope and the internals of Nif files. I'd recommend not tackling work of this nature until you are comfortable with basic Nif operations such as changing texture paths and similar.

Open the Nif in NifSkope and examine the tree of nodes. I'll assume you see a parent node, 'Scene Root', with two children. Open 'Bip01', which also has two children. We are interested in the NiNode 'Right Foot' with four child nodes, 'Tri Right Foot 0' through 'Tri Right Foot 3'. We need to amend these four nodes to add a bump map texture to each, preventing the game engine from adding a gloss effect. First we need to copy the existing base texture. Open the first node, 'Tri Right Foot 0' at 'NiTexturingProperty' and click the plus to display the base texture. Right click on the 'NiSourceTexture' and select 'block, copy'. Then right click on the 'NiTexturingProperty' node and select 'block, paste'. You will see a new node appear. Depending on your version of NifSkope, it may or may not have a parent. If it does have a parent, unparent it by setting the children ref to '-1' and reducing the number of children if appropriate. Note the node number of this new node. As we intend to suppress the bump map, the actual texture used is not relevant, so we re-use the base texture the copy has. Now we want to declare this new texture a bump map. Returning to the NiTexture node, scroll down to the section 'bump map' and click on 'no' and change it to yes. Then click on the plus sign on the section below, 'bump map texture'. Click on the 'source' field and change '-1' to the value noted previously of your new texture node. Be sure the new texture 'snaps into place' in the tree view. Now we need to change a few default settings. Change 'Clamp Mode' to WRAP_S WRAP_T, 'Filter Mode' to FILTER_TRILERP and though it's doubtless not relevant, change 'PS2 K' to 65461. Finally and most importantly, ensure the settings 'Bump Map Luma Scale' and 'Bump Map Luma Offset' are set to 0. These settings completely suppress the bump map effect.

Repeat these steps for the remaining three nodes, creating and positioning new bump map textures. Save your work, fire up the game, open the console and give your character the boots with player->additem xx_myboots 1. Put them on. You might notice some breakthrough effects as parts of the mesh that were previously invisible now show. If so, quit the game and go back into NifSkope. Open up and examine the nodes that cause problems. You'll probably see the nodes have an NiAlphaProperty. Further inspection of the 'flags' section may reveal the mesh is using Alpha Testing. This seems to produce issues with NiTextureEffects (which both gloss and bump use). The solution seems to be to disable alpha testing but retain or enable 'sort triangles'. You can use the menu or just type in the settings. I find the following settings in flags often work well: 4333, but you may need to experiment. To be tidy, change the threshold setting to 0. Save again and test in game once more. Marvel as the enchanted boots now have no glow at all, overriding the default game glow or any custom 'no-glow' mod.

Limitations

You cannot use this technique if you are relying on an NiTextureEffect to enhance the appearance of a mesh as the bump map will suppress it. It may be possible to substitute a correctly applied bump map for the effect you are currently using to reproduce the desired appearance. This use WILL suppress magic glow, meaning the appearance will be the same enchanted or not.

Any mesh, including a ground mesh that is treated in this fashion will show up to detect magic unless another mod disables this.

Personal tools