ElIgIo Sacateca Page 2 01/06/200J Table of Contents Introduction...................................................................................................................................... 4 The Tools......................................................................................................................................... 5 3D Modeling................................................................................................................................. 8 Weapons........................................................................................................................................ 10 Part 1: Understanding How NWN Represents Weapons .......................................................... 10 Part 2: A Rose by Any Other Name........................................................................................... 11 Part 3: Creating the 3D Model ................................................................................................... 16 Part 4: Creating the 2D Weapon Icon........................................................................................ 21 Part 5: Using a Hakpak .............................................................................................................. 24 Part 6: The Weapon Resource File............................................................................................ 28 Part 7: The Weapon Blueprint.................................................................................................... 36 Part 8: Special Touches............................................................................................................. 37 Part 9: Models that bend............................................................................................................ 39 Character Portraits......................................................................................................................... 40 Part 1: Understanding How NWN Represents Portraits ............................................................ 40 Part 2: Creating Your Portrait Files............................................................................................ 40 Part 3: Using Your Portrait for a PC........................................................................................... 42 Part 4: Using Your Portrait for a NPC........................................................................................ 43 Custom Voicesets.......................................................................................................................... 48 Part 1: Understanding How NWN Represents Voices............................................................... 48 Part 2: A Rose by any other Name............................................................................................ 52 Part 3: Updating Sound Files..................................................................................................... 55 Part 4: Creating a New Voiceset................................................................................................ 56 Items without Models..................................................................................................................... 60 Part 1: Understanding How NWN Represents Items................................................................. 60 Part 2: New Icons for Existing Items.......................................................................................... 61 Part 3: New Item Resources...................................................................................................... 63 Part 4: Other Items..................................................................................................................... 66 Spells ............................................................................................................................................. 67 Part 1: The Spell Icons............................................................................................................... 67 Part 2: The Spell Resource........................................................................................................ 68 Part 3: The Item Property Spells Resource ............................................................................... 75 Part 4: The Spell Script .............................................................................................................. 76 Part 5: Packaging it all up .......................................................................................................... 80 Custom Armor and Clothing .......................................................................................................... 81 Part 1: Understanding How NWN Represents Armor................................................................ 81 Part 2: That Rose Thing Again................................................................................................... 83 Part 3: Finding the Armor Model and Texture............................................................................ 86 Part 4: Creating a New Texture ................................................................................................. 89 Part 5: The Armor Resource Files ............................................................................................. 91 Part 6: NWNArmory ................................................................................................................... 92 Part 7: Additional Notes ............................................................................................................. 93 Part 8: A note on clothing........................................................................................................... 94 Part 9: Notes on heads and helmets ......................................................................................... 94 Creatures ....................................................................................................................................... 96 Part 1: Understanding How NWN Represents Creatures.......................................................... 96 Part 2: The Creature Resource File........................................................................................... 98 Part 3: Creating the 2D Portrait................................................................................................ 103 Part 4: Creating the 3D Model ................................................................................................. 105 Part 5: Animation...................................................................................................................... 109 Part 6: Soundsets..................................................................................................................... 125 Part 7: The Creature Blueprint ................................................................................................. 126 Part 8: Danglymesh ................................................................................................................. 127 Part 9: Skin and Bones ............................................................................................................ 128 NeverwInter NIghts Custom Content CuIde vJ.0
ElIgIo Sacateca Page J 01/06/200J Custom Races ............................................................................................................................. 133 Part 1: Custom Race Resource Files....................................................................................... 133 Part 2: The Dynamic Character Model .................................................................................... 136 Visual Effects............................................................................................................................... 142 Part 1: The Model File.............................................................................................................. 142 Part 2: Emitters ........................................................................................................................ 143 Part 3: The Visual Effects Resource File ................................................................................. 151 Other Tutorials............................................................................................................................. 154 Ambient Music (BMU files)....................................................................................................... 154 Area Load Screens .................................................................................................................. 155 Doors........................................................................................................................................ 155 Introductory Movies.................................................................................................................. 155 Placeable Items........................................................................................................................ 155 Placeable Sounds (WAV files) ................................................................................................. 156 Texturing .................................................................................................................................. 156 Tilesets..................................................................................................................................... 156 Tilesets by Retexturing ............................................................................................................ 157 Other Content and Modeling Tutorials..................................................................................... 157 Notes on Other .2da Files............................................................................................................ 158 Feats.2da ................................................................................................................................. 158 Tools Guide ................................................................................................................................. 162 Zoligato's NWN Viewer ............................................................................................................ 162 Bioware's Hakpak Editor .......................................................................................................... 162 Modeling Tools......................................................................................................................... 165 Biowares DDS Compression Tool........................................................................................... 166 DDSTools................................................................................................................................. 167 Tlkedit....................................................................................................................................... 168 Special Effects Reference ........................................................................................................... 170 Spell Audio Effects................................................................................................................... 171 Spell Visual Effects .................................................................................................................. 180 Scripting Visual Effects ......................................................................................................... 191 Change History............................................................................................................................ 207
ElIgIo Sacateca Page 4 01/06/200J ntroductIon The Aurora Toolset for Neverwinter Nights (NWN) provides the building blocks for your custom modules from tilesets to create your dungeons to creature templates for designing your encounters. The toolset is both flexible and limiting at the same time. Flexible - because you assemble the building blocks in whatever fashion you desire to create your world. Limiting - because the blocks are not as varied as your imagination. However, with the right add-on tools, those outer limits can be pushed as far as your time and imagination will take you. Creating custom content for Neverwinter Nights can seem like a daunting task but the rewards are great. And it is not as complex as it sounds not after you understand how all the bits and pieces of the toolset fit together. This tutorial attempts to show you how some of the pieces of the puzzle fit together. It does not cover all types of custom content; there are already some good tutorials available that I reference near the end of this document.
Notes: This tutorial is still under construction. I will cover additional tools and details for different types of custom content in future versions. Any notes or quirks or bugs in the toolset that I mention in this document exist at least as of version 1.29 of the NWN game.
Acknowledgements This tutorial and what I have been able to piece together about developing custom content builds upon what others have done: it is compiled from various sources on the Neverwinter boards, bits and pieces of tutorials, and personal experimentation. Sources are varied and there are too many to name them all. However, let me acknowledge now some of the key contributors: Danmar, primarily for information on weapon modeling Conjumen, for information on custom portraits Ddraigcymraeg, for information on voicesets Zoligato and his wondrous NWN Viewer. Kaine, for detailed information about spells. SamJones and Lisa, for explaining PLT files. Haelix and Jupp for explaining creature creation and animation. I will confess up front to having used portions of tutorials and sound bites from these people to as a starting point and then sought to clarify and expand them for my own use and the general NWN public. And there are more whose ideas and posts have influenced this tutorial. Forgive me in advance for not being able to include all of you. Thanks to Jay Wataniumak and Bioware for filling in some of the holes in previous versions of the document. 0IsclaImer Please note that these tutorials are provided as-is, with no guarantees that they will be particularly useful for what you wanted to accomplish. Also, the author(s) cannot be held responsible for damages done to your computer, applications and/or game installation by following these instructions. Caveat emptor.
ElIgIo Sacateca Page 5 01/06/200J The Tools If you wish to create custom content you will need a few tools in addition to the Aurora toolset. ZolIgato's NWN7Iewer This viewer (http://nwvault.ign.com/Files/other/data/1026158289673.shtml) lets you browse the NWN resource files (all of the model, textures, pictures, text, etc.) that make up the content of the game. It also allows you to extract these files so that you can modify them or use them as a base for making your own custom content. 8Ioware's Hakpak EdItor A hakpak is a file (with the extension .hak) where you add custom content files to either supplement or override standard Bioware content. For example, you can use a hakpak to make Neverwinters standard goblin a different color (overriding standard content) or to add a new monster such as an Owlbear (adding new content). To use your hakpak you must add it as a resource to your module. For instructions on how to do this, refer to the Hakpak Editor section at the end of this guide. Anybody who plays your module will need a copy of your hakpak so be sure to distribute it along with your module itself. |odelIng Tools The complexity and expense of the modeling tools you use is completely up to you and what kind of custom content you want to build. You have many options: a) Simple copying and retexturing. If all you want is the ability to copy models, rename them and retexture them, there is a simple utility you can use. NWN can read either binary or ASCII versions of the model files (most of the NWN files are compiled into a binary format). The reason for turning them into ASCII files is that you can edit the ASCII model file with a text editor and change simple things like the texture file used and the model name (make sure you change all instances). NWNMdlComp (http://www.torlack.com/index.html?topics= nwnmdlcomp_readme) will take a binary model file and turn it into an ASCII model file and vice-versa. Warning Another way to override Bioware content is to drop a file into the /override folder of your game directory. However, you should not do this. Hakpaks are much cleaner they can group many overridden files into one package and, more importantly, they are specific to a module. Putting a file into the /override directory will override it for all modules you play on that computer which may have unintended consequences on other peoples games. In general, dont use the /override directory. The only valid use of the /override directory that I would recommend is for temporarily and quickly testing your content without having to go through the process of updating a hakpak, saving it, etc. Once you have finished testing, dont forget to load the new content into a hakpak and take it out of the /override directory. Notes I no longer reference c-tools because NWNMdlComp is a more up-to-date version of what the original program could do. NeverwInter NIghts Custom Content CuIde vJ.0 Tools
ElIgIo Sacateca Page 6 01/06/200J b) If you want to try modeling work without an expensive modeling tool, try gmax (http://www.discreet.com/products/gmax/). It is a subset of 3ds max for non- commercial game designers and it is available free. To use it for NWN you also need to pick up the Waylands GMax MDL import/export script (http://nwvault.ign.com/Files/other/data/1029721132840.shtml) and NWNMdlComp (above). Gmax and its tools do not support creation of emitters (an advanced topic for NWN modeling so you may not care since most models do not use emitters). c) There are low cost modeling tools available on the net. Milkshape 3D (http://www.swissquake.ch/chumbalum-soft/) is a low polygon 3D modeler originally made for Half Life. Milkshape import/export scripts (http://www.augustweb.com/~anim8r/html/closet_tools.htm) are available to support NWN and a host of other formats. I have read that the import/export plug-ins for Milkshape3d appear to have been made for the beta toolset before the game was released. They rotate body parts 90 degrees counter-clockwise so you have to either rotate 90 degrees clockwise before exporting - that is rotate the model not the view - or else import/export your model a total of 4 times to return it to original position. Beggars cant be choosers. d) Professional modeling. Buy 3ds max (http://www.discreet.com/products/3dsmax/). Pawn your car. Mortgage your house. Sell the rights to your firstborn child. Once you have done that and have the 3ds software, you need a set of MAX Scripts to export and/or import model files. The MDL Plug-in Suite 1.0 (http://www.bricksbuilder.com/nwn/utils/) by scooterpb is the utility of choice here. This is a set of tools developed by the community that will let you import Biowares models into 3ds max 4 or 5, manipulate them, and export them as ASCII mdl files. Bioware has also released their Export Scripts for 3ds max (http://nwn.bioware.com/downloads/max_script.html). Grab them and Biowares Export Scripts Documentation (http://nwn.bioware.com/downloads/max_docs.html). e) More professional modeling. Buy Lightwave 3D (http://www.lightwave3d.com/). Joviex has released Import/Export scripts for Lightwave (http://www.onarom.com/Plugins/nwnmdl.asp). f) ObsidianSS (http://nwvault.ign.com/Files/other/data/1030 162054010.shtml) is a tool for scaling and skinning existing models (it does nothing that cannot be done with gmax or the other modeling tools but some people find it a good tool if they just want to scale and skin existing models without learning gmax). If you are interested in ObsidianSS, here is a tutorial on re-skinning an existing model (http://nwvault.ign.com/dm/modeling/tutorials/ lllSnakeeyeslll/BlackBalorTutorial.htm) using ObsidianSS. Warning Bioware has only released the export scripts - no import scripts. This means you cannot load their existing content from a Bioware MDL file. You can only export a model you create from scratch. I believe most modellers make heavy use of scooterpbs suite and more limited use of Biowares scripts. Notes Note that ObsidianSS does not scale animations properly creatures no longer attack where they should. Small ones swing in front of the target and large ones well behind it. I suspect this is because the motions scale down or up but the game engine does not know to change attack distance between the creature and the target. This may be fixable with parameters in the appearance.2da file (like HITDIST) but needs to be tested. NeverwInter NIghts Custom Content CuIde vJ.0 Tools
ElIgIo Sacateca Page 7 01/06/200J There are other 3D modeling tools but import/export scripts for these currently do not exist. A number of people ask about Maya because there are free/low-cost educational versions available and it is reportedly better at animation than 3ds max or gmax. However, there are no import/export scripts for Maya directly from and to NWN. They could be written for the professional version if somebody has the inclination the SDK exists for the full version although the educational versions do not accept plug-ins and use a proprietary file format so you are out of luck there. mage EdItIng Tools The complexity and expense of the image editing tools you use is also completely up to you and what kind of custom content you want to build. You have many options: a) Picture Publisher from Micrografx (now a Corel product). Moderately advanced image editing, this is one of many packages bundled with common hardware like scanners (thats how I got mine). b) Photoshop (http://www.adobe.com/products/photoshop/main.html) from Adobe. Did you sell your firstborn to get 3ds max? Put the second child up on the auction block too. You wont get as much for the little rascal as you did for the first one but it should be enough to get a copy of Photoshop. c) Paint Shop Pro (http://www.jasc.com/products/psp/) from JASC. The poor-mans Photoshop. You should be able to get it for the price of your dog. d) GIMP (http://www.gimp.org/) is a freely distributed piece of software suitable for such tasks as photo retouching, image composition and image authoring (open source, natch). Contrary to popular belief, it runs on Mac and Windows in addition to Linux. If you really are attached to your children and your pets, this is the way to go. e) MSPaint from Microsoft. Wait, did I say that? Actually, MSPaint does not support the Targa bitmap format so it will not work for NWN. f) Your choice of 15,237 other image-editing programs. 00STools and/or 8Ioware's 00S CompressIon Tool Either DDSTools (http://downloads.neverwinternights.de/tools/ddstools.zip) or Biowares DDS Compression Tool (http://nwn.bioware.com/builders/texturetutorial.html) can be used to compress your textures into DDS format for faster rendition on higher end 3d video cards. While not absolutely necessary, it will give your objects that extra level of professional shine. It allows your hardware to switch between very hi-res textures when viewing an object close up while using low-res textures for the same object viewed at a distance. These are only necessary if you create custom textures for your models. NWNArmory (http://nwvault.ign.com/Files/other/data/1053910703210.shtml) is used to duplicate armor pieces when you are creating new armor for all the different PC races or creating new PC races. NeverwInter NIghts Custom Content CuIde vJ.0 Tools
ElIgIo Sacateca Page 8 01/06/200J 8Ioware's Photoshop PLT Exporter PlugIn (http://nwdownloads.bioware.com/neverwinternights/misc/photoshop_plt_plugin.zip) is for people who use Photoshop to edit their image files. This tool will allow you to export them as PLT texture files for use in armor and head models. Lord EmIl's pltcon (http://www.lordemil.com/NWN/pltcon.exe) is used if you dont have Photoshop because it changes PLT texture files into editable bitmaps and back again. 0draIgcymraeg's Soundset FIle (SSF) EdItor (http://nwvault.ign.com/Files/other/data/1027785116370.shtml) is used to create or edit NWN .ssf voiceset files. There are some bugs with this utility that may cause problems although it is generally stable. ChIllISkInner (http://www.chilliweb.co.uk/chilliskinner/) is used to unwrap an object for texturing in 3ds Max or gmax. Apparently 3ds max version 5 does not really require Chilliskinner; many of the capabilities of that tool are building into the advanced unwrapping features of v5. ChilliSkinner is really a set of Maxscripts. Texporter (http://www.texporter.com/) is used to unwrap an already textured object into a bitmap for painting (after you have run ChilliSkinner, for example). This is not strictly necessary when texturing because you can always do a printscreen when unwrapping objects and use the printscreen as a template for your texture (which is good because Texporter is a plug-in and can only run in 3ds max it does not work on Gmax). CD0's Character Creator (http://codicc.city-of-doors.com/) is used to generate custom races. J0 |odelIng This guide is not a 3d modeling course. Nor will it teach you in the ins and outs of texturing. If you already know how to model, you have won half the battle. Pick up a copy of your favorite modeling tool and dive right into this tutorial. If you dont, Discreets gmax is a good place to start and it includes lots of tutorials. If you dont know what a mesh is and need help with the real basics, there are other resources that can help you: http://www.polycount.com/ is a site for game modeling (Quake, UnReal, HalfLife, etc.). http://www.quake3world.com/ubb/Forum11/HTML/001100.html (the Quakeworld resource forum) has some great links and tutorials for 3d modeling. http://www.3DTotal.com/ has a lot of tutorials, and a lot of samples. Check out the fancy swords in the Models section under the Medieval/Historical section (unfortunately, they are too high-poly to use directly in NWN). As another example, you can find a tutorial to model Joan of Arcs sword (http://www.3dtotal.com/ffa/tutorials/max/joanofarc/sword1.asp) here. http://www.computerarts.co.uk/tutorials/3d/ also has tutorials on basic modeling and animating. NeverwInter NIghts Custom Content CuIde vJ.0 Tools
ElIgIo Sacateca Page 9 01/06/200J http://www.cgtalk.com/ is a very active forum on modeling. There is a great tutorial on texturing and others on general 3d modeling. comp.graphics.packages.3dstudio the 3dstudio newsgroup. Tips, tricks, FAQs and flamefests. What more could you ask for? http://www.3dlinks.com/ includes discussion forums and other information that you may find useful. http://www.3dark.com/ was recommended in another post but I found the practical content to be fairly low (unless you want to join the 3d animation industry). http://www.3dcafe.com/ is, unfortunately, a subscription site. It does have a section with free models that you may be able to use as a starting point. http://mojo.gmaxsupport.com/Sections/MaxScripts.html has scripts that can be used with both 3ds max and gmax. http://supadetail.gmaxsupport.com/ has gmax tutorials. http://tdp.nu/cgi-bin/plugsearch_r4.pl?search=gmax has plug-ins and scripts for both 3ds Max and gmax. http://www.scriptspot.com/start.htm also has plug-ins and scripts for both 3ds Max and gmax. http://maxres.cgworks.com/scripts/ has scripts for 3ds Max. http://max3d.3dluvr.com/plugins.php has plug-ins for 3ds Max. This site also has some good tutorials on subjects like animation. http://www.maxplugins.de/ has more plug-ins for 3ds Max. http://www.melax.com/polychop/plugin/index.html has polychop. This is a plug-in that reduces the number of polys in your mesh (in case you got a little too excited making the ultimate hi- resolution model and cant find a PC fast enough to run it) Paul Steed (Quake II/III fame) apparently has a book called "Modeling a character in 3DS Max". I have not used it myself but I am told it is a very good book that explains how to model and skin a one piece character mesh for export to any game/application. It is 500-odd pages, about USD $45. I would recommend you get started by doing some of the basic tutorials that come with your modeling package. Then move on to looking at the existing NWN models. Review them, modify them, understand them, and finally make your own.
Weapons Lets start by modeling a new weapon. I want to be able to create Wave, the trident from S2 White Plume Mountain. We will start by creating a simple trident head and test it out. Then, after we have it working, we will tweak the content to add additional features. Where do we begin? Well, it usually helps to start with something that at least vaguely resembles the final product you want to create at least until you have done a few of these. We would start with an existing Bioware model but NWN does not include a trident as a standard weapon. But wait, a spear is similar to a trident (a pointy thing on the end of a long stick) and you attack with it in a similar motion (by jabbing the sharp end at your opponent). So we will start with a spear as our base model. Part 1: UnderstandIng How NWN Fepresents Weapons Lets look at how NWN represents the different components of a weapon by actually building an existing one in the Aurora Toolset. Try this exercise: 1. Open up the Aurora Toolset. 2. Create a new Module (we will call it Weapon Tutorial for lack of a better name). Use the Area Wizard to create at least one Area. Use the defaults to set up the area and choose something simple like a Castle Interior. 3. Select Wizards | Item Wizard. 4. For Item Type select a Spear (we will talk about the standard weapon types later in this section). 5. Click Next. 6. Enter a name (Trident). 7. Click Next. 8. Add to the Weapons, Polearms category (we will talk about the standard categories later in this section). 9. Click Next. 10. Check the Launch Item Properties checkbox. 11. Click Finish. 12. Select the Appearances Tab. You can now modify the appearance of the item. The options you choose correspond to the different Model Ids and Position Codes. Take a closer look at the Appearance tab. Note that there is both a 3D model (used in the game engine to render a character actually wielding the weapon) and a 2D icon (used in the game engine for the inventory functions). NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 11 01/06/200J
F|gure 1 - 3pear sroW|rg 30 Vode| ard 20 lcor What you dont see directly is that each of these models is actually made up of three distinct pieces (top, middle, and bottom). By mixing and matching these pieces, you can create a lot of unique weapons with the basic items included in the game. In our example, the basic spear consists of the spearhead (top), the shaft (middle), and an end cap (bottom). A sword consists of the blade (top), the guard (middle) and the hilt (bottom). While we are here, play with the Model and Color values. By changing the Model values, you can change the shape of each component. By changing the Color values, the shape of each part does not change but you can change the color of each component. Now that you understand the different parts of a weapon model, lets get started. Part 2: A Fose by Any Dther Name would not work in NWN. We are going to model our trident on the existing short spear weapon. Remember, it is generally easier to start from something you know and build your content from there. Where do I get the standard weapon models used in NWN? What about NWVault? Sorry. While you will find a few models on the vault that are NWN-ready, most are in other model formats. So, while they may look nice, they dont work directly in the game. So where do I go? Thats what NWN Viewer is for. The content is already stored in the NWN game, you just have to learn how to access it. Open up NWN Viewer and select File | BIF | Neverwinter Nigths (sic). What you get is a listing of all of the core content files for NWN. Each BIF file (not sure what BIF stands for maybe Binary Information File) is a packed file like the hakpaks we talked about earlier. They contain standard NWN content. If you look through these you will find that the core NWN models are stored in two files: The 2D icon The 3D model NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 12 01/06/200J data/models_01.bif contains the character and creature models data/models_02.bif contains the armor/model pieces, placeable items, and weapon models We will use data/models_02.bif because we want the weapon models. |odel Type Scroll down, way down. What you want are the models that start with w. Weapon models are named using the format: wxxyy_z_nnn. The prefix represents the model type for a weapon. The remainder of the name represents the weapon class and name for the model.
F|gure 2 - NwN v|eWer sroW|rg lop porl|or ol 3pear 30 Vode| (spearread) Weapon Class and Name After the w, the next four characters (wxxyy) describe the class and name of the weapon: xx Model class yy Model name abbreviation Hint Check your /override directory and patch.bif first they contain official updates from Bioware (NWN Viewer gets its data directly from the original BIF files which may be out of date). Only if Bioware has not updated these files should you export a new version from the original game installation. If you don't follow these simple rules, you risk undoing Bioware's bug fixes when you distribute your custom content. NWNViewer cant open patch.bif directly. To have it recognize patch.bif, rename the file chitin.key to original.key. Rename patch.key to chitin.key. Now you can open it directly in the viewer. To open the original BIF files, reverse this process. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 1J 01/06/200J
For example, wplss_t_011 equates to: w for weapon pl for polearm ss for short spear Well get to the _t_011 part in a moment. First, here are the standard weapon resources for data/models_02.bif:
Type Class Name Maps to W Weapon AM Ammo AR Arrow BO Bolt BU Bullet DT Dart (I dont think this is really valid because it does not appear in the baseitems.2da file). AX Axe BT Battle Axe (two-handed) GR Great Axe HN Hand Axe (one-handed) BB ? QS ? BD ? QS ? BI ? MI ? BL Bludgeoning Weapons CL Club FH Flail, Heavy FL Flail, Light HL Hammer, Light HW Hammer, War ML Mace, Light MS Morningstar BW Bow LC Longbow, Composite LN Longbow SC Shortbow, Composite SL Sling SH Shortbow XH Crossbow, Heavy XL Crossbow, Light XR Crossbow, Repeating DB Double-handed AX Double Axe MA Dire Mace QS Quarterstaff SW Two-bladed Sword MG Magic RD Rod ST Staff WN Wand NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 14 01/06/200J PL Polearm HB Halberd SC Scythe SS Short Spear SP Special GA Gauntlet? (I dont think this is really valid because it does not appear in the baseitems.2da file). KA Kama KA Kukri NN Nunchuka (I dont think this is really valid because it does not appear in the baseitems.2da file). SC Sickle SP ? (I dont think this is really valid because it does not appear in the baseitems.2da file). SW Sword BS Bastard Sword DG Dagger GS Great Sword KA Katana LS Longsword RA Rapier SC Scimitar SS Shortsword TH Throwing AX Throwing Axe DT Dart SH Shuriken WB ? LC ?
PosItIon Code Okay, sounds easy enough so far. But what are all those other numbers and letters I see in data/models_02.bif (the _t_011 stuff)? We have already looked at how NWN represents the different components of a model by looking at the item properties under Appearance for a custom-created item. The options you choose correspond to the different model types in the data/models_02.bif file. First is the position code. We know there are three position codes for each weapon: t top m middle b bottom
So in the earlier example, wplss_t_011 equates to the top piece (the head) of the short spear. |odel 0 There is a specific format for the id as well: nnz. There are two characteristics: nn Model (although Ive not seen the first character anything other than zero and I have had trouble getting past 09) NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 15 01/06/200J z Color/Texture (right now the ones typically supported are 1 = metal, 2 = brass, 3 = wood) but you can add your own
So in the earlier example, wplss_t_011 equates to the first model # and the initial color (usually metal, followed by bronze/brass/gold, followed by wood) of the top piece of the short spear. SpecIal |odels Now you understand the weapon models and their naming conventions. Well, almost. What about some of those other models with names like waxbt_fxacid? There are special purpose models for special effects: _mb The motion blur model _fxacid, etc. special effects (acid, etc.) shows the game engine where to render the colored mist or flames that envelop different models _blur Ignore this model type. This looks like it is another type of motion blur model but it is not. It is not used for anything and is a vestigial model left from earlier game development days _000 Ignore this model type as well. It looks like a normal weapon model but it is not valid. It is a vestigial model left from earlier game development days as well
So waxbt_fxacid shows the model for a weapon, an axe, in fact a battle axe, corresponding to the effect you would get if that battle axe were magically enchanted to drip acid. There are a few weapons (e.g., the bullet) that do not have the full 3 parts. These are represented with a format of wxxyy_nnn. Just exclude the Position Code.
Part J: CreatIng the J0 |odel So with all of that in mind, I am going to create my models for a trident. If I look at the spear models, the first thing I see is that the standard shaft (m as in middle) and end (b as in bottom) models for a spear work just fine for a trident. So Im just going to create a new model for the head of the spear (t as in top). Here are the basic steps using gmax. Directions may vary according to your software. 1. Open the NWN Viewer. 2. Select data/models_02.bif. 3. Scroll down and select the model wplss_t_031. 4. Right click on the row and select Extract file(s) to. 5. Save the file to a new directory. This is a binary model file. You cannot easily open or read it in binary format. 6. Open a command prompt window. 7. Run NWNMdlComp d wplss_t_031 on the binary model file to convert it to an ASCII model file (it should have the name wplss_t_031.mdl.ascii).
F|gure 3 - us|rg NwNrd|corp lo decorp||e a o|rary rode| l||e 8. Open gmax. The NWN MDL Tool pane should automatically open on the left side. If it does not, load it manually using Maxscripts | Run Script 9. Load the spear model into gmax by opening the Import MDL sub-menu in this pane (not the File | Import function) and using the Browse pushbutton to select the ASCII file you created in step 6. Hint Start with a model you know works. There are models for swords, spears, even a flail with a chain linking head to handle. Use this model to understand how big to make your objects and where to place them. Complex models with lots of polygons will slow down combat considerably. How many is too many? Well, it varies. I created Wave with 157 vertices. This is pushing the high end of what you want. Many of the standard NWN models have less than 50 vertices. I would aim for 30-40 per model file. The CEP puts a ceiling of 300 polys for the entire weapon (all three parts). If you would like your object to have a chrome finish, you do not have to texture it. Otherwise, figure out UVW mapping and do your own texturing. The default weapon texture is w_metal_tex.tga. The texture image is comprised of blocks of textures, some alpha masked, some not. If you use an alpha mask texture on a weapon then where it is transparent the underlying shiny value will show through. The gmax and 3ds max export scripts are a bit funky working directly with a blocked texture file like w_metal_tex.tga. You need a single texture file for the entire object or you need to do a proper UVW map. If the NWN MDL Tool pane does not come up and you cant find the scripts to load, you probably dont have the scripts installed. See the link at the end of this document to get a copy. Put the .ms files in your gmax\scripts\startup folder. You can only export editable mesh objects. So if you model with shapes or nurbs you must convert to an editable mesh before exporting. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 17 01/06/200J
F|gure 1 - Tre grax pop-up lor NwN 10. You can minimize the MDL window after you open the file. Take a close look at the model you loaded. Note the relative size and position of the model. This is important because the relative orientation and offset of your model now will be used when the game engine renders your weapon in three pieces. The reason your spearhead is not centered at the origin (0, 0, 0) of the gmax space is because it must be far enough out to rest comfortably on the tip of the spears shaft model (the middle piece). You must keep it there; otherwise it will not appear to be attached to the rest of the weapon when the game engine assembles the three models later. 11. Note the base item. This is used by the import/export scripts to link special attributes to models (animations, etc.). The spearhead is a child mesh of the base. Dont change the name of the model for now, or of the base (this is important for now we will change it for later models). The spearhead model has a name of wplss_t_031. 12. Now modify the standard spearhead or replace it with your trident model (read the tutorials for gmax to see how to actually create 3D models).
Hint Collapse your objects to editable meshes before applying any NWN modifiers. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 18 01/06/200J
F|gure 5 - Vy lr|derl |r grax 13. If you created a new model, be sure to link it to the base item as a child object. 14. Open the Export MDL sub-menu of the NWN MDL Tools pane. Select Export MDL. 15. Wait? Where is my exported file? It didnt even ask for a filename. The gmax import/export utility does not have the ability to write files. What it does is dump an ASCII version of your model to the MAXScript Listener. What you need to do is open MAXScript | Listener and then copy and paste the listing into a text file. Save it as wplss_t_031.mdl and you are done. Hint Size matters. 1cm in game = 1 max unit. If this is too confusing you can import another model that is properly scaled. Because NWN uses a tiny scale, the import export tool lets you import at a magnified scale of 100X magnification. It will then export at -100X to get it back to original size. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 19 01/06/200J
F|gure - VAX3cr|pl L|slerer |r grax lo exporl rode|s 16. Copy your wplss_t_031.mdl file to the /override directory of your game installation. If you used a .tga file as a texture, put it in the same directory. 17. Open up the Aurora Toolset. If it was still open from before, save and close the module and toolset first then re-open it. 18. Open your Weapon Tutorial module. 19. Select the Area you created, and then the Item icon on the right toolbar (it looks like a sword). 20. Choose the Custom tab. 21. Your original spear should be under the Weapons, Polearms category. 22. Right click Trident and then select Edit from the pop-up menu. 23. Select the Appearance Tab. 24. Select Top model 3 if it was not already selected. I also chose the Bottom model 4 (one of the default models) because I like the bladed end better than the rounded model #1. And I made the shaft gold (color 2). 25. Click OK and then save your module. Hint This cutting and pasting thing from the listener is a bit annoying. You can get a utility from NWVault <STB: insert link here> that does this for you automagically. You must close and re-open the Aurora toolset whenever you add something to the /override directory. The game and toolset only look at and load files from the /override directory once, upon start-up. If you do not re-open the toolset, it will not recognize any new resources. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 20 01/06/200J
F|gure Z - 30 Vode| ol 3pear W|lr |rcorrecl 20 lcor This is what you get when you look at your spear. It is starting to shape up. There are a couple of problems with this model that say we arent done. Note the picture on the right side it still looks like a spear with a default spearhead! Where is our trident? We need to create a 2D weapon icon to fix this. Now all basic spears using model 3 will look like tridents because we have overridden the default spear model. We need to change a few more things to fix this problem as well. Our trident is actually a spear. It will work fine this way but we may want to actually add an entirely new weapon, a trident, rather than piggy-backing on the spear forever.
Note on ResetXforms: Have you ever opened up one of your creations in NWN and found it does not look like what you saw in your modeling tool? Too big? Too small? Parts blown out of proportion or disappearing? Sounds like you have a problem with advanced transforms. This subject is so frequently discussed and so problematic I thought I would pull it out into its own flagged section. Let me start by discussing why you need to care about resetting transforms. Gmax and 3ds Max can hold information about your object (whether or not parts of it are mirrored, which directions normals really point, how it is scaled and rotated, etc.) that is not exported with your model in a way that NWN can understand or use. What this means is that what you see in Max may not be the same as what you see in NWN. For example, objects can be transformed (scaled, rotated or moved) either in world space or in sub-object space. Transforms in sub-object space take place when you transform vertices, edges, faces, polys or elements of an object (or all of them at the same time). Transforms in world space take place by selecting your object at the highest level and transforming it. What this means is that if you rotate an object in world space, it will not be rotated when you export it to the game. Or moved (transformed).Let me repeat that in different words because this part is key: Bioware's NWN engine does not read world space transforms! NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 21 01/06/200J As you can imagine, this might be a huge problem. One way to fix this problem is to do all of your transforms at the sub-object level. However, this is only a partial solution because the same problem occurs with other operations as well (for example, mirroring objects often inverts the direction of their normals or faces). The good news is that there is a way around it. In Gmax or 3dsMax you can do a ResetXform operation on all the pieces of your model and then collapse each of these modifiers onto your editable mesh. By doing this, you are turning this complex transformation information into something simpler that NWN can understand. In practical terms it means what you see in Max and what you see in NWN are more likely to be the same. ResetXform can be found on the Utilities panel. Use the ResetXform utility to push object Rotation and Scale values onto the Modifier Stack display and align object pivot points and bounding boxes with the World coordinate system. Reset Transform removes all Rotation and Scale values from selected objects and places those transforms in an XForm modifier (no, really, it will). You can then collapse the modifier into your object and away you go. Some notes on ResetXform: Sometimes after you do a ResetXform you may need to clean up parts of your model. For example, often on mirrored objects doing a ResetXform will expose the fact that your normals are really inverted. You will need to flip the normals on the mirrored part after you are done. These aren't things that ResetXforms breaks - they are things that would have been wonky in the game and it is showing them to you early. You can also reset the transforms on the Pivot block of the Hierarchy panel. It will convert your world space transform into a sub-object space level transform. However, it will not fix problems like reversed normals so the Utility panel is generally the way to go. You must do all of these things before linking your object to other objects (like the Aurabase). Why? Because the ResetXform modifier affects child objects as well the parent. If your objects are linked together they will inherit transforms and scaling. By resetting you are only really resetting them relative to the parent objects. So let me summarize: if your object appears differently in the game than it did in 3dsmax or gmax you probably forgot to reset the transforms on it. Make sure your object is unlinked and then use ResetXforms on the Utility Panel to clean it up before proceeding.
Part 4: CreatIng the 20 Weapon con Lets start by fixing that picture. NWN 2D icons must be 32-bit Targa Bitmap (.tga) files (with an alpha mask channel). Once you understand how the 3D weapon models are named, the 2D icons are easy. Just add an i to the beginning of the 3D name. For example, iwplss_t_011 equates to the 2D icon of the model # 1 and color # 1 (usually metal, followed by #2 bronze/brass/gold, and #3 wood) of the top piece of the short spear. There are two game files that contain all of the textures: data/textures_01.bif data/textures_02.bif
You may need to use both. Use data/textures_02.bif for axe and short sword icons. The rest of the icons are in data/textures_01.bif. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 22 01/06/200J
F|gure 8 - NwN v|eWer sroW|rg 20 lcor How big do I make the icon file? Note that in this example the icon for the spear top is 32 x 128 pixels. But the different icons can be different sizes, just make sure they are a multiple of 32 and that all the pieces for a specific weapon are the same size. In the case of our spear, we will use the same 32 x 128. Why do we need to do this? We do it for the inventory management system of NWN. Each box on the inventory grid is 32 pixels x 32 pixels. Our models have to align with this grid perfectly. Again, I suggest using an existing model to start. CreatIng a TrIdent con I use the same basic process to create the 2D icon as I did for the 3D model: 1. Open the NWN Viewer. 2. Select data/textures_01.bif. 3. Scroll down and select the file iwplss_t_011. 4. Right click on the row and select Extract file(s) to. 5. Save the file to the directory with your 3D model. 6. Open the .tga file with an image manipulation program. I use Micrografx Picture Publisher because it came with my scanner and does most of what I need. Modify the standard spearhead or replace it with your trident model. Keep the name the same (this is still important NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 2J 01/06/200J for now). Dont use any of that black space below the model when the game overlays the middle and bottom pieces it will use that space. I chose to do a screen print of my 3D model as it shows in the Aurora Toolset, shrink it down, paste it over top of the sample file I extracted using NWN Viewer, and then tweak the image to get it to look cleaner and brighter.
F|gure 9 - Tre 20 lcor lor lre Weapor lop 7. Now, to do the overlays of the 3 model pieces, NWN uses a mask channel to know which portions of the bitmap to lay down. What you need to do is create this mask channel for it before you save your image. Details on how to do this will vary depending on the software you use. Using Picture Publisher, it has a magic wand for creating a mask. I start by creating the mask of the black space surrounding the image (magic wands work best if given a single color to encapsulate). Then invert the mask so that it is a mask of the trident head instead of one excluding it. I could have done a mask directly of the trident but it has many colors and I would probably have needed to zoom in and select the mask area manually. 8. Now save your image as a Targa Bitmap. Again, be careful. I needed to select Options first and explicitly tell Picture Publisher to save the mask channel. Otherwise it just saves the image as a 24-bit Targa file instead of a 32-bit one with mask. 9. Close and re-open your saved file in your image program. If the mask is still there you got it right. If not, try again. 10. Copy the new iwplss_t_011.tga file into your /override directory. 11. Open up the Aurora Toolset. If it was still open from before, save and close your module first, then close and re-open the toolset. 12. Open your Weapon Tutorial module. 13. Select the Area you created, and then the Item icon on the right toolbar (it looks like a sword). 14. Choose the Custom tab. 15. Your spear should be under the Weapons, Polearms category. 16. Right click Trident and then select Edit from the pop-up menu. Hint If you see the icon in the toolset but not in-game then the dimensions are probably wrong. In baseitems.2da there is an icon height and width - this is measured in squares on your inventory screen in-game. Your icons need to be (32 x height) x (32 x width) .tga files. If they aren't they still display in the toolset (it is just a .tga, after all) but when the game engine tries to cram your icon into the inventory squares where it should fit it cannot and gives up. Since we are using the spear entry, we are okay by copying the spear icon and keeping its dimensions.
ElIgIo Sacateca Page 24 01/06/200J 17. Select the Appearance Tab. 18. Your trident should now have a 3D model and a 2D icon. If you only have the head of your trident in the 2D icon, your mask was probably not done properly and NWN is overlaying the other two components with your entire image file. Check the mask again and repeat these steps.
F|gure 10 - Tr|derl W|lr 30 Vode| ard 20 lcor Part 5: UsIng a Hakpak Up until now we have been using the /override directory to load our new model and icon. This overrides the standard spear model 3 for any module you play. There are two shortcomings to this approach: Using the /override directory is the wrong way to override content (except as a quick way to test your changes). You are replacing an existing model. This is a common way of adding new custom content (select an existing object that you do not plan to use in your module and replace it with your content). But it does not allow you to use the overridden item in that module. And your new model must behave exactly the same as what you are replacing (same damage dice, etc.) We will examine more sophisticated ways of adding new weapons. We are going to introduce two new concepts here: Hint Why didnt we do this from the beginning instead of first replacing the 03 spear model? We could have but I wanted to show you both methods replace or adding custom content is applicable to many different types of content, not just weapons. The /override directory can be faster for testing models (without having to update hakpaks all the time) although personally I find the effort of starting and stopping the toolset all the time when you use the /override directory if you do to be time-consuming itself. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 25 01/06/200J Using a hakpak to load the content into NWN for a specific module (instead of using /override which affects all modules you play on your machine) Adding a new spear model (instead of replacing an existing model). Start by moving your files out of the /override directory. Dont forget this step! This is one of the reasons I strongly recommend against using the /override directory it is too easy to forget and leave things in it. A month from now you will be wondering why one of your spears looks like a trident in spite of everything you do to change it. 1. Move wplss_t_031.mdl and iwplss_t_031.tga from the /override directory. We will put them in a hakpak instead. 2. Rename the icon file we just created as iwplss_t_051.tga (dont put it in the /override directory!). That way they will not override model 3. 3. Go back and resave your model file as wplss_t_051.mdl. You should change the internal model name to be wplss_t_051 as well. You can do that either from within gmax (change the name of the model from WPlSs_t_031). Or, open the .mdl file with a text editor and changing all instances of wplss_t_031 to wplss_t_051. 4. Create a new hakpak (see appendix for instructions). 5. Add your model wplss_t_051.mdl and icon iwplss_t_051.tga. If you used a .tga file as a texture, add it as well (if you used the standard w_metal_tex.tga, you do not need to include it again because it is already in the game). Hint Important: you must have both the 3D model file (.mdl) and the corresponding 2D icon (.tga) in your hakpak. If you only have one or the other, NWN will not recognize the available model. Select the highest existing model number for the weapon you are using as a template (in this case the highest spear model is 4) and add 1 to it for your model. The game works fine even if you do not have all 3 colors or even the same # of models for all parts of the weapon (e.g., it is okay to have 5 spear head models and only 4 shafts and ends). Having said that, you should provide all three colors (otherwise it is too easy to mis-select a model/color pair and accidentally end up with characters running around in-game with only two- thirds of a weapon). NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 26 01/06/200J
F|gure 11 - la|pa| W|lr your Weapor rode| ard |cor 6. Save your hakpak. 7. Open up the Aurora Toolset. If it was still open from before, save and close the module and toolset then re-open the toolset. 8. Open your Weapon Tutorial module. 9. Select Edit | Module Properties and click on the Custom Content tab. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 27 01/06/200J
F|gure 12 - Add|rg a ra|pa| lo a rodu|e 10. From the drop-down for the Hak file, add your hakpak. If it does not appear in the drop-down, your hakpak is probably not in the /hak folder of your game directory. 11. Save and close the module and then reload it. 12. Select the Area you created, and then the Item icon on the right toolbar (it looks like a sword). 13. Choose the Custom tab. 14. Your spear should be in the Weapons, Polearms category. 15. Right click Trident and then select Edit from the pop-up menu. 16. Select the Appearances Tab. 17. Switch the top model type to 5 and you are done. It should look the same as it did before. Now I can use all four original spear models and the trident.
Hint You can add more than one hakpak to a module. If you do this, take care how you order them the contents of the higher priority hakpaks override the lower priority ones. So, for example, if you put two longswords with the same weapon ID in two hakpaks, the topmost one would be the one you get to play with in the game. Sometimes the Aurora toolset gets confused about hakpaks. I have found the best way to load or reload a hakpak is to close and re-open your module. So, to add a new hakpak to a module, save and reload your module after adding the hakpak in the Advanced tab. If you have modified a hakpak and want to use the modifications, save and reload your module again. If all else fails, close and re-open the toolset. If that still doesnt work, check the contents of your hakpak again for completeness (remember, for a weapon you need both the 3d model and 2d image). Remember that if you use a Hakpak in your module, players must place the same Hakpak in their 'hak' directory to play the module be sure to bundle the Hakpak with your module when offering it for download! NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 28 01/06/200J
Part 6: The Weapon Fesource FIle There is one major problem outstanding: our trident is actually a spear. It looks like a trident. You fight with it like a trident. But in its heart-of-hearts, it is a spear. We can fix that, too sort of. What we have to do is add a new weapon resource in the baseitems.2da file (2da stands for 2 Dimensional Array because each .2da file is a matrix of rows and columns). This will allow us to define an entirely new type of weapon. This is a similar procedure we will use for other custom content as well. I would suggest you open up Zoligatos NWN Viewer and select the baseitems.2da file from the data/2da.bif file. But dont do it. Bioware has made changes to the .2da files as part of their patching process. Your best bet is to always get 2da files from \source\2dasource.zip. So, instead, 1. Copy the new baseitems.2da file from \source\2dasource.zip to the directory with your model and icons. 2. Open baseitems.2da using a text editor (Notepad works fine although some people use Helios Software Solutions' TextPad (http://www.textpad.com/). Turn wrapping off so everything aligns nicely. 3. Go ahead and take a look at it. Scroll down until you get to the shortspear entry. You should see this: 57 1551 towershield 2... 58 1552 shortspear 1... 59 1553 shuriken 1...
1. These different entries describe the many items in the game. I dont show all of the columns here because there are too many. 4. Copy the shortspear entry and paste it at the bottom. 5. Modify the entries as appropriate for your new weapon. Column Description Values ID An integer ID# identifying the weapon internally. I chose 2001. When choosing an ID for a .2da file, make it much greater than the highest id # in file so that if Bioware adds a new resource later, they do not overwrite yours. Name A string reference to dialog.tlk My first thought is that this should be **** (should tell the game engine to Hint In the last section I showed you can add new weapon models to an existing weapon (in that example, a spear) as long as you provide both a 3D model and a 2D image for it. This is somewhat unique because many other model types (for example, see the section in this tutorial on NPC portraits) require a resource declaration as well (by modifying the .2da file as we describe here). You only need to create a new weapon declaration if you are adding an entirely new weapon type. If this is another spear, another sword, etc., the existing declarations will do you just fine and you can satisfy yourself with just adding a 3d model and 2D image. Hint When changing these entries, try not to misalign the columns. Use spaces where necessary to replace unnecessary characters. For example, when replacing the name shortspear with trident, I actually replaced it with trident<space><space><space>. This may not be strictly necessary but better safe than sorry. Spaces not tabs. To test that you didnt break anything, use the NWN Viewer to open your modified .2da file and check that the columns load properly. Dont modify any of the other lines or else those items may no longer work. Thanks to Erzengel-des-lichtes and Kinarr Greycloak for help on some of the 2da entries. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page 29 01/06/200J Column Description Values containing the name for your weapon. use the label for a name). However, this does not work. Instead, I went for a jog through dialog.tlk (it is a big file) and found that some forward- thinking individual at Bioware actually included many of the unused weapon names so I chose 67251 (Trident). If you cant find the right name for your weapon, re-use one of the other weapon names. This will give it the same name as that item in the Item Wizard (more on this issue at the end of this section). Label The internal label for your weapon. I chose Trident. Use _ underscore instead of spaces if necessary. InvSlotWidth InvSlotHeight Inventory slot width and height. Make sure it matches the size of the icon you created earlier (in our case 1 x 4 because our icon is 32 x 128). EquipableSlots Identifies which slots you can equip the item into. This is a hexadecimal value. You must identify all of the appropriate slots, add together the values, and enter the corresponding hex value into this column. 0x00000 Not equipable 0x00001 Helmet 0x00002 Armor 0x00004 Boots 0x00008 Gloves 0x00010 Expendable Weapon (shuriken, etc.) 0x00020 Shield or other offhand non-weapon 0x00030 Missile weapon (bow, sling, etc.) 0x00040 Cloak 0x00180 Ring 0x00200 Amulet 0x00400 Belt 0x00800 Arrow 0x01000 Bullet 0x02000 Bolt 0x1C000 Creature Weapon 0x1C010 Two-handed Weapon 0x1C030 One-handed Weapon 0x20000 Creature Armor CanRotateIcon Whether or not the icon in the inventory can be rotated to fit if there is not enough room otherwise (I think). 0 if no 1 if yes ModelType The type of model. 0 normal item 1 helmet 2 weapon 3 armor ItemClass Name of the new model you have created (without the _t_001 extension). I used WPlTr to create a new class. Refer to your naming standards for the basics. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page J0 01/06/200J Column Description Values GenderSpecific Are there gender specific versions of this item? No for everything except armor. I cant for the life of me explain why arrows are gender specific, the one exception to this rule. Female characters get a different kind of arrow? That just seems politically incorrect. 0 if no 1 if yes Part1EnvMap Part2EnvMap Part3EnvMap Defines how the environment map is applied to the alpha channel in the model's textures. There is one map for each of the three weapon parts: Part 1 bottom Part 2 middle Part 3 top 1 will apply the environment map, giving you reflective surfaces. This is used for metal surfaces. 0 will not apply the environment map. This is for wood-like textures and is typically used on the handle of a mace, etc. '****' not applicable. This is used for items that do not have 3 pieces or that do not have an actual model. Default Model The default model for when the item is laying on the ground. Typically it_bag. Default Icon Does not appear to be used for anything **** Container Is the item a container? 0 if no 1 if yes This only true for one item, the large box. This same item is also used to create large bag items like the magic bags of holding. Go figure. WeaponWield Identifies the animations a character uses to wield the item. 1 Non-wieldable/wearable 4 Two-handed items (e.g. halberd) 5 Bows 6 Crossbows 7 Shields 8 Double-headed weapons 9 Creature weapons 10 Dart and sling 11 Shuriken and throwing axe **** Standard weapons WeaponType The type of weapon and type of damage it does. 1 Piercing 2 Bludgeoning 3 Slashing 4 Slashing and Piercing WeaponSize Size of the weapon. 1 Tiny 2 Small 3 Medium 4 Large NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page J1 01/06/200J Column Description Values RangedWeapon Index to the type of ammunition used by a ranged weapon. Note: it does not appear to be possible, at least as of v1.29, to create a new ranged weapon. It is possible to replace an existing ranged weapon with a new one. This can point to either another item (for items that are projectile weapons - e.g., 20 for an arrow) or to the item itself (for items that are thrown e.g., 59 for a shuriken). **** if this is not a ranged weapon. PrefAttackDist The preferred distance for attacking with this weapon. Not sure how this is used. It could be how far away the character stands in combat or something. MinRange The minimum number of weapon models of this type. The actual value to put in here is the range you want x 10. It is hard to check what this actually does because it probably only allocates space in an internal stack for weapon models. MaxRange The maximum allowed number of weapon models of this type. Most weapons have a limit of 10 models (and 3 colors). The game will ignore any models higher numbered than this figure unless you change this value. For weapons, the actual value to put in here is the range you want x 10. So it is 100 for most weapons. If you want 11 longswords instead of 10, make it 110. For other items this field is not multiplied by 10. Go figure. This field appears to have a limit of 255 (i.e., it is a one-byte integer) so you cannot have more than 25 weapons of one type. Or 255 of other items. NumDice DieToRole Number of dice to roll of type E.g., for damage of 2d6 you would put 2 in NumDice and 6 in DieToRole CritThreat Chance out of 20 that you will get a critical hit: 20 only 1 19-20 2 18-20 3, etc. CritHitMult Damage multiplier if you get a critical hit. I chose 2 (if you look in the PHB, a spear has a critical hit multiplier of 3 but a trident is only 2) Category I havent quite figured this one out. It appears to be related to the Category definition in other tables (like spells.2da) where it defines what the item is used for. This is used for the AI engine to allow NPCs to properly use the item if equipped with it.
BaseCost Basic cost in gold pieces for a non- magical, standard item. For weapons it maps back to the cost in the PHB. As soon as you start adding magical See ItemMultiplier for additional information. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page J2 01/06/200J Column Description Values properties to weapons, the cost goes up accordingly. That is what the cost line items in the item property definition tables account for. Stacking Number of identical items that can be stacked together in your inventory (this is why you get 99 arrows in a bundle, 10 potions, etc.)
ItemMultiplier Multiplies the BaseCost to give the actual item cost. If you look at the BaseCost field for a shortsword, for example, it is set to 10. The ItemMultiplier for shortsword is set to 2. The in-game cost for shortsword is 20. Set the ItemMultiplier to 3, and the shortsword costs 30 in-game. (tested by Zimero) Description String reference to dialog.tlk for a description of this item. Use 0 (this leaves the description blank because there is no entry for a trident description in dialog.tlk). In the next section I will show you how to use a blueprint to overcome this problem in a different manner. InvSoundType The sound made when clunking items around in your inventory. Refer to inventorysnds.2da for detailed values. MaxProps MinProps The maximum and minimum number of spell properties that an item can have. This can be seen in the item properties page where scrolls, wands, etc. can cast 1 spell and most other items are able to hold up to 8. Other properties are not included in that max, only cast spells. For some items, the min/max values are 1/1, implying they must have one property (like a scroll). For most others it ranges from 0 to 8. I don't know what would happen if you tried to set something to have more than 8 since there is only room for that many around the radial menu without have sub-menus. PropColumn This column determines what properties can be assigned to a given item. Refer to itemprops.2da. However, this is not an index to the row in that table, it is an index to the column. For example, melee weapons at column 0 can have almost any property assigned to them, but torches at column 20 can only have light. StorePanel The panel of the merchant inventory that this item shows up in. 0 Armor and clothing 1 Weapon 2 Potions and Scrolls 3 Wands and Magic items 4 - Miscellaneous ReqFeat0 to ReqFeat4 The feats required to use this weapon. 44 Exotic 45 Martial 46 Simple NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page JJ 01/06/200J Column Description Values 48 Druid 49 Monk 50 Rogue 51 Wizard AC_Enchant The type of AC bonus this item provides. 0 Dodge 1 Natural 2 Armor 3 Shield 4 Deflection BaseAC The standard or base AC bonus that this item imparts. AC1 (e.g., Small Shield) AC2 (e.g., Large Shield) AC3 (e.g., Tower Shield) ArmorCheckPen The penalty to your skills that equipping this item makes (refer to skills.2da; skills affected are those with a 1 in the column ArmorCheckPenalty). This is actually the penalty on a d20 roll. E.g., a 1 is a 5% penalty. 2 is a 10%, 10 is a 50%, etc. BaseItemStatRef String reference to dialog.tlk for a description of the statistics of this item (e.g., required feats, critical hits, etc.) in text form. This goes below the weapon in the inventory when you identify the item. I use 59 (this leaves the description blank because there is no entry for a tridents statistics in dialog.tlk). If we left in the description for a spear we would be close (but no cigar). In the next section I will show you how to use a blueprint to overcome this problem in a different manner. You could also try 0 like we did for the Description field but this causes a problem in-game because the engine interprets 0 in this field as an erroneous reference. ChargesStarting Starting # of charges 0 for most items. 50 for wands, etc. RotateOnGround An indicator that tells you how to rotate the model so it lays flat on the ground (e.g., you dont want a sword standing on its edge when you lay it down). 0 Do not rotate (this is used for most items without models) 1 Rotate 90 deg. about y axis (this is used for most weapons) 2 Rotate 90 deg. about x axis (this is used for crossbows and potions) WeaponMatType Type of material the weapon is made out of used to define the sound the weapon makes against different types of armor. Refer to weaponsounds.2da for detailed listings of the different items. AmmunitionType Type of ammunition the weapon uses. I think this should map to ammunitiontypes.2da but everything seems offset by +1. 1 arrow (0 in ammunitiontypes.2da) 2 bolt (1) 3 bullet (2) 4 dart (3) 5 shuriken (4) NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page J4 01/06/200J Column Description Values 6 throwing axe (5) QBBehaviour No idea. ArcaneSpellFailure Increased chance this item will cause a spell failure. Only values are used for shields. TenthLBS Weight of the item in tenths of pounds (take the weight from the PHB and multiple by 10). There is a bug with this field: 255 is the maximum value for this field (a weight of 25.5 lbs). Anything over that becomes mod 255 (i.e., resets back to 0 at 256 and goes up again). It appears that this is only a one byte integer value whose max value is FF hex = 255 decimal. An alternate solution, if you really must have a heavier item, is to add the Base Item Weight Increase property in the toolset (depending on the item you may have to open this option up by adding the flag in itemprops.2da). %AnimSlashL %AnimSlashR %AnimSlashS % of the time that your character will use this animation type when wielding this weapon. Left, Right or Straight. For a piercing weapon, set L and R to zero. For a slashing or bludgeoning weapon, set S to zero. For a slashing/piercing weapon use a combination. StorePanelSort Not sure. Looks like sorting order for the merchant panels.
ILRStackSize No idea. It looks like a repeat of the Stacking column. ILR typically refers to Item Level Restriction but I dont know how this applies here.
6. Back through the same routine. Save the .2da file, load it into your hakpak. 7. Rename the WPlSs_t_051 model to WPlTr_t_011 (WPlTr, remember, is the new ID for our trident) and change all the internal references. 8. Wait, where are the rest of the WPlTr_x_nnz models and icons? Good point. We only have a model for the tridents head. That worked fine when we are attaching the trident head onto a spears body but now we are creating a new weapon and it needs all three components. Now, remember that the spear shaft and end worked fine for us? Copy the WPlSs_m_011 and WPlSs_b_011 files to make trident files as well (named WPlTr_m_011 and WPlTr_b_011 respectively) and change those internal references as well. Now it is starting to look better. 9. Do the same for your icon files. 10. Load all of these into your hakpak. You should have, at a minimum, the following: NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page J5 01/06/200J
F|gure 13 - Load|rg your Weapor rode|s |rlo a ra|pa|
11. Load up your module in the Aurora Toolset. 12. Now you can create a new trident using the Item Wizard. 13. If you follow these steps exactly, you dont get a lot of options for spear components to choose from. Duplicate some of the color versions as well (_012, _013, etc.) and/or the other shaft and end models so that you have a nice selection of components. You can make multiple copies of the trident head as well, with different colors or shapes, if you desire. For some weapons you wont find an entry in dialog.tlk. Chose another appropriate name (I used Custom #1 for some items). This is annoying in the Aurora Toolset because you need to remember that Custom #1 in the Item Wizard is your new weapon. But there is a workaround for this that avoids the problem in game. In the next section we will talk about creating a Weapon Blueprint. Once you have a blueprint, you will not need to remember that Custom #1 is actually your new weapon because you can create new items directly from the blueprint.
In the early days of content creation, people felt compelled to update the dialog.tlk file to provide names for new objects (otherwise their item names had to re-use existing names so you could not have a trident because there is no entry for Trident in dialog.tlk). As part of their resolution to this problem, Biowares latest fixes are starting to allow you to use **** in the .2da files for the dialog.tlk name references. When it sees ****, the game engine will use your custom label or another field instead of looking for the text in dialog.tlk. This now works for some objects. Unfortunately, they havent come through for the baseitems.2da file. Maybe Bioware will get this fixed soon so stay tuned. Regardless, DONT USE dialog.tlk.
Hint .2da files load in sequence. If you add new entries to a .2da file, add them after the last entry you used. If you add them before, it will mess with the internal references to items in your modules. The same applies if you need to delete a reference. So, instead of physically deleting a reference, simply set everything after the ID to 0s and ****s. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page J6 01/06/200J
Part 7: The Weapon 8lueprInt The last thing you need to understand is how to create a custom blueprint. A blue print goes into a specific module. Take the spear we created earlier. Change its name and tag on the General tab to Wave if you did not already do so. Under the Properties tab, give Wave a +3 bonus, and whatever other characteristics you think are appropriate. In this case, I will allow Wave to cast the spell Elemental Shield to simulate the Cube of Force effect it should have (maybe at some point I will incorporate the cube of force script Solias wrote). I will grant On Hit, Wounding as a special property to simulate the dehydration property.
F|gure 11 - Your Weapor properl|es as a o|uepr|rl Add a description to be used when the item has not been identified and another when it has. Now save Wave by exporting it as an .erf file (Exported Resource File). It can now be packaged together with your hakpak and distributed to others to use (do not load it into your hakpak a .erf file is imported into the NWN Toolset separately using File | Import) By setting the item description you will find another way to overcome that nasty dialog.tlk problem I mentioned earlier. When you create a blueprint like this, you can override the item name and the default descriptions with appropriate Hint The toolset does not have a customizable On Hit event for weapons. Without that ability, it will be difficult to implement some of Waves features. All is not lost though. Sekhmet has come up with an elegant hak that provides OnHit events for weapons. You can find it on NWVault by searching for OnHit in the Haks section. I may add information on it to a later version of this tutorial. Hint Be careful with blueprints. As long as people use your hakpak intact, .erf files are a great way to create blueprints easily using your weapons. However, if you mix and match 2da files, dont import old .erf files into your modules and expect them to work. The internal references get mixed up. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page J7 01/06/200J fields for your weapon. This way, as long as module builders load in your .erf file, they wont have to worry about what dialog.tlk thinks your file should be called because they can build right off the blueprint instead. You cannot override the BaseItemStatRef this way but you can do something just as good. Remember where we put 59 in the BaseItemStatRef of baseitems.2da? This blanks out the item statistics description a good first step. But now we are missing the stats. How do we get them in? Put them at the end of the regular Description in the blueprint at the very end. This works in the game engine because it always displays the item description followed by its statistics. Now the inventory will look just like it does for any other weapon: a description, then the statistics, and then any special items or properties. Youve tricked the game engine into looking the same as it does if you had a real BaseItemStatRef entry. Part 8: SpecIal Touches When we created the resource declaration for our model, we separated our trident forevermore from thinking it was some sort of poor third cousin of a spear. Unfortunately, it loses something in the translation. We need to add back in some of the special effects that a spear enjoys but are missing from our trident. Pictured below is the Frost effect:
F|gure 15 - Frosl ellecl There are seven magic effects that you need to account for: _fxacid Acid _fxelect Electric _fxfire Fire _fxfrost Frost _fxholy Holy _fxneg Negative _fxsonic Sonic
Note Biowares DDS Compression Tool will not uncompress a DDS file into a bitmap. It is one way only (.tga to .dds). To uncompress a bitmap, use DDSTools and then discard all but the highest resolution bitmap. DDSTools flips your image vertically when creating the DDS from the bitmap (which will usually mess up how it maps to your model although you may not notice it if it is a random pattern). Use Biowares DDS Compression Tool instead (which does not flip) or manually flip your bitmap first. Also, DDSTools will not work with 32-bit .tga files (i.e., files with an alpha channel) although Biowares will. There. I will bet you were wondering why I included both in the recommended toolset. Now you know Biowares tool is better but is only one- way. DDS is a lossy compression algorithm but does a good job in most cases and the file sizes are much smaller and they run faster. If you absolutely must have one texture extremely high resolution, put just the .tga in your hakpak for that file. NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page J8 01/06/200J Each of these is a special emitter, generally placed somewhere along the blade of the weapon. To recreate these, the simplest approach is to load in an existing model of this type and then move the emitter to the appropriate spot for your models (remember, the positions of the different components of the weapon models should be the same for a given weapon). For our trident, we will just copy the spear effects models. We can even leave the emitters in the same place because the tines of the spear are roughly in the same place as the head of the spear. If we wanted, we could duplicate the emitters, one for each tine, but I dont think this adds anything to the effect so I chose not to do this. To test out the effect, create a weapon in the Aurora Toolset. Select the Properties tab and give it a Damage Bonus, frost. Press Edit Property and then change the damage bonus to 5 (you need to choose a damage value > 1 otherwise the toolset does not apply the effect). When you close that pop-up, you will see the special effect from the emitter. If it is not in the right place you may need to move the position of the emitter in the standard model. There is also a motion blur model (_mb). This shows the standard arc of the weapon when being wielded in the game. Again, because the spear is so similar to the trident we have built, I will not adjust the motion blur model. We will just copy the spear model and rename it. Textures Let me start with a word about textures. If you include no textures your model will take on a uniform chromed finish. Textures are bitmaps (Targa bitmaps, 24-bit or 32-bit, RGB Color, uncompressed) used to introduce things like the special gold and wood-grained models in the game. The default weapon texture that almost all of the Bioware weapon models use is w_metal_tex.tga (it can be found in the data\templates.bif file using NWN viewer). This file is a matrix of squares with different textures on it. If you use this texture you can get a good selection of metals (plain, gold and bronze) plus wood, a few colors for gems, etc. You do not need to include this file in your hakpak it is already available in the game. If you are going to include a custom texture, include a high resolution one (512 x 512 or at least 256 x 256) and pick up Biowares DDS Compression Tool or DDSTools to run against your .tga file. Include both the .dds and a lower resolution version of your .tga file into your hakpak (say, 64 x 64). Higher-performance graphics cards will use the dds for high detailing. Older machines will use the .tga file with slower graphics cards. If you leave out the .tga file, machines with lower end graphic cards will see your models in plain white. Not pretty. While you are at it, you may want to turn your 2D icon files into DDS files as well. Im not sure what this does, exactly, but you will find DDS files for all of the icons in the \texturepacks\GUI_32bit.erf directory, so it probably makes sense to have them. My experience so far has been that the game works fine without them but that may not be true for some hardware. Normals Faces (3d model faces, not your characters face) in NWN are two-dimensional. If viewed from the backside (or inside), they have no existence and do not render. A normal is a unit vector that is used to define which way a face is pointing. The direction in which the normal points indicates Untested Note (from Revinor) Try doubling the size of your .tga file before compressing it to avoid pixelization. You will convert every pixel to 2x2 pixels (smooth it if you like); THEN convert it to DDS - quality should be better (and file size of course will be bigger). DDS compression works on 4x4 blocks of pixels. If you have more than 2 distinct colors in the same 4x4 block, you will have some pixelization (every 4x4 block is defined by 2 colors plus transitions between them). For most textures, it is really acceptable - you can show smooth transitions (4 levels of transition for 4 pixel space - ideal) and you can show hard edges. Notes If it is going to have transparency your texture will need an alpha channel and should be saved as a 32-bit tga. There are some more rules to follow when it comes to textures: no bump-mapping, no procedural textures, nothing but your basic image channel and opacity map (the alpha channel). NeverwInter NIghts Custom Content CuIde vJ.0 Weapons
ElIgIo Sacateca Page J9 01/06/200J the front of the face (more specifically, the normal points out from the front of the face). This is the side of the surface that is normally displayed with its texture in the game. This is important because you will sometimes find your polys dont render properly (some are see-through, for example). You must manually flip or unify face normals to fix these types of errors (they are typically caused by activities like mirroring objects). To do this, enable Face, Polygon or Element sub-object mode on your editable mesh, and then use the buttons on the Surface Properties rollout to change the directions in which normals point. Flip Normals will reverse the direction of a normal vector. Unify Normals makes all of the selected normals point in a consistent direction (if an object has normals that are inconsistent - some point outward and others inward - it will appear to have holes in its surface). Sometimes objects will look fine in the modeling tool but will not display correctly in the game or the Aurora toolset. If this happens it may be necessary to ResetXforms and flip normals to fix this issue (refer to part 3 of this Weapons tutorial for detail on ResetXforms). SmoothIng Croups Smoothing groups define whether a surface is rendered with sharp edges or smooth surfaces. You create smoothing groups by assigning group numbers to the faces of an object. If two faces share an edge and share the same smoothing group, they render as a smooth surface. If they dont share the same smoothing group, the edge between them renders as a corner. Smoothing does not affect geometry. It affects only the way geometry is colored when rendered; it blends colors at the edges between faces to produce the appearance of a smooth curved surface. You can control how smoothing is applied to a surface so your objects can have both smooth surfaces and sharp faceted edges where you wish. When Waylands and Scooterpbs scripts import NWN models, they automatically assign all faces to the same smoothing group. To improve the way that they render in NWN, you should review these objects and reassign smoothing groups as necessary to get the right mix of corners and smoothed transitions. Part 9: |odels that bend When I started to make a Nunchaku model, I was faced with an interesting problem: Nunchaks bend in the middle. How do we make this work? The answer lies in looking at the Morning Star, Heavy Flail and Light Flail models. They use a special technique that we can emulate. Take a look at the heavy flail model. Like other weapons, the flail is made up of several parts. The bottom two parts are what you would expect: g_WBlFh_b_011 and g_WBlFh_m_011. But the top is actually four different parts: g_WBlFh_t_011a, g_WBlFh_t_011b, g_WBlFh_t_011c, and g_WBlFh_t_011d. The first three parts are links in a chain. The last is the flail head itself. At the point where the chain links to the head there is an Fx_Node. The bottom two models work as you would expect. The game engine has been built to treat the top four differently. It will string these models together into a flexible chain, ending at the Fx_Node. This is what gives the Flail its unusual behavior in melee. To create my Nunchaku I built a similar model with the lower parts named according to what you would expect (g_WBlNn_b_011 and g_WBlNn_m_011). For the upper parts I had to keep the same names as the heavy flail (the g_WBlFh names) although I used Nn again on the Aurora base item. I was even able to put two more links in the chain so that it looked more realistic. The key is that the Aurora base links to the a model, the a model links to the b model, the b model to the c model, etc. The final node in the top piece links to the Fx_Node. You could probably use this approach to create a hooked chain, Manriki-Gusari or other flexible weapon (this is left as an exercise to the reader).
ElIgIo Sacateca Page 40 01/06/200J Character PortraIts This section covers the subject of portrait conversion and how you add portraits for a Player Character (PC) and a Non- Player Character (NPC) into NWN. Some of this material (at least the basics on PC Portraits) can be found on Biowares site (http://nwn.bioware.com/builders/portraits.html). Part 1: UnderstandIng How NWN Fepresents PortraIts Start with the best resolution portrait you have. You will need to make several versions of this image in different sizes. An image retains much better detail when scaling down than you can get when trying to enlarge an image. You are going to have to make some changes to your base image to make sure that it meets the standards for NWN. It will have to be converted to an uncompressed, 24-bit, Targa Bitmap (TGA) file if it is not already in that format. Also, you will need images of the correct sizes. There are a total of 5 different portrait sizes.
Size
Suffix Required Image Dimensions (width x height) Used Image Dimensions (width x height)
Displayed on... Huge _h 256X512 pixel 256X400 pixel During character creation on the selection screen Large _l 128X256 pixel 128X200 pixel Character sheet Medium _m 64X128 pixel 64X100 pixel Your portrait on the main screen Small _s 32X64 pixel 32X50 pixel Other party members on main game screen Tiny _t 16X32 pixel 16X25 pixel Pop-up dialogue screen
Note the difference between Required Image Dimensions and Used Image Dimensions. The game requires that the image file have certain exact dimensions. However, it doesnt actually use all of that pixel space. The unused space needs to be at the bottom of the image. Part 2: CreatIng Your PortraIt FIles Even though the game will only use 256X400 pixels instead of the full 256X512 (it simply ignores the remaining 112 height pixels), it is still important that you adhere to these 5 portrait sizes. It is important to know that the game uses 256X400 pixels when you are cropping a portrait or picture. I will use Micrografx Picture Publisher to resize my portrait. There are lots of freeware and shareware image manipulation programs available (see the listing at the beginning of this document). Here is the starting image (actually, this is a jpeg compressed image to conserve space in this tutorial Ill do that with all Notes I have started with the introductory text from version 1.0 of The Neverwinter Nights NPC Portraits Tutorial by Conjumen and clarified, updated, and added relevant screenshots and detail that I felt were lacking. Any omissions or errors are mine and not Conjumens. Hints If you choose to scan in your image, please learn how to use your image programs tone balancing features to brighten the colors I have seen too many dull, lifeless scans that could have been easily fixed with a little attention. Also, after scanning, use a sharpening filter or mask to tighten the images up before you save them. Dont do this on the original image, do it on each of the resized images before saving (sharpen works best as the last step because image resizing will often re-blur edges). What to do with that blank space at the bottom? If it is original art, you can sign and date it there. It wont show up in- game but it will always be there for future vanity sessions. NeverwInter NIghts Custom Content CuIde vJ.0 PortraIts
ElIgIo Sacateca Page 41 01/06/200J the photos I show here).
Now, this image is too large (it is 400X492) for any of the portraits. We are going to resize it. It is also not in the right aspect ratio (400X492 is not proportional to 256X400, for example). We cannot fix this by resizing. We must crop as well. If we simply resize the picture to 256X400 in one step, it will be distorted. Not pretty. Peoples faces get stretched or compressed and the resulting portrait looks very awkward. We start by resizing and then cropping again (to get the dimensions right). We will do this once for each image size, starting with the largest. There are many ways to do this you wont use the entire image and you can be creative about which pieces you keep. How much do I resize by? I want to keep as much of the face in this photo as possible because it is already cropped so tightly. So I will resize the image to get the height to 400 pixels for the huge image (not 512 pixels that is the final file size) while keeping the aspect ratio constant so there are no size distortions. In Micrografx Picture Publisher I use Image | Size to do this and make sure that Allow Size Distortion is not checked. Why did I choose the height and not resize to get the width to 256 pixels first? If I resized to the width first with no size distortions, my picture would only be 315 pixels high. This would be too short for NWN. However, depending on the original dimensions of your portrait, you may need to do the width first. After I resized the height, I crop the width down to 256 pixels, giving me an even tighter crop on the face. Now I add the extra 112 pixels to the bottom of the file. It does not matter what color this extra data is. In Micrografx Picture Publisher I use Image | Expand to do this. I did not use Image | Size like I did before because that will stretch the whole image.
Big Warning! If custom portraits aren't saved in the correct uncompressed tga format, the game will crash when you try to save it (this also occurs when the game auto- saves for example, at the end of a level). If you are using custom portraits and have this problem, it is because some applications indicate that the tga is being saved as uncompressed, but the format isn't quite right (e.g. InfraView indicates tga files are uncompressed but goes ahead and compresses them). Try either removing the custom portraits to be able to save/load again, or try saving the portraits again in another application as an uncompressed, 24-bit, Targa Bitmap (TGA). NeverwInter NIghts Custom Content CuIde vJ.0 PortraIts
ElIgIo Sacateca Page 42 01/06/200J
F|gure 1Z - Tre reW |rage - res|zed, cropped ard exparded Save the file with the _h.tga suffix. And then do it again for each of the different sizes (if you want to use these as NPC portraits, you might want to read the next section about more detailed naming standards first, to save yourself trouble going back and doing it later). Be creative. The smaller images do not need to show the entire portrait. You might choose to crop differently as you move to the smaller image sizes, having a fuller figure portrait or head- and-chest shot for the larger sizes but cropping down to a tight image of the face for the smaller pictures. I would do this so you retain some detail in the smaller photos instead of cutting them down to nothing more than an unrecognizable, tiny stick figure. I dont show that technique here because my image is such a close crop on the face already. Part J: UsIng Your PortraIt for a PC Now that you have created your portraits, if you want to use them for a PC, just drop them into your /portraits subfolder of your NWN game directory. Note: for other people in a multiplayer game to see your character as you see it, they will also need a copy of your portrait files. Zip them up and mail them off to the other players. I would suggest using at least some of the naming standards that are applicable for an NPC below. Hint If you use GIMP, check out http://NWNBuilders.com/. SamJones has created a script that automatically takes a portrait file and produces the five file sizes you need for portraits. NeverwInter NIghts Custom Content CuIde vJ.0 PortraIts
ElIgIo Sacateca Page 4J 01/06/200J Part 4: UsIng Your PortraIt for a NPC It is a little more complicated to use the new portraits for an NPC. You need to set them up as resources available to your game. To do that, you need to follow certain naming standards. You must declare your portraits as available resources to the game. You do that in a 2da file just like we did for our trident in the previous tutorial. Then it is time to go back to the hakpak editor to bring all of the pieces together. A Fose by Any Dther Name would not work for NPC Portraits either. You need to change your portrait filenames to meet the NWN standard. This is necessary because there are strict requirements in the portraits.2da file for NPC portraits. If you extract a portrait from one of the data files in your NWN folder, you will see the NWN naming system. You should take advantage of this system, although some variation is allowed. The following is a description of this system. The default or generic human male portrait in NWN is named po_hu_m_99_X.tga. The components stand for: po_ Portrait hu_ Human m_ male (_f for female) 99_ Id number X Image size identifier (h, l, m, s, or t)
You must keep at least two of these abbreviations: namely po_ and X. Say you have a portrait called halfelf.tga and it was divided into the 5 different Bioware standard portrait sizes in the previous step: 1. Halfelfmale_h.tga 2. Halfelfmale_l.tga 3. Halfelfmale_m.tga 4. Halfelfmale_s.tga, and 5. Halfelfmale_t.tga.
They could be named like this: 1. po_ha_m_37_h.tga 2. po_ha_m_37_l.tga 3. po_ha_m_37_m.tga 4. po_ha_m_37_s.tga 5. po_ha_m_37_t.tga
Hints It is a good idea to keep the portrait name under 10 characters. Some add a portrait title in the file name of their portrait like so: po_hu_m_TITLE_X.tga. You can use this naming system too, though it is recommended that you keep the characters to a maximum of 10. Never add portraits to the /override folder, in fact never add anything to your /override folder. You must keep the po_ and the _X (where X is the size of the portrait) extensions, when naming your portrait file(s). Otherwise your portrait will not work in NWN. Hints It is very important that the filenames are absolutely correct. Also, the names are CASE SENSITIVE. To make things a lot easier, make portraits with no capital letters. JemyM NeverwInter NIghts Custom Content CuIde vJ.0 PortraIts
ElIgIo Sacateca Page 44 01/06/200J The PortraIts Fesource FIle The resource file is where we indicate to NWN that our new portraits exist. Like we discussed in the weapon tutorial, I would suggest you open up Zoligatos NWN Viewer and select the 2da.bif file - but dont do it. Use the portraits.2da file in your \source\2dasource.zip (remember that note earlier about Bioware patches?). Go ahead and take a look at it. You should see this: 2DA V2.0 BaseResRef Sex Race InanimateType Plot LowGore 0 **** 4 **** **** **** **** 1 dw_f_01_ 1 0 **** 0 **** 2 dw_f_02_ 1 0 **** 0 **** 3 dw_f_03_ 1 0 **** 0 **** 4 dw_f_04_ 1 0 **** 0 ****
These different entries are the resources available to the game as portraits. Every resource has several columns attached to it. Check below to find out what the different columns represent:
Column Description Values An integer ID# identifying the portrait internally. When choosing an ID for a .2da file, use one of the User999 rows. BaseResRef Refers to the base resource for the model that this portrait represents. Refer to Appearance.2da. They are used in the Aurora Toolset filter when adding a portrait file to an NPC. Sex Gender, actually. The number comes from the first column in the 2da file gender.2da from the 2da.bif file (you can view the contents of this file using the NWN Viewer as well). 0 Male 1 Female 2 Both 3 Other 4 None Race This number is used for the toolset filter when selecting a portrait for your NPC. The number comes from the first column in the 2da file racialtypes.2da from the 2da.bif file (you can view the contents of this file using the NWN Viewer). 0 Dwarf 1 Elf 2 Gnome 3 Halfling 4 Half-Elf 5 Half-Orc 6 Human Etc. **** if it is a placeable and not a creature NeverwInter NIghts Custom Content CuIde vJ.0 PortraIts
ElIgIo Sacateca Page 45 01/06/200J Column Description Values InanimateType The type of placeable. Refers to placeabletypes.2da 0 Battlefield 1 Containers 2 Military 3 Misc 4 Misc_Interior 5 Parks_Nature 6 Penants_Signs 7 Trades_Academic 8 Visual_Effects **** if it is a creature and not a placeable Plot Is this a plot portrait? Generally no. 0 if no 1 if yes **** if it is really a placeable anyway (1 equates to TRUE if you know C or C++) LowGore The portrait to use in place of this one if the game is set to low gore mode. If you create a really messy portrait, find or create a substitute, low gore, portrait here. Portrait name (generally **** for creatures).
Your FIrst NPC Fesource Begin editing the portraits.2da and adding a new resource, so your portrait can be recognized by the game. I have created an elven female portrait with the file names po_el_f_50_X.tga, where X represents the size of the portrait. Add the last line you see below, under the resource ID 571 (the first User999 space) 570 kobb_ 4 15 **** 0 **** 571 koba_ 4 15 **** 0 **** 572 el_f_50_ 1 1 **** 0 ****
As you can see Ive omitted the po_ and the X (where X is the size of the portrait) in the resource entry. This is why, earlier, we told you that you had to start and end your portraits with that prefix and suffix. Also the extension .tga is not necessary either. The game already knows that the prefix it should use is po_, the suffix is h, l, m, s or t, and the extension required for all portraits is .tga. So to conclude, you do not need to add po_ and _X (where X is the size of the portrait) to the resource entry. Hints The reason that the number is 572 in the PL entry is because in v1.26 or so, Bioware added some reserved spots for user portrait updates. Use them. Hints It is a good idea to copy a line similar to the one you want to add and use it as a starting point. As an example if you want to add a new female elf, the resource ID you would copy would be entry number 30. The reason for the extension _50_ in the example above is that the last elven female portrait number (that you can use) is 14, so a new portrait would have to start at > 14. I chose 50 for the same reason we use 2001 in the 2da file. NeverwInter NIghts Custom Content CuIde vJ.0 PortraIts
ElIgIo Sacateca Page 46 01/06/200J Your New PortraIt(s) and The Toolset Now that you have created your portrait TGA files in the standard formats and edited the portraits.2da file, it is time to add them to a hakpak. Refer to the appendix for detailed instructions on using the hakpak editor. Open the hakpak utility. Now that it is opened, choose Resource | Add. Now you add your modified portraits.2da file and your new portraits (with all its 5 sizes) to the hakpak. All the files should now be displayed in the hakpak window. If youve only added one portrait, there should be a total of 6 files in the hakpak now. Add a title to your hakpak, and a description of the contents. Save the hakpak.
F|gure 18 - Add|rg lre l||es lo a ra|pa|
1. Open up the Aurora Toolset. If it was still open from before, save and close the module and toolset then re- open the toolset. 2. Create a new module or open an existing one. 3. Select Edit | Module Properties 4. Click on the Advanced tab. Hint Sometimes the Aurora toolset gets confused about hakpaks. The best way to load or reload a hakpak is to close and re-open your module. To add a new hakpak to a module, save and reload your module after adding the hakpak. If you have modified a hakpak and want to use the modifications, save and reload your module again. Sometimes you need to close the Aurora toolset entirely and restart it. NeverwInter NIghts Custom Content CuIde vJ.0 PortraIts
ElIgIo Sacateca Page 47 01/06/200J 5. From the drop-down for the Hak file, add your hakpak. If it does not appear in the drop-down, your hakpak is probably not in the /hak folder of your game directory. 6. Save and close the module and then reload it. 7. Select the Area you created. 8. Create a new NPC using the Creature Wizard. 9. Select Next. 10. Select Elf and Next. 11. Select a Class and Next. 12. Select Female, and then press the Select Portrait button.
ElIgIo Sacateca Page 48 01/06/200J Custom 7oIcesets This tutorial covers creating a custom voiceset for NWN. A voiceset is a package of standard voices that can be emitted by PCs, NPCs, henchmen, and monsters. All of the different voiceset types are similar but the number of expressions is different for each. You will see these referred to in some places as soundsets. The meaning is generally the same in fact, Bioware seems to use the terms interchangeably. I will use voiceset because it more clearly represents what these are. Before you delve too deeply into this, you may want to think first about where you will get your voices. I can suggest two sources: I have seen some people load the soundtrack for a movie/show onto their PC. Then use an audio mixing program to select and edit out brief snippets from one of the main characters. Alternately, and more creatively, record your own. Does your voice sound too thin and reedy in a straight recording? If you have a good soundcard with editing tools, you would be surprised at the types of filters that are available for voices these days (male to female, low to high, echo, etc.) that can take you and turn you into somebody else. If you are going this route, pre-script all of the phrases you want (they dont have to be the same words as the ones in the official module as long as they convey the same meaning). Part 1: UnderstandIng How NWN Fepresents 7oIces Lets look at how NWN uses current voicesets in the Aurora Toolset. Try this exercise: 1. Open up the Aurora Toolset. 2. Create a new Module (we will call it Voice Tutorial for lack of a better name). Use the Area Wizard to create at least one Area. Use the defaults to set up the area and choose something simple like a Castle Interior. 3. Select Wizards | Creature Wizard. 4. For Monster Type select a half-Elf (we will talk about the standard weapon types later in this section). 5. Click Next. 6. Enter a class or two. 7. Click Next. Notes I have started with the introductory text from Custom Soundsets by Ddraigcymraeg and clarified, updated, and added relevant screenshots and detail that I felt were lacking. Voicesets are specific to voices. NWN includes other sound types (ambient and environment sounds) as well. You dont need to package these other sounds into a voiceset to use them. If you simply want to trigger a unique sound for one of your characters from a script, you do not need a soundset (see the section on placeable sounds). Just add the .wav file to your module and trigger it from a script. The original tutorial expressed some confusion over whether or not to use hakpaks for sounds I have tried to clean up this confusion as best I can (in short, use them). Any omissions or errors are mine and not Ddraigcymraegs. NeverwInter NIghts Custom Content CuIde vJ.0 7oIcesets
ElIgIo Sacateca Page 49 01/06/200J 8. Verify that this is a male, half-elf. Select a portrait. 9. Click Next. 10. Choose a faction. 11. Click Next. 12. Choose a name. 13. Click Next. 14. Assign to the NPCs, Half-Elves category. 15. Click Next. Click Next. 16. Check the Launch Item Properties checkbox. 17. Click Finish. 18. Select the Advanced tab.
F|gure 20 - Cuslor|z|rg ar NPC 19. Now you can select a Sound Set (lower right side). Press 20. Use the filter to choose an NPC, male voiceset. NeverwInter NIghts Custom Content CuIde vJ.0 7oIcesets
ElIgIo Sacateca Page 50 01/06/200J
F|gure 21 - 3e|ecl|rg a vo|cesel What does this do, exactly? By assigning a voiceset to this NPC, the game engine will automatically emit appropriate sounds from this set based on triggers within the game (for example, the NPC will make one of several noises when attacking). I dont need to program this individually for each NPC the game engine already knows which sounds to play when. You can use also use wav files to play sounds during a characters dialog. This is an example of using a wav file that does not have to be part of a voiceset. To do this, create a new conversation. Add a line of text. Select the line of text. Find the Other Actions tab at the bottom right hand corner of the conversation editor. Type in the name of the wav file you created or page down on the list and select it. Now, when that dialog is triggered, the sound file will accompany the text in the game.
ElIgIo Sacateca Page 51 01/06/200J Sound FIles (wav) What you should see from all of this is that there are different levels of granularity in the way NWN represents voices. The basic sound file has a .wav extension. Where can I find the official sound files from Bioware? Through NWN Viewer, of course. 1. Open the NWN Viewer. 2. Select data/voicesets.bif (you can also find some in data/sounds.bif and in data/convo.bif). 3. Scroll down and select VS_nAribetF_atk1.wav. Press the Play button to listen to the sound Aribeth makes when attacking. This is actually a proprietary mp3 sound file but PCM wav files work as well. 7oIcesets (.ssf or .utw) At the next level up is a voiceset file that defines what sound files make up a complete group. This file includes a header and a series of standard sounds (0 through 48). For each standard sound there is a sound file name and corresponding string reference (STRREF) values (pointing to dialog.tlk). 1. Open the NWN Viewer. 2. Select data/sounds.bif (you can also find some in data/sounds.bif). 3. Scroll down and select VS_nAribetF. I dont know about you but my copy of NWN Viewer coughs at this point. Not good. Play around with it, you can probably extract an SSF file and look at it outside of NWN Viewer (try turning auto- preview off). 4. If that didnt work, open up an SSF directly. Use File | SSF | Open instead (good luck finding one; they have been moved to patch.bif now). Open one of them up to see what it looks like:
F|gure 23 - Ar 33F F||e lor a 8rass 0ragor Note that the last column, TLKREF, does not appear directly in the voiceset file. Instead, there is a String Reference number (STRREF) number. NWN takes this STRREF in the voiceset file and Notes I have seen different claims as to what format works for a sound file and what doesnt. I did a quick test on my own using the sound recorder in Windows. 8KHz, 8bit mono PCM wav files work (but the sound quality is poor) 48KHz, 16 bit mono PCM wav files work. I would recommend something like a 44KHz, 16 bit mono wav file. Stereo wav files do not work. This intuitively makes sense because the voice comes from a single source at a single location (you can use stereo sources for ambient sounds). Interestingly, the .wav files that come with NWN are actually proprietary mp3 files. It is not clear how to edit or work with them though you cannot use mp3 files directly as sound files (you cant use BMU files either check the Ambient Sound tutorial from Bioware if you dont know what a BMU is). Dont get too caught up in that though it is probably easier for you to work with .wav files anyway. The only real advantage that mp3 files have is that they are compressed; therefore smaller. NeverwInter NIghts Custom Content CuIde vJ.0 7oIcesets
ElIgIo Sacateca Page 52 01/06/200J does a lookup of the text in the dialog.tlk. Why does NWN have the STRREF in the soundset file? These STRREF entries point to the custom text strings that appear above the characters head when the sound fires off (a SpeakString). Not all sounds have a SpeakString (they are optional). No SpeakString, no text above the characters head. Voiceset files are always 1,216 bytes long. The resource names can refer to the names of any wav in data\voicesets.bif, data\sounds.bif, the /override directory or in a hakpak. (Need I say what I think about using the /override directory?) Part 2: A Fose by any other Name works for voicesets. Almost. There are up to 49 sounds in a voiceset. The order in which the sound name occurs in the voiceset file defines what NWN expects the sound to be. For example, the first sound in the voiceset file will always refer to a .wav that is fired off when your PC orders a familiar or henchman to attack the nearest creature. We should be experts at using the NWN Viewer by now. Lets take a look at the different voiceset files. 1. Open the NWN Viewer. 2. Select data/soundsets.bif. 3. Scroll down and you can see all the sound files. They have names like VS_nAribetF_attk.wav, c_goblinK_bat1.wav. The suffixes like '_attk' are just labels to help you quickly identify what type of the 49 potential sounds it is. You could give it any name you want but using these standard labels will make your voiceset much easier for others to understand. Oh-oh. Sounds like Im heading back to those pesky naming standards. Youre right. 7oIceset Type The prefix helps to identify what type of voiceset it is. Use NWN Viewer to looking at the soundsettypes.2da file. This shows you the 5 different types of voicesets. I have included in the chart below the standard prefix, and the number of sounds typically in one of the voiceset types.
Type
Target Standard Prefix # of Sounds 0 Player Character VS_f 49 1 Henchman VS_h 29 2 NPC Full VS_f 49 3 NPC Partial VS_n 21 4 Monster C_ 11
Sound Type There are potentially a total of 49 sounds in a voiceset. The order in which the sound name occurs in the voiceset file defines what the sound is in NWN. The first sound in the voiceset file Notes The official module in NWN only uses the Player, NPC Partial and Monster type codes. For example, if you look for the henchman voices in the official module they have the names VS_FAVHEN1F, VS_FAVHEN2F, VS_FAVHEN1M through VS_FAVHEN4M. But they are of type 3 (NPC Partial), not henchman. Weird, eh? NeverwInter NIghts Custom Content CuIde vJ.0 7oIcesets
ElIgIo Sacateca Page 5J 01/06/200J will always refer to a .wav that is fired off when your PC orders familiars/Henchman to attack nearest creature. The order of the sounds in the ssf files are:
It does not really matter if you dont have all sound files in a voiceset for it to work. However, if a sound file is blank, it will not get fired off in the game scripts (at least it wont crash the game). You can also re-use sound files (e.g., make row 12 and 13 refer to the same _atk1.wav file as you can find in row 11). Also, look around in the voiceset.bif file. You will find that Aribeth has more sound files than you can account for from this list (e.g., VS_nAribetF_468.wav) . This is because you also dont have to limit your sound files to the list in a voiceset. These other sound files for Aribeth are triggered by the playsound() script command and other events in the game engine including the Other Actions tab in the dialogue editor.
Notes I dont have any examples of Henchman or NPC Partial soundsets so I cannot vouch for the contents as indicated above (these definitions are from the original tutorial by Ddraigcymraeg). The full name of your .wav file (minus the .wav) must be 16 characters or less. Combat sounds like _atk1, _atk2, _hit1, _hit2 etc do not display text in NWN so you do not need a STRREF for them. NeverwInter NIghts Custom Content CuIde vJ.0 7oIcesets
ElIgIo Sacateca Page 55 01/06/200J
Part J: UpdatIng Sound FIles Like the weapon tutorial, the easiest way to introduce your own voiceset into NWN is to replace existing content. This does not require any real changes and just asks that you rename your wav files to override existing content. We will look at more advanced techniques after this. Lets find a voiceset to replace. 1. Open the NWN Viewer. 2. Select data/2da.bif. 3. Scroll down and select the file soundset.2da. This file identifies all of the different voicesets in the game. 4. Locate a voiceset you will probably not use in your campaign. AribetF Aribeth seems to be a popular choice. If you want to replace a males voice, try DestheM (Desther). 5. The column you need to have is the one titled RESREF. This is the voiceset identifier. In this case, VS_nAribetF. 6. Name all your wav files VS_nAribetF_<suffix>.wav. For example, VS_nAribetF_atk1.wav, VS_nAribetF_atk2.wav, etc. 7. Load these files into a hakpak. Remember, the VS_n prefix tells NWN that this is an NPC Partial voiceset so you will need 21 wavs to fully replace the set. 8. Now when you open your module, associate the Aribeth voiceset with your NPC and you can use your new sounds for this character. This method only replaces an existing voiceset and it does have some shortcomings: a) You cannot mix and match different voiceset sounds unless you want to copy the wav files multiple times. So you could not mix one characters attack voice with anothers greeting. b) The text that is displayed over a characters head when she talks still uses the strings from the original voiceset.
If what you really wanted was a PC voiceset, stop here and use the technique I just showed you. Replace a voiceset that you wont use. In the next section I will show you how to add an entirely new voiceset. However, the next method does not work for PC voicesets unless you use the /override directory. And by now you know how I feel about the /override directory. Ill explain more at the end of that section as to why it doesnt work.
ElIgIo Sacateca Page 56 01/06/200J Part 4: CreatIng a New 7oIceset Lets address the concern with not being able to mix and match voiceset sounds. A better way to define a voiceset is to give it a resource definition of its own. This is similar to the process we used to give a weapon its own resource definition. What we want to do is define a new voiceset resource and create a new voiceset file (.ssf) to go with it. Let me show you the relationship between the different files we discussed earlier:
Lets start with the definition of the new resource. We are going to edit the soundset.2da file to define a new resource. Here is what the first few lines of the file look like: 2DA V2.0
ElIgIo Sacateca Page 57 01/06/200J Column Description Values An integer ID# identifying the portrait internally. When choosing an ID for a .2da file, use one of the User99 rows. LABEL The internal label for the voiceset. RESREF Refers to the base voiceset name. STRREF A reference to dialog.tlk giving the name of this voiceset. This is the name that will show up in the Aurora toolset or the character creation screen. GENDER Uhm. Should be self-explanatory. This is used in the filter screens when selecting the voiceset (if you choose a female character, you only get female voices). The number comes from the first column in the 2da file gender.2da from the 2da.bif file (you can view the contents of this file using the NWN Viewer as well). 0 Male 1 Female 2 Both 3 Other 4 None TYPE The voiceset type that we described earlier. Again, this is important because it is used in the filters in NWN when displaying the voiceset selection screens. For example, unless you have a voiceset type of PC, you cannot select this voiceset for one of your characters in the character creation screens. 0 to 4.
Change the LABEL to McAul (our characters name, who is male). Change the RESREF to VS_nMcAulM according to our naming standards earlier for the .wav files. Leave 68492 in the STRREF. Use 3 for the voiceset type because this is an NPC Partial voiceset. Well, that was easy enough. Now we have to create a VS_nMcAulM.ssf voiceset file. 1. Open the ssfEditor. 2. Type McAulMx into the Base Name field. This should be the name of the custom voiceset RESREF minus the sound set type prefix (i.e. minus VS_n or C_). SsfEditor wants you to use a 7 character name (NWN does not enforce this but go with the flow for now by adding an x at the end). 3. Select NPC (vs_n) in the Soundset Type dropdown. Notes We would like to use **** for the RESREF to force the game engine to use the LABEL when displaying the new voiceset in the Aurora Toolset. But this does not work yet for soundset.2da. NeverwInter NIghts Custom Content CuIde vJ.0 7oIcesets
ElIgIo Sacateca Page 58 01/06/200J 4. Press New. ssfEditor enforces naming conventions for the NWN game engine by creating all 49 rows in the ssf file and appending the appropriate prefix and suffix to create each .wav file definition. 5. Leaving the STRREF field blank for no SpeakString text. You can only update a row by pressing Update Sound. 6. When you are finished, press Save. The name of the saved .ssf file MUST refer to the correct RESREF you added to the soundset.2da earlier (VS_nMcAulM.ssf, without the additional x).
F|gure 21 - 33F Ed|lor 7. Create or rename your 49 .wav files to VS_fMcAulMx_<suffix>.wav. 8. Put your new soundsets.2da, VS_fMcAulM.ssf, and .wav files into a hakpak. 9. Load the hakpak into your module. 10. Create a new NPC in that module. Your new voiceset should be available as the voice for your character. Your voiceset will have the title of Female, Brutish Thug in the Aurora Toolset because of the STRREF you used earlier. Not that it is a females voice, just that this is what the STRREF points to in dialog.tlk. This new voiceset still isnt perfect. In the example above, we do not have any SpeakStrings tied to any of our sounds. Personally, I dont find this a huge problem (if you look at the original game Notes When you close your module and reload it to bring up the new hakpak (remember we talked about this being the most reliable way of reloading a hakpak?), you wont find your new soundset. Why not? For some reason the Aurora Toolset does not seem to reload the soundset.2da in this situation. You have to completely shut down the toolset and restart it. Apparently a bug very similar to this was fixed for baseitems.2da in version 1.26 but the same error seems to persist for soundset.2da. NeverwInter NIghts Custom Content CuIde vJ.0 7oIcesets
ElIgIo Sacateca Page 59 01/06/200J module closely, you will see that many NPCs use strings close to but not exactly the same as what they say). But if you want appropriate SpeakString text, look through the other voicesets and duplicate the STRREF entries there in your .ssf file. There are nearly 69,000 strings in dialog.tlk so at least one might come close. You may be tempted to add your own SpeakStrings in the dialog.tlk file. Dont do it! You are better off using a string similar to your dialog (even if not exactly the same) rather than distributing a modified dialog.tlk.
Okay, I promised you an explanation as to why this doesnt quite work for PC voicesets. The problem is that in the character creation screen NWN has not loaded the module yet. Until it loads the module, NWN does not load any hakpaks from the module including your soundset.2da file. Which means it does not know about the nifty new voiceset you added. Without this information, you cannot select the new voice from the character creation screen. Erk. Currently, the only way to get a brand new voiceset into the character creation screen is to put the soundset.2da file in the /override directory. I really dont like this method. I heartily recommend the previous method where you replace an existing voiceset. An alternate method is coming soon: Half-Elf has developed an independent Character Creator that builds character files outside of NWN. This allows you to do many things, including using new voice files for your PC.
NeverwInter NIghts Custom Content CuIde vJ.0 tems wIthout |odels
ElIgIo Sacateca Page 60 01/06/200J
tems wIthout |odels In the first section of this tutorial we looked at adding a specific type of item: a weapon. NWN represents a wide variety of items with models, not just weapons. And it allows you to add new miscellaneous items, not just modeled items. This mostly requires skills with 2d images to create the icons that show up in your inventory. For example, take a look at the new FRCS gem icons (http://nwvault.ign.com/Files/hakpacks/data/1037972170390.shtml) that Shade Shadowbane created to replace the ones in the main game. Part 1: UnderstandIng How NWN Fepresents tems Lets look at how NWN represents an item like a gem, and how it is different than a weapon, by actually building an existing one in the Aurora Toolset. Try this exercise: 1. Open up the Aurora Toolset. 2. Create a new Module (we will call it Item Tutorial for lack of a better name). Use the Area Wizard to create at least one Area. Use the defaults to set up the area and choose something simple like a Castle Interior. 3. Select Wizards | Item Wizard. 4. For Item Type select a Gem (we will talk about the standard types later in this section). 5. Click Next. 6. Enter a name (Soldiers Eye). 7. Click Next. 8. Add to the Miscellaneous, Gems category. 9. Click Next. 10. Check the Launch Item Properties checkbox. 11. Click Finish. 12. Select the Appearances Tab. You can now modify the appearance of the item by selecting the appropriate icon. Notice the names of the icons yes, Virginia, naming standards do matter for these items as well. In this case, all of the gem icon names have the format iit_gem_001, iit_gem_002, etc.
Notes Take a closer look at the Appearance tab where did that 3D model come from? Isnt the title of this section Items without Models? Well, what I really meant is that you do not need a unique 3D model for many items because the game engine only has to render the model if it is laying somewhere on the floor, just waiting to be picked up. Most of these items default to the it_bag default model or the it_potion_000 model. NeverwInter NIghts Custom Content CuIde vJ.0 tems wIthout |odels
ElIgIo Sacateca Page 61 01/06/200J
F|gure 25 - 0er sroW|rg 30 Vode| (delau|l) ard 20 lcor Now, my 2D icons probably dont look the same as yours. Im using Shade Shadowbanes hak in this example. Now that you understand the different parts of a basic item, lets get started. Part 2: New cons for ExIstIng tems Probably the best place to start to understand all the different models you can add is through baseitems.2da. So fire up NWNViewer and take a look. There are a series of items with ItemClass = it_<whatever>. If you look in the models01.bif and models02.bif files, you will not find item models with these names. Scroll a little to the right of baseitems.2da. You will find another column named DefaultModel. Some of these items have a default model of it_potion_000 or it_trap_001 but most are it_bag. These are the default models used when the item is laying around in a scene. The basics of adding new icons to an existing item type are very similar to the process for creating a new weapon, without worrying about the model. Lets add an icon for a new ring. Find the item in baseitems.2da (in the case of the ring, it is the item with ID # 52). Get the ItemClass value (it_ring). The icon name will be this ItemClass value with a prefix of i and a suffix of _0nn.tga where nn goes from 01 to 50 (existing ring icons have the names iit_ring_001.tga to iit_ring_035.tga). The 2D icon The default 3D model NeverwInter NIghts Custom Content CuIde vJ.0 tems wIthout |odels
ElIgIo Sacateca Page 62 01/06/200J Look at the InvSlotWidth and InvSlotHeight values for this item. Remember from the weapon section of this guide that icons must be InvSlotWidth x 32 pixels wide and InvSlotHeight x 32 pixels high. Sure enough, if we use NWNViewer to open the Textures01.bif file we will see that an iit_ring_nnn.tga item is, in fact, a 32 x 32 pixel tga file. If you want, you can use an existing icon as a starting point. Create your new icons using this naming standard and size. If you want to replace existing icons with your new ones, use the exact same name. If you want to add new selectable icons, add them after the highest existing icon number (e.g., starting at iit_gem_016 for gems because the highest existing value is iit_gem_015). I am going to create a 3-stoned ring. Once I have done that, I put a mask around the ring and stones, and save it. Now I put them in a new hakpak and create a module that includes this hakpak: 13. Bundle up your new icons in a hakpak (refer to the section on hakpaks for details on how to do this if you havent picked up on it yet). 14. Open up the Aurora Toolset. 15. Create a new Module (we will call it Item Tutorial for lack of a better name). Use the Area Wizard to create at least one Area. Use the defaults to set up the area and choose something simple like a Castle Interior. 16. Set the module to point to your new hakpak in Edit | Module Properties | Advanced. Save, close and re-open your module to load the hakpak. 17. Select Wizards | Item Wizard. 18. For Item Type select your particular item. Click Next. 19. Enter a name. Click Next. 20. Add to an appropriate category. Click Next. 21. Check the Launch Item Properties checkbox. Click Finish. 22. Select the Appearances Tab. 23. Your new icons should now be available in the 2D icon view. Notes Some items (for example, gems) appear to have a hard-coded limit on how many unique items you can have in the game (it is 50 for gems although this number is higher for other items because there are already 73 small, miscellaneous items). NeverwInter NIghts Custom Content CuIde vJ.0 tems wIthout |odels
ElIgIo Sacateca Page 6J 01/06/200J
F|gure 2 - NeW r|rg, |ler ||l_r|rg_03 Part J: New tem Fesources You can also add brand new items through baseitems.2da. Before we do that, lets talk about your alternatives. There are already miscellaneous items in baseitems.2da. You can create a small item (1 x 1 inventory squares), a mid-sized one (2 x 2), a large one (2 x 3), or a thin one (1 x 2). My first suggestion would be to use these resources and only create a brand new item if you these dont meet your needs. To do that, use one of the existing icons or add a new one using the process I just described. Now, lets assume we really need to create a new item in our case, we really want an item type for a musical instrument for our bards. Lutes. Harps. Bagpipes. Tubas (tubi?) You name it. The problem with the miscellaneous items is that the weight and cost is all wrong for musical instruments. So we are going to create our own entry in baseitems.2da. Get a copy of baseitems.2da out of \source\2dasource.zip. Copy an existing line item similar to the one you are creating. I have several choices. If I wanted to create models for my instruments and then have the character actually wield the model, I might use something like a Magic Rod as a template (you cannot equip a rod but it does have a model and is used briefly when activated). This animation probably does not fit a lute or harp well though, and I said this section was for items without models, so I will use a book instead. Books only show up in your inventory. Well start by making a copy of the book line and adding it in at the bottom. My new item is not going to be like a book, but a book is a good item to start with when modifying this file because it shares the same characteristics that we want. 1. Copy the new baseitems.2da file to the directory with your model and icons. 2. Open baseitems.2da using a text editor (Notepad works fine although some people use Helios Software Solutions' TextPad). Turn wrapping off so everything aligns nicely. Notes Why use the existing miscellaneous items where I can instead of creating my own? Generally because it is easier (and causes less trouble when Bioware updates their game) if you do not have to add new resources to a .2da file. NeverwInter NIghts Custom Content CuIde vJ.0 tems wIthout |odels
ElIgIo Sacateca Page 64 01/06/200J 3. Go ahead and take a look at it. Scroll down until you get to the necklace entry. You should see this: 74 531 book 2 2 75 532 spellscroll 1 1 76 535 gold 2 2 4. Copy the book entry and paste it at the bottom. 5. Modify the entries as appropriate for your new item. I wont go through all of the different options (refer to the weapons tutorial for more detail) but here are the key ones: Column Values ID 2006 Name Same issues as for a weapon. This should be **** (should tell the game engine to use the label for a name). However, this does not work. I could not find the text Instrument in dialog.tlk. Im going to use 1592 which is simply Miscellaneous for now. Label Use _ underscore if you want spaces in the label. InvSlotWidth InvSlotHeight Inventory slot width and height. Make sure it matches the size of the icon you created earlier (in our case 2 x 4 because our icon is going to be 64 x 128). EquipableSlots I probably want to leave this as 0x00000 (not equipable) because I dont want it going into one of the pre-figured slots. For details, refer to the weapons section where I explain the different types. ItemClass it_musicin (add a new item type). The icons will be iit_musicin_001 to _050. WeaponType Leave the weapon columns alone Stacking Number of identical items that can be stacked together in your inventory (this is why you get 99 arrows in a bundle, 10 potions, etc.) Description 1592 (this makes the description Miscellaneous as well because there is no entry for an instrument description in dialog.tlk).
6. Back through the same routine. Save the .2da file, load it into your hakpak. 7. Make sure your icon files have the right names. 8. Load all of these into your hakpak. You should have, at a minimum, the following: NeverwInter NIghts Custom Content CuIde vJ.0 tems wIthout |odels
ElIgIo Sacateca Page 65 01/06/200J
F|gure 2Z - Load|rg your reW |ler |rlo a ra|pa| 9. Load up your module in the Aurora Toolset. 10. Now you can create a new instrument using the Item Wizard. You will find the template under Miscellaneous in the selection list.
F|gure 28 - Your reW |ler 11. Modify the Description of your new instrument to reflect the type of instrument it is. NeverwInter NIghts Custom Content CuIde vJ.0 tems wIthout |odels
ElIgIo Sacateca Page 66 01/06/200J Part 4: Dther tems With the technique we have covered here, and in the section on weapons, you should have the skills and tools to handle just about any other kind of item there is. Some are multi-part like weapons (potions, keys, boots to name a few). And some are singular (rings, amulets, etc.). The steps are simple: 1. Use the Item Wizard in the Aurora toolset to create a basic template and understand how it goes together. 2. You can usually also get the naming standard from the Aurora toolset. If not, look in baseitems.2da for the default and other model names. 3. Go to the source using NWNViewer to find the models and the textures. 4. Create! With this basic set of tools I will cover only a few more types of item specifically in this tutorial because their complexity begs separate treatment (I am referring to the armor models in the next section).
ElIgIo Sacateca Page 67 01/06/200J Spells Lets see what else we can do with .2da files. Maybe I want to create a new spell effect. Id like to create the necromantic spell, Chill Touch. I get a huge combination of effects to build my new spell from. I can add new icons similar to what we did for the weapons and other items. The only real tricky part will be coding the effects I need. To create a new spell, these are four basic steps: 1. Create two icons, one for the spell and one for the spell as a scroll. 2. Create a spell resource in spells.2da. 3. Create a spells item property resource in iprp_spells.2da. 4. Create a script that delivers the effect that you want for your spell. Part 1: The Spell cons Create one icon for the spell and another for it as a scroll. You could use the same icon for both but Bioware uses a black, white and purple theme for the spell icon and a brown and white theme for the scroll icon. The image on each is similar. I wont go into detail on the icons because we have done so many already. They are 24 bit, 32 x 32 pixel Targa bitmaps (.tga files). The naming standard is not critical for spell and scroll icons but if you want to follow the Bioware standard it is: is_<name>.tga for spell icons iss_<name>.tga for spell scroll icons Where <name> is a maximum of 11 characters. You can find these using NWNViewer in Textures02.bif. Use one as a sample of how to do it. Unlike the weapon icons, there is no mask or other complication on these files. Here are my two new spell icons. I used the Ghoul Touch icons as a template and did some editing to make them more reminiscent of a shivering, cold hand. I actually put the spell name on the spell icon. Why? With the current limitations on changing dialog.tlk, there is really no way to get my new spell name into your spell book. So I want to make it explicit which spell you are dealing with. This is not necessary for the scroll because, as an item, I can put whatever text labels and descriptions I want on it in the Aurora Toolset.
ElIgIo Sacateca Page 68 01/06/200J Part 2: The Spell Fesource The spell resource file - spells.2da defines each of the spells (and spell-like abilities), how it is cast, who can cast it, and a variety of other details. There are eight main parts to a spells.2da record. 1. General information (spell name, school, range, etc.) 2. What classes can use the spell and what level it is 3. The Conjuration group which stores the sounds and animations that are played when the spell is being cast. Refer to the spell effects reference near the end of this tutorial for details on effects you can use. 4. The Cast group which stores the sounds and animations that are executed when the caster is done chanting and the spell takes effect. This is not the effect on the recipient -- that is handled in the ImpactScript -- but is, for example, the animation for the cone of frost between the caster and target in a cone of cold spell. Cast effects take place after Conjuration effects. Refer to the spell effects reference near the end of this tutorial for details on effects you can use. 5. The Projectile group. This one designates any type of model that moves between the caster and the target. An example would be the ball of the fireball spell that travels from the casters hand to the target and then explodes. 6. A list of immunities. 7. Linked spells. This is where you can designate a spell to have more than one type of end effect, similar to a Polymorph spell where you can pick from several options. Linked effects are used for radial menus. 8. Miscellaneous information.
The following are the columns from spells.2da: Column Description Values The ID number Start at 414, after Biowares last spell. Normally I would tell you to start much higher but currently In order for spells to be used as scrolls, they have to start at 414 and continue. They also have to appear in order after the last real spell in spells.2DA Label The name of the spell Any spaces should be replaced with underscores '_'. Im not sure if it will ever be possible to put **** in the Name column for spells Bioware has indicated that they dont really consider rules changes (spells, feats, Notes This section builds on information first posted to the NWN forums by Kaine. Something to think about when making these spells up. High-level spells should be grand and animation packed, while low-level spells should be fairly simple. If you make your level 0 spell loaded with all sorts of cool effects your player won't be very impressed with the meagre or similar effects on the earthshaking level 9 spells. NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 69 01/06/200J Column Description Values etc.) to be in the field of customizable content. Name The strref to the name of the spell in dialog.tlk. The same limitations apply that you should be used to be now. The label will not show up in the game engine. I chose 4692 which points to a string called Devil Chills. Close enough to imply Chill Touch for now. I dont want to use dialog.tlk. IconResRef Name of the .tga file that will represent the spell icon.
You can create your own icons and put them in the hakpak. This is the recommended method because people want to be able to tell spells apart visually. Alternately, you can use generic icons for the different spell school classes: Abjuration = is_abjure Conjuration = is_conjure Divination = is_divine Enchantment = is_enchant Evocation = is_evoke Illusion = is_illusion Necromancy = is_necromancy Transmutation = is_transmut School School of magic A = Abjuration C = Conjuration D = Divination E = Enchantment I = Illusion N = Necromancy T = Transmutation V = Evocation Range Range of the spell P = Personal (affects only the caster) T = Touch (affects the person touched) S = Short (25 ft + 5 ft/2 levels, according to standard 3e rules) M = Medium (100 ft + 10 ft/level) NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 70 01/06/200J Column Description Values L = Long (400 ft + 40 ft/level) VS Verbal and somatic components of the spell. V = Verbal only (cannot cast this spell if silenced) S = Somatic (Spell suffers arcane spell failure from armor) VS = both - = neither Metamagic Defines which metamagic feats can be used on the spell. The number is a bit flag setting and must be in hexadecimal format. The numbers need to be added together to get the final set of flags for the spell. Example: I want a spell that can be Quickened, Silent, Still, and Maximized. I would have 8(Quicken) + 16(Silent) + 32(Still) + 4(Maximize) = 60 total. Once you get the number you need to convert it into hex format. The easiest way if you use Windows is to use the calculator. Open up the Calculator program in Windows and under the View menu switch to scientific mode. Make sure the round radio button is checked for Dec. Enter in your number and then change it from Dec to Hex; this is your hexadecimal number. Enter this number along with a 0x (just programmers notation that a number is in hexadecimal format) to the column. That is a 'zero' and not the letter Oh. So our example would be 0x3c. 0x01 = 1 = Empower 0x02 = 2 = Extend 0x04 = 4 = Maximize 0x08 = 8 = Quicken 0x10 = 16 = Silent 0x20 = 32 = Still TargetType This is the type of target the spell requires. Like the MetaMagic value, this is actually a binary flag system. You must enter the hex code after adding up the values for all the targets you want to be able to affect. 0x01 = 1 = Self 0x02 = 2 = Creature 0x04 = 4 = Area/Ground 0x08 = 8 = Items 0x10 = 16 = Doors 0x20 = 32 = Placeables 0x40 = 64 = Trap triggers (only when detected) and area transition triggers NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 71 01/06/200J Column Description Values (this does not work very well - the cursor is active on the area transition, but when clicking the PC is left hanging before casting the spell and the script doesn't fire). This value is not currently used by Bioware. ImpactScript The script that runs against the target of the spell
Bard, Cleric, Druid, Paladin, Ranger, Wiz_Sorc, Innate The level of the spell for each class, if it can't be used by that class then it is commented out with **** Innate is for creatures that have it as a spell like ability. A lot of creature abilities are implemented as "innate spells".
ConjTime Conjuration is the process of invoking the spell. The conjuration time in milliseconds. Note: the Conjuration effects are executed before the Cast effects. For spells it is 1500 with only 1 exception - Phantasmal Killer - which is at 900 ConjAnim This is for the character or creature invoking the spell and calls the appropriate animation so that the caster goes through the right motions. The three possible values are: hand = Casters hands are in front of him. head = Casters hands reach up to above face level. **** = No hand movement ConjHeadVisual This is to add a visual effect over the head of the caster when invoking the spell. Some sample head visuals and the spells they are used on are: Ice_Storm vco_mehancold03 Resurrection vco_mehanelec01 Premonition vco_mehanelec03 Meteor_Swarm vco_mehanevil03 There are a lot more. I have included the visual effects reference at the end of this tutorial. ConjHandVisual This adds an effect to - or between - the caster's hands when invoking the spell. Refer to the visual effects list. ConjGrndVisual This adds an effect to the ground around the caster when invoking the spell. Refer to the visual effects list. ConjSoundVFX This is the sound effect that plays when invoking the spell. It is not the caster's voice but the energy Refer to the visual effects list. NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 72 01/06/200J Column Description Values crackles, moaning, etc. that plays in the background ConjSoundMale ConjSoundFemale These are the sound effects for the chanting that the caster does while invoking the spell Refer to the visual effects list. CastAnim The caster's pose after finishing the spell conjuration. Note: the Cast animations and effects occur after the Conjuration ones. Possibilities are Area out self touch up **** CastTime This seems to be how long in milliseconds the caster stays in the CastAnim pose There seem to be 2 settings 1000 = most spells 1700 = spells with ray or cone shaped effects CastHeadVisual Not currently used for any spells CastHandVisual These effects happen to the caster after the conjuration effects take place. An example would be the force rings that radiate from the casters hand after a magic missile spell or the cone of frost from a cone of cold spell
CastGrndVisual Not currently used for any spells CastSound The sound played after the Conjuration
Proj Is there a projectile model that moves between the caster and the target in the spell 1 for yes 0 for no ProjModel The model that moves between the caster and the target The currently used ones are: vpr_aroacid vpr_ectoacid01 vpr_ectocold01 vpr_ectoevil01 vpr_ectofire01 vpr_ectomind01 vpr_ectonatr01 vpr_ectoodd01 vpr_ectosonc01 vpr_fireball vpr_ringsmal vpr_wraith ProjType The physics of the projectile accelerating homing linked NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 7J 01/06/200J Column Description Values ProjSpwnPoint Where the projectile starts at from the caster hand head ProjSound The sound of the projectile ProjOrientation Which direction to orient the projectile in Set to path if there is a projectile ImmunityType Type of immunity needed to ignore the effects of this spell.
Note there are three Mind Affecting immunities and two Positive immunities, I'm not sure if this a typo or not - looks like one Acid Cold Death Disease Divine Electricity Fear Fire Mind_Affecting Mind_Effecting (Typo?) Mind-Affecting (Typo?) Negative Poison Positive Postive (Typo?) Sonic ItemImmunity Are items immune to being affected by this spell? 1 for yes 0 for no SubRadSpell1 - 5 These are for spells that have multiple ways of casting them. The values in these columns are the index value of "sub" spells that will come up in another radial menu. Spells like Polymorph Self or Shapechange where you can pick a type of creature to turn into or Shadow Conjuration where you can pick the spell to emulate. The maximum number of choices you have for a spell will be 5. The people who are planning on implementing radical new Polymorph spells where you can turn into all sorts of animals may want to look at this. It has been reported that radials only work if the new spells use ID numbers directly consecutive to those already in use. Category These are equal to the various TALENT_CATEGORY_* constants in nwscript.nss. These are used in various AI scripts to select appropriate abilities for The Category is related to the categories.2da file in 2da.bif. Here are the reported values: (AoE = Area of Effect) 1 = Harmful AoE Discriminant (i.e., NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 74 01/06/200J Column Description Values creatures or NPCs to use. only affects enemies) 2 = Harmful Ranged 3 = Harmful Touch 4 = Beneficial Healing AoE 5 = Beneficial Healing Touch 6 = Beneficial Conditional AoE (e.g., See Invisible) 7 = Beneficial Conditional Single 8 = Beneficial Enhancement AoE 9 = Beneficial Enhancement Single 10 = Beneficial Enhancement Self 11 = Harmful AoE Indiscriminant (affects all within AoE) 12 = Talent Beneficial Protection Self 13 = Talent Beneficial Protection Single 14 = Talent Beneficial Protection AoE 15 = Talent Beneficial Summon 16 = Auras and Rages 17 = Special Monk Feat 19 = Dragon Attacks Master Used in conjunction with the SubRadSpell columns. For a sub spell this is the parent spell that called it. The actual effect of this seems to be that the uses-per-day of the master spell is reduced by one when cast instead of this spell's uses-per-day. Generally all sub-spells will want this and no others will.
UserType Always 1 for spells 1 = Spells 2 = Creature Power 3 = Feat 4 = Item Power SpellDesc The strref for the description of the spell in dialog.tlk Here we go again. I use 59 which is a blank string. It leaves the description blank. UseConcentration Determines if a Concentration check is needed to successfully cast the spell if interrupted (e.g., if hit during 1 for yes NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 75 01/06/200J Column Description Values combat) 0 for no For spells always 1. The only records which have a 0 are uninterruptible ones like constant creature powers SpontaneouslyCast This is for the Clerics spontaneously casting. Only Cure/Cause wounds should have this 1 for yes 0 for no AltMessage
This is the strref for the message in dialog.tlk that is displayed to people other than the caster, for example "SoAndSo smites evil".
HostileSetting Will a NPC consider this an attack if they are affected by the spell 1 for yes 0 for no This actually is used in the SignalEvent call. If it is 1, then it will be a hostile act when the target gets the event signaled to them. FeatID The ID of the feat. There are a few feats that are activated like spells, and call scripts in a similar manner. These use the FeatID to determine when they show up, and what they do.
Part J: The tem Property Spells Fesource Technically, you only need a reference in iprp_spells.2da if you want an item to be able to cast this spell. How does this work? Well, there is a list of item properties in itempropdef.2da and these are the properties you can assign to items in the Aurora Toolset. Within each property is the property sub-type. For spells, this sub-type points you to iprp_spells.2da. By adding a resource in this 2da file, you can then tie your spell to an object like a scroll or another magic item.
Column Description Values The ID number Start at 336, after the last spell Label The name of the spell Any spaces should be replaced with underscores '_'. Some day it should be possible to put **** in the Name column and the game will use this field to refer to your spell. Name The strref to the name of the spell in dialog.tlk. One more instance where I cant get it to do what I want. Hopefully this will be fixed soon. NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 76 01/06/200J Column Description Values CasterLvl The level at which the spell is cast from this item. 1 to 20 InnateLvl Not sure. Need to investigate. 1 to 20 Cost Appears to be the cost increment added to the minimum level required for the item to be used. If you add too many powers to an item, it becomes unusable because it exceeds the maximum character level of 20.
SpellIndex Reference back to the spell ID in spells.2da Use the ID you added for your spell in spells.2da PotionUse Can this item be used as a potion? 1 for yes 0 for no Wanduse Can this item be used as a wand? 1 for yes 0 for no GeneralUse Can this item be used for general items? 1 for yes 0 for no Icon Icon to be used for this item as a scroll It needs to be a typical 32 x 32 pixel tga file. You can select one of the existing icons with the format iss_<name> where <name> is no longer than 8 characters. They are found in textures02.bif. Or you can create your own, use a similar naming standard.
The other 2da files iprp_spelllvlimm.2da (spell level limit), iprp_spelllvcost.2da (spell level cost), iprp_spellshl.2da (spell school) do not need to be adjusted. I am not sure what iprp_spellcost.2da is for. Part 4: The Spell ScrIpt Lets take a look at the new script for Chill Touch. This is not a scripting tutorial, but Ill try to give you a basic flavor of how these work. You can look at existing scripts by opening up scripts.bif using NWNViewer or from within the Aurora toolset (there is a radio button on the File Open dialog that allows you to open any existing script file). The spells are all named nw_s0_<spellname>.nss. The .ncs files are compiled spell files so you cant read them directly. Here is my new Chill Touch script.
//:://///////////////////////////////////////////// //:: [Chill Touch] //:: [ES_S0_ChillTch.nss] //::////////////////////////////////////////////// //:: Causes 1d6 damage on each successful touch //:: attack (1 attack per level). Reduces strength NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 77 01/06/200J //:: by one if target fails Fortitude save //:: (duration of one minute / level). //:: //:: If the target is undead it is not damaged but //:: must save vs. Will or flee as if panicked for //:: 1d4 rounds + 1 round per level. //:: //:: NOTES: does not properly implement 1 attack //:: per level and does not consider that undead //:: are immune to mind affecting spells //::////////////////////////////////////////////// //:: Created By: Eligio Sacateca //:: Created On: December 21, 2002 //:://////////////////////////////////////////////
#include "NW_I0_SPELLS" void main() { //Declare major variables //the object you were targetting object oTarget = GetSpellTargetObject(); //check if you are using any Meta Magic feats int nMetaMagic = GetMetaMagicFeat();
//check for a successful 'touch attack' on target int nTouch = TouchAttackMelee(oTarget); //if successful touch attack on a target that is not friendly if (nTouch && !GetIsReactionTypeFriendly(oTarget)) { //if the target is undead, use fear effect if (GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD) { //Fire cast spell at event for the specified target SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FEAR)); //Make SR Check if(!MyResistSpell(OBJECT_SELF, oTarget)) { //calculation duration int nDuration = GetCasterLevel(OBJECT_SELF) + d4(1); float fDuration = RoundsToSeconds(nDuration); //check metamagic if (nMetaMagic == METAMAGIC_EXTEND) { fDuration = fDuration * 2.0; //Duration is +100% }
//calculate and apply effects //target is frightened effect eFear = EffectFrightened(); //use fear visual effect effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR); //until impact expires effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); //Link the fear and mind effects effect eLink = EffectLinkEffects(eFear, eMind); //Link the fear and mind effects to the duration eLink = EffectLinkEffects(eLink, eDur);
//Make a will save if(!MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_FEAR, OBJECT_SELF)) { //Apply the linked effects DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDuration)); } }
} else //target is not undead so apply damage and strength reduction { NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 78 01/06/200J //Fire cast spell at event for the specified target SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_HARM)); //Make SR Check if (!MyResistSpell(OBJECT_SELF, oTarget)) { //Start with the 1d6 damage //Calculate damage int nDamage; //Check Metamagic if (nMetaMagic == METAMAGIC_MAXIMIZE) { nDamage = 6; // damage is maximum } else { nDamage = d6(1); } // set the visual effect to show the character taking damage effect eVis = EffectVisualEffect(VFX_IMP_HARM); // implement the effect so the character takes damage effect eDam = EffectDamage(nDamage,DAMAGE_TYPE_NEGATIVE); //Apply the VFX impact and effects DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
//Now apply the strength reduction //Make a fortitude save if(!MySavingThrow(SAVING_THROW_FORT, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_NEGATIVE)) { //calculate duration int nCasterLevel = GetCasterLevel(OBJECT_SELF); float fDuration = IntToFloat(nCasterLevel) * 60; // 60 seconds per level //Check for metamagic extend if (nMetaMagic == METAMAGIC_EXTEND) { fDuration = fDuration * 2.0; //Duration is +100% }
I wont attempt to explain each line of this script but here is the overall outline: 1. First, we find out who you were targeting. 2. Next, before applying any effects, we check to make sure this is not a friendly target, and that you can make a successful melee attack against the target. NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 79 01/06/200J 3. Assuming that succeeds, we check if the target is undead. If it is, we apply an entirely different effect frighten to what we would do if the target were alive damage and strength reduction. 4. Assuming the target is undead, we notify them that they are the target of a fear spell and then do a spell resistance check (they will be notified that they are a target even if they are successful at resisting the spell). The notification will typically make them counterattack if they were not planning on doing that already. The spell resistance check takes into account natural resistance as well as items like cloaks, rings, etc. 5. We calculate the duration of the spell (doubling it if the caster was using Metamagic) and then calculate the actual effects. The effects are linked together until the spell expires. This is how NWN maintains integrity between the visual effect (the icon you would get in the top right of your screen plus the 3d effect of the whirling skulls) and the actual effects (fear). 6. We give the undead creature one last chance at a Will saving throw. If they fail that, whammo, all those effects are applied. 7. Now, what if the target was not undead? We actually go through similar steps. Again, we notify the target they are the target of a spell (this time a harmful spell), and give them a spell resistance check. 8. If the target fails that, we calculate the amount of damage they will take (1d6 or a full 6 if the caster had maximized the spell), and apply it. Note we dont have to link any effects together this time. That is because the duration is instant (you take the damage right away, the visual effect fires and then we can forget about it). 9. We also give them a fortitude-save. If they fail that, they suffer a 1 penalty to strength. The spell description in PHB does not specify for how long but I did a quick check and ray of enfeeblement lasts for 1 minute/level so I will assume the same (I have not checked for errata on the subject). The strength penalty is applied in a similar fashion to the fear effect although it differs slightly in that the duration and effects are not linked together? Why not? Beats me. I borrowed the code for the fear effect from nw_s0_fear and the code for the strength effect from nw_s0_rayenfeeb and they were done slightly differently. I think either method does the same thing. I have seen it recommended that you add an entry in nwscript.nss for the integer CONSTANT of your spell name. I would not recommend this. When you look through the scripts to see where these constants are used, it is generally only in the SignalEvent(EventSpellCastAt()) line. Unless you want to do more coding and code a reaction for your specific spells in those events, it is not necessary to have your own CONSTANT for your new spell. Notes Note that I did not implement Chill Touch exactly as specified by the books in my version you only get one touch attack, not one per level. I need to work on this because it is a serious limitation. There is one other problem with this script: the undead are immune to mind- affecting spells. What this means is that they are essentially immune to the fear effect as I have implemented it here. More work is required to fix that as well. I leave both of these as an exercise for the reader (hey! I never said I was a good scripter!) NeverwInter NIghts Custom Content CuIde vJ.0 Spells
ElIgIo Sacateca Page 80 01/06/200J Part 5: PackagIng It all up Once you have done all of that, tidy it up and put your two spell icons and your two new .2da files into a hakpak. What do you do with the script file? Compile it into your module, of course. If you want to package your spell to send out for others to use, export your scripts as .erf files first. There are currently some limitations with this approach, most having to do with labels. Let me describe the spell process and I will point them out as I go. 1. Fire up the Aurora Toolset. Open your module. 2. Add a new item using the Item Wizard. Make a scroll. 3. Launch the Item Properties. On the Properties tab, I can add my new spell effect on the scroll. Because of the dialog.tlk limitation, it will use whatever STRREF you put into iprp_spells.2da so look for it there. This is not a huge limitation because you can rename your scroll to be whatever you want. In this case I rename it Chill Touch and I add a description to explain what the new spell does. 4. Drop a couple of copies of this blueprint into your module somewhere. 5. Save your module. Fire up the game. 6. As your character, fetch the scrolls you created. Now I can identify each scroll to see what is on them. Works fine. 7. Use one of the scrolls to learn this new spell (assuming you are the right class and level, of course). If you go to your spell book you will see the spell there using your new icon. Again, because of the 2da limitation, you will find that the name in your spell book corresponds to the STRREF you chose (in my case, Devil Chills). Click on the description. Again, it will correspond to the STRREF for SpellDesc (in my case, blank). 8. Put the spell in one of your spell slots. Rest. 9. Now go track down a monster (you did put a monster in your module, didnt you?). 10. Fire the spell off at your new monster. Observe its beauteous effects. Makes you feel good, eh? 11. Use the other scroll to fire off at your monster again. This is what it means to customize the game. Even if you find the naming limitation too annoying in-game, there are still uses for custom spells. Put them on items as special properties (just not in scrolls). That way characters can use them for as item powers but they cant learn them as spells for their characters. Better yet, give the spells to enemy spell casters. They wont care that the spell uses funny names and all your players will see is the effect of that nifty new spell which they cannot learn. Is that unfair, or what? Ah, the joy of being a DM.
Custom Armor and ClothIng Neverwinter nights provides a very customizable process for building armor for PCs and NPCs in the Aurora toolset. If you find even this dizzying array of choices is not enough for you, this tutorial will walk through the steps necessary to create armor more to your liking. We will introduce one new skill to complete this tutorial: using .plt files. The bulk of the effort to build custom armor is a variation of what you have already learned for custom weapons and other items. I have already created an oriental weapon pack. I want to create Samurai-style armor to go along with this pack to give my module an Eastern flavour. In this tutorial we will start by creating a new chest plate to test it out. We will take this tutorial in two steps. First, we will override an existing model to make it look like a new type of armor. Then we will modify the models themselves and the .2da files that stand behind them to create an entirely new piece of armor. Part 1: UnderstandIng How NWN Fepresents Armor Lets look at how NWN represents the different components of a weapon by actually building an existing one in the Aurora Toolset. Try this exercise: 1. Open up the Aurora Toolset. 2. Create a new Module (we will call it Armor Tutorial for lack of a better name). Use the Area Wizard to create at least one Area. Use the defaults to set up the area and choose something simple like a Castle Interior. 3. Select Wizards | Item Wizard. 4. For Item Type select Armor. Click Next. 5. Enter a name (Yoroi). Click Next. 6. Add to the Armor, Heavy category. Click Next. 7. Check the Launch Item Properties checkbox. 8. Click Finish. 9. Select the Appearances Tab. You can now modify the appearance of the item. The options you choose correspond to the different Model Ids. Figure 27 is the closest I could get to Samurai armor without doing my own customization. It will need some work. Take a closer look at the Appearance tab. Note that there is both a 3D model (used in the game engine to render a character wearing the armor) and a 2D icon (used in the game engine for the inventory functions). There are some other unique features as well.
F|gure 31 - Arror sroW|rg 30 Vode| ard 20 lcor A suit of armor in NWN is made up of eighteen (yes, 18 there are duplicate pieces for thighs, shins and feet as well) distinct pieces from Neck down to Feet. It does not include the head/helmet that is a separate item in the game. By mixing and matching the other 18 pieces, you can create a vast array of unique armors with the basic items included in the game. While we are here, note the two other options: Male/Female and Color Try changing these values. By toggling back and forth between Male and Female you get the same set of armor modeled for a male or female character. Using the Color button, you can change the basic color of the cloth, leather and metal components of the armor (there are two types of each so you have a lot of room to mix and match your wardrobe) this is what the .plt files do for you. Now that you understand the different parts of an armor model, lets compare those to a typical set of Japanese Yoroi armor. There are seven major pieces to a typical Yoroi armor. Before you bother to write in to me and tell me how you have been studying Japanese armor since the age of 3, how there are actual 43 different major pieces, how armor styles have evolved over the last 800 years, and that I have no idea what Im talking about, let me say one thing. Youre probably right. Having said that, I want armor that reflects the style. I want a reasonable model something neither too fantastical nor something that is so historically accurate as to correctly include to the placement of the 11 th stitch on the 3 rd plate of the Do in the period between 1494 and 1527A.D. So with that behind us, well talk about those seven major pieces. The 2D icon The 3D model Notes Harliquinn_Whiteshadow points out that while the standard pallets show you 56 colors, there are actually 64. If you draw your mouse down below the last row of boxes on the regular palette in the game or toolset, you can actually access a hidden row of colors including metallics, pure black and pure white. NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 8J 01/06/200J
F|gure 32 - Japarese Arror (Yoro|) These pieces correspond closely to some of the major parts of the Bioware model. The Kabuto and Menpo are part of the helmet so we wont cover them in this section. Part 2: That Fose ThIng AgaIn We are going to base our armor pieces on existing models - fire up NWNViewer and select data/models_02.bif which contains the armor pieces. |odel Type Scroll down, way down. What you want are the models that start with p. P represents player model pieces. The files that NWN uses for all player pieces follow a strict naming scheme. These items are named pxyn_<type><id>. For example, the torso piece we will be working with is called pmh0_chest004. Face, Cender and Phenotype After the p, the next three characters represent the race, gender and phenotype of the model. The values of these characters are as follows: Kabuto (Helmet) Do (Torso and Pelvis) Kote (Biceps and Forearms) Menpo (face) Haidate (Thighs) Sode (Shoulders) Suneate (Shins) NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 84 01/06/200J x Male (m) or female (f) y Race a=Halfling d=Dwarf e=Elf g=Gnome h=Human and half Elf o=Half-Orc n Phenotype of the model 0 is normal 2 is large
Armor 0escrIptIon and |odel 0 After these characters, the remainder of the name describes where the piece fits and its ID. <type> Is the description of the piece <id> Model #. All pieces use a three digit number.
For example, pmh0_chest004 equates to: p for player m for male h for human 0 for regular size chest for the torso piece 004 for the fourth torso piece Here are the standard <type>s and the piece they correspond to in the Aurora toolset we looked at earlier.
Type Maps to neck Neck chest Torso belt Belt pelvis Pelvis shor Right Shoulder shol Left Shoulder bicepr Right Bicep bicepl Left Bicep forer Right Forearm forel Left Forearm handr Right Hand handl Left Hand NeverwInter NIghts Custom Content CuIde vJ.0 Armor
If you look closely at NWNViewer you will notice a head model as well using this same naming standard. It is not part of the armor models though because it is chosen once, at the beginning of the game, and not changed later. The only way to change the head model is to equip a helmet. I will talk more about making new heads and helmets at the end of this section. You might also ask at this point why the Aurora Toolset gives you the choice of having different armor types for the left and right arms and shoulders but not the thighs, shins or feet. The answer is expediency. It would be rare to see somebody with mismatched legs. But if you look at historical armor it is not so rare a thing to see different arm and shoulder plates. Samurai, for example, often had different plates on the right side to allow them to fire a bow without getting the string caught in the rivets and ties of their armor. European jousting armor is similarly asymmetrical. The final observation to make would be that a simple calculation tells you that you need an astounding 24 models just to make one new armor piece. That would be 2 for gender x 6 for race x 2 for phenotype. To make a completely new set of armor, multiply that by the 18 different pieces in one set. That is a lot of work! The good news is that a program now exists to help you create all of these extra parts look for NWNArmory on the vault at http://nwvault.ign.com/Files/other/data/1053910703210.shtml. This program will cut down on the amount of work you need to do considerably. If you are making a new armor piece for player- characters, I would suggest not scrimping on the 24 pieces you will need. The last thing you want is armor that does not work for some characters because you did not include their phenotype, race, or gender combination. However, if you are making an armor piece for an NPC, you can focus just on the models you need for your NPC race and exclude the rest. SpecIal |odels There is only one special model type. It has the simple format pxyn. There is one for each gender, race and phenotype armor model but it does not vary according to the armor pieces. What is this model for? It is the template for how you assemble a PC from these component parts. It contains one node for each of the PC parts we have described here. By replacing this node with the corresponding armor piece you can build up a complete character. I will discuss this more in the section of this tutorial on Custom Races. Hints Be innovative! Some folks have come up with really novel ways to massage the basic armor parts to get what they want. Here are a few examples. There are no cloaks in the game and no inventory slot to put on a cloak. What is a person to do? Kinarr Greycloak created a cloak model that attaches to the neck node of your armor. Others have started to do this with things like hats, etc. Bioware did not include robes because of clipping issues (on animation the legs of your character fly right through the material). Lisa included invisible body parts to add to her robes and dresses hak. You select the robe as part of the armor, make the feet and legs invisible so they dont clip, and away you go. Hints I built NWNArmory to address this exact problem of having to duplicate all of the armor parts for all of the races. Refer to the section at the end of this tutorial for details on how to use this program. NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 86 01/06/200J Dther FIles In addition to the model files there are five other armor-specific files you will need for each armor piece. There is one texture file per gender for each armor part (but only one for both phenotypes and all races). These two files have the same naming standard as the model for the default-sized, human male and female models. This is not a .tga texture file. It is a PLT. There is also one 2D icon file per gender for some of the armor parts. These are only needed for the upper body armor parts. These two files have an abbreviated naming standard which is ipx_<type><id>.plt. i Icon p Player x Male (m) or female (f)
Finally, there is an item resource definition (.2da file) for each type of part. The .2da that needs to be edited is parts_<type>.2da. Part J: FIndIng the Armor |odel and Texture Back to our tutorial we want to create a banded Do for our armor. Some of you may be jumping ahead. Youve already exported the model piece (pmh0_chest042 from the diagram above for my Yoroi), you fire up your modeling tool, import the model and what the? It is the wrong piece. To model the piece Ive shown, you actually need to open pmh0_chest052. Unlike the weapons where the model #s in the Aurora Toolset GUI mapped directly back to the model #s in the BIF files, armor does not follow the niceties of this convention. How do I get the right model file then? Here is a trick from Harliquinn_Whiteshadow. In the Aurora toolset, create a set of armor using the piece or pieces that you want to take as a starting point for your new armor. Then export the erf file. The erf file tells you the proper model #s. Here are the steps: 1. Open up the Aurora Toolset. 2. Open the Armor Tutorial module we created earlier. 3. Select Wizards | Item Wizard. 4. For Item Type select Armor. Click Next. 5. Enter a name (test). Click Next. 6. Add to the Armor, Heavy category. Click Next. 7. Check the Launch Item Properties checkbox. 8. Click Finish. 9. Select the Appearances tab. 10. Using the drop-downs, modify the armor pieces that you want to use as a base for your creation. In my case, all I care about is the Torso piece # 042 (refer to Figure 29). NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 87 01/06/200J 11. Click OK to save the updated armor. 12. Right click on your new Template_Armor. Select Export. 13. Save the resource file (the .erf) as Template_Armor.erf. 14. Now close the Aurora toolset. 15. Open NWNViewer (I find you cannot use all of the features in NWNViewer when the Aurora toolset is open I think it is because they share some common functions). 16. Select File | MOD HAK ERF. Navigate to your Template_Armor.erf file and open it. 17. There are two lines in the left pane: ExportInfo.GFF and a UTI file which is your actual exported item. Select the UTI file. In the right pane, scroll down until you see the line corresponding to your armor part (s). In this case I have circled the line I want in red pen.
F|gure 33 - us|rg NwN v|eWer lo lderl|ly lre arror rode|s From this you can see that if I want to use my chosen model as a starting point I need chest052, not chest042. Fire up NWNViewer again; from within the data\textures02 directory look for the 24 instances of p***_chest052.mdl files and extract them. These are the model files you need. You also need the PLT files. As previously discussed, there are only two of them: pmh0_chest052.plt and pfh0_chest052.plt. You will find them in data\textures02.bif - sort of. The problem is that these are small files - very small. How does Bioware get so much texture into your model from such small texture file? The answer is that they dont. NWN is designed to scale the size and complexity of its textures to what your PC (your Personal Computer, not your Player Character) can handle. The detailed textures can be found outside of the usual bif files. 1. Open up NWN Viewer. 2. Use File | MOD HAK ERF and navigate to the \texturepaks sub directory. NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 88 01/06/200J
3. Figure 34 - Texture Packs 4. Select Textures_Tpa.erf (the largest, highest resolution textures). 5. Jackpot. Now you can navigate to your PLT files.
6. Figure 35 - Torso PLT File for human, female, # 52 7. Extract it. Do not use the Export (BMP) feature. Right click on the PLT files and extract them. 8. Now you are ready to make changes. NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 89 01/06/200J Part 4: CreatIng a New Texture Taking a close look at the torso model files you may notice that the 52 armor pieces in NWNViewer are, in fact, only about a dozen unique models combined with different textures. We will take a similar approach I dont need a new chest model for my Do. What I really need is a new texture to make it looked like banded mail. For now, we will replace the existing chest model piece 052. This means for now I do not need to actually change the 24 model files. I only need to change the two PLT files. In the next section I will show you how to add my Do as a new armor in its own right, including the model files. The general process for each PLT will be to: 1. Convert the PLT to a bitmap. Use pltcon for this. 2. Edit the bitmap with your preferred image program. It must be a program that supports color channels. 3. Convert the bitmap back to a PLT. Again, use pltcon. EdItIng the 8Itmap I mentioned that you needed an image program that handles color channels. After you have used pltcon to extract the bitmap, load it into your image-editing program. It will be a mixture of odd colors.
F|gure 3 - Tre PLT as a o|lrap Convert the bitmap into its component Red, Green, and Blue color channels. Using Picture Publisher I do this with Image | Channels | Split RGB. You will get three grayscale images:
Notes A refresher on basic color theory. The color you see in a 24-bit color image is made up of three channels: Red, Green and Blue (RGB). Each pixel has 3 bytes of color information: a byte depicting the intensity of the color Red with a value between 0 (no red) and 255 (bright red), Green between 0 and 255, and Blue between 0 and 255. By combining these three channels into a single pixel you see a single color in the spectrum. NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 90 01/06/200J
Note the areas of pure white and pure black. These are the keys to understanding which parts of the PLT correspond to the different texture types in the game engine. For example, there is a pure white patch in the same section of the R and G images this represents Leather 2. There is a pure black section only in the Blue image this represents Metal2. Why do we do it this way? Because it is much easier to edit the grayscale channels and mask off the sections we dont need for each texture type than it would be to try and do this work in color and maintain the color separation we need. We will start with this base and edit our image from here. Once we have created the texture we want, we map the final image to the different textures we want for each section. To do that, block out the color channels with pure black (0) or pure white (255) according to the following chart:
Channel Texture RED GREEN BLUE Cloth1 255 Active Greyscale Cloth2 Active 255 Greyscale Leather1 Greyscale Active 255 Leather2 255 255 Active Tattoo 1 255 Active 255 Tattoo 2 Active 255 255 Metal1 Active 0 Greyscale Metal2 Active Greyscale 0 Hair 0 Active Greyscale Skin Active Greyscale Greyscale
Notes A bit more of a refresher. A 256-bit greyscale image has a value between 0 (pure black) and 255 (pure white) in each pixel. What your image edit program does to get these three separations is take the RGB color image and break each channel into a separate image. The pure black through pure white value in the greyscale image comes from the intensity of the corresponding color in the original channel. Metal2 Leather2 Notes This wonderful chart comes from SamJones & Lisa at http://nwnbuilders.com/ NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 91 01/06/200J For example, to get Leather2, put pure white (255) in both the Red channel and the Green channel. Put the edited image in the Blue channel (what I have shown as Active). To get Metal1, put pure black (0) in the Green channel. Put the edited image in the Red channel (what I have shown as Active). The Blue channel (what I have shown as Greyscale) can be anything except pure white or pure black (the Bioware images seem to put a copy of the Red channel in the Blue but this is not strictly necessary). To get Skin, put the edited image in the Red channel. Again, Bioware tends to copy this same image into the Green and Blue channels as well and this is fine. As long as they are not pure white or pure black it should be fine. Note when I indicate a greyscale image, I mean a value between 1 and 254. When you have done all of this masking on each channel, recombine the greyscale images into a color image. With Picture Publisher, you can do this using Image | Channels | Recombine. Then use pltcon to turn the bitmap image back into a PLT file. You dont have to start with a Bioware PLT file. You could also begin with your own texture. Convert it to greyscale and make three copies. Mask out the areas I have indicated above with white or pure black by hand and then recombine the images into a single color image. 0on't Forget the con Lets not forget to update our 2D icon files as well. Again, you only need a male and female version of these. They share a scaled-down version of the full model naming standard: ipx_<type><id>.plt. i Icon p Player x Male (m) or female (f)
Note the .plt extension. These are not Targa bitmaps like other icons. By making them PLT files, the game engine can automatically apply your color selections to the icon as well as the model itself. In our example the names of the icon files we need are ipf_chest052.plt and ipm_chest052.plt. Note that you do not need icons for all pieces. They are only required for belt, chest, pelvis, and left and right shoulder pieces (take a close look at a piece of armor in your inventory it does not show the entire suit). Extract your 2d icons. Convert them to bitmaps using pltcon. Separate the channels and edit them. Recombine them. And finally convert them back to PLT files. That is all there is too changing the texture of your armor (well, okay, I admit it is fairly complex). Now all you need to do is load your new PLTs into a hakpak and import them into a module. Done. Part 5: The Armor Fesource FIles Like our first example of creating a new weapon, the process I walked you through has some limitations. The biggest one is that you have replaced an existing model. What if I want to add my armor piece as a new model? There are a couple of steps I did not talk about. You need to edit the model files themselves and the armor 2da files. Let me take you through an example of turning the armor we just created into a separate item. Crack open those pxyz_chest052 model files. NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 92 01/06/200J DptIon 1: EdItIng by Hand I can actually get away without using a modeling tool if I do the editing by hand. Im going to assume that I dont need to change the actual shape of the armor. 1. Use NWNMDLComp to decompile the binary model files into ASCII files (see the section on Weapons for more detail on how to do this). 2. Edit each model file by hand. Change any instances of chest052 to chest054 (the next highest model #). For the chest piece there are typically three places where you need to do this. If you have a utility like BK ReplaceEm, this is a simple process. DptIon 2: |odelIng If you actually want to change the shape of the armor (adding big nasty spikes, or a peacock-plumed tail, etc.) fire up your modeling tool and go wild. Save the results of all 24 changes as p<xyz>_chest054.mdl and dont forget to change those internal references. Rename your 2 PLT icons and your 2 PLT texture files as well. Extract and open up the 2da file as well. In our example it is parts_chest.2da: Column Description Values The ID number Start at 54, after Biowares last piece. I would normally tell you to start much higher but this figure must match to the armor ID number and we want it to be consecutive. CostModifier Change to the cost figures for this part. Leave it as zero. ACBonus The AC bonus you get for wearing this armor. Because Yoroi is like banded mail (not a solid plate), I used 6.00.
The last few lines of my new 2da file now read: 52 0 7.00 53 0 8.00 54 0 6.00
That is it. Now package up your armor pieces, your 2da files, and your textures and put them in a hakpak. Load everything into your module and give it a try. Part 6: NWNArmory NWN Armory is a tool that performs renaming, scaling and rotating on NWN PC model parts to generate other model parts. Why would you ever want to do this? It is intended for two main reasons although there may be other applications for it as well Notes If you import your new model into the existing module we created earlier, you will get a better feel for why the numbering scheme between the Aurora toolset and your model number is different. By adding this new model it does not go at the end of the existing list, it goes somewhere in the middle (# 38 to be precise)! Everything after it gets pushed out by one. Why? Because we gave it an AC Bonus of 6. The toolset sorts armor pieces by AC first and then model second. So it puts our banded mail in the list ahead of the original half plate. Confusing? A bit. But it makes things easier for a module creator because they know the lower value armors are the lower AC ones. Notes The only parts_<name>.2da file that affects your armors AC bonus is parts_chest.2da. The other files have an AC Bonus column but it does not appear to be used. It may have been part of a scheme to allow other armor pieces to impact the total AC value of the final product that was abandoned because the method was too complicated. NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 9J 01/06/200J 1. Creating all race models from a human template. Let's say you create this new chest piece for our Yoroi. You need to model it for a human male and create another version for a human female. There are also two phenotypes (phenotype = body size, standard and large) so you need to create these as well. That part you need to do as Ive just shown. Now there are five more race models (halfing, gnome, elf, dwarf and half-orc). You would need to make twenty more of those armour pieces just to be able to have one for all the elves, halflings, etc. NWNArmory will do most of that work for you based on your four starting models. 2. Creating all armour models for a new race. Let's say you want to create a brand new race. Maybe it will be slightly taller and skinnier than an elf (a githerzai, say). There are hundreds of model pieces out there if you want your new race to be able to wear all available types of armor. But you can tell NWN Armory how your new race differs from one of the standard races (say an elf) and it will transform those hundreds of pieces for you. How do you make it work? Well talk about the first scenario above, creating all race models from a human template. In the section of this tutorial on Custom Races well discuss the second scenario. 1. Download NWNArmory. 2. Install it by unpacking all the files in the .zip into a single directory. 3. The NWNArmory.ini file contains the standard transforms when you first install the program (the transforms were graciously provided by BearThing). This is the default although if you have modified it you will need to copy standard.ini in place of NWNArmory.ini. I probably should make a wizard to do this. Maybe next version. 4. Fire up NWN Armory and tell it which models to use as base models. These models must follow the standard NWN naming conventions (e.g., pfh0_belt009.mdl). They must also be ASCII model files. If they are not ASCII model files, use NWNMdlComp to make them into ASCII model files if they are binary. 5. Tell NWN Armory which directory to put the transformed models into. 6. Go. What this program will do is compare each input file against the standard list of transform groups. Where there is a match, it will rename the model and apply the racial transforms and save the resulting model in the output directory. 7. Done. Part 7: AddItIonal Notes There are a couple of other 2da files that you may be interested in. The first is Armor.2da. This file describes, by AC Bonus value, the characteristics of each set of armor. In general, you would not need to edit this file unless you wanted to change some of the basic considerations for each AC class. Why? Because the existing file already covers the 9 basic AC types. This table is not a reference by piece or by armor type.
Column Description Values The ID number ACBonus The AC bonus you get for wearing This is not actually used to identify the AC bonus for the armor the AC NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 94 01/06/200J Column Description Values this armor. bonus value appears to come from the parts_chest.2da file. This file, armor.2da is used to identify the other statistics of a piece of armor with that AC. DEXBonus The maximum dexterity bonus for wearing this armor.
ACCheck The penalty to using some of your skills when wearing this armor (e.g., Moving Silently in full plate). Applied as a negative to your skill success roll. ArcaneFailure% The chance that a spell cast when wearing the armor fails. Rolled on a d20. Weight Weight of the armor in pounds. Cost Base cost of the armor. Descriptions The STRREF for this type of armor in dialog.tlk.
BaseItemStatRef The STRREF for the statistics of this armor in dialog.tlk.
Armorparts.2da and armortypes.2da are the other two files although I have to admit I dont know what the values in these files means. Armortypes, for example, only includes 42 different types. Im not sure what these relate to. Part 8: A note on clothIng There is no difference between armor and clothing. Clothing in NWN is simply armor with an AC of 0 (zero). The same applies to actual body parts (a bare arm, leg, etc.) The models work the same way and follow the same standards. The biggest difference is in the modeling: clothing typically includes a Flex modifier so that it moves somewhat independently of the wearer. I will talk more about Flex modifiers in the Creatures section. Part 9: Notes on heads and helmets Earlier I mentioned that heads share the same naming standard as other armor components. In most respects, heads and helmets are the same as other armor pieces. There are multiple head models, for each race and phenotype. They use PLTs instead of .tga texture files. And so on. There is one significant difference though: recall that armor models for the different races and phenotypes all share one PLT file (based on the pmh0_ or pfh0_ PLT file). Head pieces are different for each race (so there is one PLT file for the pma0 version, another for the pmh0 version, etc.) This is how NWN minimizes space with armor files but gives a wide array of unique appearances for the different race types. The same PLT texture is stretched across the different armor pieces but we get unique textures for heads and helmets to ensure that elf heads do not look like skinny half-orc heads. Let me talk for a moment about helmets as well to discuss some limitations with the NWN game engine. When you don a helmet you replace your characters head model. NWN does not support layering of multiple head models. This is why all of the NWN helmets are closed-face: it does not matter which character head you have chosen, you get the same helmet plopped down on your NeverwInter NIghts Custom Content CuIde vJ.0 Armor
ElIgIo Sacateca Page 95 01/06/200J characters shoulders when you choose to wear a helmet. The helmet does not sit on top of your characters head model instead, it completely replaces your characters head model. Not surprisingly, this is annoying for people who play mages, monks, etc. It would be nice to have a mage who can take advantage of the properties of special headgear while, at the same time, not look like (s)he is wearing an upturned bucked over her/his head. There have been requests for non-replacing headgear (for example, a headband that does not show up in-game at all but can be placed in your characters helmet slot and can be given special powers). Dont hold your breath waiting this does not seem to be a high priority request with Bioware. Some modelers have tried innovative approaches to getting the same effect - including helmets with partial face veils with varying degrees of success. One possible solution is to produce a helmet model specific to each character head model but without GetAppearance() and SetAppearance() to ensure the right model is put in place when your character dons a helmet, these cannot be implemented today. And, to be honest, they are quite kludgy.
ElIgIo Sacateca Page 96 01/06/200J Creatures Okay, here we go. This is what you have all been waiting for: creating new monsters. This is an advanced tutorial. It requires you to understand almost everything we have done so far: NWN Viewer Hakpaks 3D Modeling 2D portraits 2da files Voicesets I want to build a giant crab. Ive done Wave, Whelm and Blackrazor for S3 White Plume Mountain. I can find a gynosphinx and scorpions on NW Vault. But I dont have a crab. The modules I have seen so far fake it with other creatures. I want a real giant crab. Where do we begin? Well, lets find something that at least vaguely resembles the final product. Crabs and spiders share a lot of features. There are a lot of spider models so I am going to use one of them. Part 1: UnderstandIng How NWN Fepresents Creatures Lets look at how NWN represents a creature by actually building an existing one in the Aurora Toolset. Try this exercise: 1. Open up the Aurora Toolset. 2. Create a new Module (we will call it Creature Tutorial for lack of a better name). Use the Area Wizard to create at least one Area. Use the defaults to set up the area and choose something simple like a Dungeon. 3. Select Wizards | Creature Wizard. 4. Click Next. 5. For Monster Type select Vermin. 6. Click Next. 7. Do not add any special classes. 8. Click Next. 9. Go with the default Gender, Appearance and Portrait. 10. Click Next. 11. Faction can be Hostile. 12. Click Next. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 97 01/06/200J 13. Enter a name (Crab Wannabe). 14. Click Next. 15. Add to the Special, Custom1 category. 16. Click Next. 17. Check the Launch Creature Properties checkbox. 18. Click Finish.
F|gure 3Z - 3p|der sroW|rg rode|s ard vo|cesel When you create a custom monster you can use whatever model you choose but you are limited, of course, to models in the game. You can also choose your own Portrait and Voiceset. Check out the Appearance tab. For a simple model like this you do not have the ability to change any of the model pieces that make it up. So there is our crab. The only problem is, it looks like a spider. But now that you have seen the different parts of a creature model we will need to look at, lets get started on turning that spider into a real crab.
The 2D icon The 3D model The Voiceset NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 98 01/06/200J
Part 2: The Creature Fesource FIle Ill bet you thought you knew how this worked by now and that the section after I showed you the toolset would talk about naming standards. Well it isnt. The basic naming standards for creatures are pretty arbitrary because you use the appearance.2da file to identify your new creature and specify its model. Inside each model there are some naming standards and we will get to them but we will do that later because they relate more to animation than any specifics in the game itself. Im going to step out of the usual flow I normally give you and start with the resource file. I will show you how you can take an existing creature, create a new version of it, texture that new version and use it as a new model. In this case, we will make a crab that looks just like a spider but is orange. Kind of a sorry- looking crab but dont worry, it is just a starting point. What we have to do is add a new creature resource in the appearance.2da file. Again, we will get the appearance.2da file from \source\2dasource.zip (Bioware had to change it to add their Kobolds, Rats and Gnolls). 1. Copy the new appearances.2da file to the directory for your model and icons. 2. Open appearance.2da. 3. Go ahead and take a look at it. Scroll down until you get to the giant spider entry. You should see this: 158 Spider_Dire 2128 Spider_Giant... 159 Spider_Giant 2129 Spider_Giant... 160 Spider_Phase 2130 Spider_Giant...
4. These different entries describe the many creatures in the game. I dont show all of the columns here because there are too many. 5. Copy the Spider_Giant entry and paste it at the bottom. 6. Modify the entries as appropriate for your new creature.
Column Description Values The first column is the creatures ID LABEL The name of the model as it appears in the toolset list. If you put it in quotes you can have spaces and commas. Example: "Cat, Domestic" STRING_REF Name of the model referenced in dialog.tlk. If you put **** in this space it should use your Label in place of the string reference in dialog.tlk. NAME The internal label for your creature. Use an underscore _ instead of Notes The appearance.2da file layout is derived from a compilation by Kinarr Greycloak. Notes When they added the new monsters, Bioware created a lot of new lines in the appearance.2da file for Reserved and User slots. They did this to keep from totally breaking any newly created creatures. To update your 2da file, you can simply put your new creatures into the user slots in the same slots where they were before. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 99 01/06/200J Column Description Values spaces. If this is for a custom character (i.e., a real PC model), this needs to have the value Character_model. RACE The file name of the model without the extension. Example: c_crab If this is for a custom, dynamic character (i.e., a real PC model), this needs to be a single character corresponding to the race identifier (e.g., h for human, e for elf, etc.). ENVMAP That's the environment map applied to the alpha channel in the model's textures. That's the environment map applied to the alpha channel in the model's textures. Default' is for PCs and any other creature with reflective armor. 'evmap_irrid' is only used by Stag Beetle and Umber Hulk and gives them a rainbow hue effect. '****' no map, this will give you transparency on your model - black in the alpha channel will be completely transparent. BLOODCOLR Color of the blood the creature spills when hit. R Red W White G Green N - ? Y Yellow MODELTYPE The type of the model for determining which animations to use. P = player animation type F = full animation (humanoid models, generally). They use the same animations as PCs like 'run' and 'walk'. They have a supermodel that's an a_ba variant just like PCs. Example: Succubus S = simple animations (most animals have this, meaning they really only have their taunt animation plus attacks). These models use only creature animations like 'crun' and 'cwalk'. 'S' models cannot equip weapons. Example: Wolf L = large creature animations (Balor, Giants, etc.). They use the same animations as 'S' models (crun and cwalk, etc.) but they CAN equip weapons. These are for 'humanoid monsters' but are not necessarily large creatures. Dragons, for NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 100 01/06/200J Column Description Values example, are 'S' type because they don't wield weapons. WEAPONSCALE Amount to scale weapons so that they are appropriately sized for use by this model. Human = 1 on all scaling -- adjust as necessary for creature size WING_TAIL_SCALE Amount to scale wings and tail so that they are appropriately sized for this model. Human = 1. Model needs to have a wings or tail node to use this. HELMET_SCALE_M Helmet scaling for male. Human = 1 HELMET_SCALE_F Helmet scaling for female. Human = 1 MOVERATE Movement rate of the creature Defined in creaturespeed.2da (NORM, FAST, etc.) WALKDIST RUNDIST I am not sure on what values to use for these two but I think they set the speed of the walk and run animations.
PERSPACE Personal space: How much space the model will allow around it.
CREPERSPACE I think this is Combat ready personal space: Amount of space around the model in combat.
HEIGHT 1 is the only value Bioware uses. HITDIST PREFATCKDIST These next two values determine the spacing between models during an attack and maybe which animation is used.
TARGETHEIGHT This model's impact point. This tells characters where to aim at the model. H high L low ABORTONPARRY Not sure what this means but most animals are 0, everything else 1 RACIALTYPE This is the race of the model as shown in the creature properties. Appears to be from racialtypes.2da but the order is wrong. HASLEGS Does the model have legs? 0 for no 1 for yes HASARMS Does the model have arms? 0 for no 1 for yes PORTRAIT The portrait reference of the model. Refer to the NPC portrait tutorial above. SIZECATEGORY The size of the model. References creaturesize.2da PERCEPTIONDIST The creatures perception range. FOOTSTEPTYPE Which sounds to use for footsteps. References footstepsounds.2da SOUNDAPPTYPE Some specific creature type sounds. References appearancesndset.2da HEADTRACK Does the models head follow the 0 for no NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 101 01/06/200J Column Description Values current speaker? 1 for yes HEAD_ARC_H Horizontal range of head tracking In degrees. HEAD_ARC_V Vertical range of head tracking In degrees. HEAD_NAME The name of the head node used in the model. Example: head_g (for PCs) BODY_BAG What gets left on the ground after the creature dies. References bodybag.2da TARGETABLE Can you target the creature for attack or interact with it? 0 for no 1 for yes
7. Now, extract the model for the giant spider (c_spidgiant.mdl). It is in data\models_01.bif. 8. Use NWNMdlComp to decompile the binary model file (see the directions in the Weapons section of this tutorial). Rename the file ASCII model file to c_crab.mdl. 9. You need to rename the Aurora base item from c_spidgiant to c_crab. While you are at it, rename the internal model reference for the texture that it uses from c_spidgiant to c_crab. We will create a new texture in a moment. You can do this either by editing the ASCII model file directly or by opening the model in your modeling tool and doing it there. This is not a tutorial on modeling, per se, so I leave that as an exercise to the reader (well have lots of opportunities to look at the model file later when we start to turn the spider into a real crab). The simplest way is to open the .mdl file in a text editor and do a global rename. 10. Now, extract the texture file for the giant spider (c_spidgiant.tga). It is in data\textures_01.bif. 11. Rename it to c_crab.tga. 12. Open it in your image program (Picture Publisher for me). 13. It is made up of variations of black and green. While it is too early to start repainting it to a crab shell, lets at least make it orangish so that it does not look like a lime green, nuclear, glowing crab. I did this by making it greyscale, turning it back into an RGB image, and then shifting the hue of the greyscale image to orange/red. This is what it looks like. Still makes a pretty sad looking crab but be patient.
F|gure 38 - Crao lexlure 14. Back through the same routine. Load the new 2da file, model, and texture into your hakpak. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 102 01/06/200J 15. Load up your module in the Aurora Toolset. 16. Point it at your hakpak. Save, close and reopen your module. 17. Now you can create a new crab using the Creature Wizard. You no longer have to create a vermin.
It looks a bit like a horseshoe crab now although it still has a spiders portrait. We will tackle the portrait next and then we will get to actually turning our orange spider into a crab.
Part J: CreatIng the 20 PortraIt Lets make the creature portrait. There really isnt anything new to show you here. The format for creature portraits is the same format as PC and NPC portraits. Go back and review that section if you cannot remember it. Even the naming standards are the same. In our case, our portrait files are po_crab_<size flag> where <size flag> is h, l, m, s and t. I am not a big graphic artist with 2D images. But I can use Picture Publisher fairly well. Here is a trick you might find useful (at least if you are modeling real-life animals). Find a photo that works well for you. Rotate, crop and resize it as I showed you earlier to the Huge size. Dont forget to leave the blank space at the bottom (the Huge portrait is 256 x 400 with another 112 pixels at the bottom). Now, the problem is, the standard Bioware portraits are drawings. A photograph looks out of place. But all is not lost. Many good drawing programs have filters. I applied a watercolor filter to my photograph, play with the controls a bit, and it gives me something that looks like a drawing. Here is mine:
F|gure 39 - Crao Porlra|l (luge) Now create 4 more versions of this in different sizes. Edit portraits.2da to make the new portrait available and appearance.2da (the PORTRAIT column I indicate above) to tie it to your new creature. Then add all six files to your hakpak and bring it up in your module. Now you can change the portrait for your creature to this one.
F|gure 10 - Crao W|lr 20 porlra|l Seems like a lot of work just so I can call an orange spider a crab (dont make me have to tell you to be patient again).
So why did I go through and show you all of this as a starting point? Because the steps I have just gone through are what you need to do to retexture an existing model. Using this process, I can create variations on the existing Orc, Kobold or Minotaur models to make Sarumans Orcs of the White Hand, to make Kobolds dressed in princely garments, or Minotaurs with chain mail. With good 2D texturing skills, you can make some very unique monsters without having to know 3D modeling. Maybe not the best approach for making a crab but it works well to create variations on an existing monster.
Part 4: CreatIng the J0 |odel While you can create a lot of different models with the basic steps in Parts 2 and 3 of this tutorial, this isnt enough if you want an entirely new creature that does not have the same shape as an existing creature. I want a real crab, not an orange spider. So now we have to tackle our model. To do this, you need to know the basics of 3D modeling, including a basic understanding of animation. If you dont have that yet, go get it Ill explain what NWN needs in terms of animation and nodes but you wont learn the details of how to do animation, keyframes, or Inverse Kinematics here. The |odel Creature models for NWN are meshes, like other NWN models. However, they are segmented: 1. Load the crab model into gmax by opening the Import MDL sub-menu in the NWN MDL Tool pane (not the File | Import function) and using the Browse pushbutton to select the ASCII file you created in Part 2.
F|gure 11 - Tre grax pop-up lor NwN 2. You can minimize the MDL window after you open the file. Take a close look at the model you loaded. Notes Watch those polycounts (this is low-poly modelling, remember?) The CEP recommends the polygon limits be assessed by the type of creature: Herd/Swarm Creatures: 700 polygons A herd/swarm creature is any creature that will typically be deployed in numbers greater than 12. Examples - Kolbolds, Giant Rats, Goblins Group Creatures - 1200 polygons A group creature that will appear in numbers greater than 4 but less than 12. Examples: Orcs, Ogres, Dire Bears Single Creatures - 1500 polygons A single creature is any creature that will typically be deployed in numbers less than 4. Examples: Elementals, Iron Golems Uniques/Rares - 3000 polygons A unique creature is any creature that will typically be deployed alone with zero to very few attendant creatures. Examples (figurative): a daemon prince, a greater celestial, an ancient dragon Notes If you reskin a creature, be sure to remove its animations and set the supermodel to the parent (original creature model). More on this in the section on animating but for now do this: In max or gmax, set the supermodel parent on the base object and delete all of the existing animations. If you are editing the ASCII model file by hand, delete all of the newanim lines and insert the following: supermodel <child> <parent>. In our case <child> would be c_crab and <parent> would be c_spidgiant. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 106 01/06/200J Note the base object this is used to link attributes to models (animations, etc.). The crab is a child mesh of the base. If you completed Part 2 already, the name of the base should already be c_crab. You will see that the model has one mesh object for each leg section (24 in all), one for the main body, one for the thorax, etc. Anywhere you want a creature to be able to bend or move independently, you need a separate mesh. If you select these parts you will find their naming standards are not specific to the model. This is how NWN re-uses animations. Parent animations refer to part-names. In this case, the spiders legs are Capsule01, Capsule02, etc. If we leave those names alone, we could use some of the spider animations for our crab without having to duplicate them ourselves. Unfortunately, we will find after playing with the spider animations that they are a little awkward to use for our crab. But we will use them as a base for some of our animations. More on this later. So with that background, put those modeling skills that you learned elsewhere to use: Shorten and fatten up those legs. You may find it easier to do just one set on one side and clone them for the opposite side. It makes modeling and skinning go faster. Clone and add an extra set of legs (crabs have 8 legs and 2 arms, spiders have 6+2). Squash the bulbous body into a crab shell. Again, you may just want to do half the shell (make sure you can cut it exactly in half on a plane straight through the body) and then clone/mirror it to make the other half. This cuts down on texture space and on the actual work you have to do. Model a set of pincers for the front legs. Even though I made them different sizes, I used the mirror/clone trick to duplicate them again. When we are done it should look something like this: Notes This description of rigid, parts-based models is not 100% correct you can also do models based on a skin and bones more on that in sub-section Part 9: Skin and Bones. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 107 01/06/200J
F|gure 12 - Vy crao |r grax
Now, before you proceed, I can guarantee you have a lot of world transforms in your model. These dont export to NWN. So select your entire model, and break apart all of the pieces (unlink them ). Then, with all of the sections still selected, reset the transforms and collapse the new transform onto the stack for each of the pieces. This way you will not have messy problems with your parts being exported in stretched shapes or partial rotations (if your creature explodes when you export it and then import it into the game, you probably didnt ResetXforms properly). Dont reset transforms on the Aurabase object! This will mess up your animations scaling when you export your creature. For more information on ResetXforms, refer to the tutorial on Weapons. At this point if you are using 3ds Max, it is a good idea to do an "STL Check" (sorry, this is not available for Gmax). This will do a simple sanity check on your objects and faces and look for things like unclosed edges, duplicate polys, or inverted polys, etc. This helps especially to track down problems that show up only in the game. TexturIng Texturing and animation are actually more difficult than the 3d modeling itself (well, I find it to be true although admittedly my 2d texturing skills are limited). If you have made it this far you are less than one third done so dont get too excited by all the praise they will shower on you on the Custom Content forum for your model at this stage. The process for texturing is the same as it is for other models. Try to maximize your use of the space on the texture file. Try to avoid NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 108 01/06/200J unnecessary work and unnecessary space in your texture file by mirroring parts of your creature, etc. In my example, since the crab is almost completely symmetrical, the texture only includes: half the top shell half the abdomen one leg segment, top and bottom one antenna one eye stalk one pincer one main claw
Notes I would suggest a 24-bit .tga file in 512x512 pixels. You can create a DDS file from it when you are done and a lower-resolution .tga file for older video cards. You should put all of the body parts into one texture file although really large and/or unique models (like the dragon) actually use 2 or 3 texture files of this size. Not that using the alpha channel for transparency only works sporadically on creatures it appears to be a bug in the game engine. Every 13th creature of the same type in one area works. Weird, eh? However, you can set an alpha transparency on any or all objects/nodes within a model. In the ASCII model file it looks like: Alpha 1 # full opacity Alpha 0 # full transparency Alpha 0.5 # half transparency Check the shadow creature for an example. This does not allow for the detail that an alpha mapped texture would provide, but it will work for a simple transparency/ghost-like presence. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 109 01/06/200J
Part 5: AnImatIon Now it is time to animate our crab. Let me start by describing how animation works and then how animation in NWN maps back to animation in 3dsMax and gmax (collectively, Max), the two most common tools for this. This is not a tutorial on Max animation (use the references at the beginning of this tutorial to build your knowledge in that area). What I will try to do is link common animation concepts back to NWN as part of this background discussion. This should help you map what you know to what you need to do in NWN. AnImatIon Think of an animated film of a crab raising one of its legs. Not an exciting film, but a film nonetheless. It would consist of a series of still pictures where the crab moves its leg a small bit in each successive picture until the leg is raised up into the air. Each picture is a frame. If you run the frames back in quick succession, your eyes will perceive a moving picture. Keyframes Most 3D tools (including the Max tools) support a single animation sequence made up of keyframes. Keyframes are similar to, but not quite the same, as the frames in this animated film. Think of keyframes this way: to have your crab raise its leg again with keyframes, create an initial keyframe with the leg down and a second with the leg raised. Max knows how to interpolate all of the points of motion between A and B to create the actual frames you need (the one you had to do by hand in the previous paragraph). This is called tweening. So using keyframes is similar to - but more efficient than - drawing every single animation frame in sequence you only need to worry about the start and ending points. Now, when you animate a scene in Max (this is what your creature - sitting there like a lump - is: a scene), you are creating a single sequence of keyframes. As Max runs through your animation sequence, it runs as a single, continuous animation or movie. NWN is different: it supports a series of animation sets and does not want a continuous movie. There are a limited number of sets available (about 154 for PCs and Full creatures and 42 for Simple and Large creatures). You don't usually have to tell the game to use one set or another (like run, walk, etc.) it will call the appropriate animation set on its own based on what is happening in the game. Some are user-controllable through scripting (like greeting) so you can force the animation to occur when you want it to (too bad they all weren't scriptable). What this means is that to animate a creature in Max, you need to create the standard set of 42 or 154 animations depending on the type of creature. So how do we reconcile Maxs movie with NWN sets? What we do is allocate a different block (or range of keyframes) of the continuous Max movie to each of the NWN animation sets.
Hint The best way to get a good feel for how this all comes together is to import an existing model and play around with it until you get a feel for how the animations are tied together. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 110 01/06/200J
The import scripts do this translation: they load the NWN animations into the one big animation in Max and put spacers of 10 frames between each adjacent set or block. Then they create a list of the animations and tie it to the Aurabase object. This cross reference gives the NWN title of each set, plus starting and ending keyframes for each set. Think of it as a big array of pointers into the single Max animation. When you click on the Aurabase you will see this array in the Edit tab. You can modify the Max animation independently of the Aurabase array. For example, you can delete all of the array entries from the Aurabase. The Max keyframes will still be there, but they would not get exported any longer because the export scripts dont know about them. But you could still view them in Max. Vice-versa, you could delete the keyframes. The animation sets would get exported but they would be empty so your creature would be motionless. A final point before we move on: one frame before and after each animation set the import scripts put a 'static' keyframe (the 'rest' position of the creature). This is to keep the last and next animation set from impacting this one (Max interpolates animations assuming a transition from the last populated keyframe to this one. Without these static keyframes you would have all sorts of interesting little transition motions carried over from the last animation set). 8asIc KInematIcs Before we reconnect the pieces of our crab and animate it, I want to talk about kinematics. Kinematics and animation are not the same things. Weve talked about animation as the process of generating frames/keyframes for your model so that it performs the actions you want it to perform. You dont have to pose your character for every frame like they used to do in the golden age of cartoons NWN can interpolate many of the intermediate frames from a reduced set (hence the name key frames). But you need to set enough to firmly define the motion you want your model to reproduce. If that is animation, what is kinematics? Kinematics refers to the techniques you use to move the parts of your model around to create the keyframe poses. There are two main types of kinematics: Forward Kinematics (FK) and Inverse Kinematics (IK). You will typically use both FK and IK when animating a model so you need to understand both. Let me try an analogy: if you pick up your lunch box (you know, the Star Wars one with the picture of Natalie Portman on it?) in your left hand and run down the street, what does your lunch box do? Provided you dont drop it, it should follow you down the street. Why? Your lunch box is attached to your hand, which is attached to your arm, which is attached to your body, which is running down the street. That is FK you move the parent object (your body) and the chain of relationships moves the lunch box (the child object) with it. Now set your lunch box down and grab the door handle of that passing car (youre still out on the street, arent you?) What happens? In this case, the car moves your hand along with it. This stretches out your arm, pulls your shoulder forward, and eventually drags your body along with it. At least until you smarten up enough to let go (dont try this at home this test was conducted by professional Run Walk Space Space Greeting Notes The Transform Controllers also need to be set for each object before you start to animate: Position: Linear Position Rotation: Linear Rotation (Smooth should work too) Scale: You dont really need this since scaling is not supported in the game engine If you dont do this you get strange behaviour like 360 degree rotations even if you only move a body part a small bit. Max
ElIgIo Sacateca Page 111 01/06/200J stunt people). That is IK you move the child object (your hand) and it moves its parent and so on up the chain to try to accommodate that motion (until your entire body moves if necessary). That is how kinematics works. IK and FK are two sides of the same coin. Forward KInematIcs By joining the pieces of our model together we create an FK setup automatically. To do this properly, the pieces must be linked together in a specific order (from parent to child). In our case, what FK does is allow us to move one of the main pieces (a parent object) - like the crabs body - and have the other pieces move with it. First, set the pivot points of each piece to represent where the joint of the piece sits, and where you'd like the piece to angle from. You do this from the centre out (so the pivot points for the legs are at the top of the leg, not the bottom). Also, dont forget to overlap adjoining limbs a bit so that when they move you don't create gaps between them. First, focus on the main body parts. Ignore the other nodes (like hand, hand_conjure, etc.) for now more on those in a bit. Lets start by linking all of the main body parts together into chains to the base object from the extremities (in this case the crabs legs inward to its abdomen). The tip of one leg is linked to the middle piece. That middle piece is linked to the top, and the top piece to the abdomen.
Test it by selecting the abdomen only and transforming it (rotate or move). The legs, claws, shell, everything except the nodes should move with it. Note that this inheritance is only one-way; if you select one of the tips of the claws you will find that it detaches and moves freely without affecting its parent. That is because we have not turned IK on yet. Before we turn on IK, lets talk about those other nodes (e.g., head, and head_conjure). The nodes are not actual geometry they are used to indicate to the game where to place certain items or visual effects. Different types of creatures have different nodes. Here is an example if you were modeling a humanoid shape. The parts that contain actual geometry have a _g after them. The parts that are used as place nodes (e.g., where to put a sword in a models hand) do not have _g. You should be familiar with the geometry list from the tutorial on armor modeling: NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
How does the hierarchy work in this case? Just as with our crab, the extremities must be linked upwards toward the parent which in this case is the torso_g (for our crab it was the abdomen, GeoSphere01). To finish the linking, this parent must be is linked to the rootdummy. For example, the hand is linked to the forearm, the forearm to the bicep, the bicep to the torso, the torso to the root dummy. The head node is parented to head_g. The headconjure node is parented to the model base. So is the handconjure node. The lforearm node is used for placing a shield. It is parented to lforearm_g. The lhand and rhand nodes are for weapons. Simple monsters do not have hand nodes and cannot wield weapons. Large monsters do not have a lhand node and as a result cannot dual wield (the rhand node works fine though). These nodes are parented to lhand_g and rhand_g respectively. The impact node is for animations of being struck and doing damage. It is parented to torso_g. Rootdummy is parented directly to the model base. As I mentioned, not all models have all of these nodes. Here is the list: Name Description Player Full Simple Large headconjure Used for casting animation
head Used for casting animation
Hints How do I know where to start when building my hierarchy? There are two principle you should follow: 1. Follow a logical progression from parent to child (e.g., torso to arm, to forearm to hand, not torso to hand to arm to forearm). 2. Arrange so that parent objects typically move less than their children. In this example, the torso makes a better root object than the hand. As a final note, if you want to inherit animation from another model (more on this later), you must have the same linking hierarchy as that model. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 11J 01/06/200J Name Description Player Full Simple Large handconjure Used for casting animation
impact Combat animations/ damage
rootdummy Controls height/movement relative to the ground. By moving rootdummy up and down, you will make your creature move up and down appropriately.
rhand Holding weapon
lhand Holding weapon
lforearm Holding shield
Make sure you have the appropriate nodes for your model and parent them accordingly. nverse KInematIcs Now let us turn our attention to IK. Inverse kinematics (IK) is not absolutely necessary when animating but it makes life a lot easier. It does the opposite of FK by having child objects affect their parents. It allows you to move an end body part and have it move the attached parts back up the chain. For example, if you want to raise a humanoid creatures hand into a salute with FK, you would need to rotate the humanoids shoulder into position, then the forearm, then the hand. With IK active and the right constraints you can just drag the hand into position and the rest of the arm will follow. In our example, you can move the tip of one of the crabs legs and it will bend and move the other leg segments to make a realistic pose. IK helps when animating the creature because it makes posing much simpler. You will need to experiment with it a bit while it may seem challenging to figure it out, I would not recommend working without it. IK and associated constraints are beyond the scope of this tutorial (it is more general modeling stuff). But if you want to use IK, now is a good time to set it up. Here is a good tutorial on IK (http://www.computerarts.co.uk/tutorials/type/tutorial.asp ?id=21544). There are two ways to use IK in a modeling tool like 3dsmax: interactive IK or by using IK solvers. Interactive IK is the most basic form and with it you use IK to move body parts around as you go through the key frames of your animation sequence hence the term interactive. After you have set up your FK chain (linked your objects) and set constraints on the joints, you can start Interactive IK from the IK button on the Hierarchy tab. This allows Notes Sorry, Gmax doesnt do full IK. It does include a limb-solver IK but you can only link two objects together with it (e.g., thigh and shin). Youll have to make do with this and FK. If you are going to inherit your models animations from a supermodel, IK is not required at all (more on inheritance in a few paragraphs). If you do set up IK, you can turn it on and off (use the Interactive IK button) to achieve the desired result. Don't attempt to change the inheritance settings of your geometry - they will animate in max fine but won't export (skewing them completely in-game). Each part in a model has a specific name. To use a supermodels animations, you must use the naming scheme of the parent. The animations are not attached to parts of the model; they are attached to the name of that part. A common mistake you will see with creature hakpaks is incorrect or duplicate usage of the animation supermodel. Some people dont use a supermodel and include the same animations in each variation of a creature (e.g., different horse models from Shetland ponies to Draft horses can use the same animation set with only a few differences). This dramatically increases the size of your models because the animations are typically 70-80% of the bytes in a creature model. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 114 01/06/200J you to move your pieces around using the IK mechanics. To use FK, I generally turn Interactive IK off. The alternate to Interactive IK is using IK solvers. With IK solvers you set the start position and the goal and let the IK solver figure out how to move the scene objects from start to finish. It is much more complicated to set up but it can be much easier to use when done properly. Look for a good tutorial on bones and IK solvers for details. Bioware used the Inverse Kinematics in 3dsMax version 3.1 to perform their animation. The v3.1 animation capabilities (also available in 4.x) can still be found in Gmax and higher versions of 3ds max. This is limited to Interactive IK. This technique is not as good as the HI-IK Solvers of 4.x+. By good I mean HI-IK solvers are easy to use and produce natural results when set up properly (do not underestimate the work required to set them up). However, the NWN engine only reads key frames while HI-IK solvers minimize the number of keyframes in a scene. Consequently HI-IK solvers do not work directly with the NWN engine. The HI-IK Solvers can be used but they require 'baking' the object to calculate and embed the keyframes. Scooterpbs tool has the ability to do this now (although it requires some tweaking after export to make it really look good). nherItance The simplest way to animate your creature is not to animate it at all (or to animate as few actions as possible). What do I mean by that? NWN has the ability to inherit animations from a parent object. If you construct your model with the same objects as a standard model, with the same pivot points and object names, the same size and approximate shape, you can set that standard model to be the supermodel for your creature (you set this feature on the base model object). When you do this, NWN will use the supermodels pre-existing animations to control your model. There are two main families of model type that define their allowed animations: Player (which includes the Full type from appearance.2da) and Simple (which includes Large). Player animations cover the full range from spell casting and weapon animations to non-combat animation. There are 154 animations in a player model. Player animations are generally used for humanoid creatures (refer to the description of appearance.2da which defines Model Types). Simple animations are for creatures and they cover a much smaller range. Most are combat, walking and running animations. There are 42 animations in a simple model. The basic models are arranged in a hierarchy that looks like this:
a_ba_casts a_ba_med_weap a_ba_non_combat a_ba a_fa Player types Full types Simple types Large types NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 115 01/06/200J
F|gure 15 - Ar|ral|or l|erarcry What does this hierarchy show me? The NWN inheritance model means each creature model can have a superset that defines some or all of its basic animations. That superset can, in turn, have its own superset that defines some or all of its basic animations. And so on. The Player (P) model types are generally used for player characters. They have as a superset a basic humanoid model (a_ba) that only defines special weapon animations (like 2-handed or 2- weapon animations). This model, in turn, inherits non-combat animations such as drinking and saluting from another model (a_ba_non_combat). Which inherits additional weapon and combat animations from a third model (a_ba_med_weap). This in turn inherits spell casting animations from the final model (a_ba_casts). A variation on the Player model type is the Full (F) model type. This is generally used for humanoid creatures such as the dryad, etc. They have their own basic model that defines special weapon animations (a_fa) but this file inherits the same non- combat, medium weapon, and casting animations as the player types. Simple (S) types (e.g., cats) define their own unique set of 42 animations (there is no base animation because they are too unique). Some Simple types inherit from another Simple model although this is typically only found in families of creatures (e.g., the Lion inherits from the Dire Cat). Large (L) types are special as well (these are monsters like demons that have Simple animations but can wield weapons). Like Simple types they usually define their own unique animations although they, too, can do limited inheritance. But Large types can wield weapons? How does that work? If you look at the table below there are no weapon animations specific to Large types. The answer lies in a special rhand node you will find in these models. Armed Large type models simply attach a weapon to that node and then go ahead and use the same combat animations as a non-equipped character. So your Frost Giant attacks in the same way regardless of whether he is using his fists, a club, a spear or a toothpick. There are exceptions to this hierarchy. Some Full model types override some of the inherited animations (e.g., the Dryad changes some of her animations from the normal human type). There are a few other base models including a_da that are used for special models (a_da is used for the dwarves because the human animations do not scale so well to such a small size). Below is a table that includes the labels of all of the allowed animations and whether or not they are applicable to certain model types. It also includes the flag which can be used to invoke this animation as a scripted event.
Name Description Player Full Simple Large Flag A_ba_casts
conjure1 Conjuration
conjure2 Conjuration
castout Cast out, beginning
Notes Some people point their model at a supermodel but forget to take their animations out. To remove the animations from a model you need to remove the animations pointers from the model base object (you delete these by selecting the model base and going to the rollup in the edit tab) and you should delete the actual animation keys (by selecting all objects in the scene and deleting all the keys at the bottom of the screen). NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 116 01/06/200J Name Description Player Full Simple Large Flag castoutlp Cast out, looping
castself Cast on self, beginning
castselflp Cast on self, looping
castup Cast up, beginning
castuplp Cast up, looping
castarea Cast area effect, beginning
castarealp Cast area effect, looping
victoryfr Victory
ANIMATION_FIREFORGET_VICTORY1 victorymg Victory
ANIMATION_FIREFORGET_VICTORY2 victoryth Victory
ANIMATION_FIREFORGET_VICTORY3 castpoint Cast by pointing, beginning
ElIgIo Sacateca Page 122 01/06/200J Name Description Player Full Simple Large Flag cgetmidlp Get middle, looping
cspasm Spasm
crun Run
ccturnr Combat turn, right
cdisappearlp Leap upward, looping
Note one more exception: the a_fa model does not include a plslasho animation. I assume this is an oversight. You can accompany each animation with a list of events. These typically trigger sounds or other effects to make the animation livelier.
Event Description snd_footstep Footsteps (depends on tile surface) hit Hit (depends on weapon type and armor hit) cast Spell activates (depends on spell) snd_hitground Creature knocked down blur_start Start of attack, motion blur (may depend on the blur effect of the weapon model) blur_end End of attack, motion blur (may depend on the blur effect of the weapon model) draw_arrow Sound of arrow drawn draw_weapon Sound of weapon drawn parry Parry (depends on weapon types)
TIps and 8est PractIces Those are the basics that you need to know about how NWN requires you to handle animations. I dont cover animation in detail (walk cycles, etc.) What I will do is include a few hints and tips (most of these come from Jupp who does a lot of work on the City of Doors Initiative and Haelix). When choosing whether to use inheritance or to model from scratch, you really need to look at the model and how well it maps to an existing model. If it is close (e.g., a humanoid), then you are best to start with a supermodel and customize only those animations that truly lend a unique look and feel to the creature. If it is not close, it still helps to see if you can map animations to specific parts of your model. For example, scooterpbs 3ds Max plugin has facilities to load animations from a second model file and attach them to parts of your model. Alternately, you can import the creature whose animations you want to use in gmax alongside your model. Then copy the base object over to your object. You now have a list of all of the animations you need and starting timeframes. As a third option, start with a blank slate. Import the creature whose animations you want to use. Then import your customized model along side it. Attach the parts of your model to the NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 12J 01/06/200J corresponding parts of the base creature. Delete the base creatures parts and you will have your new model with the full animations intact to use as a starting point. Once you have worked out your starting point, it is time to animate. Select the base helper object. Select the edit tab and it should show the animation rollout. In that rollout you will see a list of all the relative animations. This should be your starting point. The basic pattern for animating a specific animation sequence is this: 1. Double click to select the animation sequence you want to work with. The times will be advanced to the start and end of the animation sequence. 2. Copy the at-rest keyframe to the beginning of the animation sequence. This is the keyframe of the model in the default, at-rest position. 3. Copy the at-rest keyframe to the end of the animation sequence. By putting the same keyframe in the first and last positions your creature will animate smoothly from rest, go through the motions, and then come to rest in the same place again. All of this without jerky transitions. 4. Move out to the first keyframe you want to animate. 5. Turn on the Animate button and move all the needed parts to position the creature for that keyframe. 6. Go to the next key and repeat 5 until you are satisfied. 7. Go back to the start and play this sequence. If there are anomalies in the movement correct them one keyframe at a time It helps if you take another model from NWN and import it into your scene together with yours put them side-by- side (obviously, choose a model that comes as close to yours as possible in shape and movement). Now you can watch the animations together to get an impression of what each sequence is like. Here are a few tips on creating clean, small animation files. Check these after you have finished animating your creature and delete invalid keys: Some objects should have no animation keys attached to them. These are: The aura base object Headconjure node Handconjure node Head node Impact node Any control objects you have created that are not part of the geometry Notes Using the at-rest key for the start and end of the sequence does not work for some instances (generally looping animations) such as walk and run animations where you dont want them to start from rest. Similarly, the knockdown animation starts with the creature in one pose and ends with it on its back. Be sure to use non-deforming animation (no skins or bones other than basic FK and IK systems unless you can strip the data out and be left with basic geometry and keyframes before exporting). Dont forget to add events to your animations (or use the ones in the base animation you are borrowing from). Notes Control objects can make your creature easier to pose. Under the Create tab select Helpers and then the appropriate type: The Point helper is usually used to create levers to pose your creatures limbs. Create one of these objects, place it near the end object of a limb (say a hand or foot), and then make the limb its parent. This gives you an extra degree of freedom when moving using IK. The Dummy helper I use as a visual reminder to create pegs to help me ensure parts of my model arent moving when I dont want them to (e.g., keeping your creatures feet from sliding around on you). NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 124 01/06/200J The other nodes (rhand, lhand, and lforearm) can rotate independently of the hands and forearm if necessary to keep the attached weapon oriented properly. Only certain key types are valid: Rotation keys are valid and most objects use them (except for the previous list) Movement keys are usually only valid for rootdummy. Since it is the parent of all of the other objects, move rootdummy around to move your entire creature. Everything else is a rotation around rootdummy. If you have a shrinking-expanding object that moves like an accordion (well, only angry battle-attack accordions move on their own but you know what I mean - where segments stretch and contract) you may be able to violate this rule (may be able to I havent tested this). Scale keys are invalid. The game engine does not use them.
Part 6: Soundsets Now that we have our monster moving, it is time to get it talking. Review the section on voicesets. Creature voicesets use the monster template and follow all of the rules in that tutorial. By adding a custom voiceset we can create the clicking of the crabs claws in anger, distress, etc. Before we close out on this section, let me make a distinction between creature appearance soundsets and voicesets. We talked about voicesets earlier in this tutorial and that information applies to creatures as well. Appearance soundsets are another beast entirely. They reflect the ambient sounds a creature makes an example would be the sound a creature makes if you hit it with a sword. For the sake of completeness, here is appearancesndset.2da. You only need to modify this file if you want to add a new type of sounds to accompany a creature. Otherwise, pick an appropriate row and use it for your creature in appearance.2da.
Column Description Values The first column is the set ID LABEL The label for the sound set. ArmorType Material that the armor is made of, reflecting the sound it makes when struck.
WeapTypeL Left hand weapon sound. References weaponsounds.2da. WeapTypeR Right hand weapon sound. References weaponsounds.2da. WeapTypeS Slashing weapon sound. References weaponsounds.2da. WeapTypeClSLW Claw (not sure which attack). References weaponsounds.2da. WeapTypeClSH Claw (not sure which attack type). References weaponsounds.2da. WeapTypeRch Reaching weapon sound. References weaponsounds.2da. MissIndex Sound of weapon missing. References weaponsounds.2da. Looping A looping sound that plays when the creature is near. If you point to an entry with a looping sound you will get this sound regardless of what other parameters you set in the Aurora toolset. This is mostly used for spooks. FallFwd Sound that plays when the creature falls forward.
FallBck Sound that plays when the creature falls backward.
Part 7: The Creature 8lueprInt To give your creature appropriate statistics, skills, feats and special abilities, you need to understand how to create a custom blueprint. A blue print goes into a specific module. Take our crab and all of the files we created (2da files, portraits, etc.) and put them in a hakpak. Attach the hakpak to your module. Create an instance of your creature in the Aurora toolset (like we did in Part 1). From here you can set the portrait (from Part 3), the voiceset (from Part 6), the description, and the attributes of the creature. Now save our crab by exporting it as an .erf file (Exported Resource File). It can now be packaged together with your hakpak and distributed to others to use (do not load it into your hakpak a .erf file is imported into the NWN Toolset separately using File | Import)
Hint Be careful with blueprints. As long as people use your hakpak intact, blueprints are a great way to create blueprints easily using your weapons. However, if you mix and match hakpaks, dont import old .erf files into your modules and expect them to work. The internal references get mixed up. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 127 01/06/200J
Part 8: 0anglymesh Danglymesh is used to create neat effects like hair that sways when you move and flags that blow in the wind (and Aribeths jigglyness but we wont talk about that here. Much.) You achieve it by adding a Flex modifier to your editable mesh in 3dsMax or Gmax. Once you have added it, select the Flex modifier. With it highlighted, you can adjust the flex parameters: 1. Period how quickly the object moves and how fast it comes to rest. 2. Tightness how much tension there is in the object restricting movement. 3. Displacement how far the object moves. This value corresponds to the Flex parameter in Max. It represents the amount of the flexed animation that is used (the amount of motion and factors like tightness determine the extent of the flexed animation. A setting of 1 causes the flexed animation to occur unmodified; higher settings cause unnaturally high amounts of stretching, and lower settings cause diminished stretching. The next step is to paint the weights of the vertices of your mesh to indicate how much each vertex is affected by these jiggly parameters. Drop down the detailed parameters of your Flex modifier and choose the first one. Each of the vertices will appear in a different color. Red vertices are not affected by the Flex modifier much if at all. Yellow vertices are strongly affected and orange is somewhere in between. In the rollout menu you will see an option to paint the weights to change these colors. At this point there should be no weights associated with any part of the mesh so each vertex painted should appear as pure red. Set the following in the Weight Properties section: 1. Paint Str: -0.1 - all vertices you paint will be start to turn orange or yellow 2. Radius: select a radius that is small enough for you to see the entire brush 3. Feather: 0 Now paint the vertices you want to move with the Flex modifier. Generally, vertices close to a stationary object (say at the base of a ponytail) would be closer to red than those farther away (say at the tip of a ponytail). You have to export your model and import it into NWN to test these values. I would suggest editing the ASCII model file directly when testing instead of continually going back into Max to adjust and export. You can test danglymesh in the Aurora toolset (grab and shake the object to see how much it responds to movement).
Part 9: SkIn and 8ones Most of the NWN animations follow the simple rigid animation techniques we talked about in this section. However, NWN also supports a skin and bone system. The difference between a skin and bone system and rigid animation is simple: with rigid animation, we simply transform and rotate the rigid mesh objects that make up our creature. With a skin and bone system, we move the bones (a series of connected, invisible objects) and the bones actually stretch and deform the connected skinmesh to reflect the movement. In the case of rigid animation, all of the vertices in an object rotate around the pivot point of that object. In the case of a skin and bone system, the vertices of the skin rotate around the bones that they are attached to instead. Skin and bones systems are much more realistic if set up properly but they are also more complex to produce, more taxing on the performance of the game engine, and skinmesh objects do not cast shadows in the game. Scooterpbs export scripts for 3dsmax support bones and skin for your mesh models (sorry, Gmax does not). Here is some sage advice from Scooterpb on using them properly: You have to be careful to connect them to your model in a way that's going to be friendly to the NWN game engine. Scooterpb has fixed bugs with skin object import and export in every version of the plug-ins that released, and expect there to still be some set-ups that use skins that may not export properly. If you want to use bones, here are a few rules to follow: 1. Be sure you need bones. You can attach an HI-IK Solver directly to the component parts in your model - so if you're not dealing with skins, you probably don't need bones (i.e., animate the rigid parts of your model). Having said that, bones do behave slightly differently in the UI than parented meshes do, so you might want them to be able to use some of the more advanced properties (e.g., doing a full two-way character rigging with independently moveable joints and controllers). 2. Do not use a skin to attach a bone to a mesh if the mesh is going to behave like a rigid-body object. In other words, if it is not behaving like a skin (with multiple weights for different vertices), don't make it a skin. If you just want to have the mesh match the movement of your bones, parent the mesh directly to the bone. 3. Link the root bone of your hierarchy to the model helper object, just like any other part. Otherwise, the bones in the chain won't export. 4. If you are using skins, parent them to the model helper object ONLY. Don't parent them to any other part in the hierarchy. Doing so can crash the model viewer and probably will not work in the game either. 5. Pay careful attention to how you set up the hierarchy for your model if you use bones. If you set up a completely different hierarchy for your model because of your bone structure, the game engine will find it difficult to match up a supermodel to your model. This means you will not be able to parent your model to existing animations. Probably not a big deal for entirely new creatures because they often need their own animations. Warning HI-IK-exported animations often look totally wrong in the model viewer. The reasons have to do with the math that is used to represent rotation angles in the viewer. In any case, it looks right in the toolset and in the game. Note Do not confuse skinmesh with danglymesh. Danglymeshes do cast shadows. Skinmeshes do not. You get a danglymesh by adding a Flex modifier to an object. I covered danglymesh in section 8. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 129 01/06/200J However, if you are creating a PC or Full type creature, those 150+ animations will be time- consuming if you have to do them from scratch. If you are careful about how you match invisible bones to your supermodels animations, you may be able to get away with re-using the supermodel. Think it through beforehand. 6. If you make your creature from a skinmesh it will not cast shadows in and of itself. However, you can add non-rendering geometry to the model that will cast their own shadows (although they wont typically be animated and they wont match the skinmesh directly). 8atInthehat's Notes Here are Batinthehats notes on using skinmesh in NWN. Bat claims the information is by no means definitive, but Ive yet to see anybody do better or improve on it much. 1. Modeling the skinmesh The sort of blending you are going to use for the skinmesh should affect the way you model: If you are using Rigid vertices (vertices move with only one bone, looks less fluid but less of an impact on CPU performance) then you need to define each skinmesh 'segment' clearly or it will lose its shape when it deforms. In an arm for example the bicep should not sit straight on top of the forearm, you need some polygonal padding between the two sections. This will do all the deforming, and the overall shape of the bicep and forearm will be retained. NWN also supports four bones per vertex blending - this takes more out of the CPU but looks much more naturalistic - you can also be a little less stringent about modeling the joints correctly). So far I've not noticed any real slowdown when comparing rigidly weighted models with blended ones. 2. Chopping it all up If the skinmesh part is going to be influenced by more than 10 bones split it up into several chunks. I bisected the manticore at the waist and made the head, tail and wings separate parts as well. I haven't been able to get Scooters plug to export a skinmesh with 15+ skin bones without errors, so I generally play safe and stick to around 10 bones per part. Scooters plug probably supports more that this but I've not checked it out fully. With the Bio scripts you have more leeway - larger, more complex skinmeshes with up to 17 bones are possible. Chopping the model up is still a good habit to get into however, especially if you are creating variants. You don't want to spend ages re-weighting the entire thing if you are just going to be altering the head. 3. How does max determine where on the skinmesh the bone pulls? The size and shape of the bone is actually not that important - it only really affects the way Max draws the initial envelopes of influence. Basically any vertices on a skinmesh that are attached or weighted to a bone transform around the bones pivot point rather than the pivot of the skinmesh. If the vertices of the skinmesh are weighted to several bones they'll sort of average out their rotations/movements etc between the bones pivots, based on how heavily they are weighted to each individual bone. Think of the envelope as determining the "loyalty" of Hint You can temporarily turn off the skinmesh/bone link by turning off the Always Deform option in the Advanced Rollout of the skin. This allows you to shift the bones around or change the vertices in the skin without changing your entire model. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 1J0 01/06/200J the skin mesh to the bones movements. If you increase the concentration of the envelope past the actual bone, it will move as if the bone where longer/wider than it really is (depending on the concentration and the presence of other bones). 4. Prepping the mesh Center the pivots. Each part that you'll apply skinmesh to should be ResetXformed. Collapse the stacks on each skinmesh part & fix the direction of the normals. Everything needs to pass an STL check so drop the STL modifier on top of each part and cap all holes, make sure there are no loose vertices etc. Once everything passes an STL check you should collapse and link each part to the model base (or to another object that is ultimately linked to the base). Make sure that each skinmesh part has an individual name, or it won't render properly in-game. 5. Apply Skin Apply the Skin modifier to one of your skinmesh parts. Select Add Bone and add the relevant mesh parts as bones. For a simple lower body robe this would be the legs, shins, feet, pelvis. I usually add the nearest neighboring bones as well, i.e. the torso and let it influence the edges of the skinmesh; it makes the transition between individual parts more seamless. 6. Weighting the mesh There are two ways of weighting the skinmesh - you can either alter the position, scale, falloff, etc. of the envelopes to approximate each bones influence or you can collapse the envelopes entirely and paint the vertex weights by hand. For low-poly NWN models I find it easier to paint by hand it is a bit more time consuming but it causes less problems with blending. It also offers more control over the way the mesh deforms. Expand the Skin modifier and select Envelopes. Clicking on one of the greyed out bones in the viewport or in the rollout will display the envelope of influence. On an unmodified model these will probably be overlapping. If you switch your viewport to a solid view and turn on edged faces you'll see that each vertex within the envelope is given a color. The color of a vertex is a visual representation of the amount of influence the selected bone has over it. 7. Collapse the envelopes First thing to do is collapse the envelopes. Click on one of the circular radius control handles and either move it to the centre of the bone or type 0 in the radius part of envelope properties. Do this for the other envelope radius and for all the other bones.
Hints Okay now export the model to override and check it in-game, not just the toolset. Some common problems: Problem: Some vertices remain in the same position as the objects pivot-point and do not deform with the bones Solution: Could be several things but most likely the skinmesh part has too many controlling bones, try reducing it to 10. Problem: Skinmesh parts are all black, but when a texture is added they vanish. Solution: one or more skinmesh parts have the same name. Give them unique names. Hints The colors are different in different Max versions, but the closer to red the color is the more influence the bone has. So for example: A red vertex means that it moves only with the selected bone. An orange vertex means that it is about 50% influenced by the selected bone. A blue vertex means that it is only barely influenced by the selected bone. A vertex with no color means that the bone has no influence over it. NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 1J1 01/06/200J 8. Painting weights - first pass Select one of the bones and click on the Paint Weights button in the skin rollout. For the first pass of the weighting process it is a good idea to block the model out with rigid vertices (each vertex tied to only one bone) and check if it works without error in NWN. Sometimes rigid weights are all that is needed, though you might need to blend the weights if the model demands it or deforms badly. At the moment there should be no weights associated with any part of the mesh so any vertex painted will appear as pure red. But just to make sure for the next bone set the following in the Weight Properties section: a. Paint Str: 1.0 - all vertices you paint will be turned red b. Radius: whatever is appropriate c. Feather: 0 Now paint any vertices you want to move with the selected bone. Select the next bone and repeat the process. If you're using a model with existing animations you've got the luxury of checking out how the skinmesh deforms. The dusty was based on the a_ba_non_combat super and needed quite a lot of edge turning under the skin modifier before it looked alright. Once you've done the same with any other skinmesh parts check it in-game.
9. Blending weights - second pass Select a skinmesh part you've blocked out with rigid vertices, select Envelopes and in the Weight Properties section: Paint Str: 0.1 Radius: whatever is appropriate Feather: 0 Now it is just a matter of over-painting neighboring vertices until the mesh deforms in the way you want. Something to bear in mind with blended skins in NWN is that only 4 bone weights per individual vertex are supported. So tread carefully or horrible things will happen. Finally, let me add my own observations about skinmesh: 10. PC Skinmesh Refer to the tutorial on PC creatures for details on how to set up a PC model. If you want to use a skinmesh as part of a PC model, there are some rules you must follow: Parent the skinmesh(es) directly to the Aurabase object. The bones must follow the usual hierarchy so that they animate properly but the skinmesh ties directly to the Aurabase. This is because the skinmesh is not transformed directly by the animations it is transformed by its dependency on how the bones move. Any bones weighted into the skinmesh must appear before the PC nodes in the model hierarchy (more specifically, before the geometry-based PC nodes it is okay if the bones appear after pure nodes like headconjure, handconjure, and rootdummy). Because of this, you cannot use a skinmesh in place of a PC NeverwInter NIghts Custom Content CuIde vJ.0 Creatures
ElIgIo Sacateca Page 1J2 01/06/200J component piece it must be part of the main model pfx0 or pmx0. The hierarchy that works best for me is: Base object - Headconjure - Handconjure - Skinmesh(es) - Rootdummy - Bones - PC model nodes If you break this rule, you will get strange behavior where some nodes of the skinmesh get caught up in your geometry nodes and stretch out of proportion. How did I discover this? Blind luck. I happened to do my first model in this order so it worked. I did my second in a different order and it did not work. It took some detective work to figure out why. Here is the Wemic hierarchy chart:
ElIgIo Sacateca Page 1JJ 01/06/200J Custom Faces First let me define what I mean by a custom race: a custom race refers to a creature that you can play as a PC or use as an NPC. Custom races were not really possible until recently. To be more specific: you could create unique Non-Player Characters but not real custom races for Player Characters. For example, it has always been possible to create a custom monster model and use that model in a module as an NPC. The problem occurs when you try to use that model for a PC. The issue is that many of the features of the game engines character creation screens are hard-coded and not accessible to the end user. Some people have worked around this problem by using the SetAppearance() command from the counsole but this is kludgy at best. Halfelf and CODI have now released the NWN Character Creator (CC) (http://nwvault.ign.com/Files/other/data/1050041596353.shtml), a program that solves this problem. This is a terrific utility that essentially duplicates the functions of NWN character creator but it is fully driven by .2da files and features are not hard-coded. This allows you to add your own races with their own special feats and abilities and their own model files. Part 1: Custom Face Fesource FIles I wont talk about how to use the Character Creator any more than I discuss how to use the Aurora Toolset you can find those details in the CC documentation that Papermonk has written. But I will talk about the files you need to make it work. You can create custom races in several ways: Races that use existing models (like a Drow elf using the standard elf model), Races that use entirely new models (like a Wemic). Start by defining your race in appearance.2da if it isnt already there. All of the rules I discussed for creatures in the previous section still apply. In our example, we are going to set up the giant crab as a playable PC. I mean, cmon, everybody has dreamed of playing as a giant crab, havent they? FacIaltypes Next we set up the racialtypes.2da file to properly define our new race.
Column Description Values The first column is the set ID This must be sequential; CC gets upset if you skip numbers. LABEL The label for the creature. Typically set to the creatures name. Abrev This is a 2 letter abbreviation of the name. It should be unique.
Name This refers to the proper name of the creature (start with an uppercase This is a dialog.tlk reference number. Warning You need to change dialog.tlk. I know - this is a bad thing. But there is no alternative until Bioware comes up with a way to add new text strings into the game some other way. Sometimes you get odd behaviour in the character selection screen if you are using custom races in multiplayer mode. This is an inconvenience but does not affect the way the creature works in-game. NeverwInter NIghts Custom Content CuIde vJ.0 Custom Faces
ElIgIo Sacateca Page 1J4 01/06/200J Column Description Values letter). In our case Crab. ConverName This is the conversation-name; how would you refer to the race if something was made by them? Turn the name into an adjective. This would be Dwarven if it was a dwarf. But in the case of our crab, it remains Crab (Crabbbish? Crabby? Crabben? Crabilish?). It starts with an uppercase letter. This is a dialog.tlk reference number. ConverNameLower This is an entirely lowercase version of the previous. This is a dialog.tlk reference number. NamePlural
What do you call a group of your creatures? In this case, Crabs. It starts with an uppercase letter. This is a dialog.tlk reference number. Description
This is a description for the race. It should describe what the race is like, its feats and abilities. This is a dialog.tlk reference number. Appearance This refers to the line of their appearance resource entry in appearance.2da. This can refer to an existing model or to a new one.
StrAdjust DexAdjust IntAdjust ChaAdjust WisAdjust ConAdjust These lines all define the statistic modifications. These can be positive, negative or zero for no adjustment. Endurance Racial endurance value. Medium critters get a base of 30, small (e.g. Halflings) have 20. Favored This is the favored class. I think most crabs are closet monks. This is an index into the classes.2da resource file. Feats Table This refers to the feats table for the race. You need to create a custom feats table. The naming standard should be RACE_FEAT_<a short abbreviation for your race of 4-6 characters>. For example, RACE_FEAT_WEMIC. Biography This is a short blurb about why the character left home to be an adventurer, etc. This is a dialog.tlk reference number. PlayerRace Is this a player (PC) race. 0 for no 1 for yes Constant This refers to the constant used in the nwscript.nss file. Format is typically RACIAL_TYPE_<short abbreviation of your race> Age This is the starting age for the In years. NeverwInter NIghts Custom Content CuIde vJ.0 Custom Faces
ElIgIo Sacateca Page 1J5 01/06/200J Column Description Values character. ToolsetDefaultClass This is the default class when you hit Recommended for a characters class. Interestingly in the default racialtypes.2da, Bioware has set all the races to fighter (value 4). In CODIs version (the one that comes with CODIs pcpack.hak, they make this the same as the Favored Class).
0Ialog.tlk Now that you have set up racialtypes.2da, go and create the corresponding entries in dialog.tlk using a tlk editor. Yes, I know. Nasty business, that. FacIal Feats The next table you may need to set up is to specify any racial feats your character may have. You can either re-use an existing table (for example, most elven sub-races have the same feats as a standard elf) or create a new one. This is the Drow racial feats table: FeatLabel FeatIndex 0 immunitysleep 235 1 hardinessenchantment 236 2 skillaffinitylisten 237 3 skillaffinitysearch 238 4 skillaffinityspot 239 5 keensense 240 6 darkvision 228
The one difference between the Drow and the standard elven races is that the Drow has darkvision in place of low light vision. This is a new 2da file that you must create if you cant re- use an existing one. The naming standard for these tables comes from the racialtypes.2da file, the Feats Table column. There are three columns: Column Description Values The first column is the set ID This must be sequential; CC gets upset if you skip numbers. FeatLabel The label for the feat. Typically set to the feat label from feats.2da although sometimes it is different. It does not seem to matter. FeatIndex The ID of the feat. From feats.2da.
To create this table, map the feats of your new race to the ones available in feats.2da. In some cases the corresponding feat will not exist because it has not been implemented in the game engine and you will have to do without. In other cases you may need to compromise and find a similar feat. FacIal SpecIal AbIlItIes The last table represents special racial abilities. This allows your Drow to actually cast darkness or your half-dragon to use a dragons breath weapon. Again, it is a new 2da file. The naming NeverwInter NIghts Custom Content CuIde vJ.0 Custom Faces
ElIgIo Sacateca Page 1J6 01/06/200J standard for this file is the same as the racial feats file with spec in place of feat: race_spec_<short name for race>.2da. Again, here is the Drow: SpecLabel SpellNumber SpellFlags SpellLevel 0 Darkness 36 1 3 1 FaerieFire 415 1 1
There are five columns: Column Description Values The first column is the set ID This must be sequential; CC gets upset if you skip numbers. SpecLabel The label for the special ability. Typically set to the spell label from spells.2da. SpellNumber The ID of the spell. From spells.2da. SpellFlags If true, the spell is automatically enabled for the character on spawn. If set to false, the character must rest first. 0 for false 1 for true SpellLevel Effective level at which the spell is cast. Must be 0 for creature abilities. Otherwise set it to the caster level at which you want the spell to be cast.
To have a special ability that can be used multiple times before rest, add multiple entries to this table. To create this table, map the special abilities of your new race to the ones available in spells.2da. In some cases the corresponding spell will not exist because it has not been implemented in the game engine and you will have to do without (or create it using the techniques in this tutorial). In other cases you may need to compromise and find a similar spell. EffectIve Character Level (ECL) Refer to the Character Creator documentation for other information on specializing your race including setting ECL, custom skins, etc. Part 2: The 0ynamIc Character |odel Now that we have defined our crab as a custom race, lets talk briefly about a special kind of model: dynamic character models. A dynamic model is one where you can drop new armor, helmets, and other items into the correct slots of a characters inventory and (s)he will automatically don them. Contrast this to a static creature, like our crab, that cannot wear armour at all. The crabs appearance does not change in the game. Suppose I want to create a dynamic creature like a Wemic. Not everybody is happy playing as a crab (personally I dont know why not!) What is different about a dynamic model? Lets start with an experiment. Create an elven NPC using the Aurora toolset. Edit her properties and open her inventory. Now change her armor by assigning a new set of clothes into the armor slot. Close the inventory screen and notice her appearance has changed. Now create an NPC using the Aribeth model in the Aurora toolset. Change her armor on the NPC inventory screen. Notice that this time the armor does not change in her appearance. NeverwInter NIghts Custom Content CuIde vJ.0 Custom Faces
ElIgIo Sacateca Page 1J7 01/06/200J
F|gure 13 - TWo e|ves (ore a PC ard ore ar NPC), W|lr lre sare arror equ|pped Why do they behave differently? Lets open the model files directly and you will see why. Extract aribeth.mdl using NWNViewer. Open it up and take a look. Aribeth is a creature like any other creature (our crab, a demon, etc.). Some of the NPCs are created as static models (including Aribeth and Sethos) while others use the PC model base. So what is special about the PC model base? Extract pmh0.mdl using NWNViewer. Open it up and take a look. It consists of a series of dummy nodes, one for each armor piece (head, neck, torso, left bicep, right bicep, etc.). There is no geometry in this file! NeverwInter NIghts Custom Content CuIde vJ.0 Custom Faces
ElIgIo Sacateca Page 1J8 01/06/200J
In the Creatures section we talked about creatures as a hierarchy of linked objects that are animated to build our final model. That is how Aribeth was built. However, in the section on armor, we talked about PCs as individual parts (remember pmh0_chest001, etc.?). How do PC models work when you contrast all of these individual parts with the single, linked model that makes up a creature? The answer is that they are one and the same. When NWN is building your character it takes the nodes in the PC model file and substitutes in the armor parts (corresponding to the type of armor you are wearing). The nodes tell NWN where to put each part by aligning the pivot point of your armor part with the origin of the corresponding node. The nodes are linked into a hierarchy just like the objects in a normal creature model. Think of these PC models as roadmaps that tell NWN how to tie all of the PC model parts together into a single creature - a template for where each piece must go. That template has the name (oh-oh, here we go with naming standards again) pxy0.mdl where x = m (male) or f (female), y is the abbreviation for the race (e.g., h for human), and 0 represents the phenotype (standard). You dont need to create a 2 version (large phenotype) because the game uses the same template for standard and large. |ore than just nodes Now for the fun part: you actually can put geometry in this file. I created a Wemic as a PC model by deleting the lower leg nodes (pelvis, thighs, shins and feet) and then substituting into the template the actual geometry for a lions body (minus the lions neck and head) and then linking all of the parts together. When you change the Wemics armor it only changes the appearance of Note There actually is geometry in the female human model pfh0.mdl. For some reason the rootdummy node is not a node but a small cube with a texture and everything. I think this is an oversight. But it still works the same. Warning You have to put a copy of your base PC model in your /override directory. There is currently a bug in NWN (as of v1.29). If you dont do this, the game will freeze whenever you save and then try to reload a game using a custom race. NeverwInter NIghts Custom Content CuIde vJ.0 Custom Faces
ElIgIo Sacateca Page 1J9 01/06/200J the upper body (the part where I left the nodes in place). In fact, the Aurora toolset is smart enough to realize that there are no leg nodes so it does not even give you the option of changing these.
F|gure 11 - Tre wer|c PC rode| In the case of the Wemic, this is a little tricky: the Wemic uses a skinmesh and skinmesh models are special when it comes to working in the game. The key is that the skinmesh bones must appear in your models hierarchy before any PC nodes refer to the notes about skinmesh models in the previous section for more on this. Also, it does not seem to be possible to use a skinmesh as a dynamic part by definition a dynamic part is one of the PC nodes so your skinmesh cannot satisfy that condition. In any case, the outcome when you break this rule is clear: the skin becomes distorted and pulled around an inappropriate node in the model when viewed in-game. You will know it when you see it. 8rIngIng It all together Here is the process for building a dynamic model (a Wemic): 1. Create the model In this example, start with the basic Lion model (cat_lion.mdl) and the individual parts for a static human NPC model (in other words, create a static model either from scratch or from existing models). Follow all the instructions in the Creatures tutorial to develop the model, animations and textures on this base. 2. Make the model dynamic Next make the model dynamic by swapping in the PC half-orc nodes for the models upper body. This may seem counter-intuitive: the human and half-orc models are interchangeable? They are! The biggest difference is that the the proportions are slightly off but remember from the Creatures section that most of the animation keys are rotations so the proportions of the model dont count. The one exception to this is NeverwInter NIghts Custom Content CuIde vJ.0 Custom Faces
ElIgIo Sacateca Page 140 01/06/200J rootdummy which includes translations. However, as long as the lions lower body does not change, the rootdummy translations continue to work fine. I switched to a half-orc because the Wemics lower body looked too big for the human. Save the PC model as pmw0.mdl. 3. Create the armor components Now you have a dynamic model but no armor parts to swap in and out for it. What to do? Copy the half-orc armor parts. There are hundreds of them. I copied them and used the NWN Tileset renaming utility but now you can use NWNArmory to rename them internally and externally from pfo0_<partname>.mdl and pmo0_<partname>.mdl to pfw0_<partname>.mdl and pmw0_<partname>.mdl. Normally you would make these for the large phenotype as well. I chose not to do this though because the large phenotype looked really wacked on the Wemic body. You must create armor parts corresponding to each of the standard models if you dont and somebody drops unsupported armor into the inventory of your new character, your characters body parts will disappear. 4. Make the female version When you have the male working, create a female version of the base PC model. In the case of the Wemic, the primary difference is that the females nodes are closer together, the lower body is smaller and of course it has a different tail. I used the female half-orc PC model as a starting point for this again because it has all the nodes in the right place. That is all that you have to do. You do not need new textures for each armor part (I only used one new texture and that is for the lower body) because all of the armor pieces use the human, standard phenotype PLTs as discussed in the section on armor. A couple of final notes: If you are creating a dynamic character model, you need to set NAME to Custom_model and RACE to the single digit character of the race in your PC model name as it is set up in appearance.2da (e.g., h for human, w for the Wemic). If your model does not match the dimensions of one of the existing characters, you will need to create entirely new models for the hundreds of armor parts. In some cases you can do this by scaling existing armour parts (say, lengthening the elf model parts along the z-axis to make a githerzai). Ive developed a scaling utility (NWNArmory) that automates much of this process.
If your model does not match an existing race at all (say a PC spider with customizable armor), you will need to match the node names to the standard PC names as best you can (it is okay to leave some out) and then provide custom armor parts for each of the standard armor pieces. A tremendous amount of work. The good news is that many of the current armor parts are not unique they are based on a common set of models with new PLTs. So instead of having to do 1,000 new pieces, you may get away with only 200 new pieces (what, doesnt having to do only 200 new models make you feel better?). Or something along those lines. NWNArmory In the section of this tutorial on armor I talked about my new tool, NWNArmory. This tool can be used to take an armor piece for one race and create all of the other racial versions. Even better if you want to create a PC race, it can take all of the standard Bioware models and create the pieces you need for a new race. Let's say you want to create a brand new race. Maybe it will be slightly taller and skinnier than an elf (a githerzai, say). There are hundreds of model pieces out there if you want your new race to be able to wear all available types of armor. But you can tell NWN Armory how your new race NeverwInter NIghts Custom Content CuIde vJ.0 Custom Faces
ElIgIo Sacateca Page 141 01/06/200J differs from one of the standard races (say an elf) and it will transform those hundreds of pieces for you. How do you make it work? 1. First, you need to decide how your new race will differ from an existing race. In the case of the githerzai, extract all of the standard elf parts. Now choose the unclothed parts (the 001 models). Using your modeling tool, decide how much to stretch these parts across the x, y and z axes to create your githerzais dimensions. Write those transforms down. 2. Now create a transform initialization (.ini) file and copy this into NWNArmory.ini. The .ini file consists of a series of transform groups. Each group consists of a match string (you tell NWN Armory which models this group applies to), a substitute string (you tell NWN Armory how to rename the model based on the original name), and the definition of the transform for that group. In the transform you essentially tell NWN Armory how to scale the original model (x, y and z-axis scaling factors) and how to rotate it (about the x, y, and z-axis respectively). Refer to the help file of NWNArmory for details on how to do this. 3. Then you fire up NWN Armory and tell it to use all of the elf part models as base models (you may want to do this in several passes because there are lots of them). 4. Tell NWN Armory where to put the transformed models. 5. Go. What this program will do is compare each input file against the list of transform groups you gave it. Where there is a match, it will rename the model and apply the transforms you specify, and save the resulting model in the output directory.
7Isual Effects So you want to create your own visual effects? I talked about innovative ways to get NWN to do things it was never designed to do. Visual effects can be used to great success in this area. They have already been used to give creatures wings, to provide a sort of horse-riding feature, and other ideas. So lets talk about how we create visual effects. Let me start by describing what a visual effect is. It is, like many other things in the game, a 3D model. The interesting part is that it can be any type of 3D model. Many visual effects are emitters representing a particle system in NWN. Emitters can be used to produce clouds, smoke, fire, lighting and other special effects. Visual effects models can also be normally rendered 3D models. This is what makes them so versatile. You invoke a visual effect in the game in different ways. You can place a visual effect directly in your module (used to create a dust plume, for example). Some are tied to spells (remember the audio and visual effects we discussed in spells.2da?) You can also call up visual effects through scripting, tying them to creatures or objects. There are two main types of effects to keep in mind: Duration Effects these last for a specified length of time (you specify the duration). Fire and Forget Effects these are fired off, they run through their animation, and they go away automatically (duration is specified in the model file). So we want to create a new effect. It is going to be a waving seaweedy thing similar to the wavy pseudopod namesake of Evards Black Tentacles. There are really two things we need: 1. a visual effect model file 2. an updated visualeffects.2da file to tell the game about the new effect Where do we start? With something similar to what we already want, of course! Part 1: The |odel FIle There are, of course, naming standards for visual effects. These arent strict naming standards but some effects look like this: Duration Effects VFX_DUR_* (Duration) VFX_BEAM_* (Beam) Fire and Forget Effects VFX_COM_* (Combat) VFX_FNF_* (Fire and Forget) VFX_IMP_* (Impact) NeverwInter NIghts Custom Content CuIde vJ.0 7Isual Effects
ElIgIo Sacateca Page 14J 01/06/200J There are other naming standards for special effects tied to spells. Browse through the special effects reference guide at the end of this tutorial for details on those. Like most other models, the name of a VFX model should not have more than 16 characters. You can find the Bioware VFX models in models01.bif. Open up NWNViewer and export the model for Evards Black Tentacles (VPS_TENTACLE.mdl). Now open the model in gmax. Note that VFX models have 3 and only 3 animations: impact (plays at start of effect) duration (looping) cessation (plays at end) They can have any of the components or features of a regular model (multiple parts, etc.) When you create the Aurabase object, set the classification on the edit rollout to Effect. Part 2: EmItters In the case of our seaweedy thing, our model has a series of emitters. However, emitters cannot be used directly in Gmax Waylands scripts dont import or export emitters. This is why the VPS_TENTACLES.mdl file looks pretty empty. However, there is a workaround for this and it is important to understand emitters because so many visual effects use them. The key observation to make is that emitters are just custom nodes. They are nodes in 3ds Max that have custom-defined attributes tied to them nothing more, nothing less. The reason you cannot use them in Gmax is simply that Waylands scripts were not written to import or export them. The 3ds max scripts can read and write emitter files. However, because emitters are just custom nodes, you cannot actually view the effect in 3DS Max. All you can do is change the parameters. So lets open up the file in 3ds max. It looks like this:
If you select one of the arrows you will see that it is an emitter. The edit rollout looks like this: Note Much of this information on Emitters was compiled by Danmar. NeverwInter NIghts Custom Content CuIde vJ.0 7Isual Effects
ElIgIo Sacateca Page 145 01/06/200J If you wanted to add a new emitter in 3DS Max you would go to Helpers, change the dropdown to MDL Suite and select Emitter. On the edit rollout you can change the detailed characteristics of the emitter. These are the characteristics that you can modify:
Attribute Meaning Values Styles Update (update, update_sel) How the emitter is updated with new particles. Fountain - a constant flow of particles based on the other settings. This is used for smoke, flames, water and etc. Explosion - occurs when an animation has a detonate event set on a frame. This is used mainly to 'blow something up to blow it up real good'. An explosion emitter generates one pulse of particles based on the other settings every time the detonate event occurs. To add a detonate event skip over to where you want it to occur in your animation. Under the animation settings on the model base, add an event on the frame where you want the pulse to happen. Use 'detonate (not sure if CaSe matters but lower works). Single - creates a single particle at the center of emitter instead of spouting out multiple particles over time. Lightning - (assumption) generates a lightning effect with the particles. NeverwInter NIghts Custom Content CuIde vJ.0 7Isual Effects
ElIgIo Sacateca Page 146 01/06/200J Render (render, render_sel) How to render the emitter. Determines how the particles are sent into the world. Normal - a simple render of the emitter effects. Linked - rotates particle so the end of each particle will touch the start of previous particle. This can be used for rope-like effects a very good example of this is one of the spells distributed with model viewer, with dusty pit surrounded by a few vines. Billboard - means that the particles are aligned with 'something'. Usually in 3D animation this is used so that you can get a good effect without a lot of polygons. Example rather than creating a model for a particle, you map a bitmap to a flat plane and set it to always face the camera. You can get the same effect as a modeled particled but it saves on polys and you don't have to worry about it turning sideways and revealing its 2D status. Aligned - I assume does what it says, makes sure the particles don't rotate or come out in the same way. It is possible to use this for something like a dart trap VFX because you would want all the darts to come out the same way. Blend (blend, blend_sel) Describes how to blend the particles with the rest of the scene. Normal does no blending. Lighten - used with alpha masked particles such as smoke or flame. If you just put them as normal they would appear like big, obvious particles. Lighten takes the particle and uses its colors and alpha to XOR with the objects between it and the camera and generally give you a more realistic, ephemeral effect. Rule of thumb use Normal for 'chunk' emitters and Lighten for smoke, mist, fog, water. Spawn Type (spawnType) Describes how the particles are spawned. Normal does no blending. Trail Presumably spawns with a trail following the effect. Parameters Icon Size Affects the display size of the NeverwInter NIghts Custom Content CuIde vJ.0 7Isual Effects
ElIgIo Sacateca Page 147 01/06/200J emitter helper object. This has no impact in-game. Emitter Size (xsize, ysize) Yields the size of the area that generates the particles.
Inherit properties (inherit, inherit_local, inherit_part, inheritvel) This tells the particles to inherit or assume certain properties of the emitter. If you check inherit, the particle emitter should move with whatever object it is parented to. If you check velocity, if the particle emitter is moving the particles will inherit that velocity and add it to their own velocity. This can be used to create a trail of particles left behind by something moving. Note that for this to work it requires a huge number of particles or you get individual 'puffs' of particles. Miscellaneous (deadspace, threshold, combinetime, renderorder) No idea. Particles Color (colorStart and colorEnd) The color the particle starts out as and ends as. For example, to build a smoke effect, you would set the Color from white to gray, the alpha to start high and go to 0, size to start low and go high. This would have the smoke come off the fire white and small and as the particle aged it would get darker, more transparent and larger to simulate the cooling off of the smoke and it being spread out. The RGB colour values of the effect are decimal values in the model file so divide each of the RGB values by 256. Alpha (alphaStart and alphaEnd) How transparent the particle is at start and end.
Size (sizeStart, sizeEnd, sizeStart_y and sizeEnd_y) How big the particle is at start and end.
Birthrate (birthrate) How many particles are born in X units of time.
Life expectancy How long the particle lasts in X NeverwInter NIghts Custom Content CuIde vJ.0 7Isual Effects
ElIgIo Sacateca Page 148 01/06/200J (lifeExp) units of time. Mass (mass) Does it fall down and how fast. If the mass is positive gravity will pull the particles down. If it is negative they flow upwards. Spread (spread) How far do the particles spread or what's the range of their angle of departure. An angle of 10 means a very thin cone. An angle of 180 means all directions. Particle Rotation (particleRot) Does the particle rotate as it leaves and how much. A high number for a chunky emitter would have the chunks flipping end over end. Velocity (velocity) How fast does the particle leave the emitter.
Random velocity (randvel) What is the variation range based on the velocity. A velocity of .5 and a random velocity of .2 yields a particle that will have a velocity of .3 to .7 when it leaves the emitter. Bounce Coefficient (bounce_co) How much does the particle bounce. You wouldn't want your smoke to bounce but a fountain of superballs should bounce rather well.
Blur length (blurlength) How much motion blur is created for the particles.
Loop (loop) Not sure Bounce (bounce) Makes particles bounce Tinted (m_isTinted) Particles that are texture mapped will be tinted the start and end colors. Much like you change the color of skin or armor. The underlying texture will remain but it will be shifted towards the start end colors.
Splat (Splat) Not sure, at a guess means the particle doesn't bounce period.
Affected by wind (affectedbyWind) The particles will inherit velocity from wind speed in areas that have wind.
Texture and Chunk Texture (texture) What texture is mapped to the particle or what model is used instead? A standard 32-bit tga file. Two-Sided This would avoid the particle from disappearing when it rotated
ElIgIo Sacateca Page 149 01/06/200J (twosidedtex) because there was nothing on the back side. It allows you to keep the particles simple. Animation Grid Width and Grid Height (xgrid, ygrid) The animation settings let you create a texture image consisting of a grid of multiple, equally-sized frames. The width and height numbers tell the emitter how the grid is laid out. These have interesting effects on the particles and how they're generated. For example, playing around with this you can get a circular whirlpool effect. Animation Speed (fps) During a particle's lifetime, it will animate through the frames of the animation. The Speed setting tells the emitter how quickly to animate them.
Animation First Frame, Last Frame (frameStart and frameEnd) Tells the emitter which frame to start and end on during the animation cycle.
Animation Random Playback (random) Will cause the emitter to choose random frames during playback instead of cycling through them in order.
Chunk (chunk) The model or chunk that's used for the particle rather than a flat poly.
Advanced Lightning properties (lightningDelay, lightningRadius , lightningScale) No idea. Blast properties (blastRadius, blastScale) No idea. P2P properties (p2p, p2p_sel, p2p_type, p2p_bezier2, p2p_bezier3, drag, grav) No idea.
You can animate some of these properties so that they change during the course of the animation playing (e.g., birthrate). Youll have to play around with them to test which ones can be animated and which cannot. So what is the magic workaround I promised for Gmax users? It is this: NeverwInter NIghts Custom Content CuIde vJ.0 7Isual Effects
ElIgIo Sacateca Page 150 01/06/200J 1. Open your model in Gmax. 2. Insert a simple node where you want the emitter to be (in the Create tab, select the Helpers button and create a dummy node). Give it a unique name. 3. Make sure you have an Aurabase object. Link the dummy node to it or to an object that is linked to the Aurabase (otherwise it will not export in the next step). 4. Save your model. 5. Select the Aurabase object and export the model. 6. Now open the resulting model file. Look for a line like this: node dummy <whatever you called your dummy node> parent vps_tentacle position 0 0 -0.065378 orientation 0 1 0 -3.14159 wirecolor 0.425781 0.425781 0.425781 endnode
7. Replace the first line with: node emitter <whatever you called your dummy node>
8. Insert the following text right before the endnode line: colorStart 0 0 0 colorEnd 0 0 0 alphaStart 1 alphaEnd 1 sizeStart 0.1 sizeEnd 0.01 sizeStart_y 0 sizeEnd_y 0 frameStart 0 frameEnd 0 birthrate 0 spawnType 0 lifeExp 1 mass 0.1 spread 0 particleRot 0 velocity 3 randvel 0 fps 0 random 0 inherit 0 inherit_local 1 inherit_part 0 inheritvel 0 xsize 0 ysize 0 bounce 0 bounce_co 0 loop 0 NeverwInter NIghts Custom Content CuIde vJ.0 7Isual Effects
9. Use the descriptions above and this template to set your own emitter values. 10. Save and close your model. 11. Keep your fingers crossed that you did it right. For my example Im going to turn the emitter upside down and then change the texture to be more like seaweed than a black tentacle. Im going to use this base and attach it to the upper body of a dryad to make a Kelpie. More on that in the next version of this tutorial. Part J: The 7Isual Effects Fesource FIle Now that we have created an emitter, we need to get NWN to recognize it. Like other custom content we do that with a resource file (.2da). VisualEffects.2da describes which visual effects are available. This is a breakdown of all the column headings for visualeffects.2da.
Column Description Values The first column is the ID of this entry Label The internal name of the effect. Type_FD The type of effect. F = Fire and forget NeverwInter NIghts Custom Content CuIde vJ.0 7Isual Effects
ElIgIo Sacateca Page 152 01/06/200J Column Description Values D = Duration OrientWithGround Orient the effect with the ground plane All Bioware effects are set to 0. 0 = False 1 = True Imp_HeadCon_Node Imp_Impact_Node Imp_Root_S_Node Imp_Root_M_Node Imp_Root_L_Node Imp_Root_H_Node Name of the effect model that will be animated at the appropriate node. These effects will play respectively at the Head node (just at the top of the head on most models), the Impact node (near the center of body in front), or the rootdummy node for different sizes of creatures. Bioware does not use S but these are for Small, Medium, Large, and Huge models respectively. ProgFX_Impact A number referencing an internal programmed effect upon impact of the spell with the creature. These are effects for which there is no model and they are used to create special effects such as invisible, ethereal, stoneskin, etc.
SoundImpact A sound file played at start of effect. From the soundset.2da file. ProgFX_Duration Duration for which the programmed effect plays.
SoundDuration A (usually different) sound file that plays throughout the duration of the effect. From the soundset.2da file. ProgFX_Cessation Programmed effect that is applied at the end of the effect.
SoundCessastion (sic) A third sound file that plays at the end of the effect. From the soundset.2da file. NeverwInter NIghts Custom Content CuIde vJ.0 7Isual Effects
ElIgIo Sacateca Page 15J 01/06/200J Column Description Values Ces_HeadCon_Node Ces_Impact_Node Ces_Root_S_Node Ces_Root_M_Node Ces_Root_L_Node Ces_Root_H_Node These appear to be effects that would be played at the end (cessation) of the effect. However, Bioware doesn't use them and nothing appears to happen when tested. **** ShakeType Should the effect shake the screen? 0 = No 1 = A quick bump 2 = A timed effect using the next 3 parameters. ShakeDelay Delay in seconds before start of the screen shake
ShakeDuration Duration of the screen shake in seconds.
LowViolence A programmed effect number is used instead of the combat blood models for Low Gore video settings. These are only used by Bioware for the combat blood spattering (all colors). LowQuality An alternate, less detailed effect model for low quality video settings. These are typically used for lower quality explosions and other fancy, CPU-intensive effects.
Now open up nwscript.nss. This is where the predefined constants are. Add a new constant for your new visual effect by finding the list of effects and add your entry. For example, it typically looks like this: int VFX_DUR_DARKNESS = 1;
Just list the name and your entry number from visualeffects.2da.
ElIgIo Sacateca Page 154 01/06/200J Dther TutorIals The goal of this custom content guide is not to be a definitive reference for every conceivable item and object that you might create in NWN. What I have attempted to do is address the objects that were not covered in other tutorials, or were outdated or unclear in the ones I could find. In other words, the objects that I struggled to understand. With that in mind, what I am including here are references and links to tutorials that I think do quite a good job of explaining certain mysteries of content creation. But dont take my word for it explore them yourself. AmbIent |usIc (8|U fIles) Ambient music applies to an entire Area of a Module. To add ambient music you must set up a BMU (Bioware Music Unit) file and place it in the /music directory of your game installation. Similar to a PC Portrait, you cannot put an ambient music file in a hakpak. Follow the instructions on Biowares community site (http://nwn.bioware.com/builders/sounds_bmu.html). Interestingly, you still need to update ambientmusic.2da so you still need to distribute at least one file in a hakpak. As of version 1.26 of NWN, Bioware added a new column to ambientmusic.2da DisplayName. If the Description column contains ****, then the Toolset will use the text in DisplayName for the name of the file. This is how labels in .2da files should work! There is a utility for changing an MP3 file to a BMU (http://nwvault.ign.com/Files/other/data/1032456985150.shtml) file on NWVault (it simply changes the first 8 bites of the file). Drop the executable in a directory and double click on it. Use to set the folder for your source mp3 files or .bmu files, and then select the files to convert. You can convert them in either direction.
F|gure 1 - VP3 lo 8Vu corvers|or If you are looking for information on how to score and record your own music, I am told that you will need the following: A good general midi keyboard/sampler and library of digital instruments Protools on Mac (LE is free) or Acid Studio Pro on PC (for a cheaper alternative try FruityLoops for the PC) Sound Forge to fine tune your sound files when done (if you want a cheaper alternative try CoolEdit). NeverwInter NIghts Custom Content CuIde vJ.0 Dther TutorIals
ElIgIo Sacateca Page 155 01/06/200J If you don't want to actually create your own sounds and want to just mix in music to create something new then look for sound loops (sonicfoundry.com). You may find a lot of the unsigned artists on www.mp3.com receptive to the idea of their music being used in a video game (dont use their work without permission). On mp3.com there are a series of genres (http://genres.mp3.com/music/genres.html) that you may want to look at (try medieval or Celtic themes for example). Area Load Screens If you want to update the load screens between Areas of a module, try Pasus Naruans Area Load Screen Creation Kit (http://nwvault.ign.com/Files/other/data/1031186858936.shtml). It includes templates and a tutorial. 0oors Here is a tutorial on creating custom doors (http://nwvault.ign.com/modules/tutorials/MrX/door_tutorial_new.shtml). It explains the types of animations you need, how to create DWK meshes (door walk meshes), and pretty much everything you need to know. This is an advanced tutorial: it assumes you already know the basics of modeling, animation, and texturing. ntroductory |ovIes A starting movie can really set the tone and feel for a module. To add an introductory movie to your module, follow the instructions on Biowares community site (http://nwn.bioware.com/builders/movie_tutorial.html). The tutorial requires several different software packages than have been described in this document: 1. Microsoft Powerpoint or another program that can display slideshows. 2. A screen capture program that can create .avi files. 3. A tool to convert .avi files to .bik files. Placeable tems This is a tutorial on Creating Simple Placeables (http://nwvault.ign.com/Files/other/data/10328418 67324.shtml) that builds a tree model and explains shadows, PWK meshes (placeable walk meshes that keep people from walking through your placeable like it doesnt exist) and other concepts. This tutorial does not talk about animating a placeable. Now that we have done animation for a creature, placeable animations are a breeze. There are 7 placeable animations: Animation Name Description Damage Plays when the object is struck and damaged. For most objects it is a simple shiver. Default The animation that occurs all the time unless turned off in the toolset or through a script command. Normally there is nothing in Warning If you put an alpha texture on a placeable, the texture itself will not cast shadows. To get the placeable to cast shadows, create an object (typically with a simpler geometry corresponding to the shadow you want), set it non- renderable, and plunk it down over top of your regular object. NeverwInter NIghts Custom Content CuIde vJ.0 Dther TutorIals
ElIgIo Sacateca Page 156 01/06/200J the default animation (reduces load on the CPU). Dead Plays when the object is destroyed. Usually it is dropped below ground level to get it out of sight while, at the same time, an emitter throws chunks of stuff into the area and creates explosions. On Animation that plays when the object is on Off Animation that plays when the object is off On2Off Animation that plays when the object switches form on to off. For example, levers go through this state when switching from on to off. Off2On Reverse of On2Off
Note that placeables do not usually move. What if you want a placeable that can (say, a cart)? It is quite easy - you don't need any animations in the file at all. Take your cart and rename it as a creature (c_cart). If it is a compiled model file you can just rename the file. Otherwise you will need to change the internal model names as well. Edit the appearance.2da file to add the cart as a creature (refer to the tutorial on creatures for details). Set the movement column to 0 (no movement) or else the creature will jump around during combat when attacked. Placeable Sounds (WA7 fIles) A placeable sound is one you add to an area in your module. It can be set up so that it is only noticeable within a certain range or it can apply to the entire area. To add a .wav file to your module, follow these instructions on Biowares community site (http://nwn.bioware.com/builders/sounds_wav.html). It is not necessary to update ambientsound.2da file in NWN for your placeable sounds because NWN lets you add sounds directly from a hakpak. I believe .mp3 files work for placeable sounds as well although I have not tested them myself. TexturIng While I did say this is a tutorial on NWN content and not a general guide to modeling or texturing, here are a few useful links on texturing. This first is from Martin E and is written specifically for NWN. It consists of a series of tutorials that take you from basic information about image files through to the details of Alpha channels and textures: http://www.i.nation.btinternet.co.uk/tutorials/tutorial_00.htm Here is a tutorial on texturing hair (http://www.planetquake.com/polycount/cottages/bladekiller/hairtut.htm) from PlanetQuake Qbranch (http://www.planetquake.com/polycount/cottages/qbranch/) is also from PlanetQuake and has tutorials on texturing and making cloth, metal, etc. TIlesets Biowares has recently released the Neverwinter Tileset Construction Tutorial (http://nwn.bioware.com/downloads/max_tileset.html). This gives detailed examples on tileset creation. There is also a good tutorial on Creating Custom Tilesets From Scratch (http://nwvault.ign.com/Files/other/data/1034000197879.shtml). Be forewarned: it is a long and NeverwInter NIghts Custom Content CuIde vJ.0 Dther TutorIals
ElIgIo Sacateca Page 157 01/06/200J arduous process to create an entirely new tileset. Most people have been content with adding a few new tiles to an existing tileset. Tilesets have a different set of animations (again, since we did creature animation in a tutorial, this small number of animations should be a breeze): Animation Name Description Animloop01 One of two animations you can trigger through scripting. This is used for smoke and swaying signs a lot. Animloop02 Same Day Night Animation that plays during the day or night, respectively Day2Night Animation that plays when day turns to night. This is often used in buildings to move a plane with a lit window into place so that it looks like somebody inside has turned on a light. Night2Day Reverse of above. Tiledefault The default animation. Typically only used for waterfalls, fountains, etc.
Not covered in this tutorial but in Biowares tileset documentation (see below) you can find information on .txi files which provide for environment mapping. However, if you are trying to get an environment map on a placeable, it will not work. This seams to be another bug in the Aurora engine. If you want to see Bioware's failure to get environment mapping to work on a placeable look at their treasure placeable (the pile of coins). They specified that this placeable should use an environment map in its texture's .txi file, but in the game it renders transparent. There are some workarounds depending on what you want to do. For example, if you are looking for a reflectivity environmental map, rtrifts suggests make the object a creature. It can have its animation speed set to SLOW (Read Zero), or have its 2da set so that it is noninteractive and does not move its head to track players. Creaturizing placeables is also a way to make sliding crates, moving boulders and all sort of interactive scenery. TIlesets by FetexturIng There is also Tileset Retexturing for Dummies (http://nwvault.ign.com/Files/other/data/1030966672399.shtml) and Tileset Retexturing for Dummies 2 (http://nwvault.ign.com/Files/other/data/1031166293059.shtml). Another tileset resource can be found with this Tileset Retexturing Tutorial (http://www.hypercubed.com/games/nwn). Dther Content and |odelIng TutorIals Danmars modeling tutorials (http://nwvault.ign.com/Files/movies/categories/Modeling%20Tutorials2.shtml) cover custom content for NWN. In my opinion, the best ones are on using the ChilliSkinner tool for texturing (http://www.chilliweb.co.uk/chilliskinner/).
ElIgIo Sacateca Page 158 01/06/200J Notes on Dther .2da FIles I am including in this section notes on the contents of other .2da files that may be of value to custom content creators. These may fit into a currently-unwritten tutorial section to be addressed later. Or not. These are generally untested (by me, anyway). Feats.2da The Feats.2da file is used to define new feats, their requirements and how they show up in the game. Note that this file does not actually include code for the new feat. There are three types of feats in NWN (I am classifying them based on the way you activate the feats in NWN): 1. Automatic feats or what I call Combat feats because they are active all the time and take effect when appropriate (like Improved Critical xxx feats) 2. Special ability feats or Radial-type feats which appear in the radial menus (like Cleave) 3. Spell-like feats You can only really add spell-like feats and even they will only be selectable or automatically granted at level up but they dont show up in the GUI during the game. So players cannot use them easily. So we need a workaround: create a custom item that has: ActionUseFeat(<ID of your feat in feats.2da>); as its OnActivate script. You cannot add new combat feats because the combat engine is hidden from us in the internals of the game. You cannot add new buttons to radial menus so those feats are not available either.
Column Description Values The first column is the ID of the feat LABEL The internal name of the feat. FEAT STR_REF to the name of the feat referenced in dialog.tlk. If you put **** in this space it should use your Label in place of the string reference in dialog.tlk (but does not, yet). DESCRIPTION STR_REF to the name of the feat referenced in dialog.tlk.
ICON The icon you see in the game for the feat.
MINATTACKBONUS The minimum attack bonus needed to qualify for the feat,
MINSTR MINDEX Minimum strength, dexterity, intelligence or wisdom needed to
Hint This is from a compilation by Roesone and thallionstellani. I have not tested feats myself. The expansion, Shadows of Undretide, may fix the radial feats problem. Keep your fingers crossed. NeverwInter NIghts Custom Content CuIde vJ.0 2da FIles
ElIgIo Sacateca Page 159 01/06/200J Column Description Values MININT MINWIS qualify for the feat. MINSPELLLVL Minimum spell caster level needed to qualify for the feat.
PREREQFEAT1 PREREQFEAT2 Prerequisite feats needed to qualify for the feat (references back to column 0, the ID)
GAINMULTIPLE Can the feat be gained multiple times? 0 for no 1 for yes EFFECTSSTACK Do the effects of the feat stack with other feats? 0 for no 1 for yes ALLCLASSESCANUSE Can all classes use this feat? If yes, it is not necessary to put this feat in the cls_feat_<class>.2da tables. 0 for no 1 for yes CATEGORY This is the type of feat for use by the AI (refer to spells) so that NPCs and monsters use it properly.
MAXCR Not sure. SPELLID Points to spells.2da (column 0, the ID) for the spell characteristics and script used to implement this feat. All of your custom-created feats will typically have this reference (it is the only way you can implement a feat).
SUCCESSOR What feat comes next in the feat progression (mainly used for class abilities that were made into feats, like Barb Rage/Bard Song, etc.)
CRValue I believe this is used to determine the CR value of a creature when you add this feat to the creature, part of the behind the scenes work when creating monsters
USESPERDAY How many times the feat can be used between rests.
MASTERFEAT TARGETSELF Does the feat work on only the person using it? (bardsong no, most others yes) **** for no 1 for yes OrReqFeat0 OrReqFeat1 OrReqFeat2 OrReqFeat3 OrReqFeat4 Feats needed as prerequisites(?) Uses column 0, the feat ID REQSKILL Skills needed for the feat Uses column 0, the skill ID, from NeverwInter NIghts Custom Content CuIde vJ.0 2da FIles
ElIgIo Sacateca Page 160 01/06/200J Column Description Values skills.2da. Constant The constant the feat uses in the scripting language (especially nwscript.nss)
TOOLSCATEGORIES Represents the Type column in the Aurora toolset, categorizing feats when creating NPCs. 1 Combat Feats 2 Active Combat Feats 3 Defensive Feats 4 Magical Feats 5 Other Feats 6 Class/Racial Feats HostileFeat Is the feat used on a hostile creature (Called Shot is an example). **** for no 1 for yes
There are two other 2da files you will need to know about. Cls_Feat_<classname>.2da describes the feats that are allocated to a class and at what level. You only need to put feats in this table if they are not available to all classes (see ALLCLASSESCANUSE in feats.2da above). Column Description Values The first column is the ID of this entry FeatLabel The internal name of the feat. FeatIndex A reference back to column 0, the ID, of feat.2da
List Which list of feat types the feat appears in. 0 : means that the feat will have to be selected at creation or level up. 1 : this is a pure guess, but a reasonable one I think, this value is only used for wizards and fighter to specify the class related feats they can get as bonus feats every two (correct me if I'm wrong) levels. 2 : I won't even try to guess what that one does: suffice to say it is only used for the ranger favored enemy feats (I.e. against dragon, against undead etc), and for the high level rogues' feats (crippling strike). So this would be the "automatically granted but that you still need to choose category". 3 : the feat will be automatically granted for this class, at the level specified in the GrantedOn column GrantedOnLevel Defines which Level the Feat will be automatically granted at. -1 Only used if List does not have a value of 3. >= 1 is only used if List does have a value of 3 NeverwInter NIghts Custom Content CuIde vJ.0 2da FIles
ElIgIo Sacateca Page 161 01/06/200J
Race_Feat_<racename>.2da describes which feats are automatically allocated to a particular race. Column Description Values The first column is the ID of this entry FeatLabel The internal name of the feat. FeatIndex A reference to feat.2da indicating which feats the race gets automatically. A reference back to column 0, the ID, of feat.2da
If you want to check for the existence of a feat in a script, you will need to assign a CONSTANT to it. Remember adding FEAT_<featname> to the CONSTANT column in feats.2da? Well now we use it. Add to your script file the following line: int FEAT_<featname> = <nnn>; //put the actual value from feats.2da in place of nnn Make sure you use underscores "_" instead of spaces in name.
Page 162 01/06/200J Tools CuIde This section provides a more detailed look at the available tools. ZolIgato's NWN 7Iewer This viewer (http://nwvault.ign.com/Files/other/data/1026158289673.shtml) lets you browse the NWN resource files (all of the models, textures, pictures, text, etc. that makes up the content of the game) and to extract them so that you can modify the files or use them as a base for making your own custom content. NWN Viewer does not come with an installer so unzip the files into a directory (maintaining the sub-directories in the zip file) and drop a shortcut to it on your desktop or into your NWN menu. 8Ioware's Hakpak EdItor A hakpak (a file with the extension .hak) is a package where you add custom files to either supplement or override standard Bioware content. Anybody who plays your module will need a copy of your hakpak so be sure to distribute it along with your module itself. You can use a hakpak to make Neverwinters standard goblin a different color (overriding standard content) or to add a new monster such as an Owlbear (adding new content). Let me try to outline a few of the controversies surrounding hakpaks and their use in customizing NWN content. First, let me note that hakpaks are the official Bioware method for distributing custom content. They are not free from issues or special considerations but they are the best way of getting your content out to the gaming public. People have come up with workarounds and lots of contradictory and nonsensical advice on what to do and what not to do with hakpaks. Lets talk about a few of the issues. 1. The /override directory. First, you can also override Bioware content by dropping a file into the /override folder of your game directory. However, this approach is not recommended. Hakpaks are much cleaner they can group many overridden files into one package and, more importantly, they are specific to a module. Putting a file into the /override directory will override it for all modules you play on that computer which may have unintended consequences on other peoples games. Dont do it. If you put custom content into the /override directory of your computer and wonder why other peoples modules dont work on your machine, you probably have created the problem yourself. Also, putting things in the /override directory like new .2da files will break the ability of the automatic installer to update your game to the latest release. To fix this you will need to restore the old version to the /override directory. You can find the old versions of these files in the /source directory of your game. One .2da file per module is all that you are allowed. This means if you want to combine resources from multiple hakpaks it becomes tricky when you put similar content together from multiple sources because some of the model ids and 2da files may overlap. Notes WIP need to explain how this works and where to go to get at the bif files. Explain what each bif contains. Notes In release 1.28, Bioware added the ability to specify multiple hakpaks for a module. It will be interesting to see what conventions arise around using multiple hakpaks. NeverwInter NIghts Custom Content CuIde vJ.0 Tools CuIde
Page 16J 01/06/200J For example, you will need to re-edit and combine some of the files manually (specifically the .2da file). Also, Because of a very strict naming scheme that you have to fulfill to have the game recognize items and display them properly, there will never be a 'clean' solution. For details on how to combine hakpaks, refer to this tutorial on combining hakpaks: http://nwvault.ign.com/modules/tutorials/CombiningHakPaks.shtml. It is no longer strictly necessary to combine the paks physically because NWN allows multiple haks. However, the section on combining 2da files is still valid and required. To give you an example, assume I create a bastard sword. I create it to fill the number 8 position. Not only do I have to name each file according to a set naming scheme I also have to ensure that the internal references to that object match the name. It is not even as simple as renaming the files. Internally there are references to my number 8 sword that have to be changed in roughly 5 places in at least three files. Nine files if you've include all three parts for all three colors. So roughly 45 to 54 internal references. So say Poly creates a bastard sword. He has no idea I've done so and he picks the next available number which is 8 and builds his as the 8th piece. To use his and mine in one hakpak, one of us has to go back and change those references. 2. Official expansions may overlap with custom content. Similar to the issue above, if Bioware creates a patch that includes additional content, there is a risk that it will interfere with your content. This problem becomes even more insidious because your module may work fine under version 1.22 and be broken under version 1.25. At least when merging other peoples content into your hakpaks you can test for incompatibilities. When it happens as an official update, anybody who has an old version of your module on their machine will be at risk. This is why I recommend setting ID numbers in .2da files to be much higher than the official ID numbers. Expect even more of these issues when Bioware chooses to release expansion packs. Again, the best way to avoid these issues is to stay well above the range of ID numbers that Bioware uses or use the User ranges they set aside. 3. Official patches will not be in custom content released before the patch. To override some of the files, like the .2da files, you take a copy of the entire file and add your own modifications to it. There is a risk if Bioware issues an updated version of that file in a patch that you will not have those updates in your file. For example, I dutifully used NWN Viewer to export the baseitems.2da file to add a new weapon. But my game installation has a more recent copy of baseitems.2da in the new patch.bif file already. I'm on v1.28 of the game. If I run a diff between the patch.bif version and the version I exported from NWN Viewer, there were two small changes (to the Heavy Crossbow and the Trapkit). Not good. Not surprising, in retrospect, but not good anyway. Why does this happen? Bioware has originally used the /override directory for its official version updates. As of version 1.28 it moved most of that content to patch.bif. NWN Viewer gets its data directly from the appropriate BIF files. It does not look in these other locations first. When I distribute an older version of a .2da file in a hakpak, Biowares changes disappear because my hakpak version takes precedence. Practically speaking what this means is that when you are going to modify a current NWN file (e.g., a .2da file), look in \source\2dasource.zip first, before you go and export a file you want from NWN Viewer. Only if Bioware hasn't updated that file recently would you use NWN Viewer to export a new version from the original game installation. If you don't follow these simple rules, you risk undoing Bioware's bug fixes when you distribute custom content. This same issue exists if Bioware distributes an update after you distribute your content but we let's not exacerbate the problem. NeverwInter NIghts Custom Content CuIde vJ.0 Tools CuIde
Page 164 01/06/200J 4. The dialog.tlk file cannot be put in a hakpak. See more in the section below on this file. In a nutshell, Bioware has been making changes to overcome this issue by making it less and less necessary to customize the dialog.tlk file. They have no intention of making it hakpak aware. Get over it and stop using dialog.tlk for kludgy changes to custom content. 5. Renumbering .2da entries. If you delete rows from a .2da file in a hakpak, or even if you re- number them, it will mess up an existing module that used the previous version of your hakpak. The toolset put the entries into numerical order for you, but if you have used the hak in that module before and delete an entry, everything after that entry will be one appearance off. This is why you will notice entries in the standard .2da files that are not actually deleted, they are just blanked out using **** and other meaningless values. Use the same method if you are modifying a hakpak in the middle of developing your module. This also occurs quite frequently when combining hakpaks. And it creates problems if you load a saved .erf file that referenced a previous version of your hakpak. The only real solution other than leaving in blank entries is to recreate your module from scratch or change all of your model entries by hand. Having said all of that, hakpaks are still the best way to manage custom content. The only way to better manage some of these issues would be to create a central registry for reserving Ids, item numbers, etc. to ensure that nobody ever created another item that overlapped with yours. Even then the central registry would only be as good as the people maintaining it and registering their changes with it. So with that behind you, let me touch on the basics of how to install your content into a hakpak and load that into a module. To create or modify a hakpak, launch the supplied nwhak.exe program (it can be found in the /utils subdirectory where you installed NWN). 6. Select File | New to create a new hakpak. Enter the name and other information on the main window (or use File | Open and choose the hakpak you want to modify). Do not modify any Do not modify any Do not modify any Do not modify any standard Bioware HAK files. standard Bioware HAK files. standard Bioware HAK files. standard Bioware HAK files. 7. To add files select Resource | Add or simply drag the file into the list below. 8. To remove a resource from the hakpak, right click on it and select remove (you can multi select to remove several at one time by holding down <shift> or <ctrl>). 9. Select File | Save to save your hakpak. Save it into the /hak subdirectory where you installed NWN. To use your hakpak you must add it as a resource to your module: 10. Launch the Aurora Toolset. 11. Open your module or create a new module. 12. Select Edit | Module Properties to modify the basic characteristics of your module. 13. Select the tab labeled Custom Content. 14. Using the drop-down combo box select your hakpak (if it does not appear in the combo box you probably have not placed it in the /hak subdirectory where you installed NWN). You can add multiple hakpaks this way with the topmost haks having higher priority (i.e., duplicate files in the higher haks override those in lower haks). NeverwInter NIghts Custom Content CuIde vJ.0 Tools CuIde
Page 165 01/06/200J
Add|rg a ra| pa| 15. Save, close and re-open the module. There seems to be a bug (at least in Release 1.26 of NWN) where it does not always load a new hakpak properly while a module is open. The only workaround I have been able to find for this is to close the module and then re-open it. This properly loads the updated hakpak data for most content (but not all). |odelIng Tools If you really want to do modeling, go and download yourself a copy of gmax (http://www.discreet.com/products/gmax/) from Discreet Software. It is a subset of 3ds max for non- commercial game designers and it is free. You also need to pick up the GMax MDL import/export (http://nwvault.ign.com/Files/other/data/1029721132840.shtml) script to use it for NWN content and Torlacks NWNMdlComp (http://www.torlack.com/index.html?topics=nwnmdlcomp_read me) model compiler/decompiler if you want to edit existing models. The installation instructions are fairly simple: 1. Download and install gmax. 2. Download and unzip the import/export script. 3. Drop the nwn_mdl_v<version#>.ms script from the zip file into the /scripts/startup directory of your gmax installation (not of your NWN installation). Warning Remember to do low polygon modelling. For example, weapons 150 placeables 200-300 tiles 350 walkmeshes 100 NeverwInter NIghts Custom Content CuIde vJ.0 Tools CuIde
Page 166 01/06/200J 4. Unzip the NWNMdlComp executable. Drop a copy in your C:\WINDOWS or C:\WINNT directory (or put it in a directory and set your computers pathname to point to it). 5. If you have an existing model file to work with, run NWNMdlComp d <modelfile> to decompile the binary model file from NWN. Dont use the .mdl suffix. The output file will be named .mdl.ascii. 6. Start gmax. The NWN MDL Tools pane should start automatically. 7. Enter a filename and select Import. This should load the model. 8. Edit it to your hearts content. 9. Select the base object. 10. Select Export from the NWN MDL Tools pane. 11. Select MAXScripts | Listener to show the listener dialog. 12. Copy and paste the decompile ASCII model into a text file. Gmax will only copy 10KB at a time so you may need to copy and paste multiple times. 13. Youre done! 8Ioware's 00S CompressIon Tool NWN uses a scalable texture system to increase system performance, known as the DirectDraw Surface (DDS) format. DDS files contain multiple versions of the same texture at different resolutions, called mipmaps. Mipmapping is a technique that improves image quality and reduces texture memory bandwidth by providing pre-filtered versions of the texture image at multiple resolutions. DDS files are also compressed. What does all of this gibberish mean? It means DDS files are smaller and render faster on high- end 3d video cards. While not absolutely necessary, DDS files will give your objects that extra level of professional shine. It allows your hardware to switch between very hi-res textures when viewing an object close up while using low-res textures for faster rendering of the same object viewed at a distance. Computers with a graphics card that cannot handle DDS files require a copy of the .tga file instead (usually of a lower resolution so that they do not slow performance significantly). So if you use DDS files, include one at a lower resolution like 64 x 64. Bioware has tool called ProcessTextures.exe (http://nwn.bioware.com/builders/texturetutorial.html). It is a free, unsupported Windows utility but it will not work on all computers. It is dependant on your video card and drivers supporting the required compression. Most DirectX 8 drivers should work it has been tested it on a GeForce3 and Radeon 8500, which worked fine, however the Matrox G550 cards do not work. Biowares DDS Compression Tool will not uncompress a DDS file into a bitmap. It is one way only (.tga to .dds). To uncompress a bitmap, use DDSTools (described in the next section) and then discard all but the highest resolution bitmap. A few things to be aware of: Bioware uses a slightly modified version of the DDS standard so you cannot use standard tools like Nvidias Photoshop plug-in to create them. You must use the Bioware tool (or DDSTools although I dont recommend that program). NeverwInter NIghts Custom Content CuIde vJ.0 Tools CuIde
Page 167 01/06/200J DDS is a lossy compression algorithm but does a good job in most cases and the file sizes are much smaller and they run faster so dont let that stop you from running them. If you absolutely must have one texture of extremely high resolution, put just the .tga in your hakpak for that file. This is generally not recommended though because those large .tga files really slow down even high end machines. Try doubling the size of your .tga file before compressing it to avoid pixelization. You will convert every pixel to 2x2 pixels (smooth it if you like); THEN convert it to DDS - quality should be better (although file size of course will be bigger). DDS compression works on 4x4 blocks of pixels. If you have more than 2 distinct colors in the same 4x4 block, you will have some pixelization (every 4x4 block is defined by 2 colors plus transitions between them). For most textures, it is really acceptable - you can show smooth transitions (4 level of transition for 4 pixel space - ideal) and you can show hard edges. All textures should be a power of two: 2X2, 4X4, 8X8, 16X16, 32X32, 64X64, 128X128, 256X256, 512X512 (the practical maximum that makes a difference). For really large models you may want to include several .tga and DDS files as textures (e.g., the Bioware dragon models use 3). To use this tool: 1. Download the DDS Compression Tool (.zip, 262 KB), save it to a location where you can find it, and unzip it (using a tool like WinZip). 2. After unzipping the tool, you will find 2 files in the 'dds' folder (processtextures.exe and runme.bat) along with 2 directories labelled 'in' and 'out'.
3. Place the .tga you wish to compress into the 'in' folder. 4. Double-click the 'runme.bat' in the 'dds' folder. This will convert the texture from .tga format to the compressed .dds format that is needed for the game. You will find the converted texture in the 'out' folder. It will have the same filename as the original, but with the .dds file extension. 00STools DDSTools (http://downloads.neverwinternights.de/tools/ddstools.zip) is a freeware utility that will also compress and uncompress a DDS format file into a series of .tga files. Biowares DDS Compression Tool will not uncompress a DDS file into a bitmap. It is one way only (.tga to .dds). To uncompress a bitmap, use DDSTools and then discard all but the highest resolution bitmap. DDSTools flips your image vertically when creating the DDS from the bitmap (which will usually mess up how it maps to your model although you may not notice it if it is a random pattern). Use Biowares DDS Compression Tool instead (which does not flip) or manually flip your bitmap first. Also, Desotos will not work with 32-bit .tga files (i.e., files with an alpha channel) although Biowares will. What all of this means is you need both if you want to use Biowares textures as a starting point for any of your models. NeverwInter NIghts Custom Content CuIde vJ.0 Tools CuIde
Page 168 01/06/200J TlkedIt Neverwinter Nights includes a data file called dialog.tlk. This file contains a huge list of thousands of text resources: all of the names of all of the objects in the dialog from the game. This is a common technique used to make it easier to internationalize a game with all of the text strings in one place, translation to multiple languages is much easier. Each resource in dialog.tlk has a number assigned to it called the String Reference. Unfortunately, editing dialog.tlk is fraught with issues: 5. It is a huge file (7 MB+) which makes for a big download. 6. It is not something you can override through a hakpak. So for each module that you play with a new dialog.tlk file, you have to manually swap in the new dialog.tlk before loading the game. 7. If you update NWN through the automatic updater, it will not work if you have changed dialog.tlk. You will have to restore the old version first, then update the game. Of course, any changes that Bioware makes to dialog.tlk for an update will break your version. These examples make changes to dialog.tlk very difficult. Most users do not like messing around with their game installation to run a module and will refuse to download modules with modified dialog.tlk files. Many users have only a basic understanding of computers and find issues like manually swapping dialog.tlk files back and forth to be challenging. Bioware is aware of this issue. Patch v1.25 of the game removed the need to modify dialog.tlk for some objects. For example, in appearance.2da if you now leave the String Reference field blank the toolset will use your label as the title for the object. This is a huge improvement and we continue to lobby the Live Team to make more patches like this. The summary message of this section is this: Modify dialog.tlk at your own risk. It will certainly turn many people off from using your custom content. It is only necessary in a few circumstances so ask yourself if it is worth it before producing custom content that requires these changes. Here is my opinion on the subject, by section: 1. Weapons - it is unnecessary to modify dialog.tlk. You can edit the item name and description and stats in the Aurora toolset and distribute custom .erf files. 2. Portraits not required. 3. Voicesets not required. 4. Items without Models - it is unnecessary to modify dialog.tlk. You can edit the item name and description and stats in the Aurora toolset and distribute custom .erf files. 5. Armor and Clothing not required. 6. Spells required. Unless you want to use them only for NPCs. Again, if you are a module builder, ask yourself whether those custom spells are really critical to your game. Warning Usually you can avoid editing the dialog.tlk file for your custom content. There are different techniques for doing this: a) For some .2da files you can put **** in the string reference column and it will use the adjacent text column instead (e.g., appearance.2da for creatures). b) For many objects, you can simply override the object name in the Aurora toolset. When you do this the person who uses your module will never notice (e.g., baseitems.2da). Right now the only two sections of this tutorial that require dialog.tlk editing are for custom spells (which can be avoided as long as they are NPC spells) and custom races (using CODIs Character Creator). This warning bears repeating. Do not edit dialog.tlk if you can avoid it. NeverwInter NIghts Custom Content CuIde vJ.0 Tools CuIde
Page 169 01/06/200J 7. Creatures made unnecessary with patch v1.25 of the game. 8. Custom Races required. It is currently unavoidable for custom races. My only caution here if you are a module builder is that I would evaluate whether or not a custom race is really critical to the module before doing it. For the City of Doors Initiative (a Planescape mod) it is. For many other modules it is probably not and it will limit your target audience. 9. Visual effects not required.
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 170 01/06/200J SpecIal Effects Feference This section is a reference for the different spell and other effects available when creating your own spells or scripting your own modules. This material was originally compiled by John Belinda (Harlequin). This reference covers three types of effects Spell Audio Effects Spell Visual Effects Scriptable Visual Effects The spell effect labels and categories make more sense when you understand the difference between conjuration and casting. Conjuration is the term Bioware gives to the actual process of invoking the spell. Casting is the term used to describe when the effects of the spell manifest themselves. So conjuration is when the characters are waving their hands and saying mystical things. Casting occurs after conjuration when the spell suddenly takes effect.
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 171 01/06/200J
Spell AudIo Effects These are the sound effects that are used in the spells.2da file for specifying the sounds played when a spell is cast by a character or NPC. There are three types of sounds: 1. Conjuration voice sounds (the verbal sound of actual doing the spell conjuration) 2. Spell conjuration sounds (the sound the magic makes as the conjuration is taking place) 3. Spell casting sound effects (the sound the magic makes as a result of i.e., after the spell is cast) ConjSound|ale: Spell ConjuratIon 7oIce Set for |ale Characters These effects are played while the spell is being invoked. VS_ Voice Set CHANT_ Chanting used during spell casting <SCHOOL>_ School of magic most associated with the sounds HM Hi-Fi Male Sound LM Low-Fi Male Sound
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 172 01/06/200J
ConjSoundFemale: Spell ConjuratIon 7oIce Set for Female Characters These effects are played while the spell is being invoked. VS_ Voice Set CHANT_ Chanting used during spell casting <SCHOOL>_ School of magic most associated with the sounds HF Hi-Fi Female Sound LF Low-Fi Female Sound
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 17J 01/06/200J
ConjSound7FX: Spell ConjuratIon Sound Effects These effects are played while the spell is being invoked. SCO_ Sound played while conjuring a spell GAZE Gaze Effect appropriate conjuration sounds LGRIN Large Ring Effect appropriate conjuration sounds LGSPR Large Spiral Effect appropriate conjuration sounds LGUP Large Upwards Effect appropriate conjuration sounds MEBAL Medium Globe Effect appropriate conjuration sounds MEGRD Ground Effect appropriate conjuration sounds MEHED Medium Head Effect appropriate conjuration sounds MEHAN Medium Hands Effect appropriate conjuration sounds <EFFECT> Effect Category for the sound ## Index number of the sound for similar names
GAZE SOUND NAME DESCRIPTION SCO_GAZEEVIL Gaze Evil Groaning howl emanating out SCO_GAZEMIND Gaze Mind Reverberating sound emanating out SCO_GAZEODD Gaze Odd Deep howling sound emanating out
RING SOUND NAME DESCRIPTION SCO_LGRINELEC01 Ring Large Electrical Electric charges surrounding SCO_LGRINEVIL01 Ring Large Evil Groaning howl surrounding SCO_LGRINFIRE01 Ring Large Fire Crackling fire surrounding SCO_LGRINHEAL01 Ring Large Heal High pitched `ahh' surrounding SCO_LGRINHOLY01 Ring Large Holy Soothing hum with chimes surrounding SCO_LGRINMIND01 Ring Large Mind Whistling wind surrounding SCO_LGRINODD01 Ring Large Odd Howling wind surrounding
SPIRAL SOUND NAME Description SCO_LGSPRELEC01 Spiral Large Electrical Electric charges circling around SCO_LGSPREVIL01 Spiral Large Evil Groaning howl circling around SCO_LGSPRFIRE01 Spiral Large Fire Crackling fire circling around SCO_LGSPRHOLY01 Spiral Large Holy Soothing hum with chimes circling NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 174 01/06/200J around SCO_LGSPRMIND01 Spiral Large Mind Whistling wind circling around SCO_LGSPRNATR01 Spiral Large Nature Bird whistles circling around SCO_LGSPRODD01 Spiral Large Odd Howling wind circling around
UPWARD SOUND NAME DESCRIPTION SCO_LGUPELEC01 Pillar Large Electrical Electric charges shooting upwards SCO_LGUPEVIL01 Pillar Large Evil Groaning howl shooting upwards SCO_LGUPFIRE01 Pillar Large Fire Crackling fire shooting upwards SCO_LGUPHOLY01 Pillar Large Holy Soothing hum with chimes shooting upwards SCO_LGUPMIND01 Pillar Large Mind Whistling wind shooting upwards SCO_LGUPNATR01 Pillar Large Nature Bird whistles shooting upwards SCO_LGUPODD01 Pillar Large Odd Hollow howl shooting upwards SCO_LGUPSONIC01 Pillar Large Sonic Strong wind shooting upwards
GLOBE SOUND NAME DESCRIPTION SCO_MEBALACID01 Ball Medium Acid Howling sizzle expanding out SCO_MEBALELEC01 Ball Medium Electrical Electric charges expanding out SCO_MEBALFIRE01 Ball Medium Fire Crackling fire expanding out SCO_MEBALODD01 Ball Medium Odd Sharp whistling expanding out SCO_MEBALSONC01 Ball Medium Sonic Howling wind expanding out
OTHER SOUND NAME DESCRIPTION SCO_POSITIVE Positive Energy High pitched chime sound SCO_SWAR3BLUE Blue Sizzling sound SCO_WRAITH Wraith Undead howling sound
GROUND SOUND NAME DESCRIPTION SCO_GRNDSKUL Ground Skull Swirling ghostly howl SCO_MEGRDEVIL01 Ground Medium Evil Swirling groaning howl SCO_MEGRDFIRE01 Ground Medium Fire Swirling crackling fire SCO_MEGRDHOLY01 Ground Medium Holy Swirling soothing hum SCO_MEGRDMIND01 Ground Medium Mind Swirling whistling wind SCO_MEGRDNATR01 Ground Medium Nature Swirling bird whistles NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 175 01/06/200J SCO_MEGRDODD01 Ground Medium Oddl Swirling metal howl
HEAD SOUND NAME DESCRIPTION SCO_MEHEDELEC01 Head Medium Electrical Electric charge rising and falling SCO_MEHEDEVIL01 Head Medium Evil Groaning howl rising and falling SCO_MEHEDHOLY01 Head Medium Holy Soothing hum rising and falling SCO_MEHEDODD01 Head Medium Odd Hollow howl rising and falling SCO_MEHEDSONC01 Head Medium Sonic Strong wind rising and falling
HAND SOUND NAME DESCRIPTION SCO_MEHANACID03 Hand Medium Acid 3 High pitched sizzling SCO_MEHANCOLD03 Hand Medium Cold 3 Chill wind with chimes SCO_MEHANELEC01 Hand Medium Electrical 1 Electric charge fading out SCO_MEHANELEC02 Hand Medium Electrical 2 Electric charge abruptly ends SCO_MEHANELEC03 Hand Medium Electrical 3 Electric charge constant volume SCO_MEHANEVIL01 Hand Medium Evil 1 Groaning howl fading out SCO_MEHANEVIL02 Hand Medium Evil 2 Groaning howl fading out SCO_MEHANEVIL03 Hand Medium Evil 3 Groaning howling fading out with scream SCO_MEHANFIRE01 Hand Medium Fire 1 Crackling fire fading out SCO_MEHANFIRE03 Hand Medium Fire 3 Crackling fire fading out with wind SCO_MEHANHEAL02 Hand Medium Heal 2 Hymn sound with static charge fading out SCO_MEHANHEAL03 Hand Medium Heal 3 Hymn sound with wind fading out SCO_MEHANHOLY01 Hand Medium Holy 1 Soothing hum with wind fading out SCO_MEHANHOLY02 Hand Medium Holy 2 Soothing hum with static charge fading out SCO_MEHANHOLY03 Hand Medium Holy 3 Soothing hum fading out SCO_MEHANMIND01 Hand Medium Mind 1 Vibrating wind fading out SCO_MEHANMIND02 Hand Medium Mind 2 Vibrating wind with static charge fading out SCO_MEHANMIND03 Hand Medium Mind 3 Vibrating wind fading out SCO_MEHANNATR01 Hand Medium Nature 1 Constant howling sound SCO_MEHANNATR02 Hand Medium Nature 2 Constant howling sound with birds SCO_MEHANNATR03 Hand Medium Nature 3 Constant chiming sound with birds NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 176 01/06/200J SCO_MEHANODD01 Hand Medium Odd 1 Whistling wind fading out SCO_MEHANODD02 Hand Medium Odd 2 Whistling wind with static charge fading out SCO_MEHANODD03 Hand Medium Odd 3 Hollow wind fading out SCO_MEHANSONC01 Hand Medium Sonic 1 Strong wind fading out SCO_MEHANSONC02 Hand Medium Sonic 2 Strong wind with static charge fading out SCO_MEHANSONC03 Hand Medium Sonic 3 Strong whistling wind fading out
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 177 01/06/200J
CastSound: Spell CastIng Sound Effects These effects are played after con]uration, while the spell is manifesting. SAR_ Area sound played after conjuring a spell SCA_ Casting sound played after conjuring a spell SCE_ Energy casting sound played after conjuring a spell SDR_ CONE Cone Effect appropriate casting sounds OUT Outward Cast Effect appropriate casting sounds <EFFECT> Effect Category for the sound ## Index number of the sound for similar names
CONE SOUND NAME DESCRIPTION SAR_CONEACID01 Area Cone Acid Sizzling wind expanding SAR_CONECOLD Area Cone Cold Freezing Ice wind expanding SAR_CONEDISEA Area Cone Disease Flying insect wind expanding SCA_CONEFIRE Area Cone Fire Crackling fire wind expanding SAR_CONEFIRE Area Cone Fire Crackling fire wind expanding SAR_CONEPOIS Area Cone Poison Sizzling/Dripping wind expanding SAR_CONEPRIS Area Cone Prismatic Chime wind expanding SCA_CONESONC01 Area Cone Sonic Vibrating wind expanding SAR_CONESPAR Area Cone Sparkles Whistling wind chime expanding
OUTWARD SOUND NAME DESCRIPTION SCA_OUTHOLY01 Casting Outward Holy Rush of wind with hymn sound SCA_OUTMIND01 Casting Outward Mind Rush of wind with whistle sound SCA_OUTNATR01 Casting Outward Nature Rush of wind with bird sound SCA_OUTNEG Casting Outward Evil Rush of wind with scream sound SCA_OUTSONIC Casting Outward Sonic Rush of wind with hollow wind sound
ENERGY SOUND NAME DESCRIPTION SCE_NEGATIVE Energy Negative Rush of wind with deep chime SCE_NEUTRAL Energy Neutral Rush of wind with tinkling chimes SCE_POSITIVE Energy Positive Rush of wind with high pitched chime
EFFECTS SOUND NAME DESCRIPTION SDR_BARDSONG Bardsong Lute strings playing SDR_BLACKOUT Blackout Quick burst snuffed out SDR_BLUR Blur Vibrating force field SDR_DARKNESS Darkness Deep fading wind SDR_ELESHIELD Elemental Shield Fire burning quickly fading SDR_ELESHIELDLP Elemental Shield (Long Play) Fire burning longer SDR_ENTANGLE Entangle Rustling leaves SDR_ETHEREAL Ethereal Wispy wind with chimes SDR_FREEMOVE Freedom of Movement Vibration SDR_GHOSTLY Ghostly Ghostly howling wind SDR_GLOBEMAX Globe Maximum Hollow sound expanding SDR_GLOBEMAXLP Globe Maximum (Long Play) Hollow sound constant SDR_INVISIBLE Invisible Swirling wind fading SDR_MAGRESIST Magic Resist Shimmering force field SDR_MAGSEE Magic Seeing Tinkling glass SDR_MINDHELP Mind Helpful Whistling wind with flutter SDR_MINDHIT Mind Hit 1 Swirling high pitched wind SDR_MINDHIT02 Mind Hit 2 Echoing wind SDR_MINDHIT03 Mind Hit 3 High pitched chimes wind NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 179 01/06/200J SDR_MINDHIT04 Mind Hit 4 Deep growling wind SDR_MOVPARAL Movement Paralysis Quick sound burst snuffed out SDR_MOVPARALLP Movement Paralysis (Long Play) Hollow constant sound SDR_PARALYZED Paralyzed Limbs locking up SDR_PREMO Premonition Chimes playing in the wind SDR_PROTELEM Protection from Elements High pitched bells and chimes SDR_PROTEVIL02 Protection from Evil High pitched chimes SDR_PROTGOOD02 Protection from Good Low pitched chimes SDR_SANCTUARY Sanctuary Vibrating ray sound SDR_SPELLTURN Spell Turning Short shock SDR_SPELLTURNLP Spell Turning (Long Play) Crackling energy SDR_WEB Web Crackling strands
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 180 01/06/200J
Spell 7Isual Effects These are the visual effects that are used in the spells.2da file for identifying the special effects used when a spell is cast by a character. ConjHead7Isual: Spell ConjuratIon 7Isual Effects above the Caster These effects take place while invoking the spell. VCO_ Visual effect displayed while conjuring a spell MEHED Medium Head Effect appropriate conjuration visual GAZE Gaze Effect appropriate conjuration visual <EFFECT> School of magic most associated with the visuals ## Index number of the visual effect for similar names
HEAD VISUAL NAME DESCRIPTION VCO_MEHEDACID01 Head Medium Acid Single Green/White Light VCO_MEHEDCOLD01 Head Medium Cold Single Light Blue/White Light VCO_MEHEDELEC01 Head Medium Electricity Single White Light VCO_MEHEDEVIL01 Head Medium Evil Single Red Light VCO_MEHEDFIRE01 Head Medium Fire Single Orange Light VCO_MEHEDHEAL01 Head Medium Heal Single Yellow Light VCO_MEHEDHOLY01 Head Medium Holy Single Yellow Light VCO_MEHEDMIND01 Head Medium Mind Single Blue/Purple Light VCO_MEHEDNATR01 Head Medium Nature Single Green Light VCO_MEHEDODD01 Head Medium Odd Single Purple Light VCO_MEHEDSONC01 Head Medium Sonic Single White Light
GAZE VISUAL NAME DESCRIPTION VCO_GAZEEVIL Gaze Evil Radiating Red Spiral Cone with White Lights VCO_GAZEHOLY Gaze Holy Radiating Yellow Spiral Cone with White Lights VCO_GAZEMIND Gaze Mind Radiating Blue/Purple Spiral Cone with White Lights VCO_GAZEODD Gaze Odd Radiating Purple Spiral Cone with White Lights VCO_GAZESONC Gaze Sonic Radiating White Spiral Cone with White Lights VCO_GAZEEVIL Gaze Evil Radiating Red Spiral Cone with White Lights VCO_GAZEHOLY Gaze Holy Radiating Yellow Spiral Cone with White Lights VCO_GAZEMIND Gaze Mind Radiating Blue/Purple Spiral Cone with White Lights VCO_GAZEODD Gaze Odd Radiating Purple Spiral Cone with White Lights NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 181 01/06/200J VCO_GAZESONC Gaze Sonic Radiating White Spiral Cone with White Lights VCO_GAZEEVIL Gaze Evil Radiating Red Spiral Cone with White Lights VCO_GAZEHOLY Gaze Holy Radiating Yellow Spiral Cone with White Lights
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 182 01/06/200J
ConjHand7Isual: Spell ConjuratIon 7Isual Effects around the Caster's Hands These effects take place while invoking the spell. VCO_ Visual effect displayed while conjuring a spell MEHAN Medium Hand Effect appropriate conjuration visual SMHAN Small Hand Effect appropriate conjuration visual <EFFECT> School of magic most associated with the visuals ## Index number of the visual effect for similar names
HAND VISUAL NAME DESCRIPTION VCO_MEHANACID01 Hand Medium Acid Green/White Light with Outer Spiral VCO_MEHANACID02 Hand Medium Acid Green/White Light with Tendrils VCO_MEHANACID03 Hand Medium Acid Cloud of Tiny Green Lights VCO_MEHANCOLD01 Hand Medium Cold Light Blue/White with Outer Spiral VCO_MEHANCOLD02 Hand Medium Cold Light Blue/White Light with Tendrils VCO_MEHANCOLD03 Hand Medium Cold Cloud of Tiny Light Blue Lights VCO_MEHANELEC01 Hand Medium Electricity White Light with Outer Spiral VCO_MEHANELEC02 Hand Medium Electricity White Light with Tendrils VCO_MEHANELEC03 Hand Medium Electricity Cloud of Tiny White Lights VCO_MEHANEVIL01 Hand Medium Evil Red Light with Outer Spiral VCO_MEHANEVIL02 Hand Medium Evil Red Light with Tendrils VCO_MEHANEVIL03 Hand Medium Evil Cloud of Tiny Red Lights VCO_MEHANFIRE01 Hand Medium Fire Orange Light with Outer Spiral VCO_MEHANFIRE02 Hand Medium Fire Orange Light with Tendrils VCO_MEHANFIRE03 Hand Medium Fire Cloud of Tiny Orange Lights VCO_MEHANHEAL01 Hand Medium Heal Yellow/Teal Light with Outer Spiral VCO_MEHANHEAL02 Hand Medium Heal Yellow/Teal Light with Tendrils VCO_MEHANHEAL03 Hand Medium Heal Cloud of Tiny Yellow/Teal Lights VCO_MEHANHOLY01 Hand Medium Holy Yellow Light with Outer Spiral VCO_MEHANHOLY02 Hand Medium Holy Yellow Light with Tendrils VCO_MEHANHOLY03 Hand Medium Holy Cloud of Tiny Yellow Lights VCO_MEHANMIND01 Hand Medium Mind Blue Light with Outer Spiral VCO_MEHANMIND02 Hand Medium Mind Blue/Purple Light with Tendrils VCO_MEHANMIND03 Hand Medium Mind Cloud of Tiny Blue/Purple Lights VCO_MEHANNATR01 Hand Medium Nature Green/Yellow Light with Outer Spiral VCO_MEHANNATR02 Hand Medium Nature Green/Yellow Light with Tendrils NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 18J 01/06/200J VCO_MEHANNATR03 Hand Medium Nature Cloud of Tiny Green/Yellow Lights VCO_MEHANODD01 Hand Medium Odd Purple Light with Outer Spiral VCO_MEHANODD02 Hand Medium Odd Purple Light with Tendrils VCO_MEHANODD03 Hand Medium Odd Cloud of Tiny Purple Lights VCO_MEHANSONC01 Hand Medium Sonic White Light with Outer Spiral VCO_MEHANSONC02 Hand Medium Sonic White Light with Tendrils VCO_MEHANSONC03 Hand Medium Sonic Cloud of Tiny White Lights VCO_SMHANACID01 Hand Small Acid Small Green/White Light VCO_SMHANCOLD01 Hand Small Cold Small Light Blue/White Light VCO_SMHANELEC01 Hand Small Electricity Small White Light VCO_SMHANEVIL01 Hand Small Evil Small Red Light VCO_SMHANFIRE01 Hand Small Fire Small Orange Light VCO_SMHANHEAL01 Hand Small Heal Small Yellow/Teal Light VCO_SMHANHOLY01 Hand Small Holy Small Yellow Light VCO_SMHANMIND01 Hand Small Mind Small Blue/Purple Light VCO_SMHANNATR01 Hand Small Nature Small Green/Yellow Light VCO_SMHANODD01 Hand Small Odd Small Purple Light VCO_SMHANSONC01 Hand Small Sonic Small White Light
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 184 01/06/200J
ConjCrnd7Isual: Spell ConjuratIon 7Isual Effects at Cround around Caster These effects take place while invoking the spell. VCO_ Visual effect displayed while conjuring a spell ATO Particle Effect appropriate conjuration visual GRND Ground Effect appropriate conjuration visual LGRIN Large Ring Effect appropriate conjuration sounds LGSPR Large Spiral Effect appropriate conjuration sounds LGUP Large Upwards Effect appropriate conjuration sounds MEBAL Medium Globe Effect appropriate conjuration sounds MEGRD Medium Ground Effect appropriate conjuration visual <EFFECT> School of magic most associated with the visuals ## Index number of the visual effect for similar names
PARTICLE VISUAL NAME DESCRIPTION VCO_ATO2BLUE Particle Blue Billowy Blue Cloud VCO_ATO2GREEN Particle Green Billowy Green Cloud VCO_ATO2PURP Particle Purple Billowy Purple Cloud VCO_ATO2RED Particle Red Billowy Red Cloud VCO_ATO2YELO Particle Yellow Billowy Yellow Cloud VCO_ATO3BLUE Particle Blue Cloud of Small Blue Lights VCO_ATO3ORANGE Particle Orange Cloud of Small Orange Lights VCO_ATOMBLUE Particle Blue Flicking Blue Light VCO_ATOMGREN Particle Green Flicking Green Light VCO_ATOMPURP Particle Purple Flicking Purple Light VCO_ATOMRED Particle Red Flicking Red Light VCO_ATOMYELO Particle Yellow Flicking Yellow Light
GROUND VISUAL NAME DESCRIPTION VCO_GRNDBLUE Ground Blue Blue Circle with White Lights VCO_GRNDGREN Ground Green Green Circle with White Lights VCO_GRNDLEAF Ground Leaf Floating Brown/Orange Leaves VCO_GRNDPURP Ground Purple Purple Circle with White Lights VCO_GRNDRED Ground Red Red Circle with White Lights VCO_GRNDSKUL Ground Skulls Floating White Skulls VCO_GRNDYELO Ground Yellow Yellow Circle with White Lights NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 185 01/06/200J VCO_MEGRDACID01 Ground Medium Acid Ring of Green Fog with White Specks VCO_MEGRDCOLD01 Ground Medium Cold Ring of Light Blue/White Fog VCO_MEGRDELEC01 Ground Medium Electricity Ring of White/Blue Fog VCO_MEGRDEVIL01 Ground Medium Evil Ring of Red Fog VCO_MEGRDFIRE01 Ground Medium Fire Ring of Orange Fog VCO_MEGRDHEAL01 Ground Medium Heal Ring of Yellow/Teal Sparkles VCO_MEGRDHOLY01 Ground Medium Holy Ring of Yellow Fog VCO_MEGRDMIND01 Ground Medium Mind Ring of Blue Fog VCO_MEGRDNATR01 Ground Medium Nature Ring of Brown Fog with Leaves VCO_MEGRDODD01 Ground Medium Odd Ring of Purple Fog VCO_MEGRDSONC01 Ground Medium Sonic Ring of White Fog
OTHER VISUAL NAME DESCRIPTION VCO_SWAR3BLUE Visual Blue Dense Blue fog VCO_SWAR3YELO Visual Yellow Dense Yellow Fog VCO_WRAITH Visual Wraith Gray Wraith Figure
RING VISUAL NAME DESCRIPTION VCO_LGRINACID01 Ring Acid Ring of Green/White Light; Green Center VCO_LGRINCOLD01 Ring Cold Ring of Light Blue/White Lights; Blue Center VCO_LGRINELEC01 Ring Electricity Ring of White Lights; Blue Center VCO_LGRINEVIL01 Ring Evil Ring of Red Lights; Red Center VCO_LGRINFIRE01 Ring Fire Ring of Orange Flames; Orange Center VCO_LGRINHEAL01 Ring Heal Ring of Yellow/Teal Lights; Yellow Center VCO_LGRINHOLY01 Ring Holy Ring of Yellow/White Lights; Yellow Center VCO_LGRINMIND01 Ring Mind Ring of Blue/Purple Lights; Blue Center VCO_LGRINNATR01 Ring Nature Ring of Yellow Leaves; Green Center VCO_LGRINODD01 Ring Odd Ring of Purple/White Lights; Purple Center VCO_LGRINSONC01 Ring Sonic Ring of White Lights; White Center NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 186 01/06/200J
SPIRAL VISUAL NAME DESCRIPTION VCO_LGSPRACID01 Spiral Acid Green Spirals with White Lights VCO_LGSPRCOLD01 Spiral Cold Light Blue Spirals with White Lights VCO_LGSPRELEC01 Spiral Electricity White Spirals with White Lights VCO_LGSPREVIL01 Spiral Evil Red Spirals with White Lights VCO_LGSPRFIRE01 Spiral Fire Orange Spirals with Orange Lights VCO_LGSPRHEAL01 Spiral Heal Yellow/ Teal Spirals with Yellow Lights VCO_LGSPRHOLY01 Spiral Holy Yellow Spirals with Yellow Lights VCO_LGSPRMIND01 Spiral Mind Blue Spirals with Blue Lights VCO_LGSPRNATR01 Spiral Nature Green Spirals with Yellow Lights VCO_LGSPRODD01 Spiral Odd Purple Spirals with White Lights VCO_LGSPRSONC01 Spiral Sonic White Spirals with White Lights
UPWARDS VISUAL NAME DESCRIPTION VCO_LGUPELEC01 Pillar Electricity Pillar of White/Blue Centers with White Center VCO_LGUPEVIL01 Pillar Evil Pillar of Red Centers with White Center VCO_LGUPFIRE01 Pillar Fire Pillar of Orange Centers with White Center VCO_LGUPHOLY01 Pillar Holy Pillar of Yellow Centers with White Center VCO_LGUPMIND01 Pillar Mind Pillar of Blue Centers with White Center VCO_LGUPNATR01 Pillar Nature Pillar of Green Centers with White Center VCO_LGUPODD01 Pillar Odd Pillar of Purple Centers with White Center VCO_LGUPSONC01 Pillar Sonic Pillar of White Centers with White Center
GLOBE VISUAL NAME DESCRIPTION VCO_MEBALACID01 Ball Acid Ball of Swirling Green/White Trails VCO_MEBALCOLD01 Ball Cold Ball of Swirling Light Blue/White Trails VCO_MEBALELEC01 Ball Electricity Ball of Swirling White/Blue Trails VCO_MEBALEVIL01 Ball Evil Ball of Swirling Red Trails NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 187 01/06/200J VCO_MEBALFIRE01 Ball Fire Ball of Swirling Orange Trails VCO_MEBALHEAL01 Ball Heal Ball of Swirling Yellow/Teal Trails VCO_MEBALHOLY01 Ball Holy Ball of Swirling Yellow Trails VCO_MEBALMIND01 Ball Mind Ball of Swirling Blue/Purple Trails VCO_MEBALNATR01 Ball Nature Ball of Swirling Green/Yellow Trails VCO_MEBALODD01 Ball Odd Ball of Swirling Purple Trails VCO_MEBALSONC01 Ball Sonic Ball of Swirling White Trails
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 188 01/06/200J
CastHead7Isual: Spell CastIng 7Isual Effects above the Caster These effects are played after con]uration, while the spell is manifesting. VCA_ Casting Visual effect displayed after conjuring a spell VAR_ Area Visual effect displayed after conjuring a spell DRAG Dragon Breath Effect appropriate casting visual <EFFECT> School of magic most associated with the visuals
DRAGON VISUAL NAME DESCRIPTION VCA_DRAGACID Dragon Breath Acid Downward Green Breath Cone VAR_DRAGCOLD Dragon Breath Cold Downward Light Blue Breath Cone VCA_DRAGELEC Dragon Breath Electricity Downward Grey Breath Cone VCA_DRAGFIRE Dragon Breath Fire Downward Orange Breath Cone VCA_DRAGGAS Dragon Breath Gas Downward Dull Green Breath Cone VCA_DRAGMIND Dragon Breath Mind Downward Blue Breath Cone VCA_DRAGODD Dragon Breath Odd Downward Purple Breath Cone VCA_DRAGFIRE Dragon Breath Fire Downward Orange Breath Cone
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 189 01/06/200J
CastHand7Isual: Spell CastIng 7Isual Effects around the Caster's Hands These effects are played after con]uration, while the spell is manifesting. VCA_ Casting Visual Effect displayed after conjuring a spell VAR_ Area Visual Effect displayed after conjuring a spell CONE Cone Shaped Effect appropriate casting visual OUT Outward Shaped Effect appropriate casting visual <EFFECT> School of magic most associated with the visuals ## Index number of the visual effect for similar names
CONE VISUAL NAME DESCRIPTION VCA_CONEACID01 Area Cone Acid Green Cone Cloud VAR_CONECOLD Area Cone Cold Light Blue/White Cone Cloud VAR_CONEDISEASE Area Cone Disease Dull Green Cone Cloud with Green Specks VCA_CONEEVIL01 Area Cone Evil Red Cone Cloud VAR_CONEFIRE Area Cone Fire Orange Cone Cloud VCA_CONENATR01 Area Cone Nature Purple Cone Cloud VAR_CONEPOISON Area Cone Poison Green/Black Cone Cloud VAR_CONEPRIS Area Cone Prismatic Rainbow Cone Sparkles VCA_CONESONC01 Area Cone Sonic White Cone Cloud VAR_CONESPAR Area Cone Sparkles Rainbow Cone Cloud
OUTWARD VISUAL NAME DESCRIPTION VCA_OUTACID01 Outward Acid Green/White Cloud Burst VCA_OUTCOLD01 Outward Cold Light Blue Cloud Burst VCA_OUTELEC01 Outward Electricity White Cloud Burst VCA_OUTEVIL01 Outward Evil Red Cloud Burst VCA_OUTFIRE01 Outward Fire Orange Cloud Burst VCA_OUTHEAL01 Outward Heal Yellow/Teal Cloud Burst VCA_OUTHOLY01 Outward Holy Yellow Cloud Burst VCA_OUTMIND01 Outward Mind Blue/Purple Cloud Burst VCA_OUTNATR01 Outward Nature Green Sparkles VCA_OUTNEG Outward Negative Dark Purple/Black Cloud VCA_OUTPOS Outward Positive White Cloud Burst VCA_OUTSONIC Outward Sonic White Burst and Concentric White Rings NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 190 01/06/200J
CastCrnd7Isual: Spell CastIng 7Isual Effects at Cround around Caster These effects are played after con]uration, while the spell is manifesting. VCA_ Casting Visual Effect displayed after conjuring a spell VAR_ Area Visual Effect displayed after conjuring a spell VCE_ Energy Effect displayed after conjuring a spell CONE Cone Shaped Effect appropriate casting visual OUT Outward Shaped Effect appropriate casting visual <EFFECT> School of magic most associated with the visuals ## Index number of the visual effect for similar names
UPWARD VISUAL NAME DESCRIPTION VCA_UPHEXACID01 Pillar Acid Shaft of Green/White Light VCA_UPHEXCOLD01 Pillar Cold Shaft of Light Blue/White Light VCA_UPHEXELEC01 Pillar Electricity Shaft of White Light VCA_UPHEXEVIL01 Pillar Evil Shaft of Red/White Light VCA_UPHEXFIRE01 Pillar Fire Shaft of Orange/White Light VCA_UPHEXHEAL01 Pillar Heal Shaft of Yellow/Teal/White Light VCA_UPHEXHOLY01 Pillar Holy Shaft of Yellow/White Light VCA_UPHEXMIND01 Pillar Mind Shaft of Blue/Purple/White Light VCA_UPHEXNATR01 Pillar Nature Shaft of Green/Yellow/White Light NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 191 01/06/200J
ScrIptIng - 7Isual Effects These are the visual effects that may be used in scripts to provide special effects for spell casting and other actions. These are typically used with the EffectVisualEffect() or EffectBeam() functions. 8eam Effects: 7Isual Effects that create a 8eam between Two Dbjects VFX_ Visual Special Effect BEAM_ Beam Effect <EFFECT> Effect Category for the visual effect
BEAM VISUAL NAME DESCRIPTION VFX_BEAM_COLD Light Blue Light Beam with crackling White Streaks around it VFX_BEAM_EVIL Red Light Beam with crackling White Streaks around it VFX_BEAM_FIRE Orange Light Beam with crackling White Streaks around it VFX_BEAM_FIRE_LASH Two (2) Orange Fiery Whips that strike the Target VFX_BEAM_HOLY Yellow Light Beam with crackling White Streaks around it VFX_BEAM_LIGHTNING Three (3) White/Blue Lightning Streaks that strike the Target VFX_BEAM_MIND Blue Light Beam with crackling White Streaks around it VFX_BEAM_ODD Purple Light Beam with crackling White Streaks around it
Combat Effects: 7Isual Effects that are used for 0amage In Combat VFX_ Visual Special Effect COM_ Combat Effect BLOOD_ Blood Spray effect CHUNK_ Body Chunk effect HIT_ On Hit effect SPECIAL_ Special Purpose effect <EFFECT> Effect Category for the visual effect
COMBAT VISUAL NAME DESCRIPTION VFX_COM_ SPARKS_PARRY UNLOAD_MODEL NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 194 01/06/200J
0uratIon Effects: 7Isual Effects that must be used wIth a 0uratIon VFX_ Visual Special Effect DUR_ Duration Effect AURA_ Aura effect LIGHT_ Illumination effect MIND_AFFECTING_ Mind Affecting effect PROT_ Protective effects that Cover the Target PROTECTION_ Protection effects <EFFECT> Effect Category for the visual effect
COMBAT VISUAL NAME DESCRIPTION VFX_DUR_ ANTI_LIGHT_10 BARD_SONG White Notes Floating Up BLACKOUT BLIND BLINDVISION BLUR CESSATE_NEGATIVE CESSATE_NEUTRAL CESSATE_POSITIVE DARKNESS DARKVISION ELEMENTAL_SHIELD Ring of Outward Radiating Orange Flames on Ground ENTANGLE ETHEREAL_VISAGE Covers Object in Purple Glow FREEDOM_OF_MOVEMENT Green Light on Ground Surrounded by Green Light Dots GHOSTLY_PULSE GHOSTLY_VISAGE Covers Object in Blue Glow GLOBE_INVULNERABILITY Transparent Purple and Green Dense Smoky Globe GLOBE_MINOR Transparent Purple Sparse Smoky Globe INVISIBILITY Turns Object Transparent LIGHT LOWLIGHTVISION NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 195 01/06/200J MAGIC_RESISTANCE Five (5) Teal Spinning Angled Rune Circles MAGICAL_SIGHT MIRV_ACID PARALYZE_HOLD Four (4) Swirling Trails of White Lights moving in Opposite Directions PARALYZED Object is Covered by a White and Red Glow SANCTUARY Two (2) Spirals of Blue Lights SPELLTURNING Ring of Outward Radiating Blue Flames on Ground ULTRAVISION Floating Light Blue and Purple Eyes that Appear and Disappear WEB White Web Strands Attach to the Object WEB_MASS VFX_DUR_AURA_ COLD DISEASE DRAGON_FEAR FIRE ODD POISON SILENCE VFX_DUR_LIGHT_ BLUE_10 BLUE_15 BLUE_20 BLUE_5 GREY_10 GREY _15 GREY _20 GREY _5 ORANGE_10 ORANGE _15 ORANGE _20 ORANGE _5 PURPLE_10 PURPLE _15 PURPLE _20 PURPLE _5 NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 196 01/06/200J RED_10 RED _15 RED _20 RED _5 WHITE_10 WHITE _15 WHITE _20 WHITE _5 YELLOW_10 YELLOW _15 YELLOW _20 YELLOW _5 BLUE_10 BLUE_15 BLUE_20 BLUE_5 GREY_10 GREY _15 GREY _20 GREY _5 VFX_DUR_MIND_AFFECTING_ DISABLED DOMINATED Spinning Crown of Stacked White/Blue/Purple Lights FEAR Floating Black Skulls surrounded by Orange Flames NEGATIVE Cloud of Light Blue and White Spiraling Lights POSITIVE Spinning Crown of Blue Streaks and White Lights VFX_DUR_PROT_ BARKSKIN Object is Covered by Brown Bark Pattern GREATER_STONESKIN Object is Covered by Gray Stone Pattern PREMONITION Globe of Light Blue Swirling Fog with Floating Blinking Eyes SHADOW_ARMOR Object is Covered by Black Cloudy Pattern STONESKIN Object is Covered by Gray Stone Pattern VFX_DUR_PROTECTION_ ELEMENTS Orange Streaks and White Lights Floating up from the Ground EVIL_MAJOR Pillar of Red Streaks Floating up from the Ground NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 197 01/06/200J EVIL_MINOR Small Cloud of Red Lights Floating Up GOOD_MAJOR Pillar of Yellow Streaks Floating up from the Ground GOOD_MINOR Small Cloud of Yellow Lights Floating up
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 198 01/06/200J
FIre and Forget Effects: 7Isual Effects that are created and last a FIxed TIme VFX_ Visual Special Effect FNF_ Fire and Forget Effect GAS_EXPLOSION_ Gas Explosion effect HOWL_ Howling effect LOS_ Line of Sight effect <EFFECT> Effect Category for the visual effect
COMBAT VISUAL NAME DESCRIPTION VFX_FNF_ BLINDDEAF Large White Light Flash and Smaller Light Blue Light Flashes DISPEL Outward Spiraling White Cloudy Strands DISJUNCTION Dense Outward Spiraling Light Blue Cloudy Strands DISPEL_GREATER Dense Outward Radiating White Fog FIREBALL FIRESTORM Large Rain of Fire with Orange Fire Clouds on the Ground HORRID_WILTING Dull Green Cloud with White Sparkles and Gas Spores Spawning on Ground ICESTORM Light Blue Icicles dropping from the Sky with Explosive Impacst IMPLOSION Spinning Yellow Fog Rings Converge on the Target, ending with Black Smoke MASS_HEAL MASS_MIND_AFFECTING METEOR_SWARM Black Rocks dropping from the Sky amidst Fire Clouds and Explosive Impacts NATURES_BALANCE Green Rune Disk on Ground with Green Streaks moving up and Blue Lights moving down PWKILL Red Rune Disk on Ground with Four (4) Lightning Bolts in Pyramid Shape PWSTUN Cloud of White Lights and Purple Streaks SCREEN_BUMP SCREEN_SHAKE SMOKE_PUFF SOUND_BURST Concentric White Circles moving down to Ground and Emanating Outwards STORM Black Shadows on Ground with Green Rain Falling NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 199 01/06/200J STRIKE_HOLY Pillar of Yellow Light from the Sky SUMMON_CELESTIAL Brown Fog with Three (3) Crystal Claw Pillars that Rise from Ground SUMMON_GATE Brown Fog with Three (3) Stone Claw Pillars that Rise from Ground SUMMON_MONSTER_1 Grey Fog Cloud with White Explosive Burst SUMMON_MONSTER_2 White Rune Disk with White Cloud and White Ribbon Lights SUMMON_MONSTER_3 White Rune Ring with Yellow/Teal Flame Clouds around Edge SUMMON_UNDEAD Ghostly White Fountain of Light Clouds SUNBEAM Angled Orange Pillar of Flames from the Sky TIME_STOP Teal Rune Disk on Ground with Angled White Rune Circles in Air above Caster WAIL_O_BANSHEES White Clouds with Large Clear Blue Ghoul that Spawns in Shafts of White Light WEIRD Black Shadows with Large Two-Headed Tentacle Horror that Spawns on Ground WORD VFX_FNF_GAS_EXPLOSION_ ACID Small Explosive Green Sparks and Green Puff of Smoke EVIL Small Explosive Red Sparks and Green Puff of Smoke FIRE Small Explosive Orange Sparks and Green Puff of Smoke GREASE Small Explosive Black Sparks and Black Puff of Smoke MIND Small Explosive Blue Sparks and Blue Puff of Smoke NATURE Small Explosive Brown Sparks and Brown Puff of Smoke ACID Small Explosive Green Sparks and Green Puff of Smoke VFX_FNF_HOWL_ MIND ODD WAR_CRY WAR_CRY_FEMALE VFX_FNF_LOS_ EVIL_10 EVIL_20 EVIL_30 HOLY_10 HOLY_20 HOLY_30 NORMAL_10 NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 200 01/06/200J NORMAL_20 NORMAL_30
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 201 01/06/200J
mpact Effects: 7Isual Effects that are used for mpact Effects VFX_ Visual Special Effect IMP_ Impact Effect AURA_ Aura effect HEAD_ Hovering Head effect PULSE_ Pulsing effect <EFFECT> Effect Category for the visual effect
COMBAT VISUAL NAME DESCRIPTION VFX_IMP_ AC_BONUS Three (3) Stacked White Rings Form Around the Target (SFX: Power Up) ACID_L Large Green/Yellow Explosive Burst (SFX: Acid Sizzle) ACID_S Small Green/Yellow Explosive Flash (SFX: Acid Sizzle) BLIND_DEAF_M Thick White Ring Forms Around top of Target (SFX: Tinkling Chimes) BREACH White Cloud with Large White Sparkles CHARM Cloud of Purple/Blue Lights CONFUSION_S Small White Explosive Flash (SFX: Tinkling Glass) DAZED_S Two (2) Spinning White Interwoven Rings with White Lights DEATH White Flash of Light and Ghostly White Vapors Floating Up DEATH_L White Flash of Light in a Red Cloud DEATH_WARD Hollow Pillar of Swirling Purple Vapors DESTRUCTION Purple Streaks Converge into Purple Cloud (SFX: Funneling Wind) DISEASE_S Small Brown Explosive Cloud with Black Insects (SFX: Insect Sounds) DISPEL Light Blue Cloud with Large White Sparkles DISPEL_DISJUNCTION DIVINE_STRIKE_FIRE Orange Pillar of Flame from Sky that Explodes on Strike DIVINE_STRIKE_HOLY Yellow Pillar of Flame from Sky that Explodes on Strike DOMINATE_S Four (4) Spinning White Interwoven Rings (SFX: Low Vibration) DOOM Black Cloud with Three (3) Lightning Strikes (SFX: Thunder/Lightning) ELEMENTAL_PROTECTION Green and Orange Flame Cloud EVIL_HELP Red Rune Ring that Flies up from Ground to the Sky NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 202 01/06/200J FEAR_S FLAME_M Medium Orange and Black Explosive Burst (SFX: Fireburst) FLAME_S Small Orange Explosive Flash (SFX: Fireburst) FORTITUDE_SAVING_THROW _USE
FROST_L Large Light Blue Explosive Burst (SFX: Crackling Ice) FROST_S Small Light Blue Explosive Flash (SFX: Crackling Ice) GLOBE_USE Transparent White Globe that Flashes Once GOOD_HELP Yellow Rune Ring that Falls down from Sky to the Ground GREASE Small Purple Circle with Spikes on Ground HARM Pillar of Red Light from Sky Strikes Target (SFX: Searing) HASTE Small Blue Circle with Spikes on Ground (SFX: Power Up) HEALING_G Short Pillar of Yellow/Teal/White Vertical Streaks around Target HEALING_L Teal/White Sparkles Spiral Up around Target HEALING_M Yellow Cloud Pours down into Yellow/Teal Cloud of Lights HEALING_S Two (2) Teal / White Sparkle Trails Rotate around Target HEALING_X Pillar of Teal Light from Sky Strikes Target HOLY_AID White and Yellow Streaks Converge into White Cloud IMPROVE_ABILITY_SCORE Purple and Yellow Lights Spiral around Target KNOCK Light Blue Streaks Converge into White Cloud (SFX: Lockpicks) LIGHTNING_M Medium White Explosive Burst (SFX: Static Charge) LIGHTNING_S Small White Explosive Burst (SFX: Static Charge) MAGBLUE Blue/White Explosive Burst (SFX: Sizzle) MAGIC_PROTECTION Blue Lights Floating Up to Form Cloud that Dissipates Toward Ground (SFX: Wind) MAGIC_RESISTANCE_USE MAGICAL_VISION Blue/White Smoke Spirals with Floating Eyes MIRV Wobbly Blue Cloud that Moves to Target (SFX: Accelerating Wind) MIRV_FLAME Flame Tipped Arrow NEGATIVE_ENERGY Red/White Explosive Burst (SFX: Howling Sizzle) POISON_L POISON_S POLYMORPH Pillar of Green Angled Shafts of Light Strike into White Cloud RAISE_DEAD REDUCE_ABILITY_SCORE Red Streaks Converge into Black Cloud NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 20J 01/06/200J REFLEX_SAVE_THROW_USE REMOVE_CONDITION Cloud of Yellow/Teal Sparkles RESTORATION Three (3) Large Yellow and Teal Light Globes Dissolve into Sparkles RESTORATION_GREATER Cloud of Yellow/Teal Lights Spiral around Target RESTORATION_LESSER Four (4) Small Yellow and Teal Light Globes around Target SILENCE Three (3) White Concentric Ring Patterns on Ground (SFX: Wobble) SLEEP White Z's Floating up (SFX: Snoring) SLOW Small Purple Circle with Spikes on Ground (SFX: Power Down) SONIC Small White Explosive Flash with Two (2) White Rings (SFX: Whistling) SPELL_MANTLE_USE SPIKE_TRAP STUN Medium White Explosive Burst SUNSTRIKE Yellow/White Explosive Flash SUPERHEROISM Creature turns into Large Skull Armored Warrior with Flaming Sword UNSUMMON Red Rune Ring Expands on Ground with Red Streaks Shooting Up WILL_SAVING_THROW_USE VFX_IMP_AURA_ FEAR HOLY NEGATIVE_ENERGY UNEARTHLY VFX_IMP_HEAD_ ACID Four (4) Green/White Streaks Meet to form Green Sphere COLD ELECTRICITY EVIL FIRE HEAL Two (2) Teal and Two (2) Yellow Streaks Meet to form White Sphere HOLY Yellow Expanding Cloud MIND NATURE Four (4) Yellow Streaks Meet to form Green Sphere ODD Purple Explosive Cloud NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 204 01/06/200J SONIC Four (4) White Streaks Meet to form White Sphere VFX_IMP_PULSE_ COLD FIRE HOLY NATURE NEGATIVE WATER WIND
NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 205 01/06/200J
Area of Effect Effects: 7Isual Effects that occupy an Area of Effect VFX_ Visual Special Effect AOE_ Area of Effect MOB_ Mobile effect PER_ Persistent effect <EFFECT> Effect Category for the visual effect
COMBAT VISUAL NAME DESCRIPTION VFX_AOE_MOB_ BLINDING CIRCCHAOS CIRCEVIL Circle of Purple Lights on Ground Rotating in Opposite Directions CIRCGOOD Circle of Yellow Lights on Ground Rotating in Opposite Directions CIRCLAW DRAGON_FEAR ELECTRICAL FEAR FIRE FROST INVISIBILITY_PURGE MENACE PROTECTION SILENCE Circle of White Lights on Ground Rotating in Opposite Directions STUN TYRANT_FOG UNEARTHLY UNNATURAL VFX_AOE_PER_ CREEPING_DOOM Swarm of Small Black Insect Dots DARKNESS Large Inky Black Cloud DELAY_BLAST_FIREBALL Orange Sparkling Lights on Ground ENTANGLE Random Patches of Brown Clouds with Brown Tendrils NeverwInter NIghts Custom Content CuIde vJ.0 SpecIal Effects
Page 206 01/06/200J Reaching Out EVARDS_BLACK_TENTACLES Random Patches of Black Smoke with Black Tendrils Reaching Out FOGACID Large Green Cloudy Patches on Ground FOGFIRE Large Orange Fiery Cloud Patches on Ground FOGGHOUL Large Brown Cloudy Patches on Ground FOGKILL Large Red Cloudy Patches on Ground FOGMIND Large Blue Cloudy Patches on Ground FOGSTINK Large Greenish Yellow Cloudy Patches on Ground GREASE Large Black Cloudy Patches on Ground INVIS_SPHERE STORM WALLBLADE Line of Brown Cloud Patches with Sharp Blades Shooting from Ground WALLFIRE Line of Orange Fiery Clouds WALLWIND WEB White Overlapping Web Pattern on the Ground
NeverwInter NIghts Custom Content CuIde vJ.0 Change HIstory
Page 207 01/06/200J Change HIstory Primary changes to create version 3.0 include: All new information on animation, bones, skins and meshes in the Creatures section. All new section on Custom Races. Added new sections on Visual Effects and a reference on Spell Effects Updated the procedures for adding multiple hakpaks. Updated the section on dialog.tlk. Updates to baseitems.2da and iprp_spells.2da. Added a section on Normals and on Smoothing Groups to the Weapons tutorial. Primary changes to create version 2.01 include: No content changes. Turned all hyperlinks into clickable URLs (I am now using PDF995 instead of PDFCreator to generate the PDF file). Added bookmarks. Primary changes to create version 2 include: Added notes about the new patch.bif file in section 1. Added more notes about DDS files in the weapons section. Updated the section on voicesets, especially with regard to PC voicesets. Added a full description of portraits.2da and soundset.2da. Added a tutorial on Creatures. Added Feats.2da. Updated the tools section at the end of this tutorial with newer information. Primary changes to create version 1.1 include: Removed references to OpenFX. There do not seem to be import/export scripts for this modeling tool anyway. Added a reference to Milkshape 3D instead. Added a few more tools including pltcon. Minor changes/additions to the Weapons tutorial, including info about textures, etc. Added a pointer to the OnHit hak by Sekhmet. Greatly expanded the section on baseitems.2da. Added notes on weapons that bend (like flails). Few or no changes to Portraits or Sounds. Added a new section on Items without Models Added a new section on Armor Added a new section on Spells Reorganized and added material to the Other Tutorials section Added a section on Appearance.2da to at least give the impression Im thinking about working on creatures next. :-) NeverwInter NIghts Custom Content CuIde vJ.0 Change HIstory