“Noblest of the Gods, King and Master of the whole Earth, Son of the great Hormisdas, CHOSROES, to Heraclius his vile and insensate slave:
Refusing to submit to our rule, you call yourself lord and sovereign. You seize and distribute our treasure, you decieve our servants. You never cease to annoy us with your bands of brigands. Have I not destroyed you Greeks? You say that you trust in God; why then has he not delivered out of my hand Caesarea, Jerusalem, Alexandria? Could I not also destroy Constantinople?”
—Chosroes II, King of Kings of Persia to Heraclius, Emperor of Byzantium, as quoted by John Julius Norwich
[15:19] serenadingwords: I’m leaving now before this gets any worse.
[15:19] TontoMarius: Bah.
[15:19] TontoMarius: You’re no fun.
[15:19] TontoMarius: And useless to my endeavors to stay concious.
[15:19] serenadingwords: I have 8 bazillion hours of work to do.
[15:19] TontoMarius: Even warm falling water failed me.
[15:20] serenadingwords: So take a nap.
[15:20] TontoMarius: Lukewarm showers: The most disappointing things known to man? Signs point to yes.
[15:20] TontoMarius: Maybe even worse than cold.
[15:20] serenadingwords: No. Freezing cold is worse.
[15:21] TontoMarius: Because at least with cold you can go “Well, this will suck, but we’ll man up and deal with the issue and move on.”
[15:21] TontoMarius: Lukewarm just sticks you in this sort of perrenial “damn it!” loop.
[15:21] serenadingwords: No.
[15:21] serenadingwords: Freezing cold gives me a headache. Also it is incredibly uncomfortable.
[15:22] TontoMarius: Like, the taste of greatness is there with you, but it’s just out of reach.
[15:22] serenadingwords: Lukewarm doesn’t hurt.
[15:22] TontoMarius: Well, yes, cold HURTS, but at least you know it’s just going to suck, so you can deal with it.
[15:23] TontoMarius: With lukewarm, it’s sort of cat vs laser pointer. You ALMOST have something worthwhile, but it sucks. So you have this false sense of hope.
Soon, my minions. Soon we shall rise up, and claim dominion over the hot water heater.
Yes, today is a three hours of sleep day. Why do you ask?

When making trigger zones that cast spells at people in them, one should always remember to check that the triggering thing is in fact an actual people, as opposed to, say, any random static, such as docks, lanterns, buildings, rubble, and the like.
We see above the results of not performing this check. While constant streams of lightning are indeed epic, they are, perhaps, not the desired result.
This article falls very firmly in the realm of “I hate my life so you don’t have to.” Because you know how I keep saying Blender is the Devil? I say it because it’s true.
For the purposes of this article, let’s assume you have copies of Blender, Nifskope, and the Blender nif scripts, and have an already-completed .nif file you want to add additional texturing blocks to. Here’s how.
1. First, make a backup copy of the mesh you’re about to edit.
2. [PICTURE] Open up your mesh in Nifskope. For each NiTriStrips block, note down the value, which should be something like “CastleWallTower01:1″. You care about that :1 part. These blocks will be sequential.
Having noted all of those numbers, note down the Material # under NiMaterialProperty for each block. You can ignore the Material # if you don’t care about color properties or glossiness.
All of this will become highly important later. For now, close down Nifskope.
3. Open Blender. When it finishes loading, use the Delete key to get rid of the default cube. If you misclicked and deselected the cube, right click it to select it.
Go to File/Import/NetImmerse Gamebryo (.nif & .kf). In the file dialogue that pops up, navigate to your .nif file, select it, and click Import NIF in the upper righthand corner.
Another dialogue will pop up. Make sure that the option “Combine Multi-Material Shapes Into Single Mesh” is deselected (it’s on by default, and you’ll need to do this every time you import), or you will hate yourself later. I do not assume responsibility for any monitor stabbings as the result of failing to follow this advice. Hit Ok. Your screen will go light grey, meaning you’re looking at a super zoomed in version of the model.
4. I digress for a moment into some basic Blender navigation.
- Use the scroll wheel to zoom in and out.
- Hold and drag the middle mouse button to rotate the view.
- Shift + Holding and dragging the middle mouse button will pan the view.
- RIGHT CLICK things to select/deselect them. Left clicking does various random other things, and you almost never want to use it in conjunction with model navigation.
- A key selects/deselects all.
- Blender is very subtle about denoting selected objects/faces/edges/vertices. Usually it’s some kind of outline, with the exception of faces.
That should cover it. I’ll try to cover other commands as we go. And yes, this UI is a nightmare for anyone used to just about any other program ever.
5. You should be in Object Mode right now. Use the scroll wheel to zoom out so you can see the whole object. It should all be selected. Hit A to deselect everything. Notice the outline going away.
6. Right click somewhere on your object to select it. Blender should only select a part of your entire model. If you get the whole thing, you messed up your import, and need to go back and check the “Combine Multi-Material Shapes” button again. If you get a bunch of crazy lines that look vaguely like your model but not quite, you’ve selected the collision geometry. We don’t really want that in our way right now, so do this:
Hit M, which brings up a small dialogue [PICTURE] which shows the move to layer dialogue. Click a box that isn’t the first one (see red arrow in the picture), then hit OK. You can select which layer you’re viewing by clicking the appropriate box in the layers control in the bottom left part of the picture.
Note that you can also do this for other pieces of your model you don’t want to look at right now, which is very useful for complex models with lots of individual parts.
If you didn’t get your collision geometry right away, don’t worry about it, and just deal with it when it gets in your way.
7. [PICTURE] This is what my model looks like with all of the extraneous bits I don’t want to work with right now moved to other layers.
Before you start cutting things up, you need a plan as to what exactly you want the model to end up looking like – how many different textures are you going to use, and where do you want them to go. In my case, I want to chop things into about three seperate pieces, roughly corresponding to the things on the top, the things in the middle, and the things on the bottom.
It really helps to play around in Nifskope before you do anything, and get a concept of what you want to be doing.
8. Once you’ve selected the part of your model you want to cut up, change to Edit Mode, click the Face Select Mode button, and then the Occlude Background Geometry button. See also [PICTURE] steps A, B, and C.
This gives us a more finely tuned selection ability. We could select by vertices or edges, but that’s more pain than we need to go through. We clicked Occlude Background Geometry to hide the geometry we can’t see right now, to prevent us from selecting it by accident, which causes all sorts of problems.
9. How you do this next bit varies on how much of your object you want. Either:
- Hold down shift and start right clicking faces to deselect them, or
- Hit A to deselect all. Note how you can still easily make out what’s selected by the lines and little boxes in the middle of the triangles. Hold down Shift and start right clicking these boxes to select them. Make sure to rotate around when necessary to get all the faces. You should wind up with something like this [PICTURE].
- You can also join parts together. Go into Object Mode, Shift + right click the pieces you want to join, and go to Object/Join Objects, or hit Ctrl + J, like the [PICTURE]. Note that if you do this, both parts need to have the same Material # in order to avoid Nifskope pain later. In the bottom pane, change the panel to Shading ([PICTURE]), click one of the parts you want to join, note the material #, click the other part, click the double arrowed box next to the material #, and change the material. Then use Ctrl + J to join them.
10. Now hit P to pop up the Seperation menu, then click Selected. All the faces you selected will now seperate out into their own object.
Repeat steps 9-10 until you’ve carved up as much as you want. If you need to select a different part of your object, go back to Object Mode, select the part, go back into Edit Mode, and repeat.
12. Once you’ve re-cut your mesh how you want it, here comes the fun part. Make sure you’re in Object Mode. Make sure you have that list of NiTriStrips numbers and Material numbers handy as well. Then:
- Right click to select any single part of your model.
- Make sure that your Panels are set up like in the [PICTURE]. In the Link and Materials box, check to see that the name is something akin to what’s shown. Pay attention to the “01:6″ part. If this bit has a period in it, say “01.001″ that means Blender is messing with you, and you need to correct it to be “01:#”, where # is some number that IS NOT one of those NiTriStrips block numbers you wrote down. Try to go in sequence. If you load up your nif later, and the structure is all wrong, you didn’t do this part right.
14. We’re ready to export. Hit A until you’ve selected everything. Don’t worry about the other layers, those are selected too.
Go to File/Export/NetImmerse Gamebryo (.nif & .kf). Give it a name and click Export NIF. A dialogue window will pop up. The default settings should be correct. Click Ok.
15. Now open up your nif in Nifskope. We have some housekeeping to do. First, go to Spells/Optimize/Split Properties. This lets us edit individual NiTriShapes.
16. Expand the Scene Root NiNode. Right click it, and select Block/Remove.
- Expand the remaining NiNode. Right click, then Block/Insert/NiS…/NiStringExtraData.
- Click the NiNode, and in the Block Details, find Num Extra Data List and change its value to 2.
- Then, click the double green arrows on the property just below it (Extra Data List), and click the arrow to expand it. Change the value of the first property to the number of the BSXFlags block. Change the value of the second to the number of the NiStringExtraData block.
- Open that backup copy of your nif from before you imported it to Blender. It should have a NiStringExtraData block. Click it, double click its String Data value, and copy the string. Close that nif, go back to your exported nif, and copy the string data to the String Data value of its NiStringExtraData block.
17. From here, you can change textures and materials like normal.
For the record, this took about 10 hours to figure out completely. As I say, I hate my life so you don’t have to.
Hence why I am linking to this site full of Blender video tutorials for my later perusal.
[edit] and also this [/edit]
Well, that and because if I can actually figure out UV mapping, I will become as a god amongst rabbitkind. Moreso than I am already, that is. You get the idea. But only if I can overcome the Blender interface, which is quite literally the Devil.
And I quote:
[03:17] Dwip: Blender, seriously. How asinine is the fact that I have to not only type in the path for my file manually because you can’t deal with multiple drives, but instead of double click to open, I have to click a goddamn open button?
[03:18] Dwip: Seriously, what is this, 19 fucking 87?
[03:18] Samson: Open Source BAD.
[03:18] Samson: And no. 1988. Get it right :P
[03:19] Dwip: And then I accidentally used open, and Blender won’t seamlessly import, so of course it fails.
[03:19] Samson: of course

