tag:blogger.com,1999:blog-91228462420683056032024-02-21T14:24:59.471+08:00Faithless: The Making of an NWN2 ModuleFrank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.comBlogger120125tag:blogger.com,1999:blog-9122846242068305603.post-7712494234706190872014-07-19T15:38:00.001+08:002014-07-19T21:02:24.169+08:00A New Home for BoBMy most popular contribution to the defunct NWVault was a module called Battle of the Builds. I like to call it BoB for short. As of last count, BoB had gotten a total of 31 votes with an average rating of 9.63 out of 10. With over 18,000 downloads, this module earned a place in the Vault's Hall of Fame. (I didn't memorize any of these stats, by the way. I had to look them up in the <a href="http://web.archive.org/web/20120717163632/http://nwvault.ign.com/View.php?view=NWN2ModulesEnglish.Detail&id=223" target="_blank">Wayback Machine</a>.)<br />
<br />
As the Vault had breathed its last about a month ago, BoB had been homeless during this time. Thanks to Thibaut Charles, whose comment in my last blog post alerted me to the spiritual successor of the old Vault, BoB now has a new home. Players can <a href="http://neverwintervault.org/project/nwn2/module/battle-builds" target="_blank">download the Battle of the Builds at the Neverwinter Vault</a>.<br />
<br />
I don't really expect BoB to get much attention anymore. Its glory days are long gone. Still, it's nice to know that BoB has a new place to hang its hat in and reminisce with fellow refugees from the old Vault.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com0tag:blogger.com,1999:blog-9122846242068305603.post-85201536710997370192014-07-16T23:37:00.001+08:002014-07-17T12:08:20.851+08:00R.I.P. Neverwinter VaultI recently found out that the Neverwinter Vault had closed for good about a month ago. Although I had already said farewell to Neverwinter Nights a couple of years back, I feel as if a part of me had just died. Quite a few of my creative efforts were at the Vault – some 3D models, a couple of scripts, and my <i>piece de resistance</i>, the popular and highly rated Battle of the Builds module. I should also add that I had contributed a short but atmospheric adventure to BouncyRock's Halloween campaign, another popular mod that also garnered high ratings. All those contributions amounted to several months of my life. Now they're gone, all gone.<br />
<br />
To me, the death of the Vault marks the passing of an era, a golden age of prolific modding that I had never known before or since. It was through modding Neverwinter Nights that I learned how to program combat AI and create 3D models. I had helped and been helped by fellow modders at the official forums. It was a wonderful experience, and I will always cherish the memory of sharing this fine hobby with fellow enthusiasts from all over the world.<br />
<br />
I've already said goodbye to the game. Now it's time to say goodbye to the Vault. Farewell to all the files that I had poured my heart and soul into. I take comfort in the thought that my contributions had provided some brief moments of enjoyment to other players.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com4tag:blogger.com,1999:blog-9122846242068305603.post-81013033397410866232013-02-10T19:04:00.001+08:002013-02-10T19:06:52.600+08:00Bow Rigging TutorialI just wanted to give a heads up on <a href="http://elyzius.blogspot.com/2013/02/tutorial-rigging-bow-in-3ds-max.html" target="_blank">a tutorial I wrote on how to rig a bow in 3DS Max</a>. The tutorial isn’t specific to Neverwinter Nights,
which is why I wrote it in <a href="http://elyzius.blogspot.com/" target="_blank">my other game development blog</a>. I had no luck googling
for a tutorial like it, so I decided to write one after having figured out how to do it. Hopefully, other 3D modelers
can benefit from this tutorial.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com2tag:blogger.com,1999:blog-9122846242068305603.post-3316724312581509702012-09-17T23:18:00.002+08:002012-09-17T23:38:59.406+08:00Farewell, NeverwinterI bid a fond farewell to the game that I’ve stuck with longer than any other, <i>Neverwinter Nights 2</i>. I’m sorry that “Faithless,” the module that I intended to make and for which I started this blog, will never be completed. Nevertheless, none of my efforts has really gone to waste. I’ve acquired quite a few useful skills from my attempts to mod this game, although I may have already learned all that is worth learning from it. As far as crafting games is concerned, I now feel the urge to travel the indie route. To document the experiences I will undergo as I take this path, I created a new blog – <a href="http://elyzius.blogspot.com/" target="_blank">Elyzius’s Game Laboratory</a>. If you’re into game design and production, feel free visit my new blog from time to time and leave comments on any post I make.<br />
<br />
To all the members of the Neverwinter community with whom I have had the pleasure of exchanging ideas or supporting each other’s efforts, I thank you. Don’t be a stranger now.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com5tag:blogger.com,1999:blog-9122846242068305603.post-73972737443357251412012-07-18T13:45:00.000+08:002012-09-17T23:34:32.784+08:00Converting Skyrim Armor to NWN2, Part 1<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpHVr6iqsh-K92xGORc2I2xG0iw_QeYAeqXKnIF0LQcOje7XKW6Cl8iY21MFcXW_ivccXfB-alPbQFjY6Xu7fnud5jdkuM6bSDKsaxNvGoCGRsaB89gtcd8bTUfJK6nxZdWTNVma1W0Gw/s1600/Triss.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpHVr6iqsh-K92xGORc2I2xG0iw_QeYAeqXKnIF0LQcOje7XKW6Cl8iY21MFcXW_ivccXfB-alPbQFjY6Xu7fnud5jdkuM6bSDKsaxNvGoCGRsaB89gtcd8bTUfJK6nxZdWTNVma1W0Gw/s320/Triss.jpg" width="182" /></a></div>
Four months ago, I offered to write a tutorial for Casadechrisso on how to convert armor made by Skyrim custom content makers into NWN2 armor. I didn’t actually know how to go about it, but I assumed that it wouldn’t be too difficult for me to figure out. Well, Casadechrisso accepted my offer about two months ago, which is why I’m posting yet another tutorial series on game modding. I haven’t actually completed the conversion as of this time, so this blog post is as much a tutorial as it is a journal of my progress.<br />
<br />
<h2>
Conversion Problems</h2>
Converting model files between video games is not without its problems, especially if the games are very different from each other. For example, it is possible to convert NWN models to NWN2 models, but the results often look crude and blocky. Likewise, converting Skyrim models to NWN2 models may be problematic for two reasons.<br />
<br />
Firstly, Skyrim armor has way more polygons than are recommended for NWN2, which is still slow compared to newer games nowadays. I would recommend lowering the poly count of the armor at some point before rigging it to the NWN2 skeleton, but I won’t show how to do it in this tutorial. Lowering the poly count of a mesh is something of an art in itself, one that can be more difficult to accomplish than building a mesh from scratch. Please keep this caveat in mind. If your NWN2 game seems slower whenever your character wears Skyrim armor, you’ll know why.<br />
<br />
Secondly, Skyrim's normal maps are very different from those of most games. NWN2 uses <i>tangent space normal maps</i>, which generally have a light violet hue and a limited color range that goes between turquoise and magenta. Below is an example of a tangent space normal map, which I got from NWN2.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0jR0DqQQX6JNLbo4PYWDFEDtIhH9m6Ix3VGlqYK2H4WpktnaHr0zmTNonn63LdU2NfDUCDXHW8sLHNuEjXpvQwxP5rHPF7k9ntvjqaDqI-WPMdKslC80USqhtsMLztJpVGvZQZU16fq8/s1600/P_HHF_Head02_N.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0jR0DqQQX6JNLbo4PYWDFEDtIhH9m6Ix3VGlqYK2H4WpktnaHr0zmTNonn63LdU2NfDUCDXHW8sLHNuEjXpvQwxP5rHPF7k9ntvjqaDqI-WPMdKslC80USqhtsMLztJpVGvZQZU16fq8/s400/P_HHF_Head02_N.jpg" width="400" /></a></div>
<br />
Most 3D games use tangent space normal maps for their models. From what I understand, you can deform (i.e., animate) objects that use tangent space normal maps and still preserve their surface appearance. If you deform a mesh that uses object space normal maps, it won't look right.<br />
<br />
That was my understanding thus far. Imagine my surprise when I opened a normal map from Skyrim and found this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9IlwAa5WfzhTD5FLrFMb3fxAi2Qwuosng-DL1US-4bcuFvgiSEmSapK1enZdPYbELwkywcbc6LGhKXRZdV6OVPCvCO-sFdGTG4EwZ2vkHb5lzxe6p43JJfSaIxSgcy-I_9Um4c0ubch0/s1600/femalehead_msn.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9IlwAa5WfzhTD5FLrFMb3fxAi2Qwuosng-DL1US-4bcuFvgiSEmSapK1enZdPYbELwkywcbc6LGhKXRZdV6OVPCvCO-sFdGTG4EwZ2vkHb5lzxe6p43JJfSaIxSgcy-I_9Um4c0ubch0/s400/femalehead_msn.jpg" width="400" /></a></div>
<br />
The addition of orange and green hues clearly indicates that the above is an <i>object space normal map</i>. Supposedly, models that use normal maps of this type are faster to render, but they can't be deformed without making the model look bad. Yet, lo and behold, this normal map is for a female head, which deforms every time it talks, blinks, or furrows its brow. How is this possible? It seems that the game programmers at Bethesda have uncovered some dark sorcery that allows them to use object space normal maps on animated meshes.<br />
<br />
As far as I know, it is not possible to convert object space normal maps to tangent space normal maps. If the model you want to convert uses object space normal maps, your only option is to <span style="background-color: white;">make a tangent space normal map from scratch, even if it is just a uniform light violet color all throughout.</span><br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;">For this tutorial, I downloaded an armor model that fortunately uses tangent space normal maps. It was actually converted from </span><i>The Witcher 2</i><span style="background-color: white;">, which is why its normal map is like that of most other games.</span><br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;">If you</span><span style="background-color: white;">’</span><span style="background-color: white;">re still with me, then read on.</span><br />
<br />
<h2>
Legal Considerations</h2>
Before we continue, I’d like to say a few words about some important legal issues so that no one can reasonably accuse me of encouraging copyright infringement.<br />
<br />
In general, you must never upload or distribute any model that was originally created by anyone other than yourself without getting the permission of whoever created it. There are exceptions of course, depending on what permissions the original creators granted to those who acquire their work. Unless they explicitly state otherwise, you must assume that their permission will always be required.<br />
<br />
For this tutorial, I’m using a mod called <a href="http://skyrim.nexusmods.com/downloads/file.php?id=4708" target="_blank">Triss Armor Re-textured </a>by Psyke23 and oldholo, who converted the clothing worn by Triss Merigold in <i>The Witcher 2</i>. The developers of The Witcher games, CD Projekt, generously granted permission for Triss Merigold’s armor to be adapted for use in Skyrim. They granted me no such permission, however, and neither did Psyke23 or oldholo. That’s because I didn’t ask for it since I’m only using this armor for illustration purposes. I will not upload the converted armor to any website unless the creators of the armor allow me. If you want your own Triss armor in NWN2, your best bet is to follow my tutorial.<br />
<br />
<h2>
Requirements</h2>
For this tutorial, you will need the following.<br />
<br />
<ul>
<li><i>Skyrim</i> and <i>Neverwinter Nights 2</i>, of course.</li>
<li>Image editing software such as Photoshop or <a href="http://www.gimp.org/" target="_blank">Gimp</a>. We’ll need it to edit the texture files of the model.</li>
<li>3DS Max version 5, 6, 7, 8, 9, 2008, or 2009.</li>
<li>The version of <a href="http://nwvault.ign.com/View.php?view=nwn2plugins.Detail&id=27" target="_blank">tazpn’s 3ds Max MDB Importer/Exporter plugin</a> that is appropriate for your 3DS Max installation. We’ll need this to import and export NWN2 models.</li>
<li>The <a href="http://sourceforge.net/projects/niftools/files/max_plugins/" target="_blank">NifTools plugin</a> that is appropriate for your version of 3DS Max. This will allow us to import models that are saved as NIF files. <a href="http://sourceforge.net/projects/niftools/files/max_plugins/3.4/" target="_blank">NifTools 3.4</a>, the latest version as of this writing, cannot read Skyrim models directly. We’ll need a tool to convert it into a format that NifTools can read, which brings us to our next requirement.</li>
<li><a href="http://niftools.sourceforge.net/wiki/NifSkope" target="_blank">NifSkope</a>, a tool that you can use for loading, editing, and exporting models that use the NIF format. You can run it from your hard drive without having to install it. We’ll need this software to convert Skyrim models into a format that NifTools can read.</li>
<li>The <a href="http://fallout3.nexusmods.com/mods/34" target="_blank">FO3 Archive Utility</a>, an extraction tool for BSA files. BSA stands for Bethesda Softworks Archive, which is a file that contains other data files for Bethesda's games. We will need this utility to extract the skeleton that Skyrim characters use. (FO3 actually stands for Fallout 3, but this program can read Skyrim BSA files as well.)</li>
<li>Any armor provided by Skyrim modders that you want to convert to NWN2. There are a number that you can download at the <a href="http://skyrim.nexusmods.com/index.php" target="_blank">Skyrim Nexus</a> and the <a href="http://steamcommunity.com/sharedfiles/browse/?appid=72850&browsesort=toprated" target="_blank">Steam Workshop</a>. For this tutorial, I’m using the <a href="http://skyrim.nexusmods.com/downloads/file.php?id=4708" target="_blank">Triss Armor Re-textured mod</a>.</li>
<li>If parts of the armor you downloaded show some skin, such as just below the neck or portions of the arms or legs, you will need a nude NWN2 model to replace the Skyrim body with. Recall that because Skyrim models use object space normal maps, we can't use them in NWN2. If you need a nude base, I recommend downloading the <a href="http://neverwinter.nexusmods.com/mods/9" target="_blank">Skins for All Races mod</a> by Casa and Jester_v01.</li>
<li>If the nude base you downloaded comes in a hak pak, you will need an application for extracting its contents. I use tani's <a href="http://nwvault.ign.com/View.php?view=nwn2tools.detail&id=9" target="_blank">NWN2Packer</a>, but you may want to check out <a href="http://nwvault.ign.com/View.php?view=NWN2Tools.Detail&id=67" target="_blank">Ladydesire's Tool Pack</a> as well.</li>
</ul>
<br />
<h2>
Tutorial</h2>
<ol>
<li>Go to the Data folder of your NWN2 installation.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyqAZGMNEjvBOgPwOddiXTu1lZwCAAE_XlgXu54_AQxZuQwWnbvFmdNuaVGXtKmeVWKXNfNXlnUMG1JcRbCzRO6Y5UqwAzb1QfUgMD5cnqORfA2JaAIg0EnLBT5PadB36d2Nr_G8wUub0/s1600/convert1-01a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyqAZGMNEjvBOgPwOddiXTu1lZwCAAE_XlgXu54_AQxZuQwWnbvFmdNuaVGXtKmeVWKXNfNXlnUMG1JcRbCzRO6Y5UqwAzb1QfUgMD5cnqORfA2JaAIg0EnLBT5PadB36d2Nr_G8wUub0/s400/convert1-01a.jpg" width="400" /></a></div>
<br />
Open NWN2_Models.zip and copy the MDB files of any one of the human female bodies, heads, gloves and boots to another folder, which will henceforth be your working folder. There are several MDB files that you can choose from. The picture below shows which ones I settled on.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8RZMgnXA6p3C75SxdQfbet9R0QQkWVhX292Fua2Q7hD-5sk5xcr0KpQ8Vb6CqmBEoElP-C6w5EDLwKfgvSDIjus2cyLmgnHqytgVjHgad3C1JIv-Ki0dODHrLUSQbbWEv8jNUrPTADGg/s1600/convert1-01b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="341" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8RZMgnXA6p3C75SxdQfbet9R0QQkWVhX292Fua2Q7hD-5sk5xcr0KpQ8Vb6CqmBEoElP-C6w5EDLwKfgvSDIjus2cyLmgnHqytgVjHgad3C1JIv-Ki0dODHrLUSQbbWEv8jNUrPTADGg/s400/convert1-01b.jpg" width="400" /></a></div>
<br />
</li>
<li>Download the Triss armor if you haven’t done so yet, and extract the file’s contents to your chosen folder.</li>
<li>Run the FO3 Archive Utility by double-clicking its program shortcut, which is shown below.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHUfrJs6UsOMmSlkR6ctrw0MsPDskZjVsu8_zJiNsRBjDbwNoqHC1Xf5Xjr-rU-zKtpWavSE8uwXL-vJ2qX8hGZ95dZEyrHZRzp9v6Xye3ymyp-azNJHa1ToGn2FLgbtJYYGTU9Qb5j1U/s1600/FO3Archive.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="381" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHUfrJs6UsOMmSlkR6ctrw0MsPDskZjVsu8_zJiNsRBjDbwNoqHC1Xf5Xjr-rU-zKtpWavSE8uwXL-vJ2qX8hGZ95dZEyrHZRzp9v6Xye3ymyp-azNJHa1ToGn2FLgbtJYYGTU9Qb5j1U/s400/FO3Archive.jpg" width="400" /></a></div>
<br />
Under the File menu, click "Open Archive." In the dialog box that appears, navigate to the Data folder of your Skyrim application. If you’re running Windows XP like I am, the folder would be in C:\Program Files\Steam\steamapps\common\skyrim\Data. Select the file named "Skyrim - Meshes.bsa" then click the Open button.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXjg5WgswIxjdIV8Fo1jHdvth6_7QIyy-wpWWfozvtFkBMB59wWWBta_XjSn-_pV5UkXrYkey59TyPsPP7j03PscIAWAT6yQ7bE_G0mykpflL3HZ4f6qDozZtOWo15pyXEV_fK-ORhYfE/s1600/FO3Select.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXjg5WgswIxjdIV8Fo1jHdvth6_7QIyy-wpWWfozvtFkBMB59wWWBta_XjSn-_pV5UkXrYkey59TyPsPP7j03PscIAWAT6yQ7bE_G0mykpflL3HZ4f6qDozZtOWo15pyXEV_fK-ORhYfE/s400/FO3Select.jpg" width="400" /></a></div>
<br />
It may take a while for the utility to read the BSA file, so you may have to sit back and wait for it to finish.<br />
</li>
<li>At this point, you will see a hierarchy of folders and files displayed in the FO3 Utility. We’re going to look for the skeleton file that controls the armor we're working on. In the FO3 Archive Utility window, expand the "meshes" folder by clicking the [+] sign next to it. Under the "meshes" folder, expand the "actors" folder, then the "character" folder. If the armor that we want to use is for male characters, expand the "character assets" folder. If the armor is for female characters, as is the case with the Triss armor, expand the "character assets female" folder. Next, click the appropriate skeleton for use with our armor. The skeleton for human and elven males is named skeleton.nif, whereas that of argonian and khajit males is skeletonbeast.nif. Human and elven females use skeleton_female.nif, and their argonian and khajit counterparts use skeletonbeast_female.nif. For the Triss armor, we will need the human female skeleton, so that is what we select.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRJLzfkHLXeX0ihhNQ2Axaykz3zlQCe49saRTbSoiyb7Q1cTY6mD3A8IjR_1ZYfU384lzzPHN6eegRc5FPVUUkKDZKa2T9qOCRmYYcCHnx0k2nHmSvNzriTwYOq2AutDdkfsOtHzP02i4/s1600/FO3Skeleton.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRJLzfkHLXeX0ihhNQ2Axaykz3zlQCe49saRTbSoiyb7Q1cTY6mD3A8IjR_1ZYfU384lzzPHN6eegRc5FPVUUkKDZKa2T9qOCRmYYcCHnx0k2nHmSvNzriTwYOq2AutDdkfsOtHzP02i4/s400/FO3Skeleton.jpg" width="400" /></a></div>
<br />
</li>
<li>Under the Action menu, click "Extract Selected Files." In the dialog box named "Select Destination Directory," navigate to where you want to extract the skeleton file then click the Select button. As shown in the picture below, I chose to extract the skeleton in one of the subfolders of my Triss armor folder.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4OwEbRkT6mdeXEXZ2UXyom7PjchKuo_3-CPrUt4xl6NQU4DSjcmTE2KbmarCAuJOllnyZRUeTMdsvquRrs4kLlR5ZT05HG0buZsLHT_u8gsxwdEo5mLTdLbBIP2TwBEXPajTBcqJaCgM/s1600/FO3Extract.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="291" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4OwEbRkT6mdeXEXZ2UXyom7PjchKuo_3-CPrUt4xl6NQU4DSjcmTE2KbmarCAuJOllnyZRUeTMdsvquRrs4kLlR5ZT05HG0buZsLHT_u8gsxwdEo5mLTdLbBIP2TwBEXPajTBcqJaCgM/s400/FO3Extract.jpg" width="400" /></a></div>
<br />Having done this, we may now exit the FO3 Archive Utility.
</li>
<li>Run NifSkope and click [Ctrl]+O to load the vanilla version of the slim torso. In the case of the Triss armor, this is the file torso_f_0.nif. You may find it in the folder to which you extracted the Triss armor files, under the subfolder TrissArmorRetextured\body\vanilla\. Other armor mods may have different names for the torso mesh. The slim version of the armor will always have the suffix “_0,” and the heavy version will have the suffix “_1.” For NWN2, choose the slim version over the heavy version.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnBYuFx9O0XIGvU2JcJ5NeyE9tj7i4dRYIjsK15bx36A5N9FlRBtM6JEC4O-9gHcULMV_X4J_9PlKPS_7JV3Z4vWTofqPYxxYt8yzEBIhwzOFMaIVICJULhsSXzxt70Kdu__4gOiVYhFA/s1600/convert1-03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnBYuFx9O0XIGvU2JcJ5NeyE9tj7i4dRYIjsK15bx36A5N9FlRBtM6JEC4O-9gHcULMV_X4J_9PlKPS_7JV3Z4vWTofqPYxxYt8yzEBIhwzOFMaIVICJULhsSXzxt70Kdu__4gOiVYhFA/s400/convert1-03.jpg" width="400" /></a></div>
<br />
</li>
<li>Under the bottom panel labeled Block Details, expand the NiHeader property. You will see that User Version is set to 12. Double-click the number and change it to 11.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzNNmyQmV4DiJKvWYGC5NiwH4VE-gp-PDdvmgVaNKVCI1_cmbOx8FrjvdwNGeNMrvHjMnYKvsY2US5lFil37KGRCP6ee2En9apN78ReepicvjMipObStHDx2S1CsC4rRdw8B6CU-TPsJM/s1600/convert1-04a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzNNmyQmV4DiJKvWYGC5NiwH4VE-gp-PDdvmgVaNKVCI1_cmbOx8FrjvdwNGeNMrvHjMnYKvsY2US5lFil37KGRCP6ee2En9apN78ReepicvjMipObStHDx2S1CsC4rRdw8B6CU-TPsJM/s400/convert1-04a.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">User Version is set to 12 by default.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr2KTZ888kPMWQhlA-wrCQ45FdCjkP7uvRmi0cae7JE-M-kpImVPFa8zhhyT3gUwtInfcmFMaOvI6t5y-OWZ8t-3_DtV7EcwQp582Duoo6Cyp2A0oHai9_DKoppl85cFmwXplQHrbD87A/s1600/convert1-04b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr2KTZ888kPMWQhlA-wrCQ45FdCjkP7uvRmi0cae7JE-M-kpImVPFa8zhhyT3gUwtInfcmFMaOvI6t5y-OWZ8t-3_DtV7EcwQp582Duoo6Cyp2A0oHai9_DKoppl85cFmwXplQHrbD87A/s400/convert1-04b.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Double-click the value of User Version and change it to 11.</td></tr>
</tbody></table>
<br />
You will also see that User Version 2 is set to 83. Double-click that number and change it to 34.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHb-uW3KliYj-ni7f2vdaTrFHfDaNPsfNpdHN9q528rOkQM3tkwfIVfWk6vzz6eCmBoGd1MelLCMqAxDZg-Rr3cqLai34wNI1meDLtuqTcMa285h66fa1lc2yB58pcote_1O4j-0KF5Ts/s1600/convert1-04c.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHb-uW3KliYj-ni7f2vdaTrFHfDaNPsfNpdHN9q528rOkQM3tkwfIVfWk6vzz6eCmBoGd1MelLCMqAxDZg-Rr3cqLai34wNI1meDLtuqTcMa285h66fa1lc2yB58pcote_1O4j-0KF5Ts/s400/convert1-04c.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">User Version 2 is set to 83 by default.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-41ScqgszMTroT36j3ySS54oI6Ms1uLZa7WO96EVV03F4yCOi6KskrCB7BdDcPLX2DHmdH5taw36jUV2YYUtMGTWa0ZfUMD3BoRfu-Wo2qd6KCnQhZSJW5cxEXh9g_ZrMGJCx_NykYJA/s1600/convert1-04d.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-41ScqgszMTroT36j3ySS54oI6Ms1uLZa7WO96EVV03F4yCOi6KskrCB7BdDcPLX2DHmdH5taw36jUV2YYUtMGTWa0ZfUMD3BoRfu-Wo2qd6KCnQhZSJW5cxEXh9g_ZrMGJCx_NykYJA/s400/convert1-04d.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Double-click the value of User Version 2 and change it to 34.</td></tr>
</tbody></table>
<br />
</li>
<li>Under the left panel labeled Block List, expand “0 NiNode.” Expand the first NiTriShape node that you see. Under it, you will find a property named BSLightingShaderProperty. Click it then press [Ctrl]+[Del] to delete it.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEyIQQljpbCqGBYjXhHoEBybM705auvtUnjO_z6wzcaU9fYcRJZRmVXDQvXxLYFPUtkthNUZlQ-3qW7dTux8jUeR23li_j2s6cGxi8TtQEp9LFaebziMQ5fMGOixO1OgZmzPe5a5ZmnEo/s1600/convert1-05a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEyIQQljpbCqGBYjXhHoEBybM705auvtUnjO_z6wzcaU9fYcRJZRmVXDQvXxLYFPUtkthNUZlQ-3qW7dTux8jUeR23li_j2s6cGxi8TtQEp9LFaebziMQ5fMGOixO1OgZmzPe5a5ZmnEo/s400/convert1-05a.jpg" width="400" /></a></div>
<br />
Repeat this step for all other NiTriShape nodes in the file.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9eeuUxF-y8eZL3TeB20-90SSp3gUjnMKrM6-g0BPCtx2iXyUcF0ByfL8SswpCh9xhe95aKTlNXAKS24UNyqUkfReo6hrv-hvQ8J1QfXwLubQH0CnVHr4mNKc9XV6MivmL_SpmZrczIx4/s1600/convert1-05b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9eeuUxF-y8eZL3TeB20-90SSp3gUjnMKrM6-g0BPCtx2iXyUcF0ByfL8SswpCh9xhe95aKTlNXAKS24UNyqUkfReo6hrv-hvQ8J1QfXwLubQH0CnVHr4mNKc9XV6MivmL_SpmZrczIx4/s400/convert1-05b.jpg" width="400" /></a></div>
<br />
</li>
<li>Click the File menu and select “Save As…” (Alternatively, you may press [Ctrl]+S.)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNLApbEZjECBW347CVl5eDkjo8JcmHPnkFlBjxOyWXm3hMP2x_6v1snzfCoyakFCVWowfUFucSA4EiNu_pBm7rcIgIX-LFgaMwBXiV5j583YdzQfRZ3ifAuZJFXKgKfhGlp3qEs_DKwm4/s1600/convert1-06a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNLApbEZjECBW347CVl5eDkjo8JcmHPnkFlBjxOyWXm3hMP2x_6v1snzfCoyakFCVWowfUFucSA4EiNu_pBm7rcIgIX-LFgaMwBXiV5j583YdzQfRZ3ifAuZJFXKgKfhGlp3qEs_DKwm4/s1600/convert1-06a.jpg" /></a></div>
<br />
Save the torso file under a new name.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGL98Iiea_ZhEdR-AWm4bUWGBKZhvqPnfD7XasU_bDENLhsk2jT6x6b4rxBJzJu-Jcgl6GuJ59L9Jy5JH-jjNUTYdcP-MxVnqy5Lw7HOAbvZUK5uts71-r2YLrzDOabSkY7m-GzFu3SV0/s1600/convert1-06b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGL98Iiea_ZhEdR-AWm4bUWGBKZhvqPnfD7XasU_bDENLhsk2jT6x6b4rxBJzJu-Jcgl6GuJ59L9Jy5JH-jjNUTYdcP-MxVnqy5Lw7HOAbvZUK5uts71-r2YLrzDOabSkY7m-GzFu3SV0/s400/convert1-06b.jpg" width="400" /></a></div>
<br />
</li>
<li>Repeat steps 6 to 9 above for the boots and gauntlets. Remember to always choose the slim version over the heavy version of each model.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKwIio5qXTsJ9EpVwRmSRLl0yWDWT4sSsU6tfCGLz7HthZwxaSLJNavBYsNWsKCR9NKTbPK_FkLjTp3QwUdWtaQYRjoQI7IDpFt3WrnJyI4SlCtgaKLYhHF_CqGdScCc9pEEMZUDkaQWs/s1600/convert1-07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKwIio5qXTsJ9EpVwRmSRLl0yWDWT4sSsU6tfCGLz7HthZwxaSLJNavBYsNWsKCR9NKTbPK_FkLjTp3QwUdWtaQYRjoQI7IDpFt3WrnJyI4SlCtgaKLYhHF_CqGdScCc9pEEMZUDkaQWs/s400/convert1-07.jpg" width="400" /></a></div>
<br />
In case you’re wondering where the gauntlets of the Triss armor are, they are in the subfolder TrissArmorRetextured\data\meshes\armor\psyold\triss.</li>
<li>
We will now load the skeleton file that we extracted earlier and modify it similarly to what we did for the armor meshes. Press [Ctrl]+O then navigate to the folder where you extracted the skeleton file. There, you will find a folder named “meshes.” Double-click it, then double-click the “actors” folder, the “character folder,” then finally the “character assets female” folder. (If it was a male skeleton that you extracted, the last folder would be named “character assets.”) Select the skeleton file then click the Open button.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq_5Oau18XjAmqV3FT5Q6OvqMifE5x6LPT3xTLCq7FZaBYzE-C2i3zqFOYLJUaEqxG17qnAQc398xQF793GEBmTfiFRdiXnxQU3xF7Xy6hR2Us0qXcednDOYl6v4uXtpEzWd28xmBX7lM/s1600/OpenSkel.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq_5Oau18XjAmqV3FT5Q6OvqMifE5x6LPT3xTLCq7FZaBYzE-C2i3zqFOYLJUaEqxG17qnAQc398xQF793GEBmTfiFRdiXnxQU3xF7Xy6hR2Us0qXcednDOYl6v4uXtpEzWd28xmBX7lM/s400/OpenSkel.jpg" width="400" /></a></div>
<br />
</li>
<li>
Like before, under Block Details, expand the NiHeader property then set
“User Version” to 11 and
“User Version 2” to 34.<br /><br />
Under Block List, expand
“0 BSFadeNode” then select
“1 BSBoneLODExtraData.” Press [Ctrl]+[Del] to delete this node.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvpy2uHjTveMLSPQaeYTXY64dDpJHLxkCTlqPGibseNMz3Kdtq3j4_7QjUuo0Lg1BwsSioO-X6upjq1vxT4XrgmjCXdmGdVt8Vzkv64fDxuTc3YytpNnuskJoJP6PAte_bZGC8A1ylKxw/s1600/BSBoneLOD.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvpy2uHjTveMLSPQaeYTXY64dDpJHLxkCTlqPGibseNMz3Kdtq3j4_7QjUuo0Lg1BwsSioO-X6upjq1vxT4XrgmjCXdmGdVt8Vzkv64fDxuTc3YytpNnuskJoJP6PAte_bZGC8A1ylKxw/s400/BSBoneLOD.jpg" width="400" /></a></div>
<br />
</li>
<li>Press [Ctrl]+S and save the skeleton as a new file. When you’re done, you may quit NifScope.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQbwgopcRH84o-Tnx6n4RURcmAFvvZVuGUiSfILIK9ALCQqHrt1-Tfq2sZnoUFuNVHpgXRt62eW4miUURQM_N7vum0SYikcCxEMMn5TvOlXwGwhslzBIZeds3lgceJ2S18qYqDAQjTBO8/s1600/SkelSave.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQbwgopcRH84o-Tnx6n4RURcmAFvvZVuGUiSfILIK9ALCQqHrt1-Tfq2sZnoUFuNVHpgXRt62eW4miUURQM_N7vum0SYikcCxEMMn5TvOlXwGwhslzBIZeds3lgceJ2S18qYqDAQjTBO8/s400/SkelSave.jpg" width="400" /></a></div>
<br />
</li>
<li>Run 3DS Max and import the NWN2 PC female body, boots, gloves, and head, preferably in that order.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1pmneSri4vDdXSef3eE4ThjFsKKQrwQJHhOlWN4Fk5jVw8ezrdM3Ma78tepRp0o1YEu1xg5SuA6YsUmg267tV7SEteqKmMMEuvk0mVNjGB_NGZBz8WRnHwbuwIZ53kJ4mtFN9esGMQVQ/s1600/convert1-08a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1pmneSri4vDdXSef3eE4ThjFsKKQrwQJHhOlWN4Fk5jVw8ezrdM3Ma78tepRp0o1YEu1xg5SuA6YsUmg267tV7SEteqKmMMEuvk0mVNjGB_NGZBz8WRnHwbuwIZ53kJ4mtFN9esGMQVQ/s1600/convert1-08a.jpg" /></a></div>
<br />
In case of an Import Name Conflict, just click the OK button.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZmeNrURRir85C1E13ANiK4Lpqs61ZXro54ShNuScoZfhodOL7iO725t2HZzNYCd2WlheO3Gsw5eqC7F03DDdGMV7UxIlLxyNQ1HRKru01dhhMk_TmEr_XQ-csxfTyU8rJcPllLRm7DOY/s1600/convert1-08b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZmeNrURRir85C1E13ANiK4Lpqs61ZXro54ShNuScoZfhodOL7iO725t2HZzNYCd2WlheO3Gsw5eqC7F03DDdGMV7UxIlLxyNQ1HRKru01dhhMk_TmEr_XQ-csxfTyU8rJcPllLRm7DOY/s1600/convert1-08b.jpg" /></a></div>
<br />
</li>
<li>Select the collision sphere for the head and delete it. We won’t need it anymore.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqApMTOhJNTdFFxPtk2UWS-BeXvgA8frH0bkdXSg5aGZek0-o9wJzgD6g3J0ihv0SKZpAJcg21U3M8FqsUppasR6BkvzUBMKfSChhx0LGTU4PWSNFPpOlAsN78CieeZWRf71c7tII2lWE/s1600/convert1-09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqApMTOhJNTdFFxPtk2UWS-BeXvgA8frH0bkdXSg5aGZek0-o9wJzgD6g3J0ihv0SKZpAJcg21U3M8FqsUppasR6BkvzUBMKfSChhx0LGTU4PWSNFPpOlAsN78CieeZWRf71c7tII2lWE/s400/convert1-09.jpg" width="300" /></a></div>
<br />
</li>
<li>Press [H] to bring up the “Select Objects” dialog box and select all but the main meshes of the body, boots, gloves, eyes, and head. Click the Select button to close the dialog box and select these objects.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAjEYhdeSD7LZ_U3Db-fQF72BGdIOa6QiIDjbUP1HIAgqyIOSJeRwRx5XLhqV0VuIM2mgpb4aE6YlrC1aHf3WdmC4QjdlRVza6UqLmbPOa-VqYYgqIuUUzwx3ty3eFvxSXH_fDhjhG_Ho/s1600/convert1-10a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAjEYhdeSD7LZ_U3Db-fQF72BGdIOa6QiIDjbUP1HIAgqyIOSJeRwRx5XLhqV0VuIM2mgpb4aE6YlrC1aHf3WdmC4QjdlRVza6UqLmbPOa-VqYYgqIuUUzwx3ty3eFvxSXH_fDhjhG_Ho/s1600/convert1-10a.jpg" /></a></div>
<br />
Right-click anywhere on the window to bring up a context-sensitive menu and click
“Hide Selection.”<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8WXzBrpzf7-WPmwL4IwxqioQFRFOj1NFSJx_ztaLgdrIdvdK7J1vHYvIusWMxecqBZyI0rwHMazXxTlbqFUmI7erhS-MiQuXNMz9QfMnnIOzFzsUkg_R00IZhQuRDwRS2rWsWW8jItHg/s1600/convert1-10b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8WXzBrpzf7-WPmwL4IwxqioQFRFOj1NFSJx_ztaLgdrIdvdK7J1vHYvIusWMxecqBZyI0rwHMazXxTlbqFUmI7erhS-MiQuXNMz9QfMnnIOzFzsUkg_R00IZhQuRDwRS2rWsWW8jItHg/s400/convert1-10b.jpg" width="300" /></a></div>
<br />
</li>
<li>Import the Skyrim skeleton. To do this, click the File menu and select the “Import…” option. In the dialog box that appears, set “Files of type” to “Netimmerse/Gamebryo (*.NIF, *.KF).” Navigate to the folder where you saved your edited skeleton file and click its name. Click the Open button.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJg407OliWOySlQ6434JFY10u1ae2s9d2apxE69krJg_YN_DBglCrhTqQ6T9Y9MVCXQHfcIfkkWZDvimNMZx4K6A_z2z72WMpcGr36M2yGgG6SyxCt0ZtjJgDd070PzrAuGx7psSPIDJs/s1600/ImportSkel.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJg407OliWOySlQ6434JFY10u1ae2s9d2apxE69krJg_YN_DBglCrhTqQ6T9Y9MVCXQHfcIfkkWZDvimNMZx4K6A_z2z72WMpcGr36M2yGgG6SyxCt0ZtjJgDd070PzrAuGx7psSPIDJs/s400/ImportSkel.jpg" width="400" /></a></div>
<br />
In the dialog box that appears, click the Import button.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV7M5dKvyzDldW-W9zMoqEmzoDu5acuo2QX-NEEyVM_cvBrJdesK8DHiU-RtwkmnsDglACm_W1Zn5MVucwcvWAJAgv1UhGP1J0QNFnuer8GJNj0_Zc3c3MOE4F2FzOvM7OjXRMibsS21g/s1600/convert1-11b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV7M5dKvyzDldW-W9zMoqEmzoDu5acuo2QX-NEEyVM_cvBrJdesK8DHiU-RtwkmnsDglACm_W1Zn5MVucwcvWAJAgv1UhGP1J0QNFnuer8GJNj0_Zc3c3MOE4F2FzOvM7OjXRMibsS21g/s1600/convert1-11b.jpg" /></a></div>
<br />
Repeat this step for the torso, boots, and gauntlets.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQBzucdcWA8ruxHYaDTW4fm9GI9allMl2wZmsHANgQA2XJHDzvaom7_J_ihMA7yUfHoDQ2h2oligz7s2I0kitENgT4vH8FOM7TdqberHGsdcQbovcx84blbdDzob3U2mgQJYk-FxMX__8/s1600/convert1-11a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQBzucdcWA8ruxHYaDTW4fm9GI9allMl2wZmsHANgQA2XJHDzvaom7_J_ihMA7yUfHoDQ2h2oligz7s2I0kitENgT4vH8FOM7TdqberHGsdcQbovcx84blbdDzob3U2mgQJYk-FxMX__8/s400/convert1-11a.jpg" width="400" /></a></div>
<br />
It looks as if importing the Skyrim meshes has caused the NWN2 models to disappear. Actually, they are still there, but they are so small that they can hardly be seen.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgomcUWh56viKDPd9L1LHCJYsk_YChNv1GbYdF7uZkWgrr8YCrY5gPjAwTsur-N1AhqmmMVvJ4kEhXmUqj8hELWvoi2PGZ2R6R2xthaOn-8bZOKHtCnEF9MszMx5nNbL5xMXVpbn-XQirs/s1600/ImportedAll.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgomcUWh56viKDPd9L1LHCJYsk_YChNv1GbYdF7uZkWgrr8YCrY5gPjAwTsur-N1AhqmmMVvJ4kEhXmUqj8hELWvoi2PGZ2R6R2xthaOn-8bZOKHtCnEF9MszMx5nNbL5xMXVpbn-XQirs/s400/ImportedAll.jpg" width="233" /></a></div>
<br />
</li>
<li>We are about to scale the armor to make it the same size as its NWN2 counterpart. Select the Left or Right viewport to activate it. This will give us a side view of the model.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhta5fWHvrFFlqBrgIVzWyqsHA_lNd1YVakzDriGZclqCSLKkfZ-4yAh2fwFX_pCfgU3paOxugWdzOaaCIa2KEOhw84WiP1z8xwL3sI1oZJRH5kN1ZYFPQSIi6RSJHN5odTXRUWcl_Rf1o/s1600/convert1-18a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhta5fWHvrFFlqBrgIVzWyqsHA_lNd1YVakzDriGZclqCSLKkfZ-4yAh2fwFX_pCfgU3paOxugWdzOaaCIa2KEOhw84WiP1z8xwL3sI1oZJRH5kN1ZYFPQSIi6RSJHN5odTXRUWcl_Rf1o/s400/convert1-18a.jpg" width="400" /></a></div>
<br />
Press [H] to bring up the “Select Objects” dialog box. Select the root bone of the Skyrim skeleton, which in our case is named
“skeleton_female.nif,” then click the Select button.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeDlztCcvEP0Uryd6oOHLis3NUvjPzw_MUM5Irs9s4YiBeYQspMiN7QlEKa0Fb4XdSVdKeaaEpfGX5y9HyzqGCJ5GljsLjRkdmcOFOHcOZ-OErJjqdYjuO-PY4nFPPmBJ8azRqMQLrqSw/s1600/SelectSkel.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeDlztCcvEP0Uryd6oOHLis3NUvjPzw_MUM5Irs9s4YiBeYQspMiN7QlEKa0Fb4XdSVdKeaaEpfGX5y9HyzqGCJ5GljsLjRkdmcOFOHcOZ-OErJjqdYjuO-PY4nFPPmBJ8azRqMQLrqSw/s1600/SelectSkel.jpg" /></a></div>
<br />
</li>
<li>Click the Transform Type-In button if it is not currently in Offset Mode.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWj2C3AezjtFUWiqIkahGCpxYGT14peQ2yz2TGDiIT5JV27B57USqUBC2qr_P6jgS4t2ryzS2lFtIDGcn1uq8Kk7yUEs8EqAIVgfi85fSweRJnpC7vy-F2AETf_zxyHnga0GzmRHeDw9A/s1600/convert1-17.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWj2C3AezjtFUWiqIkahGCpxYGT14peQ2yz2TGDiIT5JV27B57USqUBC2qr_P6jgS4t2ryzS2lFtIDGcn1uq8Kk7yUEs8EqAIVgfi85fSweRJnpC7vy-F2AETf_zxyHnga0GzmRHeDw9A/s1600/convert1-17.jpg" /></a></div>
<br />
</li>
<li>Click the Select and Uniform Scale tool.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCspd_eCrTzorYuuULYriWdNwR6tY6GGbGYkJo18KyR7OPb-lTw4IDQV92KOai7PEVobEaiLNh2_Wj8M_Tt_0jMbOqvK0WZzOzC90CvIjHuZPD7bTIc7XDYH5HF9auBhILZC9xB0PKFqY/s1600/convert1-18b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCspd_eCrTzorYuuULYriWdNwR6tY6GGbGYkJo18KyR7OPb-lTw4IDQV92KOai7PEVobEaiLNh2_Wj8M_Tt_0jMbOqvK0WZzOzC90CvIjHuZPD7bTIc7XDYH5HF9auBhILZC9xB0PKFqY/s1600/convert1-18b.jpg" /></a></div>
<br />
In the input box for the X coordinate, enter the number to properly scale the armor to match the size of the NWN2 armor. Through trial and error, I’ve determined that for the Triss armor, this number is 1.56. Note that other Skyrim armor may require different values.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq05QTpS7iTdXo9-sBUxxXpo_InJXf1wlztqIcVAdXiA-v_b9vFtszzNHyEXcw4AlUEv7WjTvFdUXKnPwWqLo28ytIafP-qmf1u9jSdm7eNTb5_MjwLYj4WurXJ6qS3ZBDz0LyML8Kafc/s1600/convert1-18c.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq05QTpS7iTdXo9-sBUxxXpo_InJXf1wlztqIcVAdXiA-v_b9vFtszzNHyEXcw4AlUEv7WjTvFdUXKnPwWqLo28ytIafP-qmf1u9jSdm7eNTb5_MjwLYj4WurXJ6qS3ZBDz0LyML8Kafc/s1600/convert1-18c.jpg" /></a></div>
<br />
</li>
<li>We will now re-position the Skyrim armor. Click the Select and Move tool.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghdlx5XttsaHUqyZeNWDHVr1bzVbX3QGG6-DWIJieZwiSdKEPshCQp_0zTVetuFB68E2KjdWe_dK__uHNBKDbxR4vldGzg_RHW3HhGtmmvaSL9Hoazyj9KJszRwu-s58e4MueCekMTWZI/s1600/convert1-19a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghdlx5XttsaHUqyZeNWDHVr1bzVbX3QGG6-DWIJieZwiSdKEPshCQp_0zTVetuFB68E2KjdWe_dK__uHNBKDbxR4vldGzg_RHW3HhGtmmvaSL9Hoazyj9KJszRwu-s58e4MueCekMTWZI/s1600/convert1-19a.jpg" /></a></div>
<br />Move the Skyrim root bone until the armor is standing below the NWN2 head. It helps to be in wireframe mode while doing this. (You can toggle between wireframe mode and smooth + highlights mode by pressing [F3] on your keyboard.) You may not be able to match the position exactly, but try to get it in as closely as you can.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSh1R9pjKAFYZGjeOsN7HzGMLAm7Xkd2Tt8TU3DcKoNihhybQjjcI9hfv9dDdROigc1ZVMpAsSYnHFfLysEtbxlN0y63VFcIsroINNXQ3Kqn5-HjQklUJ2_pXasS8Dz1pIt1EqTILQXoY/s1600/convert1-19b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSh1R9pjKAFYZGjeOsN7HzGMLAm7Xkd2Tt8TU3DcKoNihhybQjjcI9hfv9dDdROigc1ZVMpAsSYnHFfLysEtbxlN0y63VFcIsroINNXQ3Kqn5-HjQklUJ2_pXasS8Dz1pIt1EqTILQXoY/s320/convert1-19b.jpg" width="152" /></a></div>
<br />
</li>
<li>We’ll need to temporarily hide the NWN2 body to make sure that the Skyrim armor is properly positioned. To do this, press [H] and select the NWN2 body, boots, and gloves in the dialog box. Click the Select button.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj_jAqQX7GSnz_xiWrjHXmOV3v8zt0KiofhtlQOQMM6ktQuVNHoOD6gsPf_w2YUhp8Od45cMW-euzMHbW7GRY2pmhfKe_8p3oFGPxXDgIyKYo-SHaDkNfR9hKaQQbuvjb6hKi5WiYUcA0/s1600/convert1-20a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj_jAqQX7GSnz_xiWrjHXmOV3v8zt0KiofhtlQOQMM6ktQuVNHoOD6gsPf_w2YUhp8Od45cMW-euzMHbW7GRY2pmhfKe_8p3oFGPxXDgIyKYo-SHaDkNfR9hKaQQbuvjb6hKi5WiYUcA0/s1600/convert1-20a.jpg" /></a></div>
<br />
On the viewport, click the right mouse button and click “Hide Selection” in the context-sensitive menu. This will hide all the NWN2 meshes except the head and eyes.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsipAl1RsEwB49ky_-QAlgK-dt9RV29i8_Fqus8cMLh1DxWaq39GiGtDdbzT9lAoWUPq0ZMfOfo5s6fUucz0Iq9-H5rOvx4ONg8wU2y7oTCch-73RFuV7XsWtYM2vUJ2nO55FSrP6vvUs/s1600/convert1-20b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsipAl1RsEwB49ky_-QAlgK-dt9RV29i8_Fqus8cMLh1DxWaq39GiGtDdbzT9lAoWUPq0ZMfOfo5s6fUucz0Iq9-H5rOvx4ONg8wU2y7oTCch-73RFuV7XsWtYM2vUJ2nO55FSrP6vvUs/s400/convert1-20b.jpg" width="223" /></a></div>
<br />
</li>
<li>Zoom in so you can get a good view of the head and neck.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf29Kn2DeMybrXueNQ3WVGq9pvE6WHq7l-egnw1YU2ZRn6AOr8cecwCfp6tN3EcW83T8kvNbgqElT742cRfI0OcRx2O8jdHLPFhhR86wMkzBRwLPHsJnlyeVAvFoSzZ1XhFJ4kIqSuwFg/s1600/pos_before.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="363" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf29Kn2DeMybrXueNQ3WVGq9pvE6WHq7l-egnw1YU2ZRn6AOr8cecwCfp6tN3EcW83T8kvNbgqElT742cRfI0OcRx2O8jdHLPFhhR86wMkzBRwLPHsJnlyeVAvFoSzZ1XhFJ4kIqSuwFg/s400/pos_before.jpg" width="400" /></a></div>
<br />
Unless you were incredibly lucky when positioning the Skyrim meshes, you may find that the Skyrim neck does not quite match the position of the NWN2 neck. If so, select the Skyrim skeleton and reposition it until you have a very close if not an exact match.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTzwkHPKyM7PApz3skavAw1OvlPR3m-ratF1l7tUfyVVf4aHuT3P1fT9C0lKOZNHBe48fNiZuSEltqK6LU9Pxqvzod0gnOqS6TsM8MFQy9pIrivfzBbNDEjI9-V0lR4LUMsWJmo7ghBEw/s1600/pos_after.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="363" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTzwkHPKyM7PApz3skavAw1OvlPR3m-ratF1l7tUfyVVf4aHuT3P1fT9C0lKOZNHBe48fNiZuSEltqK6LU9Pxqvzod0gnOqS6TsM8MFQy9pIrivfzBbNDEjI9-V0lR4LUMsWJmo7ghBEw/s400/pos_after.jpg" width="400" /></a></div>
<br />
</li>
<li>We are about to match the pose of the Skyrim model to that of the NWN2 model, but first, we must “un-hide” the NWN2 meshes of the body, gloves, and boots. Right-click anywhere on the viewport to bring up a context-sensitive menu then click “Unhide by Name.”<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_PhdQEEKR5LY8Qhu5vCrYaKsct6SeO0wAYOakgiw1xv2oVGZPhrwzq3xr08lKwv-NYlTe49vGiKwtWoah-RjFZ_LcGtL47kD3wiPOunfMecThHBG38_QYhqYABH0weylHrk4j68mpuIs/s1600/UnhideByName.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_PhdQEEKR5LY8Qhu5vCrYaKsct6SeO0wAYOakgiw1xv2oVGZPhrwzq3xr08lKwv-NYlTe49vGiKwtWoah-RjFZ_LcGtL47kD3wiPOunfMecThHBG38_QYhqYABH0weylHrk4j68mpuIs/s1600/UnhideByName.jpg" /></a></div>
<br />
In the “Unhide Objects” dialog box, select the main meshes of the NWN2 body, boots, and gloves then click the Unhide button. This will cause the dialog box to close and the selected objects to appear.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg45I6iGF9xcCQe4r26lwmJkoGJr_EeDdOVC_SvvMZYZpxNi93OQxJMM68c5tLI0vRknH8nBhwOcagQuvwfKXU16ls365c2I4pJA5qQYFUItJav8qrGoZKMxjkOngQAOBcHaV-7LCGJmts/s1600/UnhideObjects.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg45I6iGF9xcCQe4r26lwmJkoGJr_EeDdOVC_SvvMZYZpxNi93OQxJMM68c5tLI0vRknH8nBhwOcagQuvwfKXU16ls365c2I4pJA5qQYFUItJav8qrGoZKMxjkOngQAOBcHaV-7LCGJmts/s1600/UnhideObjects.jpg" /></a></div>
<br />
</li>
<li>Now we will pose the Skyrim model, which should match the pose of the NWN2 model as closely as possible. The whole process really isn’t difficult, but it does require some attention to detail, and we may have to go through several cycles before we get the pose right. The following is an example of how to pose the model.<br />
<br />
First, we press [H] to bring up the “Select Objects” dialog box and choose a bone to rotate. (In this example, I picked the bone of the right upper arm, which is named “NPC R UpperArm.”) After clicking the bone that we want to move, hit the Select button.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkrlknZ8ijqk4UbZjE2I5zmbYjcwWsLWHmR0KRRMtEM3trhESzch9zuiFe2oBMromBJ3lfez-wgf5s8c6sRzlL3NLaBhL9OfB_jmliX0U5Afnc7UIQbCPYodqc98-WWD9ko79W2TehWuw/s1600/SelectBone01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkrlknZ8ijqk4UbZjE2I5zmbYjcwWsLWHmR0KRRMtEM3trhESzch9zuiFe2oBMromBJ3lfez-wgf5s8c6sRzlL3NLaBhL9OfB_jmliX0U5Afnc7UIQbCPYodqc98-WWD9ko79W2TehWuw/s1600/SelectBone01.jpg" /></a></div>
<br />Next, we choose a viewport to work on. For this bone, I chose the Front viewport initially. Now toggle on the Select and Rotate tool.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvCijawPrA8OpwUPg1LI-q99h8UhdEUbBv_RdyYbY4B0Q-C0Rpv5pglUXJU0i6C9_kszwnoStGcMp18iXI-1ooyupg0uVVvKsr2DRdhAwYwM9r60MPoQZlEinmazRSzBXX8nXRSgVwlqI/s1600/RotateTool.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvCijawPrA8OpwUPg1LI-q99h8UhdEUbBv_RdyYbY4B0Q-C0Rpv5pglUXJU0i6C9_kszwnoStGcMp18iXI-1ooyupg0uVVvKsr2DRdhAwYwM9r60MPoQZlEinmazRSzBXX8nXRSgVwlqI/s1600/RotateTool.jpg" /></a></div>
<br />
Click and drag the circle surrounding the joint of the right upper arm to rotate it. When you’re satisfied with the rotation of the bone, take note of its degree of rotation as shown in the Transform Type-In at the bottom of the screen. Take note also of the rotated coordinate (X, Y, or Z).<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVaVU4cljLSlSxm8uyhVaV3ipiXcJQSa0MAN6Oqdon3HzWwclOktLm3y_0ZJWOeqvxYOyonbzYGA5BYKSkdNJNGTuX3ckuKQBjY8Mq5Fn2CxDZj4vZvweWwL4s6Le34QCSkz0TUteeB1M/s1600/RotateBone01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVaVU4cljLSlSxm8uyhVaV3ipiXcJQSa0MAN6Oqdon3HzWwclOktLm3y_0ZJWOeqvxYOyonbzYGA5BYKSkdNJNGTuX3ckuKQBjY8Mq5Fn2CxDZj4vZvweWwL4s6Le34QCSkz0TUteeB1M/s400/RotateBone01.jpg" width="400" /></a></div>
<br />
We now select the corresponding bone on the opposite side of the body. In this example, that would be the bone of the left upper arm, which is named “NPC L UpperArm.”<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1HI8QlZ55-NY1GR4m1V_qzMf-Yh0qZCvTvfhg0mXI-RpxMDTFnJgTQpqx2rAzWlqUVCIWjOVw1rgxI-I0SXURDTMErcINXn4k-WqtnntMXKwD3gjMEUZQLBXOd6Jpk_6nA99QmzhX_Oc/s1600/SelectBone02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1HI8QlZ55-NY1GR4m1V_qzMf-Yh0qZCvTvfhg0mXI-RpxMDTFnJgTQpqx2rAzWlqUVCIWjOVw1rgxI-I0SXURDTMErcINXn4k-WqtnntMXKwD3gjMEUZQLBXOd6Jpk_6nA99QmzhX_Oc/s1600/SelectBone02.jpg" /></a></div>
<br />
Instead of clicking and dragging the rotation tool, we will enter an exact value in the Transform Type-In. Make sure that the Transform Type-In is in Offset Mode. If you've been following this tutorial to the letter, it should still be toggled on. In the same coordinate (X, Y, or Z) that was changed before, enter the degree of rotation that we noted earlier, but change the sign to its opposite value. In other words, if the degree of rotation was positive when we rotated the bone on the other side of the body, enter a negative value for the bone we are now rotating. In our example, the degree of rotation of the right upper arm was a negative value, so for the left upper arm, we enter a positive value.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSL5GVKMFxU9D-pkqx867OwQ52GSV2OzxX4Qj2nescjYz6YvaOinZ5PTTIaHMnNgE7gkO8BzQsDmekiFBuCcMvJSUAFBtHuk-2m8Bpu-fgIJwPPCVw1ybeno9vL0FP1S3AxULPV5eDDmw/s1600/RotateBone02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSL5GVKMFxU9D-pkqx867OwQ52GSV2OzxX4Qj2nescjYz6YvaOinZ5PTTIaHMnNgE7gkO8BzQsDmekiFBuCcMvJSUAFBtHuk-2m8Bpu-fgIJwPPCVw1ybeno9vL0FP1S3AxULPV5eDDmw/s1600/RotateBone02.jpg" /></a></div>
<br />
We now switch to the left viewport to change the pose of both upper arms as seen from the side. When using the mouse to rotate one of the upper arms, again take note of the degree of rotation. When we rotate the opposite upper arm using the Transform type-In, we will enter the same value that we noted earlier. Do not change the sign of the value this time. In the example below, the left and right upper arms are both rotated at the Z-axis by -6.02 degrees.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbEdRQx4O0q42HQwMIWNiJOEQnW_TeG6tLxFtBJgNhKLr8615ywfbWVQOWWtBfFWAkhqIloovPk-YW5fYpFHyBEY8Qy1ZKEtgqa95WKLlhWbotqxjtEBpIo3v4sVFmVSg_PtmvCE2Hvpc/s1600/RotateBone03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbEdRQx4O0q42HQwMIWNiJOEQnW_TeG6tLxFtBJgNhKLr8615ywfbWVQOWWtBfFWAkhqIloovPk-YW5fYpFHyBEY8Qy1ZKEtgqa95WKLlhWbotqxjtEBpIo3v4sVFmVSg_PtmvCE2Hvpc/s400/RotateBone03.jpg" width="199" /></a></div>
<br />
Continue in this manner with other bones until the legs, arms, hands, and feet are properly posed. Despite the bewildering number of bones in the Skyrim skeleton, we only need to rotate a few of them at this stage. These are the bones of the upper arms, shoulders
(“NPC L Clavicle” and “NPC R Clavicle”), forearms (“NPC L Forearm” and “NPC R Forearm”), thighs
(“NPC L Thigh” and “NPC R Thigh”), calves
(“NPC L Calf” and “NPC R Calf”), hands (“NPC L Hand” and “NPC R Hand”), and feet
(“NPC L Foot” and “NPC R Foot”). You will have to switch viewports as you go along, and you may switch between Wireframe mode and Smooth+Highlights mode as you see fit. For example, to rotate the feet, I chose to work in the Bottom viewport in Smooth+Highlights mode.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNZTUNFYGl3n7F-wivrrFVdAJV31N5CYLI6PqmyC2fX2T3htdJXrXhNVLhS9vn4QMnl21ye-PO96QsEs2DOpI-afuvJyeNFiA_abfY8XXuXmdmaS6sLTeB6qu-P-MyO71wQACnbzeEbgc/s1600/RotateBoneFoot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNZTUNFYGl3n7F-wivrrFVdAJV31N5CYLI6PqmyC2fX2T3htdJXrXhNVLhS9vn4QMnl21ye-PO96QsEs2DOpI-afuvJyeNFiA_abfY8XXuXmdmaS6sLTeB6qu-P-MyO71wQACnbzeEbgc/s400/RotateBoneFoot.jpg" width="400" /></a></div>
<br />
</li>
<li>At some point, you will notice that the Skyrim hands are huge compared to their NWN2 counterparts. Not as obvious is the fact that Skyrim forearms are slightly longer than NWN2 forearms.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb2-SK0IEQvPo9kjLMntoQ9RSuuIf3pK93fEYcFh5lzTcBEJR9ljZCokgKUATkhLXPHk1GYyXjubfzrH4FWykb0V3i23V2zXeNMWosnmk_VuCaLKykxdPVgmlMPc8RfdZnVFlXkE4S3bE/s1600/BigHands.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb2-SK0IEQvPo9kjLMntoQ9RSuuIf3pK93fEYcFh5lzTcBEJR9ljZCokgKUATkhLXPHk1GYyXjubfzrH4FWykb0V3i23V2zXeNMWosnmk_VuCaLKykxdPVgmlMPc8RfdZnVFlXkE4S3bE/s400/BigHands.jpg" width="400" /></a></div>
<br />
To remedy this, we will scale down the bones of the forearms and hands. Shrinking a forearm bone will also shrink the hand bone connecting to it by a proportionate amount. Likewise, shrinking a hand bone will automatically shrink its finger bones proportionally.<br />
<br />
For the Triss armor, I selected the bone of each hand in turn and scaled them down by the same degree using the Select and Uniform Scale tool. It was then that I realized that the forearms were too long. (Like I said, it wasn’t obvious at first.) I scaled down the forearm bones a bit, which caused the hands to shrink as well, so I had to scale the hand bones up.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz7gaUA_UT80SHTkAGQgLzUqQzDOtDW1GTQJLJRKQuP6NjTwjtOfvp9jwV64UN-JzE2Ty5cVb0KUxKnS2XdLc0NgiMzN3EqQLWkrPIhTWHtUh3NvYBKcLYVBexTKKwuZNv9g7eYJuYJ60/s1600/ShrinkHand.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz7gaUA_UT80SHTkAGQgLzUqQzDOtDW1GTQJLJRKQuP6NjTwjtOfvp9jwV64UN-JzE2Ty5cVb0KUxKnS2XdLc0NgiMzN3EqQLWkrPIhTWHtUh3NvYBKcLYVBexTKKwuZNv9g7eYJuYJ60/s400/ShrinkHand.jpg" width="400" /></a></div>
<br />It isn’t enough to scale the hands. Some of the finger bones have to be individually re-sized as well. This has to be done while also rotating the bones of the hands and fingers because it is only by changing their pose that the need to adjust their scale becomes apparent. It took me a number of cycles of scaling and rotating before I was satisfied with the result. Without a doubt, this is the most painstaking part of posing the Skyrim figure, but no matter how hard you try, the result cannot be perfect. The picture below shows how the colored Skyrim mesh aligns with the white NWN2 mesh.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy0ifbf431kVQG-XhAWYOANkCOYYtQg1pgtHpPMaOGRaLqD02-MIH9i0XBtCsUZ6bAdnrXvmEOPpO_6Bt7L_qRppWcPSS5KE19L6gmLOOaI5JL3pPZsjQQj0pwJiqGhSMxmTtEnpFch5g/s1600/ScaleAndRotateHands.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy0ifbf431kVQG-XhAWYOANkCOYYtQg1pgtHpPMaOGRaLqD02-MIH9i0XBtCsUZ6bAdnrXvmEOPpO_6Bt7L_qRppWcPSS5KE19L6gmLOOaI5JL3pPZsjQQj0pwJiqGhSMxmTtEnpFch5g/s400/ScaleAndRotateHands.jpg" width="400" /></a></div>
<br />
</li>
<li>At this point, all the Skyrim meshes should be properly posed, more or less. Before we can rig them to the NWN2 skeleton, we will have to preserve that pose and disengage the meshes from the Skyrim skeleton. First, click the Select Object tool.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGaED3PF6LdzFPmSdQecSJOpkW9qq3bUTLYMNX8yYmLkpl3tFBIt9cu6uX9QK5s1SfdRTFmonFQFMHA50cgPeDqQ9pA6vJJDnM6aDe5-mtn1yTXJ0ImfCCZnGS8l_hSr1OlxAeEDoRy_o/s1600/convert1-13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGaED3PF6LdzFPmSdQecSJOpkW9qq3bUTLYMNX8yYmLkpl3tFBIt9cu6uX9QK5s1SfdRTFmonFQFMHA50cgPeDqQ9pA6vJJDnM6aDe5-mtn1yTXJ0ImfCCZnGS8l_hSr1OlxAeEDoRy_o/s1600/convert1-13.jpg" /></a></div>
<br />
Press [H] to bring up the “Select Objects” dialog box. Under “List Types,” un-tick the check boxes labeled “Cameras” and “Bone Objects” so that only the meshes will appear in the list box. Click on the name of the Skyrim torso mesh then click the Select button. (In the case of the Triss armor, the name of this mesh is “outfit.”)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8daQy3f-hhvcZOYYOIgp6CWtaaqer6LQTXsWr3Vq0N89Emd-gt6H-oRFGeEOQOh2_4RCQlLqrJzgoeSJqS3vqNzs1ZoAmkBCxHyf73ltt2eKG_ARV3O8i-zfk8Asnz1O1oPRQRY9TbZw/s1600/SelectMesh.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8daQy3f-hhvcZOYYOIgp6CWtaaqer6LQTXsWr3Vq0N89Emd-gt6H-oRFGeEOQOh2_4RCQlLqrJzgoeSJqS3vqNzs1ZoAmkBCxHyf73ltt2eKG_ARV3O8i-zfk8Asnz1O1oPRQRY9TbZw/s1600/SelectMesh.jpg" /></a></div>
<br />
Click the Modify tab on the right panel. Right-click any of the modifiers under the Modifier List and select “Collapse All” from the context-sensitive menu. A message will appear, warning you that all modifiers will be removed and asking if you want to continue. Click the Yes button. When you’ve done this, only “Editable Mesh” should remain in the Modifier List.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtRllCOzftkAGZY6yFy-xx_WLDcVTZ5-XeXCmPtxpag_xcuFLmhzzImHarMxpiWiHeG2v282fXGjggzwVXDRttnQVG3nmI7dZCTelRz3uyAux7r43aX2TiEBjdReM7gDJJcja81kCOG08/s1600/convert1-13b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtRllCOzftkAGZY6yFy-xx_WLDcVTZ5-XeXCmPtxpag_xcuFLmhzzImHarMxpiWiHeG2v282fXGjggzwVXDRttnQVG3nmI7dZCTelRz3uyAux7r43aX2TiEBjdReM7gDJJcja81kCOG08/s1600/convert1-13b.jpg" /></a></div>
<br />Repeat this step for all the other Skyrim meshes. Do not do this for the NWN2 meshes, however.<br />
</li>
<li>We’re going to delete all the Skyrim bones and cameras because we won’t need them anymore. Press [H] to bring up the “Select Objects” dialog box. Under “List Types,” click the Invert button to un-tick all the check boxes except the ones labeled “Cameras” and “Bone Objects.” Click the “All” button to highlight all the objects in the list. Click the Select button to close the dialog box and select all the highlighted objects then press the Delete key to delete all the selected bones.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfsGTNUFGIXtr8pGL_FGY4f0BUoX2M5YMpGGICe3bmJFxDqGv7N_EFNR4hjT-hvE1mqguktfjFC1ln36-eAKPiG4M0n9o4fY7n__oYmGDyxGRb2Jll345Mfb9A4slvNn9GWVdW79r1-sQ/s1600/SelectBones.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfsGTNUFGIXtr8pGL_FGY4f0BUoX2M5YMpGGICe3bmJFxDqGv7N_EFNR4hjT-hvE1mqguktfjFC1ln36-eAKPiG4M0n9o4fY7n__oYmGDyxGRb2Jll345Mfb9A4slvNn9GWVdW79r1-sQ/s1600/SelectBones.jpg" /></a></div>
<br />
</li>
<li>We need to make sure that there are no open edges anywhere in the mesh. You may want to hide the NWN2 meshes before proceeding.<br /><br />Select the torso mesh again. Under the Selection rollout of the Modify panel, click the Vertex button, which looks like three red dots arranged like the corners of a triangle. Press [Ctrl]+A to select all vertices of the mesh. Under the Weld rollout, type 0.001 in the input box beside the Selected button then click that button. Depending on your screen resolution, you may have to scroll down the panel to see it. When done, click the Vertex button again to exit Vertex sub-mode.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRr2SdcWPZdxNa1EZt0SwzSSsGZy0MKrUb7mmkZFTyGDr47DZ001EdgzrAQuRqREPj203JGRJY8veauibAikPn-hetkQs4ywDP6_dx7yIDORKVOV1i6aYYQ0o7qUjBq_uiHWy-2RZ9tFw/s1600/WeldVertices.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRr2SdcWPZdxNa1EZt0SwzSSsGZy0MKrUb7mmkZFTyGDr47DZ001EdgzrAQuRqREPj203JGRJY8veauibAikPn-hetkQs4ywDP6_dx7yIDORKVOV1i6aYYQ0o7qUjBq_uiHWy-2RZ9tFw/s400/WeldVertices.jpg" width="317" /></a></div>
<br />
Repeat this step for each of the other Skyrim meshes.</li>
<li>If the edges of the Skyrim meshes look too sharp, you may have to smoothen them. In the picture below, the edges are visibly sharp on the arms, right thigh, and left boot. We will have to smoothen all the meshes to be on the safe side.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiallyMjK242pWunp9fAih_v7hq1AI0awXXFu6raArcsi-85f4zjIhrVF5XTd50nSUIszDoHdorv7cXD5IiylGiIVAnBl_pvvl75B-CHu7NscdDWUeooDXOsLGEI_7hAQXwz-BONqEzvUA/s1600/SmoothBefore.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiallyMjK242pWunp9fAih_v7hq1AI0awXXFu6raArcsi-85f4zjIhrVF5XTd50nSUIszDoHdorv7cXD5IiylGiIVAnBl_pvvl75B-CHu7NscdDWUeooDXOsLGEI_7hAQXwz-BONqEzvUA/s400/SmoothBefore.jpg" width="281" /></a></div>
<br />
Let us start by selecting the torso mesh, which, in the case of the Triss armor, is named “outfit.” In the Modify panel, click the Polygon button, which looks like a red square. This will enable Polygon sub-mode on the model.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxFSNTTivfUYmTZ-scDpxvJmSERtM0ONuk-w-N0AmcDMoNqudn4dsOMyJAY4Hu9yyrdDp-IF-bBvzShF0YXnddJIGV5aLiot8YNTzgS32xU_Nh_4UDaOJFiLdbPhhsiADbfJXQArNOReg/s1600/PolygonSubMode.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxFSNTTivfUYmTZ-scDpxvJmSERtM0ONuk-w-N0AmcDMoNqudn4dsOMyJAY4Hu9yyrdDp-IF-bBvzShF0YXnddJIGV5aLiot8YNTzgS32xU_Nh_4UDaOJFiLdbPhhsiADbfJXQArNOReg/s1600/PolygonSubMode.jpg" /></a></div>
<br />
Press [Ctrl]+A to select all the polygons in the mesh. Scroll down the Modify panel until you see a frame labeled “Smoothing Groups.” Click the “Clear All” button followed by the “Auto Smooth” button. This will make the mesh look smoother than it really is. Scroll all the way up the Modify panel and click the Polygon button again to toggle off Polygon sub-mode. Repeat this step for all the other Skyrim meshes.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3_IIPbRM0qIeDuJGR9Gb17nzd-_CExfiF8HFRfqRl4ThGXSN9U8uzIpAY5_rB2Y9BlS7sEuX6xoiHq5w9IdxloBwjfHCXgKbcm_Lz8Vhq2ZkZNdHZNEreqwrxXHgmsHC7b1LxJ22n7NQ/s1600/AutoSmooth.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3_IIPbRM0qIeDuJGR9Gb17nzd-_CExfiF8HFRfqRl4ThGXSN9U8uzIpAY5_rB2Y9BlS7sEuX6xoiHq5w9IdxloBwjfHCXgKbcm_Lz8Vhq2ZkZNdHZNEreqwrxXHgmsHC7b1LxJ22n7NQ/s400/AutoSmooth.jpg" width="303" /></a></div>
<br />
</li>
<li>In case you haven’t been saving your work, now is as good a time as any to do so.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSwps6bP4FCRJzHBw957FQwv6fpFRVLshyphenhypheneh1-jtaSfQBNzQIR7Je3hiziF2U1OiX-evVBJJCLdKyD82lH8bTKZv4gm8fL46KF8gomrdvXdTBMSlka-AQ8sbUsc8Ut5MdNNJhyphenhyphenO0Qozwc/s1600/convert1-24.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSwps6bP4FCRJzHBw957FQwv6fpFRVLshyphenhypheneh1-jtaSfQBNzQIR7Je3hiziF2U1OiX-evVBJJCLdKyD82lH8bTKZv4gm8fL46KF8gomrdvXdTBMSlka-AQ8sbUsc8Ut5MdNNJhyphenhyphenO0Qozwc/s1600/convert1-24.jpg" /></a></div>
</li>
</ol>
<br />
<h2>
Conclusion</h2>
At this juncture, we have managed to import Skyrim armor to 3DS Max. We have also scaled it and re-positioned it for eventual export as an MDB file. The whole process has been straightforward thus far. Nevertheless, the armor isn’t textured or rigged yet. We also need to replace the parts that show skin with an NWN2 nude base. I will show how to to do these on the next installment of this tutorial.<br />
<br />
<b>Update, 17 September 2012.</b> As I’ve explained in <a href="http://nwn2faithless.blogspot.com/2012/07/converting-skyrim-armor-to-nwn2-part-1.html">my next blog post</a>, I’m retiring from NWN2 modding. It’s highly unlikely that I will ever finish this tutorial, although my other tutorials on 3D modeling contain enough information to move forward. It’s lame, I know, especially as the required information is scattered over several blog posts. I apologize, but I just don’t have the heart to go on.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com13tag:blogger.com,1999:blog-9122846242068305603.post-24920266420244971402012-06-05T19:30:00.001+08:002012-06-06T09:37:17.848+08:00Easy Diffuse Mapping from Normal or Height Maps<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxCE5EPncKMGowfm8EeG_FMpfjcxGbCp2j5vbH6IEN12Rtgi2Psfg9rJIv4kjQ7lkwX9jMwlNUJGkgVEgV8NXJWTDETNapFzBKGtU1TFbcy6-L2N6Kto08gjhR1iGkM4PgY8QzaYbPQkU/s1600/C_Hydra_Cl_Body01.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxCE5EPncKMGowfm8EeG_FMpfjcxGbCp2j5vbH6IEN12Rtgi2Psfg9rJIv4kjQ7lkwX9jMwlNUJGkgVEgV8NXJWTDETNapFzBKGtU1TFbcy6-L2N6Kto08gjhR1iGkM4PgY8QzaYbPQkU/s320/C_Hydra_Cl_Body01.jpg" width="320" /></a></div>
Textures spell the difference between superb-looking models and crappy-looking ones. Excellent diffuse and normal maps are crucial in giving your models that wow factor, and bad ones can damn even the best models to ruination. Normal maps can be baked from high-poly models, a process that I explained in <a href="http://nwn2faithless.blogspot.com/2009/01/creature-modeling-part-5-normal-mapping.html">a previous blog post</a>. Diffuse maps, on the other hand, are created in image-editing software.<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
There are many ways to make diffuse maps. For instance, you may copy and paste images together to form your diffuse map, as I explained in <a href="http://nwn2faithless.blogspot.com/2009/01/creature-modeling-part-6-painting.html">another blog post</a>. Things get more complicated if your diffuse map has to follow the bumps and crevasses of your normal map. Such is the case with the snake and hydra texture, in which the scales on the diffuse map have to match those on the normal map. The key to accomplishing this is to use your model’s normal map – or better yet, its height map if it has one – as a basis for painting its diffuse map. There are many ways to do this. The method that I will explain in this blog post is so easy yet so effective that you will astound your friends and confound your enemies with the quality of your work.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This tutorial assumes that you have already generated your model’s normal map, height map, or both. It also assumes that your image editing software is Photoshop. You can also use Gimp if you prefer, but you will need to substitute the appropriate controls for that application.<br />
<br />
<div class="MsoNormal">
<h2>
The Tutorial</h2>
<div class="MsoNormal">
</div>
<ol>
<li> We will need a grayscale texture map as a starting point for our diffuse map. If your model has a height map, open it in your image editing software. Otherwise, open your normal map and copy either its Red channel or its Green channel to a new window, converting the copied image to RGB mode. To do this in Photoshop, click the Channels tab on the right panel and click either the Red or the Green channel, whichever looks more like a height map. Press [Ctrl]+A to select the entire image then press [Ctrl]+C to copy it to the Clipboard. Press [Ctrl]+N to make a new window and click the OK button in the dialog box that appears. In the newly created window, press [Ctrl]+V to paste the image that you copied earlier.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9AHv-UjU6-VF8b52zirql9kL4doM26Uza_Ou9w0faPWrL5cYmoLRwI9RgfVzsdkHvs_CVvr5u4QiI3EXiWipDPX14RV55nZ06GTMnn6CgQge71dKxCkclPliQlo8E_P7xPCFiouYsxVo/s1600/diffuse01a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9AHv-UjU6-VF8b52zirql9kL4doM26Uza_Ou9w0faPWrL5cYmoLRwI9RgfVzsdkHvs_CVvr5u4QiI3EXiWipDPX14RV55nZ06GTMnn6CgQge71dKxCkclPliQlo8E_P7xPCFiouYsxVo/s320/diffuse01a.jpg" width="320" /></a></div>
<br />
Click the Image menu and select Mode/RGB Color to convert the image from grayscale to color mode. When prompted, you may flatten the image if you like. If the channels of your normal map are already adapted for use in NWN2, you will need to invert your image by pressing [Ctrl]+I.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3p1Fea6ZTOTMcXdMsfv0IH3v6TvUBITfcuI2n6uD1yzSgfMrRsYW1GvwoKVF48TLGD314kNX5OuLUCNpg-kUlmshN88XxfupYbT8iqKakErtNKRdZ0EklKgFwIQO_ayXd4aH3VBqLF5A/s1600/diffuse01b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3p1Fea6ZTOTMcXdMsfv0IH3v6TvUBITfcuI2n6uD1yzSgfMrRsYW1GvwoKVF48TLGD314kNX5OuLUCNpg-kUlmshN88XxfupYbT8iqKakErtNKRdZ0EklKgFwIQO_ayXd4aH3VBqLF5A/s320/diffuse01b.jpg" width="320" /></a></div>
</li>
<li>Your grayscale image may need to be lightened to prepare it for colorization. In the Layers panel, right-click the layer with the image on it to bring up a context-sensitive menu. Click “Duplicate Layer…” from the menu. In the dialog box that appears, you may type a descriptive name for the new layer then click the OK button. In the Layers panel, select the newly created layer and set its Blend Mode to Screen. This will lighten the image.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidJ9jr7emqwOLXTskf_fsrWfT_9s0qw-w1ragD1dTOxU2luykl3Jx60Fx8E_5K-B9fqA75xTU0p-TqPSMQ5n4EDQHSs8-KpyMoPU20mvesd_2hyr69LDuL_xkYod1rQ1ovRnYhckDLIpk/s1600/diffuse02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidJ9jr7emqwOLXTskf_fsrWfT_9s0qw-w1ragD1dTOxU2luykl3Jx60Fx8E_5K-B9fqA75xTU0p-TqPSMQ5n4EDQHSs8-KpyMoPU20mvesd_2hyr69LDuL_xkYod1rQ1ovRnYhckDLIpk/s320/diffuse02.jpg" width="320" /></a></div>
</li>
<li>You may want to darken some parts of your image. If so, the best way to do it is to use a layer mask. With your Screen layer selected, click the Layer menu then click Layer Mask/Reveal All. This will create a new layer mask on your Screen layer.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguqEu50NyxIkTIap7c-jT6cKsYmz1Jco-zD0ozZtxZDEZE0MPBFQPKPISvO4HtUC9lOh6rH5lxITmQf73eoxJfGp8gFGcxt2QyEl1M7fmKhiF6tXshc9LQB-V8hnsVVD7AnjSRahaq730/s1600/diffuse03a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguqEu50NyxIkTIap7c-jT6cKsYmz1Jco-zD0ozZtxZDEZE0MPBFQPKPISvO4HtUC9lOh6rH5lxITmQf73eoxJfGp8gFGcxt2QyEl1M7fmKhiF6tXshc9LQB-V8hnsVVD7AnjSRahaq730/s320/diffuse03a.jpg" width="320" /></a></div>
<br />
In the Color tab on the right panel, you can select black (0%), white (100%), or any shade of gray in between. With the brush tool, you can paint over the layer mask with a darker color to erase parts of your Screen layer. Painting with black (0%) will completely erase those parts of the Screen layer that you paint over. If you make a mistake while painting, you can restore those parts of your Screen layer by painting them white (100%). In the picture below, I chose to partially erase my Screen layer where the dark scales are supposed to be by painting those areas 60% gray.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilf-17W7hmM5CDYTSKMHzCmTntp2Axd1d0C6Pz5cYtHmqq4wTEXF9v8nCoscdPkx4ClFF1CnoRJ26ywz-1B1rrOSsnN_4sw2-KUrs-9rPJbAa4pPvAWtv499PYRYJtiIe5gJm9zGJHVB4/s1600/diffuse03b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilf-17W7hmM5CDYTSKMHzCmTntp2Axd1d0C6Pz5cYtHmqq4wTEXF9v8nCoscdPkx4ClFF1CnoRJ26ywz-1B1rrOSsnN_4sw2-KUrs-9rPJbAa4pPvAWtv499PYRYJtiIe5gJm9zGJHVB4/s320/diffuse03b.jpg" width="320" /></a></div>
</li>
<li>Having refined our grayscale image, we will now prepare the diffuse map for colorizing. Make sure that the top layer of your image’s window is selected. Press [Shift]+[Ctrl]+N to create a new layer above the previously top layer. We will use this layer to colorize the grayscale image below it. Give the new layer an appropriate name, such as Color. Set its Mode to Color Burn then click the OK button.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdFDAHa0mBsKFQaWnuGaYCorD2h5WtDblWJuU7WUrxYxq_8-LJlPmCcsmMB_WpI2pwVi7cZzvdmJEhM5ZSkfpdIYswuDHuZtAFtmg3z5bZKe4O8I2akBS2v2U-UndzWK8UDCIqaBL1KLY/s1600/diffuse04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdFDAHa0mBsKFQaWnuGaYCorD2h5WtDblWJuU7WUrxYxq_8-LJlPmCcsmMB_WpI2pwVi7cZzvdmJEhM5ZSkfpdIYswuDHuZtAFtmg3z5bZKe4O8I2akBS2v2U-UndzWK8UDCIqaBL1KLY/s320/diffuse04.jpg" width="320" /></a></div>
</li>
<li>We are about to paint some colors over the grayscale image. Select the Brush tool and choose a round brush of a suitable size for coloring your diffuse map. You may adjust the size and hardness of the brush to suit your needs.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURlIX9fHmwMGeUcJkfAd05oW5YlEyJ2e4oaTrlvbuQYiZpVo2pJhqUYKY1DRTrxk1Oeub8WxmyX4JEWL9JIeo7gCOVXe4-NFnyHycJuta1cJZOVKpJd4L9k8cD-La6NX72Qg_hCfRT5g/s1600/diffuse05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhURlIX9fHmwMGeUcJkfAd05oW5YlEyJ2e4oaTrlvbuQYiZpVo2pJhqUYKY1DRTrxk1Oeub8WxmyX4JEWL9JIeo7gCOVXe4-NFnyHycJuta1cJZOVKpJd4L9k8cD-La6NX72Qg_hCfRT5g/s1600/diffuse05.jpg" /></a></div>
</li>
<li>Now comes the fun part. Make sure that your color layer is selected, choose a color, and start painting. You will find that the color painted over your image is not exactly the same as the one you chose. In all likelihood, you will need to choose a lighter and more saturated color to get the effect that you want. The advantage of this technique is that you won’t need to worry about shading. That is the magic of the Color Burn blending mode when used over a grayscale image. You supply the color, and the grayscale image takes care of the shading.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0b0TQh7uG6V2OomlfyfQOEfyuwSYVaGubDhqgCs1Xa-IAVg5UrJHVWX9eA7GARDl4_HH1Cbhx4K4V5f_uiFrXuda4DV2TmkEL6mplmzBF5QK4-4ERixKsffQPs7w-E47dRQUMBpUnkDM/s1600/diffuse06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0b0TQh7uG6V2OomlfyfQOEfyuwSYVaGubDhqgCs1Xa-IAVg5UrJHVWX9eA7GARDl4_HH1Cbhx4K4V5f_uiFrXuda4DV2TmkEL6mplmzBF5QK4-4ERixKsffQPs7w-E47dRQUMBpUnkDM/s320/diffuse06.jpg" width="320" /></a></div>
<br />
Take a look below at the actual Color Burn layer when it is converted to a Normal layer.This illustrates how simple coloring can result in significant changes in hue, saturation, and brightness when used in a Color Burn layer over a grayscale image.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAl30bUvMQMXxB4FJLBlo7hBchsZYCbEAzGC4N5t4E5-M7eKjulbeUwhN5IyGSqjx5YKUNwmj7Pqg7-1JwNqEbNjqiSMBqpULqBrhsn-uiHAFhBulyPlvRawCJ3Rmo6MqJF96YNBQUeNk/s1600/color_burn.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAl30bUvMQMXxB4FJLBlo7hBchsZYCbEAzGC4N5t4E5-M7eKjulbeUwhN5IyGSqjx5YKUNwmj7Pqg7-1JwNqEbNjqiSMBqpULqBrhsn-uiHAFhBulyPlvRawCJ3Rmo6MqJF96YNBQUeNk/s320/color_burn.jpg" width="320" /></a></div>
</li>
<li>If you want to make some parts of the texture lighter, you can make the underlying grayscale layer lighter by duplicating it to create another Screen layer and erasing areas that you don’t want to affect. If the entire image is too light, you can darken it by lowering the Opacity of the Screen layer. If you need to darken selected parts of the image, you can erase those parts of your Screen layer to darken them, preferably with the use of layer masks. You can also darken the image by duplicating it as a new layer and setting its blending mode to Multiply. Feel free to add layers as you see fit.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXtrpcidl79zmtX_8T85gMKWtd7m4CbpVYJJBYFyrbBEekU2_c4fG3DXyGtRYmdPnYyuR0Ky3kxBuOf8DUkK27zdlklqf-Y2BGFeHYchfU0FXVqbZpVfQ7cFDkeI74vMKFPqRlriXLKc0/s1600/diffuse07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXtrpcidl79zmtX_8T85gMKWtd7m4CbpVYJJBYFyrbBEekU2_c4fG3DXyGtRYmdPnYyuR0Ky3kxBuOf8DUkK27zdlklqf-Y2BGFeHYchfU0FXVqbZpVfQ7cFDkeI74vMKFPqRlriXLKc0/s320/diffuse07.jpg" width="320" /></a></div>
</li>
<li>You can also add other Color Burn layers for more effects. In the picture below, I added one such layer called Grunge, where I painted scratches and grime over the snake’s scales. This is easier to accomplish if you use a custom brush to paint the grime. You can download custom <a href="http://browse.deviantart.com/resources/applications/psbrushes/" target="_blank">Photoshop brushes</a> or <a href="http://browse.deviantart.com/resources/applications/gimpbrushes/" target="_blank">Gimp brushes</a> for free from various sites such as deviantart.com.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsY6UhPDyNQisWKiYYAYgzpYs6_0RhXZPKH1EYcd5z2ckv63uUhyWwodid7aqIS27AwwTU5_i02ie-7ucM_X6fmMjAAL5izAwGQtYY0mLwtSl3vSrZWTEa1J7hqSQJY5PGx9H_ibmx9tA/s1600/diffuse08.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsY6UhPDyNQisWKiYYAYgzpYs6_0RhXZPKH1EYcd5z2ckv63uUhyWwodid7aqIS27AwwTU5_i02ie-7ucM_X6fmMjAAL5izAwGQtYY0mLwtSl3vSrZWTEa1J7hqSQJY5PGx9H_ibmx9tA/s320/diffuse08.jpg" width="320" /></a></div>
</li>
<li>Parts of the model that are smooth, such as eyes, cannot be textured in the above manner. For these, create a new layer on top of all the others. Make sure that the layer’s blending mode is Normal and paint those parts directly. Of course, you can add more layers on top of that to achieve various effects.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYhDiRvgSUIn4P-hWsWeZlHYLZbogCo1Ykj_Wa1qgHxk-YaOP8egUDCPNCaKWB8lepe5j6v1wmlCf0eM2yI0eKvOqGuMbg1bLnABHuGCaCTZ3SmXMVf6_tqqvDckGasKnuBuQM_QV7Utg/s1600/diffuse09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYhDiRvgSUIn4P-hWsWeZlHYLZbogCo1Ykj_Wa1qgHxk-YaOP8egUDCPNCaKWB8lepe5j6v1wmlCf0eM2yI0eKvOqGuMbg1bLnABHuGCaCTZ3SmXMVf6_tqqvDckGasKnuBuQM_QV7Utg/s320/diffuse09.jpg" width="320" /></a></div>
</li>
<li>To get your model to use your diffuse map, save it as a TGA or DDS file to your Override folder. TGA files are bigger but have crisper images. DDS files are smaller but come at a sacrifice to image quality. If you intend to distribute your model for others to use, you should choose DDS over TGA. Make sure to choose the DXT3 format and to generate 9 Mip Maps, as shown in the settings below.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF_pdDxblWP2_GVpMn2iR2m2ZozLLjw-2TXfqUF8Wo0Yv6go07nzGrfVTknJ0gxKwOfOwyKluwj_kS6JvWftYMyeYlsjvQ6RJPhTsuQ076s9DgXhufLb9vrqWnsXFKfVQg5LfEGifOlQw/s1600/diffuse10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF_pdDxblWP2_GVpMn2iR2m2ZozLLjw-2TXfqUF8Wo0Yv6go07nzGrfVTknJ0gxKwOfOwyKluwj_kS6JvWftYMyeYlsjvQ6RJPhTsuQ076s9DgXhufLb9vrqWnsXFKfVQg5LfEGifOlQw/s320/diffuse10.jpg" width="320" /></a></div>
</li>
<li>In 3DS Max, set your model to use the diffuse map that you saved then export it to your Override folder as an MDB file. Make a new module in the toolset or open an existing one and put your new model in an area. You should run the module as a game to see how it will look to other players. Now bask in the glory of your work.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguoXuMf-JjXTdjt_Yy4OEKDRwsD8cdLjsP-QjEGYG8poKPKf4iPO9QwmINZKFuY9_QEcOntI_IkOEUFWTSGqyQpEV9URst8r8vioqkSmDMDitzlQvmqDOlkBSHjaRiofN8aWHdiz-G5yQ/s1600/hydra.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguoXuMf-JjXTdjt_Yy4OEKDRwsD8cdLjsP-QjEGYG8poKPKf4iPO9QwmINZKFuY9_QEcOntI_IkOEUFWTSGqyQpEV9URst8r8vioqkSmDMDitzlQvmqDOlkBSHjaRiofN8aWHdiz-G5yQ/s320/hydra.jpg" width="320" /></a></div>
</li>
</ol>
</div>
<br />
<h2>
Conclusion</h2>
<div class="MsoNormal">
With the right techniques, painting a diffuse map need not be difficult. The method described above is easy to do and will yield a very good texture. There are other methods for creating diffuse maps, some of which may be more appropriate for certain models than others. If you google “<a href="https://www.google.com.ph/search?aq=f&sugexp=chrome,mod=8&sourceid=chrome&ie=UTF-8&q=diffuse+map+tutorial" target="_blank">diffuse map tutorial</a>,” you will find a number of them. Feel free to mix and match techniques as needed.</div>
</div>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com1tag:blogger.com,1999:blog-9122846242068305603.post-42899495019964977992012-06-01T12:05:00.000+08:002012-06-01T13:38:54.282+08:00Coming Full Circle with the Snake<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj38XOnw_rc_3eCS9WoPhNdjPF82Jn9yq8c8iBptUajDlfiuzpMFehogGnUMeubkrOAPJXZTq-27Gq1VoQCMLHWhdt1NBP4S1cI6DkPOZV_p_u7YjtmhyVg2M13dtlhxBu_jNKnFWr77ok/s1600/GiantSnake.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj38XOnw_rc_3eCS9WoPhNdjPF82Jn9yq8c8iBptUajDlfiuzpMFehogGnUMeubkrOAPJXZTq-27Gq1VoQCMLHWhdt1NBP4S1cI6DkPOZV_p_u7YjtmhyVg2M13dtlhxBu_jNKnFWr77ok/s200/GiantSnake.jpg" width="200" /></a></div>
A few months ago, I set out to make a hydra by first modeling a snake. It was only after I had completed its geometry and textures that I cloned its heads and attached them to its body to make a five-headed hydra. Ironically, even though I had finished the snake's mesh ahead of the hydra's, it was the latter that I first uploaded to the <a href="http://nwvault.ign.com/View.php?view=NWN2Models.Detail&id=237" target="_blank">Vault</a> and the <a href="http://neverwinter.nexusmods.com/mods/166" target="_blank">Nexus</a> because that was what I had been commissioned to do.<br />
<br />
A number of people expressed interest in the single-headed model, so I rigged the snake, adapted the hydra animations for it, and uploaded it to the <a href="http://neverwinter.nexusmods.com/mods/169" target="_blank">Nexus</a>. I tried to upload it to the <a href="http://nwvault.ign.com/View.php?view=NWN2Models.Detail&id=238" target="_blank">Vault</a> nearly twelve hours earlier, but as of this writing, its entry is still pending approval. As can be seen in the picture below, I provided both a non-tintable (left) and tintable model.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRPhIqNHMk6LXDeG47_ovjuHn5K01M5cRADqf2UTiEnsOXrRJHtrYSfl1udh3Qlewo1IsThBrIy2gHMieuQRRAnCAx63puNVXXwFNGVzERFotcGqzCo_Jri5ZI_xi0GDD_r5Z1o9nBp9A/s1600/ColorfulSnakes.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRPhIqNHMk6LXDeG47_ovjuHn5K01M5cRADqf2UTiEnsOXrRJHtrYSfl1udh3Qlewo1IsThBrIy2gHMieuQRRAnCAx63puNVXXwFNGVzERFotcGqzCo_Jri5ZI_xi0GDD_r5Z1o9nBp9A/s400/ColorfulSnakes.jpg" width="400" /></a></div>
<br />
<br />
One of the good things about this model is that, if you need a smaller snake, you'll find that it actually "scales" well.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8jBykMqhHw0CSkdU27EV7c_eyxaRn70wrEQdupIBB0wi9Ig_29ETZdZPp_W2qIg6Kk3LRRiucYs3cwFCTjJuXDey9frCH8ycZx6beFn5_NNxaUecDmUVK5o6R1YhgOnUxMpeZKGt7mYg/s1600/small_snake.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8jBykMqhHw0CSkdU27EV7c_eyxaRn70wrEQdupIBB0wi9Ig_29ETZdZPp_W2qIg6Kk3LRRiucYs3cwFCTjJuXDey9frCH8ycZx6beFn5_NNxaUecDmUVK5o6R1YhgOnUxMpeZKGt7mYg/s400/small_snake.jpg" width="400" /></a></div>
<br />
<br />
Like a <a href="http://en.wikipedia.org/wiki/Ouroboros" target="_blank">serpent biting its own tail</a>, my project has come full circle at last. It is such a relief to declare this Herculean effort over. I can now move on to making other models – nothing with scales please. I'm so sick of them.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com7tag:blogger.com,1999:blog-9122846242068305603.post-52631544929486389452012-05-28T00:17:00.000+08:002012-05-29T10:05:13.003+08:00Love Is a Many-Headed Thing, Part IX: Finished at LastFinally, the hydra is finished and uploaded to the <a href="http://nwvault.ign.com/View.php?view=NWN2Models.Detail&id=237" target="_blank">Neverwinter Vault</a> and the <a href="http://neverwinter.nexusmods.com/mods/166" target="_blank">Neverwinter Nexus</a>. I made a tintable and non-tintable version of the model, as can be seen below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWCmn_xgUoEpld-8IgYYIrvNgZXAjh-IG9fRKC9eugwFIrIyOMjTlJtU-U-l4b_ozoGm7JdottQiP3uiyPCAEZPPAtrLoS53OyhqG79ic3DyXPRrdqZKTv4jXDDqh35fT7pGMeiAnmQK8/s1600/hydra_tint.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWCmn_xgUoEpld-8IgYYIrvNgZXAjh-IG9fRKC9eugwFIrIyOMjTlJtU-U-l4b_ozoGm7JdottQiP3uiyPCAEZPPAtrLoS53OyhqG79ic3DyXPRrdqZKTv4jXDDqh35fT7pGMeiAnmQK8/s400/hydra_tint.jpg" width="400" /></a></div>
<br />
I'll rig and upload the one-headed version soon. For now, I need sleep. Zzzzz.<br />
<br />
<b>Edit, 29 May 2012.</b> Some time ago, I posted a thread regarding this creature in the NWN2 Custom Content forum at the Bioware Boards. When I announced the release of the hydra, a few people started trying it out. As of this writing, MokahTGS posted a test module with hydra variants in it for other players to try and contribute modifications to. Anyone interested may head over to <a href="http://social.bioware.com/forum/1/topic/163/index/11585135/1" target="_blank">my Big Snake thread</a> to apprise themselves of the latest developments and perhaps contribute to improving the creature's blueprint.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com3tag:blogger.com,1999:blog-9122846242068305603.post-79165107217422869902012-05-22T01:43:00.000+08:002012-05-29T09:52:54.685+08:00Creating New Life with the Expotron and Max, Part 6: Animation<i>This is Part 6 of my tutorial on bringing new creatures to NWN2 using 3DS Max and the Expotron. Part 1 of this series may be found <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max.html">here</a>.</i>
<br />
<br />
This blog post is an introduction to animation of NWN2 creatures. To keep the tutorial as broad as possible, I won’t cover the use of intermediate techniques that involve IK solvers. Different creatures may need different solvers to animate them properly, and it would take separate tutorials to adequately tackle each of them. Animation is a deep and complex topic that goes well beyond the mechanics of using 3D software. Readers who want to advance their animation skills may use this blog post as a starting point but should seek deeper knowledge elsewhere, especially as I’m no expert on it.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguoXuMf-JjXTdjt_Yy4OEKDRwsD8cdLjsP-QjEGYG8poKPKf4iPO9QwmINZKFuY9_QEcOntI_IkOEUFWTSGqyQpEV9URst8r8vioqkSmDMDitzlQvmqDOlkBSHjaRiofN8aWHdiz-G5yQ/s1600/hydra.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguoXuMf-JjXTdjt_Yy4OEKDRwsD8cdLjsP-QjEGYG8poKPKf4iPO9QwmINZKFuY9_QEcOntI_IkOEUFWTSGqyQpEV9URst8r8vioqkSmDMDitzlQvmqDOlkBSHjaRiofN8aWHdiz-G5yQ/s400/hydra.jpg" width="400" /></a></div>
<br />
Before proceeding, you should properly weight the vertices of your creature’s meshes. I’ve already covered vertex weighting <a href="http://nwn2faithless.blogspot.com/2009/01/creature-modeling-part-3-rigging-skin.html">elsewhere in my blog</a>, so read it first if you need to brush up on it.<br />
<br />
<h2>
Basic Concepts</h2>
The technique that we will discuss here is <i>key frame animation</i>. An animation sequence comprises a series of frames, which are like the images in a film strip. In NWN2 as well as many other videogames, each creature has a number of animation sequences that the game engine strings together to create the illusion of continuous motion. A creature can have one sequence for walking, another for running, and a third for standing in place.<br />
<br />
It takes several images flashed in quick succession to create the illusion of movement in film, videos, and games. In motion pictures, the standard number of frames per second is twenty-four. When making our animation sequences in 3DS Max, we will use the default rate of thirty frames per second. Hence, a sequence lasting 1.5 seconds would consist of forty-five frames. When we export an animation sequence for NWN2, the Expotron will extrapolate seven additional frames for each frame in 3DS Max for a total of 240 frames per second. (By moving the Oversampling slider to its maximum value when we export an animation sequence, we are telling the Expotron to create eight frames for each one in 3DS Max.)<br />
<br />
In 3D programs, instead of creating frames out of 2D images, we set the pose of our model in separate frames to represent the stages of its motion at different points in time. We don’t have to do this for all the frames in a sequence. Instead, we set the pose in a few frames that define the motion in a particular segment and let 3DS Max figure out the pose between those frames. The point where we set the model’s pose is called a <i>key frame</i>. In traditional 2D animation, key frames are drawn by key artists. The frames between them are drawn by assistant animators called “inbetweeners.” For our purposes, we will let 3DS Max do the inbetweening for us.<br />
<br />
<h2>
File Naming Conventions</h2>
The file naming conventions for animations must be strictly followed for the game engine to apply them properly. Many animation sequences are tied to the items that a creature has in its hands. For instance, the way a creature attacks with a sword in one hand and a shield in the other is different from how it attacks with a bow. Some sequences, such as spellcasting animations, are not tied to equipped items.<br />
<br />
Each animation name must start with the name of the creature’s main skeleton without the “_skel” suffix, followed by an underscore. Animations that are tied to weapon stances must be followed by the code for the items wielded, followed by another underscore. All creatures must have animations for the unarmed stance. The rest of the stances are only for creatures that are capable of wielding weapons and shields. The codes for each weapon stance are shown in the following table.<br />
<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Code<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Weapon Stance<o:p></o:p></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1HS<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
One-handed sword<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1HSS<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
One-handed sword and shield<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
C2H<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Two-handed blade<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
O2HT<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Two-handed thrusting weapon (polearms, staves, spears)<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
O2HS<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Two-handed slashing weapon (axes)<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
D2H<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Dual weapons, one in each hand<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
CBOW<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Crossbow<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
BOW<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Short bow or longbow<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
UNA<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Unarmed<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.4pt;" valign="top" width="127"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
THRN<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 383.4pt;" valign="top" width="511"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Thrown weapon (sling or dart)<o:p></o:p></div>
</td>
</tr>
</tbody></table>
<br />
<div>
<br /></div>
<div>
The final part of the animation name is an identifier for the animation sequence. Standard animations must be given their correct names for the game engine to recognize them. There are many such sequences. Making them all can take weeks or even months, depending on how much time you put into animation each day. Nevertheless, there is a minimum set of sequences that you can provide a creature whose sole purpose is to engage players in combat. These animations are listed in the following table. Note that the approximate durations provided are estimates that can vary significantly with each creature and with each set of wielded items. Treat the last column in the table below as a rough guide.</div>
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Name<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Description<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Approx. Duration<o:p></o:p></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
idle<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the creature standing in a relaxed manner<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
as long as it takes (e.g., 10 seconds)<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
walk<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the creature walking<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 second<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
run<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the creature running<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Less than 1 second<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
idleM<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the creature in a combat stance<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
3 seconds<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
fidgetM01<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the creature fidgeting in combat. The starting
and ending frame should be the same as that of idleM.<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 second<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1attack01<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the creature making a single attack. The creature
should have delivered its deepest strike at 0.33 seconds from the start of
this sequence. The starting and ending frame should be the same as that of
idleM. If you want to make variations of this sequence, name them 1attack02,
1attack03, etc.<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 second<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
damage01<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the creature taking damage. The attack on the creature
should reach its apex at 0.33 seconds from the start of this sequence. The
starting and ending frame should be the same as that of idleM. If you want to
make variations of this sequence, name them damage02, damage03, etc.<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 second<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
dodge01<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the creature dodging an attack. The creature
should be farthest from the incoming attack at 0.33 seconds from the start of
this sequence. The starting and ending frame should be the same as that of
idleM. If you want to make variations of this sequence, name them dodge02, dodge03,
etc.<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1+ seconds<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
knockdownB<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Non-looping animation of the creature being knocked down to a lying
position. The starting frame is the same as that of the idleM animation, and
the ending frame is the same as the start of the proneB animation. The
creature should start falling within 0.33 seconds from the start of this
sequence.<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1+ seconds<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
proneB<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the creature lying on the ground. Despite the
name of this animation, not all creatures are necessarily prone. Bipeds, for
instance, lie face up as if they had been knocked out in a boxing match. <o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 to 2 seconds<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
standupB<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Non-looping animation of the creature standing up from a lying
position. The starting frame is the same as that of the proneB animation, and
the ending frame is the same as that of the idleM animation.<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
2+ seconds<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 68.25pt;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
death01<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 316.5pt;" valign="top" width="422"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Non-looping animation of the creature taking damage and lying on the
ground dead. The starting frame is the same as that of the idleM animation.
At 0.33 seconds from the start of this sequence, the attack on the creature
should have reached its apex. By the end, the creature should be lying dead
on the ground. If you want to make variations of this sequence, name them death02,
death03, etc.<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 94.05pt;" valign="top" width="125"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1+ seconds<o:p></o:p></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
For example, the hydra creature I’m making has a skeleton named c_hydra_skel. The hydra does not use any weapons other than its fangs, so all its actions are considered unarmed. If I wanted to make one and only one animation of the hydra dodging an attack, I would name that sequence “c_hydra_una_dodge01.”</div>
<div>
<br /></div>
<div>
<div>
Other combat animations may be provided on a case-to-case basis. For instance, creatures capable of speech may taunt their opponents, but animals generally do not. All intelligent creatures, including animals, may attempt to intimidate their opponents, but mindless creatures such as zombies and most constructs should not be able to.</div>
<div>
<br /></div>
<div>
Spellcasting animations follow a different naming convention. They still start with the name of the skeleton for which they are intended (not including the suffix “_skel”), followed by an underscore. This is followed by a code for the cast animation type, an underscore, and the name of the spellcasting stage.</div>
<div>
<br /></div>
<div>
The following table lists the cast animation types and their descriptions.</div>
</div>
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Cast Animation<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Description<o:p></o:p></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
GEN<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
General, all-purpose spellcasting. Not all creatures can cast spells,
but the ones that can should have this type of casting animation at the
minimum. Like the ATK animations, GEN animations may have spellcasters
hurling a spell at a target in front of them, but whether the spell is
intended to harm or heal should be ambiguous.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ATK<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Attack spellcasting intended to harm opponents<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
DEF<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Defensive spellcasting, such as spells for buffing the spellcaster<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
PTY<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Party spellcasting, which is like doing a short ritual without having
to hurl eldritch energies at a specific target<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
MJR<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Major, over-the-top spellcasting, powerful enough to levitate the
spellcaster a few inches off the ground<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
BSS<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Bard song without instruments<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
BSD<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Bard song while playing a drum<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
BSF<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Bard song while playing a flute<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 90.9pt;" valign="top" width="121"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
BSL<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 387.9pt;" valign="top" width="517"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Bard song while playing a lute<o:p></o:p></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
Spellcasting always comes in three stages, which are described in the following table.</div>
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: .95in;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Stage<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 346.5pt;" valign="top" width="462"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Description<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.9pt;" valign="top" width="85"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Duration<o:p></o:p></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: .95in;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
conjure<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 346.5pt;" valign="top" width="462"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Non-looping animation marking the beginning of spellcasting. The
first frame is the same as that of the idleM animation, and the last frame is
the same as the first frame of the conjureloop animation.<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.9pt;" valign="top" width="85"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 second<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: .95in;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
conjureloop<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 346.5pt;" valign="top" width="462"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Looping animation of the spellcaster weaving his spell<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.9pt;" valign="top" width="85"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 second<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: .95in;" valign="top" width="91"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
cast<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 346.5pt;" valign="top" width="462"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Non-looping animation that consummates the spellcasting. The first
frame is the same as that of the conjureloop animation, and the last frame is
the same as the start of the idleM animation.<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.9pt;" valign="top" width="85"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
2 seconds<o:p></o:p></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
Hence, if I wanted my hydra to do offensive spellcasting, I would create three animation sequences named “c_hydra_atk_conjure,” “c_hydra_atk_conjureloop,” and “c_hydra_atk_cast.”</div>
<div>
<br /></div>
<div>
<h2>
Making and Exporting an Animation Sequence</h2>
<div>
Now we come to the tutorial proper on animating a creature model and exporting its animations for NWN2. If you want to save your animations as Max files, always save them in separate files. Your rigged, non-animated model should have its own file. If, while animating your creature, you find out that some of its vertices are not properly weighted, you don’t have to start everything from scratch. Just modify the vertex weights of your non-animated model and export it again as an MDB file, overwriting the old version if you have one.</div>
<div>
<br /></div>
<div>
Animation in 3DS Max generally involves rotating bones. For example, to move an arm up, we rotate the upper arm on the shoulder joint. The only time we will use the Select and Move tool on a bone is when changing the position of root bones. These are the only bones that you may move. In almost all instances (or at least in all instances I can think of), we will never use the Scale tool.</div>
<div>
<br /></div>
<div>
At no point will we rotate or move attachment points. If you want, you can hide all attachment points when doing your animation sequences. Just remember to unhide them before exporting your animations as GR2 files.</div>
<div>
<br /></div>
<div>
Below are the general steps for key frame animation. I will only discuss the mechanics of the process. The art of creating lifelike animations is beyond the scope of this tutorial.</div>
<div>
<br /></div>
<div>
<ol>
<li>First, we need to set the duration of our animation sequence. Click the “Time Configuration” button to bring up the “Time Configuration” dialog box.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQyepbBwV6yhlQ33UmnUl_jarSIaXGFQhxHz3_xg7dzq2gs4YPdO9EJ8gvr9_VDhzHgW0cGXr3xMKll8Cy7-MEUWZUR4VvxEG1DwMN3l2unz0WmwIoFc16meyIEU7QSuvqREjQ-FCVeZo/s1600/anim01a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQyepbBwV6yhlQ33UmnUl_jarSIaXGFQhxHz3_xg7dzq2gs4YPdO9EJ8gvr9_VDhzHgW0cGXr3xMKll8Cy7-MEUWZUR4VvxEG1DwMN3l2unz0WmwIoFc16meyIEU7QSuvqREjQ-FCVeZo/s1600/anim01a.jpg" /></a></div>
<br />
Set the number of frames that the sequence will play then click the OK button. Remember that we are using the default rate of thirty frames per second.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc3g8-bS-5JmtRUn0cpvvnFyiGfvjQisBwLkyVuKtJT9XxYvtuF4EC_PvNALnPs5hSyruHVo3XeGNUGXZxqf-JOq9oWVt1s2HGsDMZBe39fJLopXY_1Klw1Z_tPryhUxZZOYjIwAKNs2Q/s1600/anim01b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc3g8-bS-5JmtRUn0cpvvnFyiGfvjQisBwLkyVuKtJT9XxYvtuF4EC_PvNALnPs5hSyruHVo3XeGNUGXZxqf-JOq9oWVt1s2HGsDMZBe39fJLopXY_1Klw1Z_tPryhUxZZOYjIwAKNs2Q/s320/anim01b.jpg" width="284" /></a></div>
<br />
</li>
<li>Make sure that the flame slider is at frame 0. Rotate the creature’s bones at the initial frame.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK2KIX30J3oRl2r8JIFo_ZMuF5OCziSAVH7McRVdqWYwoCubGv_LyxGksapXQP_mLpu9aXPwSyK5tTVlgEv6r7v6YLgYoHWt6M_533nYMqfdIjpGbX8OHsO-N58rn1jtH97D2wDd9rKeQ/s1600/anim02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK2KIX30J3oRl2r8JIFo_ZMuF5OCziSAVH7McRVdqWYwoCubGv_LyxGksapXQP_mLpu9aXPwSyK5tTVlgEv6r7v6YLgYoHWt6M_533nYMqfdIjpGbX8OHsO-N58rn1jtH97D2wDd9rKeQ/s320/anim02.jpg" width="320" /></a></div>
<br />
</li>
<li>Click the “Set Key” button. This will allow us to manually set keys on chosen frames.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSiS1oZNHtnoY2TRKzTj8BNcdg0iLGqajqfuTynezyttu0ko828Ch576GuAbTOaUUlcHhVm2olLPHp444lvFxaqQlfbeh1NXsYGHS-pMIfi5ydbMaS-VNGNtwZYi3F9rZhi9B3cXxdBNc/s1600/anim03a.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="24" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSiS1oZNHtnoY2TRKzTj8BNcdg0iLGqajqfuTynezyttu0ko828Ch576GuAbTOaUUlcHhVm2olLPHp444lvFxaqQlfbeh1NXsYGHS-pMIfi5ydbMaS-VNGNtwZYi3F9rZhi9B3cXxdBNc/s320/anim03a.bmp" width="320" /></a></div>
<br />
Press the [H] key and select all bones. Do not include any attachment points or meshes in your selection. Click the Select button when you’re done.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8XBp1_iUr0546aNe-m2ucTWWRxN4lOdNln1d5Lf6Ax92xohph8kw7zI0mUgY9FpVtv3fGF9mZSQSaVoN_qnsSlyCl4Q-03syND7hcbUSWtqt5KUpJKFJc-PWe-eBsyXKty85O1J7qzoQ/s1600/anim03b.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8XBp1_iUr0546aNe-m2ucTWWRxN4lOdNln1d5Lf6Ax92xohph8kw7zI0mUgY9FpVtv3fGF9mZSQSaVoN_qnsSlyCl4Q-03syND7hcbUSWtqt5KUpJKFJc-PWe-eBsyXKty85O1J7qzoQ/s320/anim03b.bmp" width="289" /></a></div>
<br />
</li>
<li>Click the “Key Filters” button and make sure that only the Rotation checkbox and optionally the “IK Parameters” checkbox are ticked. Close the dialog box when you’re done.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2j7-G2GBA0tBghBAr_jjqEgk59TneQfPyPY-slUdUPdVFsEkCQkAt_slaXD8ghoUPdOmSD1EIsssfR2eGM6dtBmMGoq9JdDEQ1PKzKi9BNofTfesxIv_yV2zixCX4bxKAHJakRI_ClAU/s1600/anim04a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2j7-G2GBA0tBghBAr_jjqEgk59TneQfPyPY-slUdUPdVFsEkCQkAt_slaXD8ghoUPdOmSD1EIsssfR2eGM6dtBmMGoq9JdDEQ1PKzKi9BNofTfesxIv_yV2zixCX4bxKAHJakRI_ClAU/s1600/anim04a.jpg" /></a></div>
<br />
With the frame slider in the 0 position, click the “Set Keys” button, which has a key icon on it. Don’t confuse “Set Keys” with “Set Key,” the button of which should be red at this point, indicating that it is toggled on.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVQrJythEhvItcqbB6UDH6wxJ-wjlrLYwVtD53i8La-PawfAL9rdZWsAotwzp7LBUnxHN2r01wLwQ9aVRypgbLuBbHloL7Pw62PYTNIgrFNtYQ2xCFaYDAIk8PZ2X0dmwlVioLOWE-MMg/s1600/anim04b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="24" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVQrJythEhvItcqbB6UDH6wxJ-wjlrLYwVtD53i8La-PawfAL9rdZWsAotwzp7LBUnxHN2r01wLwQ9aVRypgbLuBbHloL7Pw62PYTNIgrFNtYQ2xCFaYDAIk8PZ2X0dmwlVioLOWE-MMg/s320/anim04b.jpg" width="320" /></a></div>
<br />
</li>
<li>We will now set the position of the root bones. Press the [H] button to bring up the “Select Objects” window. Select only the root bones of your creature then click the “Select” button.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUy41imI4fgljIVbV9Bu_e37Wz8xq3cYMmQtvYA73CE6vCIH12O9g58q_Cn3oVceYf9EVUu_xv_F1weWOS_WpeAAdO1jIWFKpeBPvSS9mBHMZ6vJnCrvFUN3uPlsYQ2bZFb_A2PzcO6Cc/s1600/anim05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUy41imI4fgljIVbV9Bu_e37Wz8xq3cYMmQtvYA73CE6vCIH12O9g58q_Cn3oVceYf9EVUu_xv_F1weWOS_WpeAAdO1jIWFKpeBPvSS9mBHMZ6vJnCrvFUN3uPlsYQ2bZFb_A2PzcO6Cc/s320/anim05.jpg" width="289" /></a></div>
<br />
</li>
<li>Click the “Key Filters” button again, but this time, tick the Position checkbox. Close the Key Filters dialog box.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAT3mQFPa6QvxwaJp88_lqfyBOZoSYDdwx7Ct1Rl1nzQ02JbNi0ipg0l0SOE5WFs1kB7FRjUqeVyEmLfVCKn5eIFR7XPH_j5LKNx8wxgwHFNdscf1rhzY6xK8nBDQwGfExonUWXOV60wk/s1600/anim06a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAT3mQFPa6QvxwaJp88_lqfyBOZoSYDdwx7Ct1Rl1nzQ02JbNi0ipg0l0SOE5WFs1kB7FRjUqeVyEmLfVCKn5eIFR7XPH_j5LKNx8wxgwHFNdscf1rhzY6xK8nBDQwGfExonUWXOV60wk/s1600/anim06a.jpg" /></a></div>
<br />
Now click the “Set Key” button (the one with the key icon) to set the position of the root bones.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghOaSV6Ven47R7PY0qJOoAlXeSPUwNEb4meyqbqCSPY-uFtZU3BrDvXH_adT2DEFVTIXGJDjjkShJgN5GqVDUlYpUUlQ0IH-qkREFQ-Mc179sTrBFQRexwvhTr1uXUB2p0va-SPA5ikS4/s1600/anim06b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="24" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghOaSV6Ven47R7PY0qJOoAlXeSPUwNEb4meyqbqCSPY-uFtZU3BrDvXH_adT2DEFVTIXGJDjjkShJgN5GqVDUlYpUUlQ0IH-qkREFQ-Mc179sTrBFQRexwvhTr1uXUB2p0va-SPA5ikS4/s320/anim06b.jpg" width="320" /></a></div>
<br />
</li>
<li>For looping animations, you will want the last frame of your sequence to be the same as the first frame. If so, select all the bones of your creature, not including its attachment points. Hold down the [Shift] button then click the first key and drag it to the last frame. This will clone the keys in the first frame to the last frame.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjM3wnPiQ5FCu9E49VHGfCjYk8q08Dc7yuM_Mq1Oue5qzkAA1zkqliF3i57LDCfPLuUhyphenhyphenU87rCX9Wl1dysppOCmUrKuKzc4I6-fPAPlQ_2pjhZgp0AAGGMsgByzhlml5esw5CGqxdeHpk/s1600/anim07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="24" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjM3wnPiQ5FCu9E49VHGfCjYk8q08Dc7yuM_Mq1Oue5qzkAA1zkqliF3i57LDCfPLuUhyphenhyphenU87rCX9Wl1dysppOCmUrKuKzc4I6-fPAPlQ_2pjhZgp0AAGGMsgByzhlml5esw5CGqxdeHpk/s320/anim07.jpg" width="320" /></a></div>
<br />
</li>
<li>We will now set other key frames to animate the creature. Click the “Auto Key” button.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF9GTlP4VLe7ST5uHSQ71uhFwDEpVmzEpHYzfrC7SWbdl01aJsiPfH0zmcMYypmJ4Xz8haRMa-u1Ud_VShaJToXH5hlsd_x-Kamj7KBJJgtg7upDmqY2uK1q2qSK_RzCRRfaAsJCX8HlI/s1600/anim08a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF9GTlP4VLe7ST5uHSQ71uhFwDEpVmzEpHYzfrC7SWbdl01aJsiPfH0zmcMYypmJ4Xz8haRMa-u1Ud_VShaJToXH5hlsd_x-Kamj7KBJJgtg7upDmqY2uK1q2qSK_RzCRRfaAsJCX8HlI/s1600/anim08a.jpg" /></a></div>
<br />
Move the frame slider to the frame you want to set a key for. Rotate bones to set the creature’s pose for that frame. You may move root bones if necessary.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy9D4fA_8d0h68gvBNwNO1WOHXPvk5NsZHNCmwcCBgdOUUF_lcLxad1jH6y8imRkCCKcn4Q9LFUiBSuGgLZ2UXz890eVU49ZrhhsQM24yv3oqwmfxtnVFaHNjfQvSQ1sBNSw0RJYmRCkM/s1600/anim08b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy9D4fA_8d0h68gvBNwNO1WOHXPvk5NsZHNCmwcCBgdOUUF_lcLxad1jH6y8imRkCCKcn4Q9LFUiBSuGgLZ2UXz890eVU49ZrhhsQM24yv3oqwmfxtnVFaHNjfQvSQ1sBNSw0RJYmRCkM/s320/anim08b.jpg" width="320" /></a></div>
<br />
</li>
<li>Move to a new frame and set the creature’s pose for that frame. Repeat until you’ve assigned all the key frames for your creature.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Sbpo8j4og8JUrD_J9NjCQoT2Vxwu07sgauoSn953iuR4nhWBjJj4kKNxGkNZPIaglbFuKn0joOm8I_6uDRt_QilGKqZLzaVBcS0MwlToY5cA61UbIEG-JIDjeQTm3GmoWSqMnZpKpfc/s1600/anim09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Sbpo8j4og8JUrD_J9NjCQoT2Vxwu07sgauoSn953iuR4nhWBjJj4kKNxGkNZPIaglbFuKn0joOm8I_6uDRt_QilGKqZLzaVBcS0MwlToY5cA61UbIEG-JIDjeQTm3GmoWSqMnZpKpfc/s320/anim09.jpg" width="320" /></a></div>
<br />
</li>
<li>Even if you set your key frames properly, you may find that the acceleration or deceleration of motion from one key frame to another isn’t quite right. If so, you will have to edit the curve of the motion. Select one or more bones whose motion acceleration you want to change.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjndCWWg-yQy4vm68_htVp7thSNVKGDhbdiTMXOocVcTjdCt8QbYRy0s9RTcqHUpAdobUS3Tr_yhyphenhyphenKNoDOU8aFeYRZwr6hCxVyVcrxL2JnR3pBJsWFdGK7FzWlINP5J9mWqoGUAcqLsFe0/s1600/anim10a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjndCWWg-yQy4vm68_htVp7thSNVKGDhbdiTMXOocVcTjdCt8QbYRy0s9RTcqHUpAdobUS3Tr_yhyphenhyphenKNoDOU8aFeYRZwr6hCxVyVcrxL2JnR3pBJsWFdGK7FzWlINP5J9mWqoGUAcqLsFe0/s320/anim10a.jpg" width="289" /></a></div>
<br />
Click the “Graph Editor” menu and select “Track View – Curve Editor.” This will bring up the associated window.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkVO2_Qnw4GmcOQzNuq60-iE1cJqCiQZzNxd8N8xsGGRIWGZGiUeRiMugnUG6gmU5IVRe7gzCoA-ZJs-VXhWPHKZkbJWVd-p-MMRGFWxsl0dMaKyOhvd3lbhaDuZn6gkpLtEu4-CWIPvw/s1600/anim10b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkVO2_Qnw4GmcOQzNuq60-iE1cJqCiQZzNxd8N8xsGGRIWGZGiUeRiMugnUG6gmU5IVRe7gzCoA-ZJs-VXhWPHKZkbJWVd-p-MMRGFWxsl0dMaKyOhvd3lbhaDuZn6gkpLtEu4-CWIPvw/s320/anim10b.jpg" width="320" /></a></div>
<br />In the new window, you can select any set of two or more points on each line and change the curvature of the segment between those points by clicking any of the buttons on the toolbar that changes the segments’ tangents. This will affect how the rotation and position of the bones between your key frames will change.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7G2Nw7r71QagyG1FZ1pbyQ6mRdnIMY5OYBm5wBGelz94WRK5nz3NyinoQlq5K6X0v_CnqPNqmS-NU-jcTZUlWkz_vnXtMAN9o5fQNgVRw-_dZXAD1GPVwUKHIUZapnQ5BeX-h8RVtC7c/s1600/anim10c.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7G2Nw7r71QagyG1FZ1pbyQ6mRdnIMY5OYBm5wBGelz94WRK5nz3NyinoQlq5K6X0v_CnqPNqmS-NU-jcTZUlWkz_vnXtMAN9o5fQNgVRw-_dZXAD1GPVwUKHIUZapnQ5BeX-h8RVtC7c/s320/anim10c.jpg" width="320" /></a></div>
<br />
</li>
<li>At any point, you may click the “Play Animation” button to see how it goes.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpq6To0Q58f9MnGFvQPl00FZDF2ywSZgPiXpSpFGTAUjvo4XGOlgnNsHUZFTyyOf8zLJ_txXtLOsJI7l8Ri1a1j_ZcgNpLRxkZb_XO6sj9B2Z0d07XG9AHTNsC6zvMtfgDBW7c9MBB0pc/s1600/anim11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpq6To0Q58f9MnGFvQPl00FZDF2ywSZgPiXpSpFGTAUjvo4XGOlgnNsHUZFTyyOf8zLJ_txXtLOsJI7l8Ri1a1j_ZcgNpLRxkZb_XO6sj9B2Z0d07XG9AHTNsC6zvMtfgDBW7c9MBB0pc/s1600/anim11.jpg" /></a></div>
<br />
When you are satisfied, export your animation as a GR2 file using the method that I discussed in <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max_09.html">my last blog post</a>.
<br />
<br />
</li>
<li>Create a module for testing your creature model if you haven’t done so already. If you want to test the creature’s combat animations, be sure to set its faction to Hostile. Run the game as your chosen player character and interact with the creature, carefully observing its animation as you play. If you find that the animation needs some fine-tuning, adjust it in 3DS Max then export it as a GR2 file again. Repeat as often as necessary.</li>
</ol>
</div>
<div>
<br /></div>
<h2>
Saving and Loading Animations</h2>
<div>
While you may save your animated creature in a separate Max file for each animation, you can also store your animation sequences as XAF files. These are basically XML files that are specifically designed for animations.</div>
<div>
<br /></div>
<div>
You can only save animations for selected bones, so if you want to store an entire animation, select all the bones of your creature (not including its attachment points). If you only want to store the animation of certain bones, select only those. Click the File menu and select “Save Animation.”<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim6qn-w7W7RYk4WJML7mLSYwVnI-bgFzco_vwHpA2mADemoS9HdoHMS6wNrHduv7AJ3bm9F1cycy0xPE5v68p-uBr1EBDnxDSUqzJ1Rc_6G4vHfIzRWwyKejmyCeNYfWimsRvUe26M6to/s1600/XAFanim01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim6qn-w7W7RYk4WJML7mLSYwVnI-bgFzco_vwHpA2mADemoS9HdoHMS6wNrHduv7AJ3bm9F1cycy0xPE5v68p-uBr1EBDnxDSUqzJ1Rc_6G4vHfIzRWwyKejmyCeNYfWimsRvUe26M6to/s1600/XAFanim01.jpg" /></a></div>
<br /></div>
<div>
In the dialog box that appears, enter the name of the animation sequence you want to save. This may be any name you like. If you want to store only a segment of your animation, tick the checkbox labeled “Segment” and indicate the starting and ending frame to save. Click the “Save Motion” button when you’re done.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg63S17TfAnP0nalq3p-0WVtYXlT89lDJ3488-7yJktrhAmc_2MVUYXM0B01GOlGMCh4zhXX-ubh11ctQXLPgcwuMXDJoPrlwn4oXTCUp_JAUgD2InCzgZxMrpc0OUGh_puIU3padaR0S0/s1600/XAFanim02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="341" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg63S17TfAnP0nalq3p-0WVtYXlT89lDJ3488-7yJktrhAmc_2MVUYXM0B01GOlGMCh4zhXX-ubh11ctQXLPgcwuMXDJoPrlwn4oXTCUp_JAUgD2InCzgZxMrpc0OUGh_puIU3padaR0S0/s400/XAFanim02.jpg" width="400" /></a></div>
<br /></div>
<div>
To load an animation, select the bones that you want to load an animation sequence for. You may select all the creature’s bones if you like, but you may also select only a smaller set of bones if you want the rest to remain unaffected. Click the File menu and select the “Load Animation” option.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNtIKmLajMFlGhLQd-cZZwC01ILNwyg1tmlXWNLUzklWmcNE-mEIPbCyp4-DumoO93b5f0fGTToMBxuwuNJblfXgP0XrdlAULm-XyRSChjEObqyn3IQwVcFs11SGjPhl7ztrna2rqgW4k/s1600/XAFanim03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNtIKmLajMFlGhLQd-cZZwC01ILNwyg1tmlXWNLUzklWmcNE-mEIPbCyp4-DumoO93b5f0fGTToMBxuwuNJblfXgP0XrdlAULm-XyRSChjEObqyn3IQwVcFs11SGjPhl7ztrna2rqgW4k/s1600/XAFanim03.jpg" /></a></div>
<br /></div>
<div>
In the dialog box that appears, choose the name of the XAF file you want to load. If you want the loaded animation to be relative to the bones’ current position and rotation, you may keep the “Relative” radio button toggled. I usually click the “Absolute” radio button. You may choose to replace the key frames with the ones in the file, or you may insert the animation at a specific frame. Click the “Load Motion” button when you are done. This will load the animation sequence for your chosen bones.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS0pCqd43kRmhTvZdJAZbo8PkN4ZItaKMuO24h4vZXuwkpih-x0kYEaF73WiTgQVPX0gQ63CYAQAbh4dD90-bdVvAQldUwF53zUB4O1kN2-e3nJSdscHAU-k_3BYBCygZyj1KiR79xxhw/s1600/XAFanim04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="347" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS0pCqd43kRmhTvZdJAZbo8PkN4ZItaKMuO24h4vZXuwkpih-x0kYEaF73WiTgQVPX0gQ63CYAQAbh4dD90-bdVvAQldUwF53zUB4O1kN2-e3nJSdscHAU-k_3BYBCygZyj1KiR79xxhw/s400/XAFanim04.jpg" width="400" /></a></div>
<br /></div>
<div>
I can’t begin to express what a powerful, time-saving feature this is. For instance, opening and closing the mouths of a hydra isn’t easy because the angle of each head affects the angle of its mouth, fangs, and tongue in the open and close positions. To save me a whole lot of effort, I set the key frame for the hydra at its open-mouth position and stored the bone states for the heads, jaws, fangs, and tongues as an XAF file. I then retracted each fang and tongue and closed each mouth with mechanical precision, a process that also involved temporarily changing the angle of all the necks to get the closed-mouth position right. I then set a key frame for this position and saved the states of the same bones in a separate XAF file. When doing different animation sequences later, I could choose which heads would open their mouths and at what frames they would do so. I could also choose whether to extend their fangs and/or tongues when they open their mouths. This would have been difficult to achieve with precision if I had to do this manually each time.</div>
<div>
<br /></div>
<div>
There were many other animation sequences that I re-used in part, such as the hydra’s slithering motion. I’ll leave you to discover other applications of this wonderful feature in your own animations.</div>
<div>
<br /></div>
<h2>
Conclusion</h2>
<div>
This concludes my tutorial series on creating new creature models for NWN2. The content of this entire series is equivalent to a chapter of a thick textbook, but the topics discussed herein can span many such books if they were to be discussed thoroughly. Nevertheless, I hope that this tutorial will serve as a starting point for novices who want to get into 3D modeling and animation in general and NWN2 modding in particular. I wish I had this kind of information at my fingertips when I was starting out.</div>
</div>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com4tag:blogger.com,1999:blog-9122846242068305603.post-91615692690640619872012-05-09T23:48:00.000+08:002012-05-29T09:53:13.579+08:00Creating New Life with the Expotron and Max, Part 5: Rigging and Exporting Creature Models<i>This is Part 5 of my tutorial on bringing new creatures to NWN2 using 3DS Max and the Expotron. Part 1 of this series may be found <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max.html">here</a>.
</i><br />
<br />
With the preliminaries out of the way, we can now proceed with the tutorial proper. Fire up 3DS Max, load your creature model, and follow the instructions below.<br />
<br />
<ol>
<li>Make sure that the pivot of each mesh is centered at world coordinate (0,0,0). This pivot is what defines the creature’s center, which NWN2 uses to calculate distances between objects. Assuming you haven’t rigged the mesh yet, click the Hierarchy panel (the one whose icon looks like an organizational chart on the upper right side of the screen) then click the button “Affect Pivot Only.” Next, click the Select and Move tool, and in the Absolute Mode Transform Type-In (the three input boxes at the bottom of the screen), set the X, Y, and Z values to 0,0,0. Toggle the “Affect Pivot Only” button when you’re done.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2X0knltghpcNRFDgp2RRbGmzAHBWjFow-_NDU2RMDIsbehvOy-8RrfvAxxy1fJ5KIi2gZQD_CMwM3B4GV2ucvNxrtZwNk1Zzi3OZ6kn1a0UjDmFlhgrhETX5AabmC86TWJpARzUO2G7U/s1600/skelly01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2X0knltghpcNRFDgp2RRbGmzAHBWjFow-_NDU2RMDIsbehvOy-8RrfvAxxy1fJ5KIi2gZQD_CMwM3B4GV2ucvNxrtZwNk1Zzi3OZ6kn1a0UjDmFlhgrhETX5AabmC86TWJpARzUO2G7U/s1600/skelly01.jpg" /></a></div>
</li>
<li>To rig the mesh, we are first going to make its skeleton. If you have any LOD meshes, hide them for now. We will work only with the main meshes, but we’ll need them to be transparent so we can see the bones underneath. Select your meshes and right-click on them to bring up the context-sensitive menu. Click Properties to bring up the Object Properties window. Tick the check box beside “See-Through” then click the OK button.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYubR-GTwC5n4NLkUPkx4t68m8ipNvlnZ_lPEKd3PYFmdSv0ZELkK5rx4u3vE2-pqRXglm_FuxtoyGZrxRBgyNygVupyvvRbl1bKUTRLbX35bkaelbNPsQBnGExtGD197TqLQvQvrZUdo/s1600/skelly02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYubR-GTwC5n4NLkUPkx4t68m8ipNvlnZ_lPEKd3PYFmdSv0ZELkK5rx4u3vE2-pqRXglm_FuxtoyGZrxRBgyNygVupyvvRbl1bKUTRLbX35bkaelbNPsQBnGExtGD197TqLQvQvrZUdo/s400/skelly02.jpg" width="271" /></a></div>
</li>
<li>We will now make the root bone for the body mesh. We need it to be at the center along the left-right axis, so make either the Left or Right viewport active by selecting it. If you wish, you may toggle viewport maximization by pressing [Alt]+W after selecting the viewport you want to work in. On the Create panel, click the Systems icon, the one that looks like a couple of gears. Click the Bones button then click within the mesh not too far from where you want your root bone to be. Move the mouse to the desired position of the root bone then click the mouse again. This will create one bone. Now right-click the mouse to end bone construction. This will create a second bone, which is really just a small nub. It is this tiny bone that we want to make the root bone, not the first bone. Rename it in accordance with the skeleton naming convention explained earlier.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhikZGEo3U_hR69LBV3PlCHMC7I3PeEHAty5vYHF3gLzLkFCb4f9FhmfeHWLYPHBhP9Du12mCJGFuiSKwckv_usfFZErUv3Oo5nIbUEvTaWFymXw_bCUjPeEADCIWPat2ZZJ59X3QZKdTs/s1600/skelly03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhikZGEo3U_hR69LBV3PlCHMC7I3PeEHAty5vYHF3gLzLkFCb4f9FhmfeHWLYPHBhP9Du12mCJGFuiSKwckv_usfFZErUv3Oo5nIbUEvTaWFymXw_bCUjPeEADCIWPat2ZZJ59X3QZKdTs/s400/skelly03.jpg" width="400" /></a></div>
</li>
<li>We won’t need the first bone anymore, so select it and delete it. We should be left with only the root bone of this skeleton.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZVl0pEe9uWeWfHO3lJXdOJBS5Dj89zkx_HQ10FjbEhru3rh0oi70iiUkb0wyTryY5uAkDlqM7z5oGSMMM46OWXFC7zY3IGHtY9zJCvwMNZUxyrOs_jjMbrj1ZnqdN7Z7tMHXJxtegUNM/s1600/skelly04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZVl0pEe9uWeWfHO3lJXdOJBS5Dj89zkx_HQ10FjbEhru3rh0oi70iiUkb0wyTryY5uAkDlqM7z5oGSMMM46OWXFC7zY3IGHtY9zJCvwMNZUxyrOs_jjMbrj1ZnqdN7Z7tMHXJxtegUNM/s400/skelly04.jpg" width="400" /></a></div>
</li>
<li>We’re going to build up the rest of the skeleton for this mesh. Select the root bone and click the Bones button under the Create Systems panel. Click the root bone again to create a new bone that connects to it and click on the spot where the new bone ends. You can create another bone that connects to the last one that you made by clicking on the spot where the new bone ends. Continue in this manner until you’ve completed the bones for the body and head mesh. Make sure that you don’t make more than fifty-four bones. If you need to stop making a chain of bones to build a new chain in another part of the creature, right-click the mouse to end the bone creation process. This will create a nub bone at the end of the chain. If the creature you’re making will need more than one skeleton hierarchy (say, to bypass the fifty-four bone limit for each skeleton), don’t delete the nub bone at the juncture between the meshes. You should, however, delete the nub bones that are not intended for use as root bones in other skeletons.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD_h1GDDP6G-MXi7ZFSRg_-x3h1KIGPkjOoOz4P8dpq6WG2xJWNzLPdrjIoIlTsv9QXssjFjXiS0vc_bNj-g50yS6iidofMf5Snb8gi66YZUMw7x9Q_02_tXfFxCRjG2Okw9Si4KbG-eg/s1600/skelly05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD_h1GDDP6G-MXi7ZFSRg_-x3h1KIGPkjOoOz4P8dpq6WG2xJWNzLPdrjIoIlTsv9QXssjFjXiS0vc_bNj-g50yS6iidofMf5Snb8gi66YZUMw7x9Q_02_tXfFxCRjG2Okw9Si4KbG-eg/s400/skelly05.jpg" width="400" /></a></div>
<br />
Remember to use the Left or Right viewport if you want to center the bones along the left-right axis. If you want to create arms or legs, however, you will have to switch to the Front or Back viewport. Start on just one side first so you can clone the bones for the other side later. For example, to build the right arm and shoulder, you may select the part of the spine where the right shoulder connects then click the Bones button to start creating new bones. Click the selected part of the spine again, which is where the right shoulder will begin, and then click the spot where the right shoulder ends. From there, create bones for the upper arm, lower arm, and fingers. When you’re done and have deleted any unnecessary nub bones, select all the bones from the shoulder to the fingers and clone them as a copy (not as an instance). Select the cloned shoulder and rotate it 180 degrees along the left-right axis. This will give you a set of bones from the left shoulder down to all the fingers on the left side.</li>
<li>If your creature has another mesh that will need its own skeleton hierarchy, select the nub bone that you intend to make the root bone of the new skeleton. Clone this bone as a copy and change the name of this bone to correspond with the naming convention for the type of skeleton you’re making. Don’t delete the original nub bone. It should remain a part of its skeleton.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0JEN2c2gOv4HSl6Cc58i5SKw7IilHBNwzqiZonyS3Mp36ARevQ6efXQ8gPu7bNL0i2Obcq0Y2ylzKzi_k43L28z0IGbGxLYFRYsN8KkODCJ8HtLXnKdP3ztQnT5401K_gs8iXArzUkAU/s1600/skelly06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0JEN2c2gOv4HSl6Cc58i5SKw7IilHBNwzqiZonyS3Mp36ARevQ6efXQ8gPu7bNL0i2Obcq0Y2ylzKzi_k43L28z0IGbGxLYFRYsN8KkODCJ8HtLXnKdP3ztQnT5401K_gs8iXArzUkAU/s400/skelly06.jpg" width="400" /></a></div>
</li>
<br />
<li>With the cloned bone selected, click the “Unlink Selection” button, which is somewhere on the left side of the top toolbar just below the Group menu. This will separate the cloned bone from the hierarchy, thereby allowing you to make it the root of a new skeleton.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXTGU33LxLRj_cvfTDiWzymtXqULCdDIE1qa02ZjsBpHrTPQdrXzQZg6eyEglzx1zF4GGb1p9cLh1fGXwGc4EDTUHjcnCsGYhD0TREydZUQGZg0YjXeK8PQkw81G_FqoyIGpJOMa4kw1E/s1600/skelly07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="87" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXTGU33LxLRj_cvfTDiWzymtXqULCdDIE1qa02ZjsBpHrTPQdrXzQZg6eyEglzx1zF4GGb1p9cLh1fGXwGc4EDTUHjcnCsGYhD0TREydZUQGZg0YjXeK8PQkw81G_FqoyIGpJOMa4kw1E/s400/skelly07.jpg" width="400" /></a></div>
</li>
<li>Make sure that the new root bone is still selected then click the Bones button under the Create Systems panel. Click the root bone to start creating a new bone that is linked to it and click on the spot where the new bone ends. Keep building bones until you’ve completed the skeleton. Make sure that the skeleton hierarchy does not exceed fifty-four bones.
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic59-z7BRAnGW14cqbxEWfk45ZuZKub87vvB_VIKLQyXbxm9vjp6TgsGv2DQAkIGx1f-nwx5Jo-IfoRAQksdt032PL0EcWp4e7aeu4QdWhSS5SRqBv2GFzwFAFKkLUzRG6OpeJZeKyAfI/s1600/skelly08.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic59-z7BRAnGW14cqbxEWfk45ZuZKub87vvB_VIKLQyXbxm9vjp6TgsGv2DQAkIGx1f-nwx5Jo-IfoRAQksdt032PL0EcWp4e7aeu4QdWhSS5SRqBv2GFzwFAFKkLUzRG6OpeJZeKyAfI/s400/skelly08.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Two completed skeletons, one for the body and one for the "wings" mesh, which is actually the hydra's five heads and necks</td></tr>
</tbody></table>
</li>
<li>If you have a third mesh that needs its own skeleton, repeat steps 5 to 7 for that skeleton until you’ve completed it. Remember that each creature may have no more than three skeletons.</li>
<li>We will now add attachment points to the creature. In the Create panel, click the Helpers button, whose icon looks like a measuring tape. Click the Dummy button to start creating dummy objects. Position the mouse where you intend to make the first attachment point then click and drag the mouse to make a small square. This will make the dummy object. When it comes to exporting the skeleton later, it doesn’t really matter how big or small you make the dummy object, but try to make it as small as possible to give you a better idea of where its center point is. Rename the dummy object to correspond to the appropriate standard name for the attachment point you’re creating. If necessary, you can reposition a dummy object with the Move tool. If you need to stop creating dummy objects, you may right-click the mouse anywhere on the viewport. Keep making and renaming dummy objects until you’ve completed all the attachment points your creature needs.
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-zbum1zPdCqounHQx529AlaOkaw83gM-oShT3_W8JoUPkrvwNHz2dIP1kowgSpMaKEwoQcSkAXo583DsB3ObQddCOGK4TZMU1iP5UZU2GC9ot_dTilQCz9292excYFoM5YvYu6il_5M0/s1600/skelly10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-zbum1zPdCqounHQx529AlaOkaw83gM-oShT3_W8JoUPkrvwNHz2dIP1kowgSpMaKEwoQcSkAXo583DsB3ObQddCOGK4TZMU1iP5UZU2GC9ot_dTilQCz9292excYFoM5YvYu6il_5M0/s400/skelly10.jpg" width="400" /></a></div>
</li>
<li>Next, we will link each attachment point to the appropriate bone. Select an attachment point then click the “Select and Link” button, which is on the top toolbar just below the Tools menu.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx_fQjjF8_h1jnpq6uc9gnqg5AbXDOVP-KdnnrywRBepqEwXpre4rsBuA78Mz6qhmJ5us6rRD4TIUhBqWmOMeDN-kmFrPFY4WBeP2c-vUK4hyCCrP4BKgLerNiX7_jCJMR8Wotb_mukp4/s1600/skelly11a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx_fQjjF8_h1jnpq6uc9gnqg5AbXDOVP-KdnnrywRBepqEwXpre4rsBuA78Mz6qhmJ5us6rRD4TIUhBqWmOMeDN-kmFrPFY4WBeP2c-vUK4hyCCrP4BKgLerNiX7_jCJMR8Wotb_mukp4/s400/skelly11a.jpg" width="400" /></a></div>
<br />
Press [H] to bring up a list of objects to which you may link the dummy object. Click on the name of the bone you want to attach the dummy object to then click the Link button. Continue to select attachment points and link them to the appropriate bones until you’ve linked all of them.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH3BYHYHim0w440tDXqyY9Q0koF5nyxjsjzF5M-Kz83E9zt6uqIR793kkzoxm3TvAT4mnKHtclLy3Izjqi_Qt6ST5oeSq7ZUICGauM_-crxeoTHbA3p73k-_HlnBRiB5Sphx6p8u1NxRM/s1600/skelly11b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH3BYHYHim0w440tDXqyY9Q0koF5nyxjsjzF5M-Kz83E9zt6uqIR793kkzoxm3TvAT4mnKHtclLy3Izjqi_Qt6ST5oeSq7ZUICGauM_-crxeoTHbA3p73k-_HlnBRiB5Sphx6p8u1NxRM/s1600/skelly11b.jpg" /></a></div>
<br />
When you’re done, access the Object Properties of each mesh, un-tick the check box marked “See-Though,” and click the OK button to close the Object Properties window.
</li>
<li>Optional step: At any time, you may view your hierarchy of objects by clicking the “Schematic View” button on the top toolbar.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs3ug-ooXuI9CYmL4vgwspGF1tHtVwy0K17HqGYhyWzzzVKneYMg7kVy1eDcGQi_zWtV5FahgGYOLRWEkmvt_hQ78jHqUyOSZbICSNOqw2xxc4Rb28XnDlkUeqwJ88Eu9cND9JNx-vO7g/s1600/skelly12a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="35" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs3ug-ooXuI9CYmL4vgwspGF1tHtVwy0K17HqGYhyWzzzVKneYMg7kVy1eDcGQi_zWtV5FahgGYOLRWEkmvt_hQ78jHqUyOSZbICSNOqw2xxc4Rb28XnDlkUeqwJ88Eu9cND9JNx-vO7g/s400/skelly12a.jpg" width="400" /></a></div>
<br />This will bring up a window showing your object hierarchy. Review it to make sure that all root bones are at the top of their own hierarchy and that all bones and attachment points are linked correctly. None of your meshes should be linked to any object. When you’re done looking at the schematic view window, close it.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmX5_f67j-vizv1TErNDJcjTJsArR56FiIj3378d5fWPKimIsT2kGyBFFyyNhQ3AXlAfJEs1ybMahzhx9AjercFK7rDosQ7BV0JWB2JLFKWUOdE7fp1UMIMbcZLMXMtv-AxY4-hUwYYAw/s1600/skelly12b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmX5_f67j-vizv1TErNDJcjTJsArR56FiIj3378d5fWPKimIsT2kGyBFFyyNhQ3AXlAfJEs1ybMahzhx9AjercFK7rDosQ7BV0JWB2JLFKWUOdE7fp1UMIMbcZLMXMtv-AxY4-hUwYYAw/s400/skelly12b.jpg" width="400" /></a></div>
</li>
<li>Now we will add collision spheres. These objects are named COLSxx, where xx is a two-digit number that starts at 00 and increments sequentially. The game engine uses a creature’s collision spheres to determine if it is touching any other object. The only data stored in MDB files on collision spheres are their name, position, radius, and what bone they are linked to. Data on polygons and vertices are not stored, so it’s all right to create collision spheres with 32 segments. What we want to do is to cover the model with as few spheres as necessary without covering spaces that are too far beyond the surface of the mesh. We don’t want to use too many spheres as this may bog down the game engine with unnecessary computations. Hence, we may create spheres that are somewhat larger than they would be if we sized the spheres to be close to the mesh’s surface. On the other hand, we don’t want to make the spheres so big that the game engine will think that the creature is colliding with some other object when it is obvious to the human eye that nothing is brushing its surface but the ground. How big to make each sphere and where to put it will require a subjective judgment call on your part. Don’t fret too much about it. This isn’t rocket science. At any rate, by the time you’re done, your model will be covered with many candy-colored spheres. Enjoy the festive atmosphere that these spheres bring because all this is about to change in a minute.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhop4WNL2n4ip8pBPn9vCP6qmfGHtne5nB_0UqqGmEaLnhJqXnFEBSNtZhHnqKVTomdu6GrLVIp8LapCVWC9lWYcgERcC0bFiAYmlaYlrTVY21goTg7lpBhyphenhyphenIPlt7pWbi-62NyP6zijrU/s1600/skelly13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhop4WNL2n4ip8pBPn9vCP6qmfGHtne5nB_0UqqGmEaLnhJqXnFEBSNtZhHnqKVTomdu6GrLVIp8LapCVWC9lWYcgERcC0bFiAYmlaYlrTVY21goTg7lpBhyphenhyphenIPlt7pWbi-62NyP6zijrU/s400/skelly13.jpg" width="400" /></a></div>
</li>
<li>Press [H] to bring up the Select Objects window. Select all the collision spheres in the list by clicking on the first sphere then with the [Shift] key held down, clicking on the last sphere. Click the Select button to close the window.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaoINVMhRM82kbfrAe_pviP0_kC1U4Ti8il4eMyIDkZJgfNS0V7E3reBxKQaTiiqzghmmo4MJKplAFQ4Nfw_kH_zHrX7mONGmCQx_ie70ElhD7YPP1t_St44s6pE05kE7mZJuJRBQzGe8/s1600/skelly14a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaoINVMhRM82kbfrAe_pviP0_kC1U4Ti8il4eMyIDkZJgfNS0V7E3reBxKQaTiiqzghmmo4MJKplAFQ4Nfw_kH_zHrX7mONGmCQx_ie70ElhD7YPP1t_St44s6pE05kE7mZJuJRBQzGe8/s1600/skelly14a.jpg" /></a></div>
<br />Right-click on any of the collision spheres to bring up a context-sensitive menu and click the Properties option. On the Object Properties window, tick the check box beside “See-Through” and un-tick the Renderable check box. Click the OK button when you’re done.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikqmz-QNFpBD43zKsMGT2-agq0TFUssI8VwKcw_n2WGYUVo78r1HBk0a4fRStcBQlvyy_uCgg9IKZ4uP7tTSrxSpWuFXcSPYFKyvFazUQIddmDUdjjPIPC9URPMtxFxL5OCbwiksViwT4/s1600/skelly14b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikqmz-QNFpBD43zKsMGT2-agq0TFUssI8VwKcw_n2WGYUVo78r1HBk0a4fRStcBQlvyy_uCgg9IKZ4uP7tTSrxSpWuFXcSPYFKyvFazUQIddmDUdjjPIPC9URPMtxFxL5OCbwiksViwT4/s1600/skelly14b.jpg" /></a></div>
<br />This will cause all your colorful spheres to become transparent gray objects. Looks like the party’s over.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7CcFxdFW5UG38_l_KuSv30kYjCVTwqOi4946pZJ7nizhM4SwZoako1-Vf0xa1TMXlckveT-RsGuWAcQPTnS2-gSsWWsQ84ZaLldf7R9P2_JUsYtoQppvM9WRfXDL0EFvwOeV4-rrzA8M/s1600/skelly14c.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7CcFxdFW5UG38_l_KuSv30kYjCVTwqOi4946pZJ7nizhM4SwZoako1-Vf0xa1TMXlckveT-RsGuWAcQPTnS2-gSsWWsQ84ZaLldf7R9P2_JUsYtoQppvM9WRfXDL0EFvwOeV4-rrzA8M/s400/skelly14c.jpg" width="400" /></a></div>
</li>
<li>Select each collision sphere in turn and link it to an appropriate bone by using the Select and Link tool, similar to the way it was done with the attachment points. The sphere should move with the part of the mesh that it is intended to cover, so choose which bone to link the sphere to accordingly. Usually, this will be the bone closest to the center of the sphere. By the time you’re done, all the collision spheres should be linked to a bone.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcCSV88JNlOWVjhQ4urS1gCZQh9gZJi4mfOvyZvG4xg6TjsPpF52RgV88NBIUrdCV9lUR8mOd1RLYf5zpUddk9Xn0buXnmIYCRUQ78LjoaYwUco5GW6OHfJ1Z06QnUAVrwmCUZIvN2BWk/s1600/skelly15.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcCSV88JNlOWVjhQ4urS1gCZQh9gZJi4mfOvyZvG4xg6TjsPpF52RgV88NBIUrdCV9lUR8mOd1RLYf5zpUddk9Xn0buXnmIYCRUQ78LjoaYwUco5GW6OHfJ1Z06QnUAVrwmCUZIvN2BWk/s400/skelly15.jpg" width="400" /></a></div>
</li>
<li>Optional step: You may want to bring up the schematic view again to make sure that no collision sphere is left unlinked.</li>
<li>At this point, we’ve created one or more skeletons complete with attachment points. We’ve also covered the creature with collision spheres and linked them to the appropriate bones. Next, we’ll rig each mesh to its skeleton.
<br />
Click the Modify panel to access it. Select each mesh in turn and add a Skin modifier to it. For each mesh, click the Add button beside “Bones:” on the Modify panel and select all the bones from the skeleton hierarchy that is supposed to affect the mesh. You can select bones that are listed contiguously by clicking on the first bone that you want to select and with the [Shift] key pressed, clicking on the last bone. You can also select bones that are not listed contiguously by pressing the [Ctrl] key and clicking the bones to add. If your model has more than one skeleton, be sure not to add bones from outside the hierarchy that is supposed to influence the mesh. For example, if your model has three skeletons, the tail mesh should only be affected by the tail skeleton, and the wings mesh should only be affected by the wings skeleton. Also, do not add any attachment points as these are not supposed to affect your mesh. When you’ve chosen the bones of the appropriate skeleton from the list, click the Select button to add them. At this point, each vertex of your meshes will be provisionally weighted to one or more bones, although these vertex weights will likely be inaccurate. Nevertheless, you now have a quick and dirty rig.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiazHaQeqiy8Fx3P_utuGO7MYmlLK8hhqpDjDzJ7neS5YtsGcFH2OKp8NvfF391Jub_-QLLlrURYtlmS19F1m9mfLgNbTmUCPaFdaFIAOdwWeK9_lQk34GS3gyGAgFk6_yXH6LnBEWFcq0/s1600/skelly17.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiazHaQeqiy8Fx3P_utuGO7MYmlLK8hhqpDjDzJ7neS5YtsGcFH2OKp8NvfF391Jub_-QLLlrURYtlmS19F1m9mfLgNbTmUCPaFdaFIAOdwWeK9_lQk34GS3gyGAgFk6_yXH6LnBEWFcq0/s400/skelly17.jpg" width="400" /></a></div>
</li>
<li>If you have lower LOD meshes, unhide them if they are hidden and repeat the above step for each of them.</li>
<li>Optional step: If you want, you can weight the vertices more accurately to the bones and create the creature’s unarmed idle animation. If you’re like me, however, you’ll be anxious to see if your new creature will appear in the game. If so, you may defer the actual rigging and animation for later.</li>
<li>We will now export the skeleton of your creature’s body. Press [H] bring up the Select Objects window and select all the bones and attachment points that belong to the body’s skeleton. Click the Select button to close the window. Now click the File menu and click the “Export Selected…” option. This will bring up a dialog window for selecting the file to export to. In the “Save as type” list box, select “Granny Run-Time (*.GR2).” Under File Name, type the name of the file you want to export the skeleton to. This file name should be the same as that of the skeleton’s root bone. Click the Save button.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx3Wqqs6fzY2En2Qqh280gzlsS0NM5GMuF0DxsCjIQIz5hYGP9yVeCGJuVUzLrOLlj3CmT6gkxho3rYv89x44vQCMPNGzKMf6TQHZF1fHKYNZ_yNiHkj1TEeGzaiYrcpzMpxUy-wCcdIg/s1600/skelly20.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx3Wqqs6fzY2En2Qqh280gzlsS0NM5GMuF0DxsCjIQIz5hYGP9yVeCGJuVUzLrOLlj3CmT6gkxho3rYv89x44vQCMPNGzKMf6TQHZF1fHKYNZ_yNiHkj1TEeGzaiYrcpzMpxUy-wCcdIg/s400/skelly20.jpg" width="400" /></a></div>
</li>
<li>At this point, you should be looking at a dialog window named “Granny Export Settings.” Click the Models option under Settings. Make sure that the check box beside “Include reference in export” is ticked and the one beside “Move to Origin” is not ticked.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB6umk7POd_XH9oS1Ve7ddl4o1Iz8AXDwC9YNNzL-yf6S8lOS0Vs0TkM9eK2REDtZDisJOHW-Pk_NaYXUwMeJV3pH7UyrChDUJr0dqWQfyZWOpY-AeeRflh1TDuB5vU8X3p6PlPbjVbQI/s1600/skelly21a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB6umk7POd_XH9oS1Ve7ddl4o1Iz8AXDwC9YNNzL-yf6S8lOS0Vs0TkM9eK2REDtZDisJOHW-Pk_NaYXUwMeJV3pH7UyrChDUJr0dqWQfyZWOpY-AeeRflh1TDuB5vU8X3p6PlPbjVbQI/s400/skelly21a.jpg" width="400" /></a></div>
<br />
Double-click the word Models under Settings and click the name of your root bone. Again, make sure that the check box beside “Include reference in export” is ticked and the one beside “Move to Origin” is not ticked. You have to do this especially on your first time to export the skeleton because the dialog box has a tendency to keep the check box labeled “Move to Origin” ticked even when you un-tick it earlier.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO_vCaCmWJVc4WGbpbibKf3PWTBRVjNGBPMTGMJ8L6NhxCfdrmpDzuJhznFyIiAw9Hnp3G8961ra4bd1Wo_DHeZ1Mj6Xst1dQjygHwxc6JDzvmPj6Gt2felLMec-a5hD-c65HfNxThPYc/s1600/skelly21b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO_vCaCmWJVc4WGbpbibKf3PWTBRVjNGBPMTGMJ8L6NhxCfdrmpDzuJhznFyIiAw9Hnp3G8961ra4bd1Wo_DHeZ1Mj6Xst1dQjygHwxc6JDzvmPj6Gt2felLMec-a5hD-c65HfNxThPYc/s400/skelly21b.jpg" width="400" /></a></div>
<br />
Now, to be obsessively-compulsively sure that the check boxes are as they should be, double-click the name of the root bone and go through each bone in the hierarchy one by one, reviewing the state of both check boxes as you go along. When you’re done, click the Export button. If all goes well, you may then close the “Granny Export Settings” window.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhCG-djVowk-Bm3vAM4ikKQKoLp-lN3UXKSMSkAYB859KwTri63iZ7THhvc7b_nwAyOewOKZXnLxbgtIBjHFG21zfepbE356wN4xUoST-fQnjxjRTCdHxG0c3Vlwu033GzXcvQGVrK1XE/s1600/skelly21c.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhCG-djVowk-Bm3vAM4ikKQKoLp-lN3UXKSMSkAYB859KwTri63iZ7THhvc7b_nwAyOewOKZXnLxbgtIBjHFG21zfepbE356wN4xUoST-fQnjxjRTCdHxG0c3Vlwu033GzXcvQGVrK1XE/s400/skelly21c.jpg" width="400" /></a></div>
</li>
<li>If you have other skeleton hierarchies, repeat steps 20 and 21 for each of them.</li>
<li>Next, we’ll export the creature’s idle animation. If you skipped the optional step 19 above, your creature probably doesn’t have any kind of animation yet. That’s okay. We’ll export it anyway. When you view your creature in game, it will look as stiff as it does in 3DS Max, which is fine for our purposes.
<br />
Select all the bones and attachment points of your model. That’s right. All of them. If your creature has more than one skeleton, all their bones and attachment points should be selected. Click the File menu and click the “Export Selected…” option again. In the dialog box that appears, make sure that the list box labeled “Save as type” is still set to “Granny Run-Time (*.GR2).” In the “File Name” box, type the name of the animation you want to export. Standard animations have a naming convention that must be adhered to strictly. The name of the file to export should be the name of the root bone of the creature’s body but without the “_skel” suffix followed by “_idle.” Click the Save button.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0VfpWFpcI1qUJUaGa0CdQ-_xNbz8EIcRkQ-YM3VApPDxA3WWMMup9Jru8gReDcimLwLkwUBSYEm0d9YV1XlVq0zJ8tjUFcSH80Z9UosN9fuacjzuxxczo_ivujIk33Sr8RviZzXW1JZg/s1600/skelly23a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0VfpWFpcI1qUJUaGa0CdQ-_xNbz8EIcRkQ-YM3VApPDxA3WWMMup9Jru8gReDcimLwLkwUBSYEm0d9YV1XlVq0zJ8tjUFcSH80Z9UosN9fuacjzuxxczo_ivujIk33Sr8RviZzXW1JZg/s400/skelly23a.jpg" width="400" /></a></div>
In the “Granny Export Settings” window that appears, click the Animations option under Settings. Make sure that the check box labeled “Include reference in export” is ticked and that the check box labeled “Move to Origin” is not ticked. Slide the Oversampling bar all the way to the right. Set Orientation Curve Tolerance to 0.15. When you’re done, click the Export button.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGGbS3bSgO5rkWbC96iNzl9myPNrtUjRkvLUneVQeROHr_2z6LrjMqGtCj-4rVW0-wYEBlzja3TdiKg-Z-V4iIpVspfhImvEIa49A5cQAjgnTmahXQK4bDBWBQi0OkeuvHQquQuYuaqzk/s1600/skelly23b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGGbS3bSgO5rkWbC96iNzl9myPNrtUjRkvLUneVQeROHr_2z6LrjMqGtCj-4rVW0-wYEBlzja3TdiKg-Z-V4iIpVspfhImvEIa49A5cQAjgnTmahXQK4bDBWBQi0OkeuvHQquQuYuaqzk/s400/skelly23b.jpg" width="307" /></a></div>
</li>
<li>Next we will export the creature’s meshes. Click the Utilities panel and click the “More…” button. In the Utilities window, select the “Expotron Utility” option then click the OK button. The Utilities panel will now have various Expotron utility settings to fiddle with.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlQcPxDVXyPqoe6Do7ZL8Oz9Yf-q-yJf_3PegbqfLqY83SCNPdDHIR62o9wEJ49vRdkpY8pGPE4Ob-RZfxZSnbeBt4HI5z7qBu1WKVCo30uHXZWHDSrx06Afgy9LwNEyvtYFJvySgbTlc/s1600/skelly24a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="375" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlQcPxDVXyPqoe6Do7ZL8Oz9Yf-q-yJf_3PegbqfLqY83SCNPdDHIR62o9wEJ49vRdkpY8pGPE4Ob-RZfxZSnbeBt4HI5z7qBu1WKVCo30uHXZWHDSrx06Afgy9LwNEyvtYFJvySgbTlc/s400/skelly24a.jpg" width="400" /></a></div>
<br />
Make sure that the skin mesh you wish to export is selected. Under NWN2 Types, click the “Character (skin)” radio button. Under “Skeleton Name,” type the name of the skeleton to which the skin mesh is rigged. (Recall that the skeleton’s name is that of its root bone.) If your model uses transparencies in the alpha channel of its textures, click the radio button beside “Transparency mask.” Otherwise, keep it set to “No Transparency.” If you have lower LOD versions of your mesh, give the same Expotron settings to each of them.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHcUbue3JIPqQuFY7XShtptcSvBHFDzcbAxLRHr2x88WV4yNFhMn2qJb0JdBG0zO9XTik_PDMlNPCSCdMlL19mToQMD8E2CBJRIpyWBMG-SSU1gugEgQgryZGc2PClsQPhHho72DUJxSs/s1600/skelly24b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHcUbue3JIPqQuFY7XShtptcSvBHFDzcbAxLRHr2x88WV4yNFhMn2qJb0JdBG0zO9XTik_PDMlNPCSCdMlL19mToQMD8E2CBJRIpyWBMG-SSU1gugEgQgryZGc2PClsQPhHho72DUJxSs/s1600/skelly24b.jpg" /></a></div>
</li>
<li>Press [H] to bring up the Select Objects dialog box. Select all the collision spheres that are linked to your mesh’s skeleton along with the mesh itself. If you have lower LOD versions of your mesh, select those as well. Next, click the Select button.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrUMphyXe0L2zfPRX8VcB0tGz5yzhuiIT0P4dkGuMwLgZR0wmxLCd0ftdmeLo75NOjk532Esc5QIFbj-_IeUNe7NF1xG_BbG3uSdM4NK8ICpO6cOEguaoYhYCa52nxRdjJD5ejSqXs9P4/s1600/skelly25a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrUMphyXe0L2zfPRX8VcB0tGz5yzhuiIT0P4dkGuMwLgZR0wmxLCd0ftdmeLo75NOjk532Esc5QIFbj-_IeUNe7NF1xG_BbG3uSdM4NK8ICpO6cOEguaoYhYCa52nxRdjJD5ejSqXs9P4/s1600/skelly25a.jpg" /></a></div>
<br />
Click the File menu and click the “Export Selected…” option. In the dialog box named “Select File to Export,” set the “Save as type” list box to “Neverwinter Nights 2 (*.MDB).” Under “File name,” type the name of your mesh. Click the Save button.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzFkUIL0T6Hd7UNs-bbizuO4A6Ari8wlqtH3NqWA8vMTL1qjBnP3I-DDmRKxNGFdlmkj4GuwFgoIS8Up8kSNS6z_gxrJnLXxVuDGAI5uCRg5T_aoNRH_ZDLAASQ1El7OQoHALFjTmaQik/s1600/skelly25b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzFkUIL0T6Hd7UNs-bbizuO4A6Ari8wlqtH3NqWA8vMTL1qjBnP3I-DDmRKxNGFdlmkj4GuwFgoIS8Up8kSNS6z_gxrJnLXxVuDGAI5uCRg5T_aoNRH_ZDLAASQ1El7OQoHALFjTmaQik/s400/skelly25b.jpg" width="400" /></a></div>
<br />
You should now see a dialog box named “Expotron Export Options.” Make sure that all the check boxes are ticked then hit the OK button. This will export your mesh to an MDB file.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim4ZhQnEEacROSrmY3AtzZN55EVIid7EZ6sNdekAvTOGMSO8AQsVNPPSk0WxM_DPq4DgwxevgErd-H0h9Y_9IZ5tHT86ut0ghcKiwkI2rAanW2ylRt4LGWCWUWXQHb9Yu2X90V53NjfTM/s1600/skelly25c.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim4ZhQnEEacROSrmY3AtzZN55EVIid7EZ6sNdekAvTOGMSO8AQsVNPPSk0WxM_DPq4DgwxevgErd-H0h9Y_9IZ5tHT86ut0ghcKiwkI2rAanW2ylRt4LGWCWUWXQHb9Yu2X90V53NjfTM/s1600/skelly25c.jpg" /></a></div>
</li>
<li>If your creature has other meshes, such as a wing mesh, a tail mesh, or both, repeat steps 24 and 25 for each of them.</li>
<li>Make sure you have a copy of the file appearance.2da in your Neverwinter Nights 2 Override folder. Append an entry on your creature in the file and save it.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8fvxkj7QLATgNjmpUfjxGpmZKJ9oVodr3mLErCvH5Vx8WpT7CGFpYgkiLt61jwBSNCkqlDUQmb_Yka1YMiRSWpgO7xDR1QALUhpCsyPKDnx_BXeocHFD4ov7FD953BPS-BqKY75WDSto/s1600/skelly27a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8fvxkj7QLATgNjmpUfjxGpmZKJ9oVodr3mLErCvH5Vx8WpT7CGFpYgkiLt61jwBSNCkqlDUQmb_Yka1YMiRSWpgO7xDR1QALUhpCsyPKDnx_BXeocHFD4ov7FD953BPS-BqKY75WDSto/s400/skelly27a.jpg" width="400" /></a></div>
<br />If you have a wing model or tail model to go with your creature, edit the appropriate 2da file to append an entry on it.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFyQMrMAV5JUXKWzB9ZnWeEO-5T9vA-4vwRXjdFieeAv5nCfpfqmKac92v5ufKogNfuoaHusS-z07fLC_mRjevrC5_KA6M_iA9-zJKyVZd_hyG5ejC-bgRzh1QoKrctayglIzddI5rG-A/s1600/skelly27b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFyQMrMAV5JUXKWzB9ZnWeEO-5T9vA-4vwRXjdFieeAv5nCfpfqmKac92v5ufKogNfuoaHusS-z07fLC_mRjevrC5_KA6M_iA9-zJKyVZd_hyG5ejC-bgRzh1QoKrctayglIzddI5rG-A/s400/skelly27b.jpg" width="400" /></a></div>
</li>
<li>And now, for the moment of truth. Create a test module and drop a creature in a new area. (I like using badgers for testing because they are already set to a faction that is friendly to player characters.) Change the creature's appearance to that of your model. Run the module and see if your model looks all right. If so, congratulations. All you have to do now is to weight the model's vertices in earnest and animate it.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOuS_3x2Uw8Ll1qqfz4iB25Fj3RNmHjZPY8ZIqqtAY6wKbOSC896aJLpntA0Apvbo2n9b9ENWZlvYV9HaHZaNAyzhbjbK-tpLmZNKTObtkaIG5gzkEunxOIIwpuZ2rFdbOeJXTZ49ofJk/s1600/skelly28.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOuS_3x2Uw8Ll1qqfz4iB25Fj3RNmHjZPY8ZIqqtAY6wKbOSC896aJLpntA0Apvbo2n9b9ENWZlvYV9HaHZaNAyzhbjbK-tpLmZNKTObtkaIG5gzkEunxOIIwpuZ2rFdbOeJXTZ49ofJk/s400/skelly28.jpg" width="400" /></a></div>
</li>
</ol>
<br />
In my <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max_22.html">next, concluding blog post in this series</a>, I will show how to animate NWN2 models.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com6tag:blogger.com,1999:blog-9122846242068305603.post-21568983746090390342012-05-08T00:25:00.000+08:002012-05-31T16:31:46.802+08:00Creating New Life with the Expotron and Max, Part 4: Attachment Points<i>This is Part 4 of my tutorial on bringing new creatures to NWN2 using 3DS Max and the Expotron. Part 1 of this series may be found <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max.html">here</a>.</i><br />
<br />
Attachment points on a creature model are dummy objects to which certain non-animating meshes or visual effects can attach themselves to. They are part of a creature’s main skeleton hierarchy (the skeleton that controls the body mesh), although they do not count toward the fifty-four bone limit. These attachment points have standard names that the game engine expects of them. Not all attachment points are present in each creature, although most of them usually are. New creatures should have as many attachment points as necessary in their skeletons as well.<br />
<br />
Below is a table listing a number of attachment points, the approximate position of each point, which bone each point typically connects to, and any special usage in the game. Visual effects may be applied to any of the attachment points, so unless there is a particularly noteworthy usage of an attachment point, its entry under Usage will be left blank.<br />
<div>
<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Attachment Point<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Position<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Attached Bone<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Usage<o:p></o:p></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_halo<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
above the head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
status icon vfx (e.g., berserk icon)<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_forehead<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
front and center of the head at around the hairline<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
placement of hair<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_eye_right<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
front of right eye<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
eye vfx (e.g., lich eyes)<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_eye_left<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
front of left eye<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
eye vfx (e.g., lich eyes)<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_ear_right<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
just outside the center of the right ear<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_ear_left<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
just outside the center of the left ear<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_mouth<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
inside and center of mouth or just outside it<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
breath weapon vfx<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_camera<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
varies with each creature model, but usually inside or somewhere at
the front of the head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
position that a camera will point to during close-ups of the creature
in cutscenes<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_torso<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
front and center of chest<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Ribcage<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_back<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
back and center of thoracic region of the spine<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Ribcage<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_hand_right<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
center of palm of right hand<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
RArm1Palm<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
vfx of cast spells, placement of wielded weapons<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_hand_left<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
center of palm of left hand<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
LArm0Palm<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
vfx of cast spells, placement of wielded weapons<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_shield_left<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
center and back of left forearm<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
LArm02<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
placement of shield when equipped<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_pelvis<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
center of the pelvis<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
root bone of the body’s skeleton<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_tail_tip<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
tip of the tail<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
last tail bone<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_knee_right<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
front of right knee<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
RLeg1<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_knee_left<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
front of left knee<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
LLeg1<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_foot_right<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
between ankles of right leg<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
RLegAnkle<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ap_foot_left<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
between ankles of left leg<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
LLegAnkle<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;" valign="top" width="160"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
</tr>
</tbody></table>
<br />
It should be noted that ap_halo and ap_camera never change from their initial position relative to the creature even when the creature moves in the game.<br />
<br />
If a creature does not have ap_hand_right, its spells will appear to shoot from the southwest part of the area it is in, which is where the (0,0,0) coordinate position is.<br />
<br />
Aside from the position of attachment points, their orientation is important as well. For example, if ap_mouth is oriented incorrectly, breath weapon particles will shoot in the wrong direction. Similarly, weapons attached to ap_hand_right and ap_hand_left will not be held properly if these attachment points are angled wrongly.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBAPgM0ffsBLjrzBPngvyJZVR25bbm0zTlBdAlY9QwPVnmXOROWlJtCLkElPMgsk1bR3CvW3kz1EPBjc4GkCNa4qDsMb4K4YmW3No8pPvU8u3iJuWoQdzv-QOzSAcT1RVPplE8TXqv-Nw/s1600/smokin.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBAPgM0ffsBLjrzBPngvyJZVR25bbm0zTlBdAlY9QwPVnmXOROWlJtCLkElPMgsk1bR3CvW3kz1EPBjc4GkCNa4qDsMb4K4YmW3No8pPvU8u3iJuWoQdzv-QOzSAcT1RVPplE8TXqv-Nw/s400/smokin.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Particle emitters positioned at a wrongly oriented ap_mouth may cause breath attacks to miss their targets.</td></tr>
</tbody></table>
<br />
In <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max_09.html">my next blog post</a>, I will show how to make a skeleton complete with attachment points. I will also discuss collision spheres and how to make them. Finally, I will show how to use the Expotron to export all these resources so that the creature can be viewed in the toolset and in the game.</div>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com0tag:blogger.com,1999:blog-9122846242068305603.post-58882256039003109382012-05-07T01:06:00.000+08:002012-05-08T00:26:39.458+08:00Creating New Life with the Expotron and Max, Part 3: Naming Conventions<i>This is Part 3 of my tutorial on bringing new creatures to NWN2 using 3DS Max and the Expotron. Part 1 of this series may be found <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max.html">here</a>.</i><br />
<br />
Many NWN2 modelers are aware of the naming conventions that models are supposed to follow, but just how strictly must these conventions be adhered to? It turns out that in some cases, models will not appear in the game if they are not properly named. In other cases, the naming conventions are merely suggestions that may safely be ignored. In this installment of my tutorial on bringing new creature models into the game, I will explain naming conventions as they apply to creature models. By the end of this blog post, you will know when to follow the naming conventions to the letter, when it is safe to relax them, and whether it is all right to disregard the rules if it is safe to do so.<br />
<br />
Let’s get capitalization out of the way first. None of the model, skeleton, or animation names is case-sensitive. The names “C_Hydra_CL_Body01” and “c_hydra_cl_body01” refer to the same model. If you really want to be a jerk about it, you could name a model “c_hYdRa_cL_bOdY01” and have the members of the NWN2 community speculating about your sanity. The game engine will understand all these to be the same thing regardless.<br />
<br />
Another thing to get out of the way early on is the maximum length of mesh and skeleton names. These names may not be longer than thirty-two characters, including all the prefixes, suffixes, and model numbers that go into the name. File name extensions do not count toward this limit.<br />
<br />
If you intend to create new heads, hair, cloaks, armor/clothing, or accessories for playable races, you must strictly follow the <a href="http://nwn2.wikia.com/wiki/Model_Naming_Conventions" target="_blank">naming conventions detailed in the NWN2 Wiki</a>. The only thing you can vary is the model number that appears as the last digit or two of the model name, and even then, you should make sure that it does not share the same number as any other Obsidian-created model of the same type. If you expect similar custom content to be used in a particular module or campaign, make sure that your model number is also different from theirs. Most likely, you won’t know what custom content will be used unless you are creating models for a specific module that will use other custom content. If such is the case, just focus on not clashing with Obsidian’s model numbers.<br />
<br />
Regarding accessories, playable races are not the only ones who can use them. Other creatures can use them as well if you create accessories specifically for them. Like accessories for playable races, creature accessories are prefixed by “A_” (without the quotes), but instead of being followed by a two-letter race code and single-letter gender code, it is followed by whatever is listed in the NWN2_AccessoryType column for the creature in appearance.2da. For example, the King of Shadows (index number 586 in appearance.2da) has “L” under the NWN2_AccessoryType column. This means that the names of all his accessories must be prefixed by “A_L_,” followed by the appropriate body part and model number as detailed in the wiki entry on naming conventions. Hence, the left bracer model that the King of Shadows may wear is named “A_L_LBracer1.” If the King of Shadows had another left bracer model to choose from, it would be named “A_L_LBracer2.”<br />
<br />
Another instance of strict naming rules is on how a creature’s body models are named. For a non-player creature, the prefix of its body model is found in its appearance.2da entry under the NWN2_Model_Body column. This prefix is followed by an underscore, followed by a two-letter code for the body’s material, followed by another underscore, the word “Body,” and the two-digit model number. The default material is always cloth, the code of which is “CL.” It doesn’t matter if the creature is an iron golem or a gelatinous cube. Its default body material is always “CL,” and its default model number is always “01.” Other material codes are only relevant for creating armored versions of the creature’s appearance. Apart from varying how the creature looks, the models by themselves have no in-game effect.<br />
<br />
Let’s take the example of an orc, whose appearance.2da entry under the NWN2_Model_Body column is “c_orc.” Its default body would therefore be named “c_orc_cl_body01,” and it is this body model that shows up when a creature’s appearance is set in the toolset to “Orc.”<br />
<br />
If the model has a head that is stored in a separate MDB file from its body, its prefix would be found in the NWN2_Model_Head column of its appearance.2da entry. Each head model would be named by this prefix followed by a two-digit model number, the default being “01.” The orc’s head model, for example, is listed in appearance.2da as “c_orc_head.” This means that its default head model would be “c_orc_head01.” If a creature does not have a separate head model, then the value of this column should be “****” (without the quotes). It isn’t necessary to have “_head” in the head model’s name. What is important is that the name uniquely identifies the head model.<br />
<br />
Each mesh can have one or two lower LOD meshes. Their names are similar to that of the mesh on which they are based, except that they have the suffixes “_L01” and “L02” appended to them. For example, a mesh named “c_hydra_cl_body01” may have a LOD mesh named “c_hydra_cl_body01_L01” and another named “c_hydra_cl_body01_L02.” It is recommended that the L01 mesh have about 65% of the original mesh’s polygons, and the L02 mesh about 40%. In the game, when creatures are far from the camera, the engine substitutes the original mesh with one of the LOD meshes to conserve computational resources.<br />
<br />
The skeleton file that a body mesh will use is indicated in the NWN2_Skeleton_File column in the creature’s appearance.2da entry. The root bone in the skeleton hierarchy must also be given this name. All skeleton names must end with the suffix “_skel.” The game engine expects this of skeletons. Apart from that requirement, you can name a skeleton anything you like. By convention, a skeleton is prefixed with the NWN2_Model_Body name. Hence, an orc skeleton would be named “c_orc_skel.”<br />
<br />
The skeleton file that the creature’s head will use is identified in the NWN2_Head_Skeleton column of its appearance.2da entry. If the head and body are in the same MDB file, the value of this column should be “****.” If the head and body are in separate files, however, you should identify the skeleton that the head uses, even if it is the same as the body. The values of NWN2_Skeleton_File and NWN2_Head_Skeleton may be the same, although they need not be. However, you would need separate GR2 files for the skeleton of each head variation, and the model number of these skeletons would have to correspond to the model number of each head.<br />
<br />
Suppose, for example, that I created a chupacabra model with four head variations stored in the files “c_chupa_head01.mdb” to “c_chupa_head04.mdb.” If the creature’s entry under the NWN2_Head_Skeleton column were “c_chupa,” its head models would need skeletons named “c_chupa01.gr2” to “c_chupa04.gr2.” Each of these skeletons would be structurally the same as that of the chupacabra’s body. It would have the same number of bones, which are named identically across all files, and these bones would follow the same hierarchy. The only difference in the bones, if any, would be in their position, rotational angle, and length to account for variations in features from one head to another. Even if the bones of the head models were exactly the same across all skeletons, the creature would still need separate GR2 files for each head. If I had only one head model named “c_chupa_head01.mdb,” its skeleton file would be “c_chupa01.gr2,” not “c_chupa.gr2.”<br />
<br />
Models for wings and tails may be given any name, although by convention, wing models have “_wings” at the end of their names, and the names of tail models have “_tail” at the end. Skeletons for these meshes may also have any name as long as these names have the suffix “_skel.” By convention, however, wing models have “capewing_skel” at the end of their names, and tail models, “tail_skel.” For example, the heads of my hydra model are implemented as wings so I can get around the fifty-four bone limit for the skeletons of each mesh. I named the mesh “c_hydra_wings,” and its skeleton, “c_hydracapewing_skel.”<br />
<br />
Even texture files follow a naming convention, although this is purely for the sake of readability. In general, diffuse maps have the same name as the model for which it is intended. For example, if my hydra’s body model were stored in the file “c_hydra_cl_body01.mdb,” its diffuse map would be named “c_hydra_cl_body01.dds.” Normal maps may have the same name, but with the suffix “_n” appended to it. Using my hydra example, the normal map would be named “c_hydra_cl_body01_n.dds.” Similarly, tint maps use the suffix “_t” and glow maps use the suffix “_i.” In truth, the game engine doesn’t care what you call your texture maps, but this naming convention helps identify what each map is for.<br />
<br />
Notice that creature models are generally prefixed by “c_.” They are named this way by convention to make it easy to identify them as creatures as opposed to, say, placeables or armor accessories. You can actually refuse to follow this naming convention for whatever reason, and as long as you ensure that the rules for naming the creature’s body are strictly applied, your model can still appear in the game. For example, I could name the body model of my hydra “plc_hydra_cl_body01” if I really wanted to. Nevertheless, it is a good idea to apply the “c_” prefix to creature models to avoid confusing other NWN2 modders who want to use your models.<br />
<br />
As we have seen, most naming conventions for non-player creature models are really just suggestions. Apart from the strict manner by which body models and armor accessories are named, there is a lot of leeway in naming one’s models. While one could relax the rules when they don’t have to be followed, I suggest that they be adhered to anyway if only to make meshes, skeletons, and textures easier to identify.<br />
<div>
<br /></div>
<div>
That’s all there is for naming conventions. In <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max_08.html">my next blog post in this series</a>, I will discuss attachment points for creature skeletons – their names, position in the mesh, the usual bones to which they are attached, and their standard usage.</div>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com0tag:blogger.com,1999:blog-9122846242068305603.post-13653120579160917632012-05-06T01:13:00.002+08:002012-05-29T10:56:38.355+08:00Creating New Life with the Expotron and Max, Part 2: 2DA Files for Creatures<i>This is Part 2 of my tutorial on bringing new creatures to NWN2 using 3DS Max and the Expotron. Part 1 of this series may be found <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max.html">here</a>.</i><br />
<br />
To bring new creature models to NWN2, you will need to edit a few 2DA files. The term “2DA” stands for two-dimensional array. Every 2DA file is a text file comprising a number of rows of text. Within each row is a number of strings that are delimited by tabs or spaces to form a set of columns. With the exception of the first few header lines, the number of columns is the same from one row to the next. Hence, the text can be arranged into a two-dimensional array that is readily apparent with the right software.<br />
<br />
All the game resources created by Obsidian Entertainment can be found in the Data subfolder of your Neverwinter Nights 2 installation folder. The 2DA files may be found in 2DA.zip, 2DA_X1.zip (which is present if you installed Mask of the Betrayer), and 2DA_X2.zip (which is present if you installed Storms of Zehir). Never edit any of the original game resources in their installation folders. Always put a copy of the relevant files in the folder ‘My Documents\Neverwinter Nights 2\override” and edit those copies.<br />
<br />
You can edit 2DA files in a text editor like Notepad, but then the tab-delimited text may be difficult to read because it is not obvious which column the strings in each row belong to. I prefer to open 2DA files in Microsoft Excel because it can automatically arrange the text into rows and columns. What’s more, you can freeze panes in Excel so that the topmost row and the LABEL column are always in view. When you edit 2DA files and save them, Excel will preserve the tab-delimited format.<br />
<br />
If you don’t have Excel, you can find a number of 2DA editors at the Neverwinter Vault. The ones I tried replace all the tabs with several spaces so that the columns can be read easily in a text editor. My advice is to <i>never ever replace each tab with more than one space</i>. Doing so will cause the engine to take up more time reading 2DA files. Reading five spaces is five times slower than reading one tab. NWN2 is slow enough as it is without custom content. Don’t make it unnecessarily hard for the engine to do its job. If you can find a good 2DA editor that preserves the tab-delimited format instead of replacing tabs with spaces, use it.<br />
<br />
<h2>
Appearance.2da</h2>
When you create a new creature for NWN2, the first 2DA file to edit is appearance.2da. If you have the Storms of Zehir expansion installed, the latest version of appearance.2da can be found in 2DA_X2.zip. If you have only the Mask of the Betrayer expansion, you can extract appearance.2da from 2DA_X1.zip. If you don’t have any of the NWN2 expansions, then you will find the file in 2DA.zip.<br />
<br />
Perhaps the easiest way to add an entry for your new creature model is to copy one of the rows whose LABEL column isn’t set to “****” and paste it as a new row at the end of the file. Change the numerical index of the new row (i.e., the leftmost data on that row) so that it will be equal to one plus the index of the previous row. Set the LABEL column of the new row to be the name of your creature. Don’t use spaces in the label. If you need to separate two or more words within the same column, use an underscore instead. Unless you’ll be using and distributing a custom TLK file with your model, set the STRING_REF column of your row to “****” (without the quotes).<br />
<br />
There are other columns to edit on your new row, many of which may appear perplexing. You can try to understand more about them by reading <a href="http://nwn2.wikia.com/wiki/Appearance.2da" target="_blank">the page on appearance.2da at the NWN2 Wiki</a>, but I’ve found that the information on some of the columns is missing or erroneous. I know about the mistakes in the Wiki because I managed to download Bioware’s original documentation on the format of creature-related files for the Aurora engine, and there are discrepancies between it and the Wiki page.<br />
<br />
To help you and me navigate this file, I have assembled a guide on the columns to enter. I admit that a lot of this information came from the NWN2 Wiki, but I’ve also inferred which data are probably wrong and edited them accordingly. I’ve tried to fill in missing information as best I could, but there are still three columns that I cannot explain. In all likelihood, these columns have no effect in the game proper. I cannot guarantee with absolute certainty that all of my descriptions are correct, so I invite readers to post comments on any errors that they find.<br />
<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Column<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Description<o:p></o:p></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
INDEX (no actual name)<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Sequential and unique row number. When appending a new row at the end of the file, always set this value to be one plus the INDEX of the previous row.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
LABEL<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the model, for the reference of human readers. May be used as
the model’s name in the Toolset if the "STRING_REF" column is blank
(****).<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
STRING_REF<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
A unique numerical identifier that points to a DIALOG.TLK entry, which
is the name of this model as it appears in the Appearance dropdown box of a
creature’s Properties in the toolset. If blank (****), the toolset uses the
LABEL instead.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
BodyType<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
0 if the entire model is in a single MDB file; 1 if the model is
split into two or more MDB files (say, for the body, head, tail, etc.) Note
that alternative heads, clothing, accessories, cloaks, and wings may only appear on models whose BodyType = 1. Tails, on the other hand, may appear on any model.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Segments<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Unknown use. Always set to 0<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Scale_X<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Width scaling. Pre-scales the model used by the appearance entry.
Also affects the scale of any weapon models and accessory models<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
used by the model. A value of 1 retains the model’s original scale.
Note that this entry affects the speed of animations along the x-axis by its
inverse. Hence, setting this entry to 1.5 (three-halves) will reduce
animation speed along the x-axis to two-thirds of its original speed.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Scale_Y<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Depth scaling. Pre-scales the model used by the appearance entry.
Also affects the scale of any weapon models and accessory models<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
used by the model. A value of 1 retains the model’s original scale.
Note that this entry affects the speed of animations along the y-axis by its
inverse. Hence, setting this entry to 1.5 (three-halves) will reduce
animation speed along the y-axis to two-thirds of its original speed.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Scale_Z<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Height scaling. Pre-scales the model used by the appearance entry.
Also affects the scale of any weapon models and accessory models<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
used by the model. A value of 1 retains the model’s original scale.
Note that this entry affects the speed of animations along the z-axis by its
inverse. Hence, setting this entry to 1.5 (three-halves) will reduce
animation speed along the z-axis to two-thirds of its original speed.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
AnimationSpeed<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Changes the speed of animations by 1 plus the value of this entry. A
value of 0 will not change the animation speed. Setting this entry to 1 will
double the animation speed, and setting it to 2 will triple it.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Model_Body<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Prefix of the body model to use. Models for player races must
strictly adhere to the <a href="http://nwn2.wikia.com/wiki/Model_Naming_Conventions" target="_blank">naming convention explained in the NWN2 Wiki</a>, but
non-player creature models may use any name that uniquely identifies them. A question
mark (?) in this column is a wildcard for the creature’s gender. The game will
replace the “?” with “F” or “M” depending on the creature’s sex.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Model_Helm<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Prefix of the helmet model to use. Helmets for player races must
strictly adhere to the <a href="http://nwn2.wikia.com/wiki/Model_Naming_Conventions" target="_blank">naming convention explained in the NWN2 Wiki</a>, but
helmets for non-player creature models may use any name not used by other
helm models. A question mark (?) in this column is a wildcard for the
creature’s gender. The game will replace the “?” with “F” or “M” depending on
the creature’s sex.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Model_Head<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the head model to use. Head models for player races must
strictly adhere to the <a href="http://nwn2.wikia.com/wiki/Model_Naming_Conventions" target="_blank">naming convention explained in the NWN2 Wiki</a>, but head
models for non-player creature models may use any name that uniquely
identifies them. A question mark (?) in this column is a wildcard for the
creature’s gender. The game will replace the “?” with “F” or “M” depending on
the creature’s sex. . If the model’s head is not stored in a separate MDB
file, this entry should be blank (****).<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Model_Hair<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the hair model to use. Hair models for player races must
strictly adhere to the <a href="http://nwn2.wikia.com/wiki/Model_Naming_Conventions" target="_blank">naming convention explained in the NWN2 Wiki</a>, but
non-player hair models may use any name that uniquely identifies them. A question
mark (?) in this column is a wildcard for the creature’s gender. The game will
replace the “?” with “F” or “M” depending on the creature’s sex. For models
whose BodyType = 1, this entry is not blank even if there is no separate MDB
file for the hair model.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Head_Skeleton<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the skeleton (GR2 file) that the head model will use. Skeletons for player races must strictly adhere to the <a href="http://nwn2.wikia.com/wiki/Model_Naming_Conventions" target="_blank">naming convention explained in the NWN2 Wiki</a>, but non-player skeletons may use any name that uniquely identifies them as long as the name ends with
“ _skel.
” A question mark (?) in this column is a wildcard for the creature’s gender. The game will replace the “?” with “F” or “M” depending on the creature’s sex. This entry is blank (****) if BodyType = 0. If BodyType = 1, this column should not be blank even if the model does not have a separate MDB file for its head. If the head and body use the same skeleton, then this entry should be the same as that of NWN2_Skeleton_File.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Note that the skeleton structure of NWN2_Head_Skeleton and
NWN2_Skeleton_File are essentially the same. The only difference is in the
placement of bones, which may be slightly different, and in the animations
used. Otherwise, the number of bones in both files, their names, and their
placement in the hierarchy are the same.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Skeleton_File<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the skeleton (GR2 file) that the body model will use.
Skeletons for player races must strictly adhere to the <a href="http://nwn2.wikia.com/wiki/Model_Naming_Conventions" target="_blank">naming convention explained in the NWN2 Wiki</a>, but non-player skeletons may use any name that
uniquely identifies them
as long as the name ends with “ _skel. ” A question mark (?) in this column is a wildcard
for the creature’s gender. The game will replace the “?” with “F” or “M”
depending on the creature’s sex. The entry for NWN2_Head_Skeleton and
NWN2_Skeleton_File may be the same.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_AccessorySize<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Unknown use. Changing its value has no effect on the size of
accessories worn by the model.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_AccessoryType<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
A short code that uniquely identifies the armor/clothing accessory models that
this creature may use. A question mark (?) in this column is a wildcard for
the creature’s gender. The game will replace the “?” with “F” or “M”
depending on the creature’s sex. If this column is left blank (****), the
creature will not use armor/clothing accessories.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
The actual name of accessory models will be based on the code given
in this column as well as the body part on which the accessory will be worn.
This name must follow the <a href="http://nwn2.wikia.com/wiki/Model_Naming_Conventions" target="_blank">naming convention for accessories found in the NWN2 Wiki</a>, but with the RaceGender code replaced by the entry in this column. For
example, the value of NWN2_AccessoryType for
NPCKingOfShadows (INDEX = 586) is L. Hence, the left bracer model that
the King of Shadows may wear is stored in A_L_LBracer1.MDB.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ToolsetUseStubModel<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Set to 1 if the toolset should use a small yellow pyramid instead of
the creature’s actual model to represent the creature. Set to 0 otherwise.
Creatures with no visible model should have this entry set to 1. All other
creatures should have this value set to 0. The value of this column will only
affect the creature’s appearance in the toolset, not in the game.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Mount<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
An integer value apparently intended for a Mount feature that never
made it to NWN2. This entry may be safely set to 0.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NAME<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
An identifier or descriptor of the model for the developers’
reference. For playable characters, this is set to “Character_model”. This
column does not seem to have any impact on the toolset or the game, and it may
be safe to set it to any non-blank string.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
RACE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
This is an obsolete holdover from NWN. For playable races (MODELTYPE
= P), this is a single uppercase letter that indicates which part-based
models may be used.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
D - Dwarf<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
E - Elf<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
G - Gnome<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
A - Halfling<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
H - Human and Half-elf<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
O - Half-orc<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
For all other creatures, this is supposed to be the unique identifier
for the creature’s MDL file (an NWN file format similar to that of NWN2’s MDB
files).<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
This column is not linked to racialtypes.2da or racialsubtypes.2da. As a code for filtering part-based models,
this column has been superseded by other columns; namely, NWN2_Model_Body, NWN2_Model_Helm,
NWN2_Model_Head, NWN2_Model_Hair, and NWN2_AccessoryType. It is likely that
this column has no actual use in NWN2.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ENVMAP<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
This is a holdover from NWN that refers to the environment map
applied to the texture’s alpha channel. In NWN, a blank entry (****) allowed
parts of the creature to be transparent where the alpha channel of the corresponding
area in the texture was black. “Default” was for creatures with some reflective
surfaces such as on their armor. An iridescent rainbow hue effect was applied
on creatures with “evmap_irrid” set in this column. ENVMAP is obsolete in
NWN2 and may be left blank (****) or set to “default” (without the quotes).<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_BLOODTYPE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Reference number for a row located in the NWN2_BloodTypes.2da that
defines which SEF files are used for this model’s blood visual effect.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
MODELTYPE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
This appears to be an obsolete holdover from NWN. This column indicated
the type of model that creatures of this appearance had. The following values
were valid for this column in NWN:<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
P - Player. The model is
composed of multiple body parts stored in their own MDL files (the NWN
equivalent of NWN2’s MDB file). All colors are selectable for this model’s
meshes. P models also have nodes that allow tails and wings to be attached to
them in the game, particularly for Red Dragon Disciples.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
S - Simple. The model is completely
stored in a single MDL file, and its colors are fixed. The model’s appearance
does not change when wearing armor or equipping weapons.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
F - Similar to Simple, but
weapons appear when wielded on the left or right hand.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
L - Large. Similar to F, but weapons
appear only on the right hand of the creature.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
FW - Full, with Wing node<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
FT - Full, with Tail node<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
FWT - Full, with both Wing and Tail nodes<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
In NWN2, this column seems to have been replaced by BodyType.
Obsolescence aside, this column should probably be set to the most appropriate code
to be on the safe side.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
WEAPONVISUALSCALE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
A floating point number indicating the scale of weapons wielded by
the model. This is cumulative with the scaling done by NWN2_SCALE_X,
NWN2_SCALE_Y and NWN2_SCALE_Z.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
WEAPONATTACKDISTANCESCALE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Scales the weapons’ PreAttackDist value found in Baseitems.2da to match
any visual scaling done through the entry on WEAPONVISUALSCALE.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
WING_TAIL_SCALE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Scale of wings and tail to appear on the model<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HELMET_SCALE_M<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Scale of helmets to appear on male creatures.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HELMET_SCALE_F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Scale of helmets to appear on female creatures.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
MOVERATE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Default movement speed of the model. Specifies a row in creaturespeed.2da
that has this value in its 2DAName
column to determine the creature’s rate of walking and running in meters per second. Possible
values are the following:<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
VSLOW - Very Slow<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
SLOW - Slow<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NORM - Normal <o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
FAST - Fast<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
VFAST - Very Fast<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
WALKDIST<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Distance in meters traversed by the creature from the start to the
end of its walk animation.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
RUNDIST<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Distance in meters traversed by the creature from the start to the
end of its run animation.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
PERSPACE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Personal space. The minimum amount of space in meters from the
creature’s center (i.e., the pivot position of its mesh in 3DS Max) to other non-creature objects. Used to determine if the
creature will fit through an opening.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
CREPERSPACE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
The minimum amount of space in meters from the creature’s center to
other creatures’ center. Used during combat.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HEIGHT<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
This
is supposed to be the height of the creature in meters, although in NWN2,
this does not seem to consistently be the case. In NWN, this entry was used
for path finding under obstacles and to determine the zoom-in camera height.
This column may be obsolete in NWN2.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HITDIST<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
How far an attacker must be from this creature to hit it in melee, not counting the attacker’s reach. In combat, this value is subtracted from the actual distance in
meters between the creature and its attacker before comparing the result to the attacker’s PREFATCKDIST. If the result is less than or equal to <o:p></o:p>the attacker’s PREFATCKDIST, then the creature is within reach of the attacker. Note that distances between objects are always measured from their centers (i.e., the pivot positions of their mesh in 3DS Max), so a wide creature would need a high HITDIST value.</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
PREFATCKDIST<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Preferred distance in meters from which to attack a target. This value may be thought of as the creature's reach in melee.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
TARGETHEIGHT<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
The height at which the creature's attacks will strike. H if the
creature strikes high or L if the creature strikes low.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
ABORTONPARRY<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 if the creature’s attack animation aborts when its enemy parries
its attack; 0 otherwise<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
RACIALTYPE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
In NWN, this was supposed to be an index into racialtypes.2da, indicating the creature’s default racial type. In NWN2, however, this does not seem to be the case any longer. Since a creature's race may be selected in the toolset by setting its Subrace, this column is probably obsolete.<br />
<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HASLEGS<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 if the creature has legs, which can be targeted with a called shot;
0 otherwise<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HASARMS<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 if the creature has arms, which can be targeted with a called shot;
0 otherwise<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
PORTRAIT<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
This is supposed to be the name of the portrait file to use as the creature’s icon in the game. Setting this to a non-blank value (****) will not load any portrait file, however. It seems that the only way to make the game load a portrait is to set the creature's Custom Portrait attribute in the toolset to the name of the portrait file.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
SIZECATEGORY<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
A numerical index to creaturesize.2da . Valid values are as follows:<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 = TINY (-2 attack, +2 AC)<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
2 = SMALL (-1 attack, +1 AC)<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
3 = MEDIUM (0 modifiers)<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
4 = LARGE (+1 attack, -1 AC)<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
5 = HUGE (+2 attack, -2 AC)<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
PERCEPTIONDIST<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Index into a row number in Ranges.2da that sets the creature’s default
perception range.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
FOOTSTEPTYPE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Index into footstepsounds.2da indicating which set of footstep sounds
to use on each type of terrain. A value of -1 indicates that the creature
will make no sound when moving.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
SOUNDAPPTYPE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Index into appearancesndset.2da to indicate the creature’s sound set<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HEADTRACK<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 if the creature’s head tracks nearby creatures, speaking creatures,
or objects being moused over by the player; 0 otherwise. This is an obsolete
column left over from NWN. Head tracking is not implemented in NWN2.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HEAD_ARC_H<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Maximum horizontal arc in degrees for head movement. This is an obsolete
column left over from NWN. Head tracking is not implemented in NWN2.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HEAD_ARC_V<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Maximum vertical arc in degrees for head movement. This is an obsolete
column left over from NWN. Head tracking is not implemented in NWN2.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
HEAD_NAME<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the head node in the model’s skeleton to rotate when tracking
objects. This is an obsolete column left over from NWN. Head tracking is not implemented
in NWN2.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
BODY_BAG<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Which body bag type to use when the creature is killed (see
bodybag.2da)<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
TARGETABLE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
1 if the creature can be targeted when the mouse hovers over it; 0
otherwise<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
SELECTION_CAPSULE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Unknown use. It may have been intended as a boolean value (0 or 1) that controlled whether a selection circle should appear at the base of the creature when the player right-clicks it. Regardless of its value, however, a selection circle will appear at the base of a right-clicked creature.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
SELECTION_SIZE<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
An integer value that controls the size of the selection circle that appears at the base of the creature when a player right-clicks the creature in the game.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
SEF<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Special effect SEF to apply to appearance<o:p></o:p></div>
</td>
</tr>
</tbody></table>
<br />
<br />
<h2>
Wingmodel.2da</h2>
If your creature model includes a wing mesh in a separate MDB file, you should edit a copy of wingmodel.2da to include data on the wing mesh. If you have the Mask of the Betrayers expansion, you can find the most updated copy of this file in 2DA_X1.zip. Otherwise, you’ll have to use the file found in 2DA.zip.<br />
<br />
As with appearance.2da, you add an entry for a new wing model by appending a new line at the end of wingmodel.2da and setting the index of the new row to be one plus the index of the previous row. Below are details on each column of wingmodel.2da.<br />
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Column<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Description<o:p></o:p></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
INDEX (no actual name)<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Sequential and unique row number. When appending a new row at the end
of the file, always set this value to be one plus the INDEX of the previous
row.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
LABEL<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the wing model, for the reference of human readers. Can be
used as the model’s name in the Toolset if the "STRING_REF" column
is blank (****).<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
STRING_REF<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
A unique numerical identifier that points to a DIALOG.TLK entry, which
is the name of this wing model as it appears in the Wings dropdown box of a
creature’s Properties in the toolset. If blank (****), the toolset uses the
LABEL instead.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Model_NAME<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the wing model to use. This should also be the name of the
MDB file where the mesh is stored. This can be any name that uniquely
identifies the model.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Skeleton_File<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the skeleton (GR2 file) that the wing model will use. This
can be any name that uniquely identifies the skeleton as long as it ends with
“_skel.”<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_BaseAnims<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Prefix of the animation files to use.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
MODEL<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
This is an obsolete holdover from NWN. It was supposed to be a
unique identifier for the wings’ MDL file (a file format similar to NWN2’s
MDB). To be safe, just set the value of this column to be the same as LABEL.<o:p></o:p></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
<h2>
Tailmodel.2da</h2>
<div>
If your creature model includes a tail mesh in a separate MDB file, you should edit a copy of tailmodel.2da to include data on the tail mesh. If you have the Mask of the Betrayers expansion, you can find the most updated copy of this file in 2DA_X1.zip. Otherwise, you’ll have to use the file found in 2DA.zip.</div>
<div>
<br /></div>
<div>
As with appearance.2da, you add an entry for a new tail model by appending a new line at the end of tailmodel.2da and setting the index of the new row to be one plus the index of the previous row. Below are details on each column of tailmodel.2da.</div>
<div>
<br /></div>
</div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Column<o:p></o:p></b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b>Description<o:p></o:p></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
INDEX (no actual name)<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Sequential and unique row number. When appending a new row at the end
of the file, always set this value to be one plus the INDEX of the previous
row.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
LABEL<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the tail model, for the reference of human readers. Can be
used as the model’s name in the Toolset if the "STRING_REF" column
is blank (****).<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
STRING_REF<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
A unique numerical identifier that points to a DIALOG.TLK entry, which
is the name of this tail model as it appears in the Tail dropdown box of a
creature’s Properties in the toolset. If blank (****), the toolset uses the
LABEL instead.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Model_NAME<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the tail model to use. This should also be the name of the
MDB file where the mesh is stored. This can be any name that uniquely
identifies the model.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_Skeleton_File<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Name of the skeleton (GR2 file) that the tail model will use. This
can be any name that uniquely identifies the skeleton as long as it ends with
“_skel.”<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
NWN2_BaseAnims<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Prefix of the animation files to use.<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 159.4pt;" valign="top" width="213"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
MODEL<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 319.4pt;" valign="top" width="426"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
This is an obsolete holdover from NWN. It was supposed to be a
unique identifier for the tail’s MDL file (a file format similar to NWN2’s
MDB). To be safe, just set the value of this column to be the same as LABEL.<o:p></o:p></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<br />
<h2>
Conclusion</h2>
I have explained the three 2DA files that modders use to bring new creature models to NWN2. In <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max_07.html">my next blog post</a>, I will discuss naming conventions more thoroughly.</div>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com1tag:blogger.com,1999:blog-9122846242068305603.post-34104648194969674232012-05-05T00:39:00.003+08:002012-05-29T09:56:21.901+08:00Creating New Life with the Expotron and Max, Part 1<h2>
Introduction</h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSPhGFWF1Lg9uFAWQ31D05fds-lipwKTUyvHYlblKIi7j1Tlbaj9dlvlxyP6NrH9qn5sY0yriqTDDbbbs8GlyHVUZyzPXcqGKhn4Kw7cm7NtODoEtN324_D0SGbbpQht8V9iP-W2TQYvs/s1600/Expotron.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSPhGFWF1Lg9uFAWQ31D05fds-lipwKTUyvHYlblKIi7j1Tlbaj9dlvlxyP6NrH9qn5sY0yriqTDDbbbs8GlyHVUZyzPXcqGKhn4Kw7cm7NtODoEtN324_D0SGbbpQht8V9iP-W2TQYvs/s200/Expotron.jpg" width="200" /></a></div>
Whoever has the Expotron has the power to create new life over all of Neverwinter. Those without it must content themselves with molding flesh over old bones. Nevertheless, power without sufficient knowledge can lead one to countless pitfalls. That’s what happened to me when I tried to rig my hydra model. Considering that a hydra’s most fearsome trait is its many venomous heads, seeing it completely headless in game has been a source of much frustration for me.<br />
<br />
I tried to search the Internet for solutions to my modeling problems, but the sites that Google found did not have the answers. Most of the top links that Google returned even included my own blog. Eventually, I figured out how to solve the problem through trial and error – lots of trials that yielded mostly errors. To keep myself from making the same mistakes in the future (and to finally get a useful link from Google), I wrote this tutorial. Hopefully, other NWN2 modders will find it useful as well.<br />
<br />
This tutorial is primarily for 3D modelers who know how to make and texture a creature mesh but don’t know the workflow for getting it in Neverwinter Nights 2. It will explain the peculiarities of making new skeletons and animations for NWN2 models, especially those whose meshes are stored in separate MDB files. This tutorial will also show how to export all the creature meshes, skeletons, and animations for use in NWN2. Along the way, we will tackle naming conventions and unravel the mysteries of relevant 2DA files. The latter topic may be of interest to NWN2 modders who are not modelers but want to edit 2DA files to correctly put custom creature models in their modules.<br />
<br />
The following software must be installed for this tutorial to be of full use to NWN2 modelers:<br />
<br />
<ul>
<li>Neverwinter Nights 2 (with or without expansions)</li>
<li>Software for editing 2DA files; e.g., Notepad, Excel, or one of the free 2DA editors available at the Neverwinter Vault</li>
<li>3DS Max 6, 7, or 8. No other version will do.</li>
<li>The Expotron plug-in that was used by Obsidian Entertainment for NWN2</li>
</ul>
<br />
Modders who are not modelers will only need NWN2 and 2DA-editing software and may want to refer only to <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max_06.html">my section on editing 2DA files</a>.<br />
<br />
It is assumed that the reader already has a creature model that would comprise no more than 6,000 triangles if all its quads were converted to tris. This poly count is the total from all meshes that make up the basic model – body, head, wings, and tail, but not including hair or armor accessories. The model should already have been UV mapped and preferably textured. Optionally, there may be one or two lower LOD (level-of-detail) versions of the mesh already made, but these are not necessary to follow the tutorial.<br />
<br />
Before proceeding to the tutorial proper, we need to lay out some basic knowledge to prepare ourselves for what follows.<br />
<br />
<h2>
About Model Parts and Their Skeletons</h2>
<br />
Each mesh in NWN2 is stored as an MDB file. Not all meshes are animated, but the ones that are will have skeletons and animations stored as GR2 files. Each skeleton should be composed of no more than fifty-four bones, not counting facial bones that are animated only in cut scenes (the “f_” bones) and attachment points (the “ap_” bones, dummy objects to which other non-animating meshes or visual effects may attach themselves). Fifty-four bones isn’t a whole lot, especially for creatures with extra limbs or heads. Nevertheless, there are ways to overcome this limitation, as we shall soon see.<br />
<br />
A skeleton is a set of bones arranged in a hierarchy, much like a pyramidal organization chart. At the top of the hierarchy is the root bone. For skeletons that animate the body mesh, the root bone is typically at the center of the pelvis, although it need not be, especially for creatures that don’t really have a pelvis. The NWN2 engine uses the root bone to calculate distances between the creature and other objects. Because other bones can emanate from the root bone in any direction, the root bone is generally just a tiny nub, unlike the long bones found in limbs and torsos.<br />
<br />
A model is composed of one or more meshes. Simple creatures, such as the chicken in NWN2, are completely embodied in a single mesh. More complex creatures may be composed of a head mesh, a hair mesh, a body mesh, a wing mesh, a tail mesh, and zero or more armor/clothing accessories. Accessories do not need their own skeletons because they stick to the creature’s attachment points. The hair, head, and body share the same skeleton hierarchy. Wings and tails may have their own skeletons, each of which comprises as many as fifty-four bones. In fact, making creative use of wings and tails is how one can overcome the bone limit in the body’s skeleton. Just because a mesh is listed as a wing or tail model doesn’t mean it actually has to be a wing or tail. It can be any part of the creature that needs its own skeleton. My hydra model doesn’t have any wings, but because it needed more than fifty-four bones, I divided my model into two parts – the body mesh and the mesh for its heads and necks. I assigned the latter mesh to the wings slot to give it its own skeleton.<br />
<br />
If you find yourself needing more bones than are allowed on a single mesh, you can divide your model into three meshes – the body and head, the cloak or wings, and the tail. Each of these can have its own skeleton consisting of no more than fifty-four bones. Be aware, however, that a model that is divided this way will never have its parts joined perfectly at the seams. While moving, some parts of the wings or tail may sink too deeply at times into the body or may separate far enough to form a small gap. This is unavoidable. The best that you can do is to try to keep the parts joined as well as you can when animating the creature. If you must divide your creature model, try to cut it in places where players are unlikely to look closely, if that is at all possible.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs_c0n59KBfAiZxZKeuqv1pUPz2_X2J6sS1GuBnB-yhsOADDSOLyfR1qjdUQGdEPdRlsIh8lxAZszJ-6ymPNYzDZOABQksPMgUoe0FtgGMGAStHD98_gNY9poo4d0Al0-SbuTc694OY00/s1600/gap.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs_c0n59KBfAiZxZKeuqv1pUPz2_X2J6sS1GuBnB-yhsOADDSOLyfR1qjdUQGdEPdRlsIh8lxAZszJ-6ymPNYzDZOABQksPMgUoe0FtgGMGAStHD98_gNY9poo4d0Al0-SbuTc694OY00/s400/gap.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">There is a slight gap in the red dragon's tail, but players will not notice it because they will be too busy worrying about the opposite end of the dragon.</td></tr>
</tbody></table>
<br />
Some models have their head stored in a separate MDB file from their body. The head and body share the same skeleton structure, however, so what advantage is there in keeping the head and body meshes in separate files? There are two reasons for wanting to do that:<br />
<br />
<ul>
<li><b>To allow different heads to go on the same body.</b> For creatures of the same species and gender, you may want to allow some variation in the creatures’ head appearance. This is done by creating two or more head meshes for the same creature. For example, you can make a new lizardman head to make it look different from other lizardmen.</li>
<li><b>To assign different textures to the body and head.</b> Each mesh can have its own set of textures – diffuse map, normal map, glow map, tint map, and even specular highlights. The latter allows you to set the gleam of the mesh. The shine of metal, for example, is brighter and more concentrated than that of skin. It makes sense to separate the fleshy head of an armored creature from its metal body to give them different textures.</li>
</ul>
<br />
If none of these reasons apply to your model, it may be best to keep the head and body in the same MDB file. Assuming that the head is welded to the body, this will keep the parts perfectly fused even when the model moves.<br />
<br />
The above considerations may also apply to wings and tails. A creature’s wings and tail meshes may have variations in their appearance as well as textures and specular highlights that are different from its body.<br />
<br />
Even though meshes of multi-part creatures are stored in separate MDB files, it is best to keep all the meshes of each creature in a single 3DS Max file. When animating the creature later, you will need all its meshes and skeletons together.<br />
<div>
<br /></div>
<div>
That’s it for now. In <a href="http://nwn2faithless.blogspot.com/2012/05/creating-new-life-with-expotron-and-max_06.html">my next blog post</a>, I will discuss what 2DA files are needed to bring new creature models to NWN2, which columns in these files are important, and what to put in them.</div>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com5tag:blogger.com,1999:blog-9122846242068305603.post-74515903742147411752012-04-25T22:13:00.001+08:002012-04-25T22:13:49.333+08:00Love Is a Many-Headed Thing, Part VIII<br />
Finally, I bring you what this entire series of blog posts has been promising all along – many heads. Below is the five-headed hydra, composed of 5,576 triangles. It isn’t far from my earlier estimate of how many triangles would make it up, and it’s still less than the number of triangles that went into the blue dragon.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0VUmk8E17Szh0q2STeLnqh5g4M58ego16sXVxFWRDJMnsI1SKHD0BLc045A4P13UM0_w-b5ltA73_nSBXEBNXiUAP-U3AOBXDHhPwDnoS_owg7uwt1JYpLrxKVcTY8NFhEk12FHfQ9dA/s1600/NWN2_SS_042512_094551.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0VUmk8E17Szh0q2STeLnqh5g4M58ego16sXVxFWRDJMnsI1SKHD0BLc045A4P13UM0_w-b5ltA73_nSBXEBNXiUAP-U3AOBXDHhPwDnoS_owg7uwt1JYpLrxKVcTY8NFhEk12FHfQ9dA/s400/NWN2_SS_042512_094551.jpg" width="400" /></a></div>
<br />
<br />
Still, if two heads are better than one, then surely seven heads are better than five.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOt2w799MJoEmUSrqWlU2-v5AgGedqzXhJQmpt0a1AyQze7YTVHrF7Fn_DrjEEHTzdz_aSKHh3APf70CfSbjKMtRTIMm3w7D2KB8uPS1G_N7xBz2Wgq6OJF_jn-qKx-uFMUrFVyTSbR9s/s1600/NWN2_SS_042512_192841.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOt2w799MJoEmUSrqWlU2-v5AgGedqzXhJQmpt0a1AyQze7YTVHrF7Fn_DrjEEHTzdz_aSKHh3APf70CfSbjKMtRTIMm3w7D2KB8uPS1G_N7xBz2Wgq6OJF_jn-qKx-uFMUrFVyTSbR9s/s400/NWN2_SS_042512_192841.jpg" width="400" /></a></div>
<br />
<br />
The seven-headed hydra pictured above is composed of 7,644 triangles, much more than what the blue dragon comprises. Nevertheless, the hydra looks so much more intimidating with an extra pair of fanged mouths that surely two thousand more polygons would be a small price to pay for a boss creature like this.<br />
<br />
I won’t go beyond seven heads, though. Anything more would have a good view of its own butt.<br />
<br />
By the way, regarding what I said about this hydra not growing any new heads – I may change my mind about that. We’ll see how it goes.<br />Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com7tag:blogger.com,1999:blog-9122846242068305603.post-53065531454933031392012-04-21T23:22:00.003+08:002012-04-25T21:56:08.457+08:00Sorry, But the Snake Must DieTake a good look at the picture below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9uzYK_J2szuBJUbXSePq0I3zmLxJxsf2nSWvfAkDIeGvDYMy2egQLcJ_TNY7SExvmwxo7LpDZkioKNPecWOJpbRBmNsEDlQfZjtM7zJz500U7BffD562HQLdpdHF2lUB7TvgJNKmLi7I/s1600/NWN2_SS_041712_184817.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9uzYK_J2szuBJUbXSePq0I3zmLxJxsf2nSWvfAkDIeGvDYMy2egQLcJ_TNY7SExvmwxo7LpDZkioKNPecWOJpbRBmNsEDlQfZjtM7zJz500U7BffD562HQLdpdHF2lUB7TvgJNKmLi7I/s400/NWN2_SS_041712_184817.jpg" width="400" /></a></div>
<br />
Take a good look at it because this is the last that anyone will ever see of this snake. Even before I give it the gift of life, it will die stillborn.<br />
<br />
When I wrote my last blog post, I thought I was ready to transform the snake I’ve been working on into a hydra. I was wrong. I made a shocking discovery, one that I should have realized before I started texturing the snake. I found out that my model comprised 5,628 triangles, 82% of which comes from the head and neck. If I had made a five-headed hydra out of it, the creature would have weighed in at 24,180 triangles. Just to put things into perspective, the creature with the most number of triangles in NWN2 is probably the blue dragon, which is made up of only 5,810 triangles. Any creature that goes way over this number will be a resource hog that may slow down the game.<br />
<br />
Clearly, this situation is untenable. I’m sorry, but the snake must die.<br />
<br />
Ironically, only a few weeks ago, I advised Eguintir Eligard to reduce the polygon count of his model before he textures or rigs it. Sometimes, the person who most quickly dispenses advice is the last to take it.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhko3P4ah6jEuGQnVwLfUBAudCMQsAndDOH7w2_ouezBZ1fy2GsqCQaP_K8uhFTzwYuUUWeKFu18DL0SnHQY9ToS0LBDUNppWJa1szbyB20PktprSzee9EO0Gn-RTyJ_6cLWdwXcqtaVpQ/s1600/render_2.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhko3P4ah6jEuGQnVwLfUBAudCMQsAndDOH7w2_ouezBZ1fy2GsqCQaP_K8uhFTzwYuUUWeKFu18DL0SnHQY9ToS0LBDUNppWJa1szbyB20PktprSzee9EO0Gn-RTyJ_6cLWdwXcqtaVpQ/s200/render_2.jpg" width="200" /></a>As with real snakes, the biggest offender in my model is the mouth. The teeth alone comprise over 32% of the snake’s polygons. Even with the teeth gone, the inside of the snake’s mouth is still a complex piece of topography, with far too many polygons dedicated to accurately depicting its hills and ridges. Despite that, players are unlikely to look closely at its mouth, especially if they play with the camera zoomed out. All those polygons would have been for nothing.<br />
<br />
I spent an entire day reducing my model to its bare essentials until I was left with 1,432 triangles. Making a hydra out of the new snake would have brought its polygon count to 5,368. Good enough.<br />
<br />
With all the trimming I did, my UV map was practically useless. I had to retexture the snake from scratch. It is said that there are two kinds of outcomes: successes and learning experiences. Mine was definitely in the latter category. The good thing about having so many learning experiences is that they enable one to work faster than before. I spent three days on the normal map and one day on the diffuse map. Within five days of my startling realization, I was done.<br />
<br />
Meet the new snake. Same as the old snake… minus a few thousand polygons.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjyDlPaR8eVW6h-CfETpZpc6rEW6ipmY6UMsIVeH6pDjdypHRMKsmw6A7AXtw7tlnf5x8n8ZXYoFJU60sknWpdzm6sQV_uz7gG5U1ztmPd6_F3m4ULma0yUqQNBO4N26NG_QltEbBKfdE/s1600/NWN2_SS_042112_220153.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjyDlPaR8eVW6h-CfETpZpc6rEW6ipmY6UMsIVeH6pDjdypHRMKsmw6A7AXtw7tlnf5x8n8ZXYoFJU60sknWpdzm6sQV_uz7gG5U1ztmPd6_F3m4ULma0yUqQNBO4N26NG_QltEbBKfdE/s400/NWN2_SS_042112_220153.jpg" width="400" /></a></div>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com7tag:blogger.com,1999:blog-9122846242068305603.post-80005666050412366162012-04-16T22:30:00.000+08:002012-04-16T22:30:05.303+08:00Love Is a Many-Headed Thing, Part VIIOn a trip to Australia some time last year, I went to a dry night market that catered mostly to the tourist trade. There, I came upon a stall where a man had a few small snakes for people to touch. Seeing other passersby petting some of the reptiles, I approached the stall and ran my fingers over one snake. I smiled with delight as I felt the smooth, bumpy texture of its scales under my fingers. It felt no different from a snakeskin wallet, I thought to myself. I turned to my colleague, who had accompanied me to the night market, and I asked him if he wanted to give it a go. He shook his head with such vigor that if some snakes were to land on him at that very moment, they would immediately have been flung several feet away. When I turned back to the snakes, I then espied a small sign on the stall that said, “Suggested donation: 20 dollars.” I had felt no fear while touching the snake, but the sign filled me with such apprehension that I slinked away and never went back.<br />
<br />
The hydra model that I am making will only be seen and never touched, of course, but if the sight of it can evoke a feel of smooth, bumpy snakeskin, then I’ll know that I’ve created a good model. In that regard, I believe I’ve succeeded, as evidenced by the picture below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBlhD5LeGQJop1gPQEPtrpoBBf2s3uaqOSEKn5qDA-UpxdMwqQ2XCh52pQBHTz74yXzHz9DZ7yn5hZcUiC9fepVPfZMnxxvuWYAa4DU9BbEPZbzE6OtUFZsHYMg9M0USpl2W-kqMO2s0I/s1600/NWN2_SS_041612_202717.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBlhD5LeGQJop1gPQEPtrpoBBf2s3uaqOSEKn5qDA-UpxdMwqQ2XCh52pQBHTz74yXzHz9DZ7yn5hZcUiC9fepVPfZMnxxvuWYAa4DU9BbEPZbzE6OtUFZsHYMg9M0USpl2W-kqMO2s0I/s400/NWN2_SS_041612_202717.jpg" width="400" /></a></div><br />
<br />
When NWN2 players see this snake in game, they aren’t likely to say, “Ooh, look at those scales, so detailed and realistic.” No, they’ll say, “Holy crap! A huge, effin’ snake,” and they will proceed to kill my lovely creation.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com4tag:blogger.com,1999:blog-9122846242068305603.post-72993097895458048442012-04-14T21:20:00.001+08:002012-04-23T18:23:41.966+08:00Photoshop Tutorial: Balancing Contrast in Grayscale ImagesI just spent the better part of the day trying to figure out how to reduce the contrast in the red channel of my snake’s normal map. The problem was that some scales were darker than others, but I wanted them to be shaded more or less the same. Here's how the red channel of my normal map originally looked.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVAGws8yCdTg_79Uloj5zUqqim5nUddXE1ObMTvTmOWtpDLeQXh-8lvqs8wyvJtjxhssYKx5irRTnX71BcJZoWR_vSYgP9tFe-fkM10IZWSumVTDG7OSDCK9nLsWhbxMj6WfjHtZaR2qc/s1600/red_channel_orig.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVAGws8yCdTg_79Uloj5zUqqim5nUddXE1ObMTvTmOWtpDLeQXh-8lvqs8wyvJtjxhssYKx5irRTnX71BcJZoWR_vSYgP9tFe-fkM10IZWSumVTDG7OSDCK9nLsWhbxMj6WfjHtZaR2qc/s400/red_channel_orig.jpg" width="400" /></a></div>
<br />
<br />
The picture below shows what happens when the scales are not uniformly shaded. Notice that the neck is darker than the rest of the body and that there are some vertical patches of dark scales going from the neck to the middle of the snake. In addition, the lower part of the body is plunged abruptly, not gradually, into shadow. All this can be corrected by balancing the contrast among the scales.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht1qEc8Zz08vAnWNZHB7Jb_Gd9-VXHWmLVa8OeajySEEufC1jAocdaFpHqU4MOGO_xvadVdiQarSYkQfQVDGfI993OjtL2tEYFgh1yedPX-Wlzwz63I4XMgNmgleuaa06tMSKzHp7AfVc/s1600/NWN2_SS_042312_170628.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="40" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht1qEc8Zz08vAnWNZHB7Jb_Gd9-VXHWmLVa8OeajySEEufC1jAocdaFpHqU4MOGO_xvadVdiQarSYkQfQVDGfI993OjtL2tEYFgh1yedPX-Wlzwz63I4XMgNmgleuaa06tMSKzHp7AfVc/s400/NWN2_SS_042312_170628.jpg" width="400" /></a></div>
<br />
<br />
I’m sure there is more than one way to do this in Photoshop, but the method I came across is fast and reasonably effective. If I had known how to do this from the get go, I would have saved myself several hours of frustration. Before I forget my hard-earned knowledge, I’ve documented the procedure here.<br />
<ol>
<li>Duplicate your original image as a new layer on top of it. If this layer isn’t a grayscale image, convert it to grayscale by clicking the Image menu and selecting Adjustments/Black & White. Press [Ctrl]+I to invert the duplicated image. Let’s call this layer Inverted.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_03YzxRnlek1GJck5jgMlfjn0b5D-XWm12mOKCwoHkYG6awzD4QJivwbyKJbRdThKvgz9QZkNVyw0hNZ_wnVKM1VwWcw7JZ-mJ8-iKl3wrDZrnZjWf89I8FY4WuHZV6nPPqkcACOLoDs/s1600/Step1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_03YzxRnlek1GJck5jgMlfjn0b5D-XWm12mOKCwoHkYG6awzD4QJivwbyKJbRdThKvgz9QZkNVyw0hNZ_wnVKM1VwWcw7JZ-mJ8-iKl3wrDZrnZjWf89I8FY4WuHZV6nPPqkcACOLoDs/s320/Step1.jpg" width="320" /></a></div>
<br /><br />
</li>
<li>For the this step, you can do one of two options. I recommend changing the Opacity of the Inverted layer to 50% without changing its blending mode, as shown below.
This will completely neutralize the two layers, forming a uniform gray.<br /><br /><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHRG1pEtG937bwsxTQCmq318XpgNdT6fxgg5_Ho_O0RaFRineZzMywVQfKxIhBncblsQQ8mQ0r9XUK45_Sc38QPPtIlZ_NK1WQseSIpVBLYXYlYckclK_oQ2t955UBcLJ8RCo4vJpwweE/s1600/Step2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHRG1pEtG937bwsxTQCmq318XpgNdT6fxgg5_Ho_O0RaFRineZzMywVQfKxIhBncblsQQ8mQ0r9XUK45_Sc38QPPtIlZ_NK1WQseSIpVBLYXYlYckclK_oQ2t955UBcLJ8RCo4vJpwweE/s400/Step2.jpg" width="141" /></a></div>
<br />
Alternatively, in the Layers palette, you may change the blending mode of the Inverted layer to Overlay. I tried doing this option initially, but the results were not particularly good. Nevertheless, it may work better with some images, so I included this alternative approach here.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjSpepnPI9hBz1faEmpIZSgXrcfSFYS7erRwPIjnnLpdg3_p6sj9JpYhHlqm8JeUfsSwRuxspMEEtn5b6FUiTUsKFI9Q4R4uDyzioJ5N43eTKqBBPjrTs8eVt9hKf0Pso_vXcWT9iQ1M0/s1600/contrast_03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjSpepnPI9hBz1faEmpIZSgXrcfSFYS7erRwPIjnnLpdg3_p6sj9JpYhHlqm8JeUfsSwRuxspMEEtn5b6FUiTUsKFI9Q4R4uDyzioJ5N43eTKqBBPjrTs8eVt9hKf0Pso_vXcWT9iQ1M0/s400/contrast_03.jpg" width="131" /></a></div>
<br />
<br />
</li>
<li>Click the Filter menu, and select Blur/Gaussian Blur. Make sure that the Preview checkbox is checked. Adjust the Radius until you can’t improve the contrast any better this way.<br /><br /><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-YDwcQb-w4Sgpequ2VG1DE-jFAncCnaYIbBYFULdzJ6b4G7hXnJQnVVI80IAc3Cqd4SXQxxyibI5K4k2U03rsezGxvCvsMa_8eIE-CacJyroXsoAwHr-tRxMFfXJRIFnif3EjnEa-3Wk/s1600/Step3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-YDwcQb-w4Sgpequ2VG1DE-jFAncCnaYIbBYFULdzJ6b4G7hXnJQnVVI80IAc3Cqd4SXQxxyibI5K4k2U03rsezGxvCvsMa_8eIE-CacJyroXsoAwHr-tRxMFfXJRIFnif3EjnEa-3Wk/s320/Step3.jpg" width="320" /></a></div>
<br /><br />
</li>
<br />
<li>You can adjust the contrast further if you aren’t fully satisfied with the outcome. With your Inverted layer still selected, click the Image menu and select Adjustments/Curves. Tweak the curve a little bit until your contrast is as balanced as you can make it.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdMV5erKBm6eM-PLwu-uXs3jjXTkPlwuVtl3rXcppVbwK5S-qAuqEEcJ-wcuSZGXWx4Iy-p5RTWeKYPXgVJYaCitNTbK_O8_2F9JETwKpht0IASRLolHGOjbhCR2CRd7z6N7aJVXXckbc/s1600/Step4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdMV5erKBm6eM-PLwu-uXs3jjXTkPlwuVtl3rXcppVbwK5S-qAuqEEcJ-wcuSZGXWx4Iy-p5RTWeKYPXgVJYaCitNTbK_O8_2F9JETwKpht0IASRLolHGOjbhCR2CRd7z6N7aJVXXckbc/s320/Step4.jpg" width="320" /></a></div>
<br /><br />
</li>
<li>Merge all layers so that only the Background layer is left.</li>
</ol>
<br />
That’s it. As can be seen from the picture in step 4, the scales are now toned more evenly than before. Simple if you know how. From here, you can enhance your image further through proper use of layers. In my case, I adjusted the contrast further with the Curves tool to enhance the image. I also made sure that only the scales were affected by the whole procedure and that all other parts of the image retained their original appearance. The final result can be seen below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFigDOd0sUgGzslGGiUfzlxeV-419ZuSCZjJKtC2EC5x1KYQ7nVYNMPbHunXjf46pGiMGObCxXsTnbiPqEqMUdCE6D5hMrWfoVX11nEjSfjCFZ7EeBBd8fyohyphenhyphenQ1TWbtC-O9gDfuhEtzo/s1600/red_channel_final.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFigDOd0sUgGzslGGiUfzlxeV-419ZuSCZjJKtC2EC5x1KYQ7nVYNMPbHunXjf46pGiMGObCxXsTnbiPqEqMUdCE6D5hMrWfoVX11nEjSfjCFZ7EeBBd8fyohyphenhyphenQ1TWbtC-O9gDfuhEtzo/s400/red_channel_final.jpg" width="400" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
I then copied the above image to the red channel of my normal map. Below can be seen the result of this simple correction. Notice that the scales are now shaded more uniformly and that the lower part of the body blends more naturally into shadow.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRvllsTkbuWmADr4i-Ozeiz_Vit4XHpOuUQS2SHE3UtemQJ4u2b6Ozoz6VB8F0CKy1rk7MAkkPwsbBaVh6lNX93DEiJ3LDlmC6HYuAjm8UxFcLWC9CK7tkoVqg8A1aDCQAosyz5ov8Axw/s1600/NWN2_SS_042312_170808.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="40" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRvllsTkbuWmADr4i-Ozeiz_Vit4XHpOuUQS2SHE3UtemQJ4u2b6Ozoz6VB8F0CKy1rk7MAkkPwsbBaVh6lNX93DEiJ3LDlmC6HYuAjm8UxFcLWC9CK7tkoVqg8A1aDCQAosyz5ov8Axw/s400/NWN2_SS_042312_170808.jpg" width="400" /></a></div>
<br />
<br />
<i>Edited on 23 April 2012 to illustrate the application of this procedure and to incorporate two alternative options in step 2.</i>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com3tag:blogger.com,1999:blog-9122846242068305603.post-33143874025281662292012-04-12T19:11:00.007+08:002012-07-18T13:31:46.786+08:00Love Is a Many-Headed Thing, Part VIImagine you are a tattoo artist, and a lovely magician’s assistant has asked you to do a very intricate tattoo all over her body. The problem is that the magician had cut up his lovely assistant into several pieces, but before he could put her back together, a time-traveling doctor pulled him away to help save the known universe. Despite the state of her body, the magician’s assistant is alive and well, thanks to the power of magic. Her boss will be back soon, but in the meantime, his lovely assistant insists that you tattoo her while he is away, or she’ll be too busy practicing and performing stage magic to ever have another opportunity like this.<br />
<br />
As implausible as this scenario may be, I’m faced with basically the same underlying problem in trying to texture my snake model. To accommodate the entire snake in a 1024 × 1024 texture map, I had to lay out the snake as if it had been sliced into pieces. If I were to map the surface of the snake as shown below, I’d be wasting space on the texture map.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixyT8MQoYJ3YA34FbcqVn7IxDVWGYlvQYEWxZ6dIAtApOfz-XPXP4Q-SAH03m_hyphenhyphenVR528mDkOgNBqVyVXzNXorkzkQKN6WHfhvIKc-L6LGOYaiGa0WTxQrSTZRey0oD0Lm1JjzOb9rSvQ/s1600/uvw_silly.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixyT8MQoYJ3YA34FbcqVn7IxDVWGYlvQYEWxZ6dIAtApOfz-XPXP4Q-SAH03m_hyphenhyphenVR528mDkOgNBqVyVXzNXorkzkQKN6WHfhvIKc-L6LGOYaiGa0WTxQrSTZRey0oD0Lm1JjzOb9rSvQ/s400/uvw_silly.jpg" width="400" /></a></div>
<br />
<br />
By cutting up the snake on the texture map, I can make greater use of available pixels.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVe36_kK1cT9WWdE8YAofXSi_kdhjmXXkBAg-K3QqIiN7cwUIrOzyDzLGHkxpPto5yX99lXOanpaJqclr0rDtE1-oGgqmnZEnskKxxqAs-mMYQ3GUOVI_ViEfAZA1ijrnBVGqsgBAV6S4/s1600/uvw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVe36_kK1cT9WWdE8YAofXSi_kdhjmXXkBAg-K3QqIiN7cwUIrOzyDzLGHkxpPto5yX99lXOanpaJqclr0rDtE1-oGgqmnZEnskKxxqAs-mMYQ3GUOVI_ViEfAZA1ijrnBVGqsgBAV6S4/s400/uvw.jpg" width="400" /></a></div>
<br />
<br />
Now the challenge with this kind of layout is to align the textures on each part of the snake perfectly with each other. It would be like trying to tattoo a lady who had been sawn to pieces. Actually, it would be more difficult than that. As can be seen in the UV map above, the head looks like it has grown much too big for the neck, which in turn, is much too big for the rest of the body. I did the UV map like this so that the head and neck can receive proportionately more texture detail than the rest of the snake. Good luck trying to align all the textures manually. If I had an entire snake model with scales, I could simply bake the normal map and let the software take care of aligning the textures perfectly. Making a snake model complete with 3D scales would require more time and effort than I’m willing to spend, however, so that approach is out of the question.<br />
<br />
The solution that I eventually settled on was to first abandon my previous efforts at sculpting in ZBrush, which I blogged about last time. Upon taking a closer look at my reference pictures, I realized that I did not sculpt the scales correctly. Besides, my model was ugly. In the close-up picture below, it is obvious that the edges of the scales are not crisp. I can’t seem to emboss scales with crisp edges in ZBrush. I was hoping that these imperfections would magically disappear in the normal map, but that was not the case. As they say, garbage in, garbage out, and my high-poly mesh was garbage.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyYr9GwIbb1V6EA4J1_r323PQVTh8HAsgykL3ubIpsibKhgaYGi0aZmpo-wSiuwB3LbcW0uLtEWavG4H6k641jJ7SGRoxXHpEnDJbZoqcfcjMAwVZPwGI6AOdkwi_MkrO8MMhhFiMQA-o/s1600/ugly.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyYr9GwIbb1V6EA4J1_r323PQVTh8HAsgykL3ubIpsibKhgaYGi0aZmpo-wSiuwB3LbcW0uLtEWavG4H6k641jJ7SGRoxXHpEnDJbZoqcfcjMAwVZPwGI6AOdkwi_MkrO8MMhhFiMQA-o/s400/ugly.jpg" width="400" /></a></div>
<br />
<br />
My next step was to build some snake scales in 3DS Max. Below is one of the scales that I made. It comprises over 400 polygons, far more than would be practicable to cover a snake with. Nevertheless, I liked its smooth surface and extra crispy edges so much that I couldn’t bear to simplify it. The scale turned out to be far thicker than it should have been, but that didn’t cause me any problem.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBIc4CC8GKFJQftzpSJOEnjB38deuQbSJtpkLS8xxiSkITybjzlB5slIeGhMSKN0UHLHdgdHLRTkZmJfWZDrmeefomFCpL8CYyEXB5-bqJfwY-i-d1XFIPAAZA7nb4WYNTBK-Z9AExVOs/s1600/scale.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBIc4CC8GKFJQftzpSJOEnjB38deuQbSJtpkLS8xxiSkITybjzlB5slIeGhMSKN0UHLHdgdHLRTkZmJfWZDrmeefomFCpL8CYyEXB5-bqJfwY-i-d1XFIPAAZA7nb4WYNTBK-Z9AExVOs/s400/scale.jpg" width="290" /></a></div>
<br />
<br />
With these scales, I covered strategic areas of my low poly snake. Although it is nowhere near as difficult as covering the whole snake with scales, it is still mind-numbing work. Each scale had to be resized, moved into position, and rotated so as to overlap the scale behind it. I made sure to completely cover the areas that had UV seams. This solves the problem of how to align the textures across different UV segments. Below is how the snake looks with the scales that I placed on it. Kind of makes me think of a luchador in a bikini, which isn’t a thought I’d like to hold for very long.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMeu9sZcbjrxB6p8ehu_YUjZFWxS8lN5x0fad0F5A-cRHpOLkwpY1dGrE1rJHVpnZi-PXDk5q1u0qag48mEkjSNcz80oiSdcWHHvZtr3ojZrKS3kTy7pEXtCS10zW_yy9PGF9GhIlwdK4/s1600/partialscales.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMeu9sZcbjrxB6p8ehu_YUjZFWxS8lN5x0fad0F5A-cRHpOLkwpY1dGrE1rJHVpnZi-PXDk5q1u0qag48mEkjSNcz80oiSdcWHHvZtr3ojZrKS3kTy7pEXtCS10zW_yy9PGF9GhIlwdK4/s400/partialscales.jpg" width="400" /></a></div>
<br />
<br />
I then baked my normal map and edited it with Photoshop to cover the parts of the skin with no scales. I’m not finished with the normal map yet, but I’ve done enough to prove that this approach to texturing the snake will work. Below are two scanline renders of the snake. The first picture shows the snake with a freshly baked normal map, and the second picture shows how it looks after I had added more scales with Photoshop.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhih9cjSjSJXmFZgFLu3U6HGEruUtyrl6iFRXfLJaoBgiI613TZmAgMnHTlRI7C8sbRVlYrzvEBQs7tWZRc3_EhAD2mcIJzi4KRx7kFGENg_sVvobFTGquUUv2JtVFgBOuv9A_lSdDNP5s/s1600/render_before.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="303" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhih9cjSjSJXmFZgFLu3U6HGEruUtyrl6iFRXfLJaoBgiI613TZmAgMnHTlRI7C8sbRVlYrzvEBQs7tWZRc3_EhAD2mcIJzi4KRx7kFGENg_sVvobFTGquUUv2JtVFgBOuv9A_lSdDNP5s/s400/render_before.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijQqCprXIxQPTlghu-9JZUB-ot3ERyj-wOCbBu6a4QXvPO1gFOj6SiqXuMO6GbE0PMAD4C6cfANfUb0aPJucz3aVovTIS54XFQE-b9-n8B07pjuwfe30gllXyD2Rvkr5bXtfS0JPxak-w/s1600/render_after.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="303" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijQqCprXIxQPTlghu-9JZUB-ot3ERyj-wOCbBu6a4QXvPO1gFOj6SiqXuMO6GbE0PMAD4C6cfANfUb0aPJucz3aVovTIS54XFQE-b9-n8B07pjuwfe30gllXyD2Rvkr5bXtfS0JPxak-w/s400/render_after.jpg" width="400" /></a></div>
<br />
<br />
Looks like I’m finally on the right track. It won’t be long before we’ll be seeing how this baby looks in NWN2.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com0tag:blogger.com,1999:blog-9122846242068305603.post-19891204531531854442012-04-05T10:52:00.008+08:002012-04-05T14:43:06.696+08:00Love Is a Many-Headed Thing, Part VI hate snakes. They look like they might be easy to model, but actually, they are not. The external form of a snake is simple enough, but the inside of its mouth has enough hills and ridges to rival the Sierra Nevada. The worst part about modeling snakes, however, is texturing them. A snake’s body is covered with scales of such precise shape and arrangement that 3D artists will notice if the texture is shoddy.<br />
<br />
Having finalized the snake’s mesh and mapped its UV, I began to make its normal map. Basically, there are two ways to do normal mapping:<br />
<br />
<br />
<ul><li>You can create a high-poly version of your low-poly mesh and use both to bake a normal map in your 3D modeling software. I’ve discussed how to do this in 3ds Max <a href="http://nwn2faithless.blogspot.com/2009/01/creature-modeling-part-5-normal-mapping.html">elsewhere in my blog</a>. You can also bake normal maps in the latest version of ZBrush, but if any part of your low-poly mesh protrudes from the high-poly model, that area won’t be baked. In 3ds Max, you can overcome this problem by adjusting the cage in the Projection modifier.</li>
</ul><br />
<ul><li>You can also make normal maps out of 2D images. This is usually done by using image editing software to convert a black-and-white height map to a normal map. I’ve tried using the <a href="http://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop">nVidia normal map filter for Photoshop</a> to do this, but frankly, the results are awful. Alternatively, with photography and some clever lighting, you can <a href="http://zarria.net/nrmphoto/nrmphoto.html">shoot images and convert them into a normal map</a>, but in the case of my snake model, this is not a viable option for me.</li>
</ul><br />
<br />
When it comes to sculpting organic models, ZBrush and Mudbox are the software of choice. I didn’t want to fashion scales all over the entire snake, however, as this would be a monumental effort. Instead, I cut off the snake’s head and a section of its body and sculpted each separately. Because the model has mirrored UVs, I only need to sculpt the right half of each segment. My plan is to bake the normal map in 3ds Max and use Photoshop to replicate the baked texture in all other parts of the snake’s body. It won’t be easy to align each segment, but it still beats having to sculpt everything.<br />
<br />
Here's what I have so far. The scales on a snake's head are roughly hexagonal and occasionally pentagonal, but as you move down the neck, the scales change to an interlocking set of diamond shapes. These models aren’t perfect, but I believe they will do.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKFVhjgLJqGoaHMgXJ-G0jKBUzwtr0YbVp3ftFJujD7c5IqN3v5eztw3DVTIKRuzv75OgUOWOBmO4krbqUH6ZDLTpzwGrKqZWvz2k6ojf1wdiAaxggO1QyWHEaHS2U8PuS5Grq_tBE-_Y/s1600/snake_head_textured.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKFVhjgLJqGoaHMgXJ-G0jKBUzwtr0YbVp3ftFJujD7c5IqN3v5eztw3DVTIKRuzv75OgUOWOBmO4krbqUH6ZDLTpzwGrKqZWvz2k6ojf1wdiAaxggO1QyWHEaHS2U8PuS5Grq_tBE-_Y/s400/snake_head_textured.jpg" width="400" /></a></div><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizX2NMrLO7w9mEbTg6HD_4PQ-51P7CLfhbbItQEDX14Zxt01DkJ_Xdh2pipzWKt2IM1Q7QKSdvTzfXKsgi8S5cge4UBVzFE3VtR-vp3lHBwrLoEIxRCSaOTdsTY6EUz5mCPk_gAdDYbno/s1600/snake_body_10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizX2NMrLO7w9mEbTg6HD_4PQ-51P7CLfhbbItQEDX14Zxt01DkJ_Xdh2pipzWKt2IM1Q7QKSdvTzfXKsgi8S5cge4UBVzFE3VtR-vp3lHBwrLoEIxRCSaOTdsTY6EUz5mCPk_gAdDYbno/s400/snake_body_10.jpg" width="400" /></a></div><br />
I made so many mistakes while making the above sculpts that I had to backtrack too many times for me to recount. If I were any kind of sane person, I’d have gone mad by now from sheer frustration. As it is, I lost my mind a long, long time ago, and I haven’t missed it since.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com2tag:blogger.com,1999:blog-9122846242068305603.post-11700025861507346062012-03-28T10:53:00.007+08:002012-03-28T15:09:17.341+08:00Love Is a Many-Headed Thing, Part IVWhat would a one-headed hydra look like? Considering that hydras are always depicted in art as having many heads, the idea of a one-headed hydra may sound silly. Let us not forget, however, that when Heracles first encountered the hydra, it started out with only one head. The appearance of that head will determine how the rest will look.<br />
<br />
I searched the Internet for pictures of hydras, and I found various depictions of it with fins, barbels (appendages like the “whiskers” of catfish), horns, beaks, and even greyhound ears. Why would a hydra have one or more such features? To be sure, reptiles have been known to have fins (sea snakes, ichthyosaurs), horns (triceratops, horned lizards), and beaks (turtles), although I have yet to hear of reptiles with barbels or external ears. Nevertheless, there has to be some credible use for any trait. Unless the hydra spends all its time in waters deep enough for its huge body to swim in, it would have no need for fins or barbels. Horns are good defensive weaponry, but, like ears, they can make locomotion for a legless creature difficult. Besides, horns are clearly inferior to poison fangs. Beaks are good for cutting up food to a manageable size, but they are completely unnecessary to a creature that can open its mouth very wide.<br />
<br />
As I mentioned in a <a href="http://nwn2faithless.blogspot.com/2012/03/love-is-many-headed-thing-part-ii.html">previous blog post</a>, form follows function. The hydra’s features must serve to help its species survive in its natural habitat. That means they must help the creature eat, keep from being eaten, and reproduce. One cannot simply slap miscellaneous body parts on the hydra just to make it look freaky. Otherwise, one risks having people scoff at the preposterousness of the creature.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGJWDS_1jNHh2qzGicfsJuyyICrAwmY_JNxztKe6Nh9cXwd7UF4oNTD1iMVcokLkD9fBY3ajfQbLmseY2-ZgjXpfF33xEM3t6KAPMJRcU9IVt1c80gznbc7hdEfE4lw6jZcGH9qe9nAEE/s1600/disbelieve.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGJWDS_1jNHh2qzGicfsJuyyICrAwmY_JNxztKe6Nh9cXwd7UF4oNTD1iMVcokLkD9fBY3ajfQbLmseY2-ZgjXpfF33xEM3t6KAPMJRcU9IVt1c80gznbc7hdEfE4lw6jZcGH9qe9nAEE/s400/disbelieve.jpg" width="400" /></a></div><br />
<h2>Hydra Behavior 101</h2>If I were to give some semblance of verisimilitude to the mythical hydra, I would make it behave like any other venomous serpent. The way I see it, the hydra is a reclusive, non-confrontational creature whose coloration allows it to blend in its swampy environs. When threatened, the hydra raises its heads and splays them out to make itself look bigger. It issues a chorus of threatening hisses and bares its fangs. It weaves its heads about, ready to strike. Unless the creature threatening it is something the hydra will want to eat, the hydra will prefer to conserve its relatively weak venom until it is obvious that the creature won’t leave the hydra alone.<br />
<br />
The hydra does not rely on its eyes or hearing to sense other creatures. Vibrations in the water or on the ground serve to alert the hydra to movement. It flicks its forked tongues out to smell the presence of predators, prey, or potential mates. It also uses two heat-detecting pits on each of its faces to lock on to its target. For all intents and purposes, the hydra is immune to blindness and can easily detect hidden or invisible creatures. Spells of etherealness can make one undetectable to the hydra.<br />
<br />
In its natural environment, the hydra can hide as if it were a Rogue of a level equivalent to its hit dice. Nevertheless, the hydra suffers penalties to Hiding because of its huge size as well as the difficulty in getting its many heads to coordinate actions. A hydra can lie very still for extended periods of time. In fact, once it picks a spot in which to lie in wait, the hydra is unlikely to move. Without a predator or prey to react to, it is difficult for the hydra to get all its heads to agree on where to go.<br />
<br />
The hydra feeds on whatever it can get its maws on – fish, deer, alligators, and teenage lovers who think that swamps are the perfect place to make babies. (No, actually, a hydra isn’t in the habit of eating humans because they have a nasty tendency to form hunting packs and avenge their dead.) The hydra prefers to strike while hidden because it cannot hope to outrun most of its prey. Even without the advantage of surprise, its initial appearance may shock and awe creatures into momentary paralysis if they fail their Will save.<br />
<br />
For a hydra, having many heads is both a blessing and a curse. A single bite from a hydra is not particularly lethal to a medium-sized creature, probably because it has to supply so many heads with poison. The combined attacks of all its heads, however, are enough to kill an adult hippo. When it has delivered sufficient venom to make its target too weak to run away or put up a good fight, the hydra withdraws and waits for its prey to die. Only then will the hydra make a grab for its food, initiating a struggle with itself. Like all snakes, the hydra swallows its food whole. Its many heads may wrestle with each other for hours over the privilege to eat. Fortunately, a hydra can go without eating for a year or two. It can certainly afford to wait a few hours more to sate its hunger.<br />
<br />
Much has been said about the hydra’s alleged ability to grow two heads when one is cut off. Personal experience from a brave and stalwart adventurer (ahem) belies this claim. Most likely, this is a tall tale spread by villagers to keep their teenage children from trying to make babies in the swamps. What has been verified is that decapitating a single head will not kill the hydra. It will continue to fight for as long as it has heads. While the hydra can eventually heal from the loss of a few heads, they will never grow back. Our brave and stalwart adventurer (ahem) was fortunate in having fought a hydra with only two heads remaining, as well as a number of stumps where other heads used to be. The bodies of fallen adventurers nearby yielded much loot and made the venom sickness that lasted for a few hours worthwhile.<br />
<br />
<h2>Portrait of a One-Headed Hydra</h2>It is clear from the above write-up that I intend to make a hydra with a fixed number of heads. I’ve already explained in a <a href="http://nwn2faithless.blogspot.com/2012/03/love-is-many-headed-thing-part-ii.html">previous blog post</a> my concerns with the whole spiel about growing new heads. Nevertheless, once I have a one-headed hydra, creating a multi-headed one will be relatively easy.<br />
<br />
My write-up also makes it clear that everything a hydra needs to survive in the wilds is already found in venomous snakes such as the pit viper. Anything extra will simply weigh it down. I want to make the hydra approximately as long as an anaconda, although pictures on ancient Greek pottery of Heracles fighting the hydra seem to indicate that the hydra was smaller than that. It certainly won’t be as large as the one in <i>Jason and the Argonauts</i>. (That’s right, Hollywood. It was Heracles who fought the hydra, not Jason.)<br />
<br />
Having decided on the hydra’s appearance, I took this opportunity to revisit the snake I built earlier. Looking closely at my reference pictures, I realized that I got the mouth wrong. A snake’s tongue is supposed to retract in a sheath at the bottom of the snake’s mouth. My original mesh had no such sheath. Much as I hated to do it, I had to work on the snake’s mouth all over again. I also decided to retopologize the rest of the head because it had too many triangles instead of quads. I rescaled the body to make it wider in the middle and to make the tail look less like a stabbing weapon. Naturally, all this meant re-doing the UV map, along with the high-poly sculpt in ZBrush. The low and high poly models can be seen below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4GR3e82y6RnBVNxDi4A9wGbH35XrPKpnlNyxnXbLSFaR5SLXl0TrgLZIngPXv__Esdq0xuSZRv1dI0WbeJVcWiXX5owOqn4uvrdnO9o8eZe8Ab4XJ3l8a99I3DQ6K_Z2zBlbTTRhvj-M/s1600/snake_low_poly.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4GR3e82y6RnBVNxDi4A9wGbH35XrPKpnlNyxnXbLSFaR5SLXl0TrgLZIngPXv__Esdq0xuSZRv1dI0WbeJVcWiXX5owOqn4uvrdnO9o8eZe8Ab4XJ3l8a99I3DQ6K_Z2zBlbTTRhvj-M/s400/snake_low_poly.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoFflKDG0iij9DQSd69Is2keDXYhKyaGd7Ag6uCsdZWPeczeGmH5EkKVG4e5fF9z6MEy5Hug9mAbyHC8UKhbyK2XOddxN2xMFIcoXjbOCu1D4-E7lQD5iNVUHS5wyAAS9Amsejg8f5U-g/s1600/snake_hi_poly.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoFflKDG0iij9DQSd69Is2keDXYhKyaGd7Ag6uCsdZWPeczeGmH5EkKVG4e5fF9z6MEy5Hug9mAbyHC8UKhbyK2XOddxN2xMFIcoXjbOCu1D4-E7lQD5iNVUHS5wyAAS9Amsejg8f5U-g/s400/snake_hi_poly.jpg" width="400" /></a></div><br />
It took me over a week to decide on the one-headed hydra’s appearance and to refine its basic shape. Since then, I’ve been trying to find a good way to texture it. For reasons that I will explain in my next blog post, this issue has been especially problematic. Stay tuned.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com2tag:blogger.com,1999:blog-9122846242068305603.post-27064099263075954372012-03-07T23:30:00.000+08:002012-03-07T23:30:27.396+08:00Love Is a Many-Headed Thing, Part IIIA hydra is not an easy thing to model. Each head should be sculpted symmetrically and animated individually. Be that as it may, a hydra is basically a fancy snake with more heads than are considered healthy. If I could sculpt one snake and embellish it to look like a one-headed hydra, it would be a simple matter to replicate the head and neck and attach each clone to the body.<br />
<br />
Regarding the position of the heads, I’m not inclined to follow the hydra model in <i>Jason and the Argonauts</i>, where one row of heads is on top of a second row. Apart from looking kind of messy, the heads that are in front will always have a clear advantage over the ones at the rear when it comes to grabbing food.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1pPXQ5o8vrKlyiu1Or8VmQpmpk_tq1mNjuk0UesiYZM6FufnZ8-hqxlxW3bTdOq-QftQxXHqwcdsIje2TzH6OnJyzwEgI80mg-XzxzYvV1qduJCmyvElVefwon3IEBXoff585M0NL-Ss/s1600/HarryhausenHydra.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1pPXQ5o8vrKlyiu1Or8VmQpmpk_tq1mNjuk0UesiYZM6FufnZ8-hqxlxW3bTdOq-QftQxXHqwcdsIje2TzH6OnJyzwEgI80mg-XzxzYvV1qduJCmyvElVefwon3IEBXoff585M0NL-Ss/s400/HarryhausenHydra.jpg" width="400" /></a></div><br />
Instead, I’d like to position all the heads in a single row like the fingers of a hand. It makes more sense to have each set of vertebrae fused side by side, the way it happens among conjoined twin serpents. This design is based on some amazing pictures of snakes with as many as five or ten heads that I found on the Internet.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpG14Hl7fBctzQOPwASdaGIvi32ht1J6WtrC3K0l0BEpuIjrwqrztrsiO0dmU6qAc2E69_v8U1cpqP1MUY9fQ7RFJ7mMFieJ34KneweLPDF2xeiWjovhw57jHS0FnGvF00qJPuVzkCocs/s1600/legit.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpG14Hl7fBctzQOPwASdaGIvi32ht1J6WtrC3K0l0BEpuIjrwqrztrsiO0dmU6qAc2E69_v8U1cpqP1MUY9fQ7RFJ7mMFieJ34KneweLPDF2xeiWjovhw57jHS0FnGvF00qJPuVzkCocs/s400/legit.jpg" width="400" /></a></div><br />
With that plan in mind, I figured it would be a cinch to make a snake model. After all, it is the easiest vertebrate to draw, almost as easy to draw as a worm. A snake has an oval head devoid of any nose, ears, or hair that would only serve to complicate it. Attached to its little head is nothing more than an inordinately long tail. Even a child can draw it, so sculpting it ought to be a simple matter to me.<br />
<br />
I mean, look at some of the things that I’ve sculpted in the past.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4crJtR9SEJYQQ_pjrPoSAnb8rWWUFRv0s9RihnCvT54iaJJfZ-JS9RR_ckqv_FTI9UQAbhdlqFWkPK8OqfvJnroE5O20c6y7hNTmucIRrIJjfVvRkhhkzJZa9Hm46Z_AxYyuKzPK4h-M/s1600-h/KnightHiPoly.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4crJtR9SEJYQQ_pjrPoSAnb8rWWUFRv0s9RihnCvT54iaJJfZ-JS9RR_ckqv_FTI9UQAbhdlqFWkPK8OqfvJnroE5O20c6y7hNTmucIRrIJjfVvRkhhkzJZa9Hm46Z_AxYyuKzPK4h-M/s400/KnightHiPoly.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbb6NfkR4sG6qD_D6PqPxrXjV165m_06nInA3yjlfFlFtn5y3GQfFgR_ijiwd105SMYKn34oMIz3gYmwxbV0ZC2jiV3rBcLlIDu6PdBs83XRJzhiXb2jkL8wtRKmPFsfIBG0oy5f6Newc/s1600-h/PaleHorse.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbb6NfkR4sG6qD_D6PqPxrXjV165m_06nInA3yjlfFlFtn5y3GQfFgR_ijiwd105SMYKn34oMIz3gYmwxbV0ZC2jiV3rBcLlIDu6PdBs83XRJzhiXb2jkL8wtRKmPFsfIBG0oy5f6Newc/s400/PaleHorse.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsYOkGD3cvLJB_q7rXPy2FynaU_SCYPklvX4mwQOMUGQrVh4EcrE-uReqGfpIRIrLe7lJqTp_I60tZMXTUXAsdo9PybvlajknznZAku5213dmEFSy6QJxyXx2Eqq8QwhqdGi0w6hpEZBk/s1600-h/AngelMirror-s.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsYOkGD3cvLJB_q7rXPy2FynaU_SCYPklvX4mwQOMUGQrVh4EcrE-uReqGfpIRIrLe7lJqTp_I60tZMXTUXAsdo9PybvlajknznZAku5213dmEFSy6QJxyXx2Eqq8QwhqdGi0w6hpEZBk/s400/AngelMirror-s.jpg" width="400" /></a></div><br />
Surely a snake would be child’s play for me, right? Right?<br />
<br />
Wrong. Below is my first attempt at modeling a snake. Eat your heart out, Michaelangelo.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqkZIstAQFyllNK8AGoiy2o1hm8LXwtjG5BvwhXtj8vHcHCCbehrxZ_q6fUUHGe0J6b1KP8nyiuppTi8HxzI9vN6FYJXNQi8QZloW3sPfdhvX57ih6WkZmnMsbXWRoaEfB6grhBYhyphenhyphentoE/s1600/snake01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqkZIstAQFyllNK8AGoiy2o1hm8LXwtjG5BvwhXtj8vHcHCCbehrxZ_q6fUUHGe0J6b1KP8nyiuppTi8HxzI9vN6FYJXNQi8QZloW3sPfdhvX57ih6WkZmnMsbXWRoaEfB6grhBYhyphenhyphentoE/s400/snake01.jpg" width="400" /></a></div><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC3-ekoF3Fa_dCr1kt9RThwzCRMU2YoqsbIP_v9rqJSjXWmqzBGvGlLBLdcRytUUEBktk3XDkumILyYfFi_Asq9evvtW732kKVbtSVx_FoPTuAA69_m31vB3yXXP6v6vjqpIHyr-o2Fzo/s1600/Burmese_Python.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC3-ekoF3Fa_dCr1kt9RThwzCRMU2YoqsbIP_v9rqJSjXWmqzBGvGlLBLdcRytUUEBktk3XDkumILyYfFi_Asq9evvtW732kKVbtSVx_FoPTuAA69_m31vB3yXXP6v6vjqpIHyr-o2Fzo/s200/Burmese_Python.jpg" width="200" /></a>Obviously, the body wasn’t quite right. I decided to take a more careful look at my reference pictures. I found that while the neck of a snake is narrower than its head, its body widens considerably towards the middle before tapering down to the tip of its tail. Also, the sides of a snake can be surprisingly flat, rather like a very long and rubbery box.<br />
<br />
<br />
Armed with this new realization, I made another attempt to sculpt a snake.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBAUPLoerJ54Crj7yyYTB1SmgzLjWLmde87itNM_W7_2asoukxO1lGZIpc257sZx1xA3Zs1c4UBNmG2B5jpvxBHjmhq2w4lA4E0cEyMajSlsqqEWWCD8RvyjdTnXmx_nWSuzLpqB6i_mI/s1600/snake02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBAUPLoerJ54Crj7yyYTB1SmgzLjWLmde87itNM_W7_2asoukxO1lGZIpc257sZx1xA3Zs1c4UBNmG2B5jpvxBHjmhq2w4lA4E0cEyMajSlsqqEWWCD8RvyjdTnXmx_nWSuzLpqB6i_mI/s400/snake02.jpg" width="400" /></a></div><br />
What went wrong, I wondered. Why do I have no problem drawing and sculpting complex human bodies but get stuck trying to sculpt a simple snake? The answer wasn’t as surprising as one might think. I have had many years of experience drawing people but have had virtually no experience drawing legless reptiles. The subtle shape of serpents was lost on me.<br />
<br />
Yes, a snake’s body can appear to be relatively flat like a box, but it doesn’t have sharp corners outside of its mouth. I needed more polygons to soften its shape. After one more try, I came up with the following model.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigqOi3GdAHlXapRR6eBFexLH9Od_yg2sBHrMihDLsKzBCYS1-nxgHNnbuXRa97hghjf2jqIgjecO7Pzb88jTuikOe4s1g3aqwX40WKYtTp4TZqmBHv3o8SPPrNhICkwk3CRht8hclxd0s/s1600/snake03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigqOi3GdAHlXapRR6eBFexLH9Od_yg2sBHrMihDLsKzBCYS1-nxgHNnbuXRa97hghjf2jqIgjecO7Pzb88jTuikOe4s1g3aqwX40WKYtTp4TZqmBHv3o8SPPrNhICkwk3CRht8hclxd0s/s400/snake03.jpg" width="400" /></a></div><br />
Not bad, I thought to myself, although the snake looks like it swallowed a whole box of Viagra. I guess it will never look quite right if I don’t curl its body in a serpentine fashion, but I won’t be doing that until I animate it.<br />
<br />
My next task was to sculpt the inside of its mouth. Whereas a snake’s outer form really is uncomplicated, its mouth is a minor marvel of engineering. Not all snakes have teeth, but the ones that do have two rows of sharp, backward curving teeth at the bottom of their mouth and four rows at the top. These teeth are placed along gummy ridges that are present in all snakes, even the toothless ones. Venomous serpents also have two thick poison glands on the left and right side of the mouth way behind the teeth. Delivery of this toxin is accomplished through the use of two fangs, each of which is connected to a poison gland. Where the fangs are positioned depends on the species of snake. Some fangs are at the front of the mouth and some are way at the back, close to the poison glands. Some fangs don’t move inside the snake’s mouth and therefore have to be short to keep the snake from killing itself. The most impressive fangs come from the likes of vipers, whose long, forward-positioned fangs fold inside the mouth when not in use.<br />
<br />
So basically, if I wanted to make life easy for myself, I’d make a toothless hydra with no venom. If I wanted to intimidate the hell out of Chaos Wielder’s players, I’d go for a hydra with six rows of hooked teeth and long fangs that fold inside each mouth. Let’s see, that’s two fangs to animate multiplied by the number of heads that the hydra has…<br />
<br />
Decisions, decisions. Which one do I model?<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH3z8ymbvS4Xr8G6ddovPrs9iG93LCL2vx4zUK7a-DSI39E8sVCqR4Tauu6Ujthm3xITeShDR3Cc2H9bzjBdCqIIUHI5xrNUReVrDp5GFBOG9DecTqeL_OLB5XIfLolNjNMjbF_BjmSls/s1600/snake04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH3z8ymbvS4Xr8G6ddovPrs9iG93LCL2vx4zUK7a-DSI39E8sVCqR4Tauu6Ujthm3xITeShDR3Cc2H9bzjBdCqIIUHI5xrNUReVrDp5GFBOG9DecTqeL_OLB5XIfLolNjNMjbF_BjmSls/s400/snake04.jpg" width="400" /></a></div><br />
Ugh, modeling that mouth was a real b–… Er, I mean, it was really hard to make. Oftentimes, I couldn’t tell where one polygon began and another ended. Making the UV map was a tough challenge in itself. It’s crude work, but I got the job done.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVVr1Ht8JL7tDj894nYuO4a41Q_ierofefDZXj38ISXCJRrK0QfCBn6EIA4okmEX9-jsqBbnu_HFed1nCcQfzksDBgze77oNmjTfO6S6bb5knxTw0xd70xePLKGomEg7qo1oCClbJL-nk/s1600/snake05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVVr1Ht8JL7tDj894nYuO4a41Q_ierofefDZXj38ISXCJRrK0QfCBn6EIA4okmEX9-jsqBbnu_HFed1nCcQfzksDBgze77oNmjTfO6S6bb5knxTw0xd70xePLKGomEg7qo1oCClbJL-nk/s400/snake05.jpg" width="400" /></a></div><br />
Okay, so what I have now is a low-poly snake model that looks stiff enough to stab vampires with. I’m not done sculpting, though. My next task is to spruce it up to make it look like a one-headed hydra. Stay tuned.Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com6tag:blogger.com,1999:blog-9122846242068305603.post-24479387988182490082012-03-04T01:33:00.003+08:002012-03-04T09:38:02.277+08:00Love Is a Many-Headed Thing, Part IIIt’s been a while since I’ve worked on the hydra that I wrote about in my last post. Sometimes life takes us in unwanted directions and puts a monkey wrench in our hopes and dreams. Anyhow, I’ve been reading up on creature design, and there’s this adage that goes, “Form follows function.” This means that any creature’s appearance should ultimately be based on what it is capable of doing. I’ve also been reading some fascinating material about adaptations, which are traits or capabilities that evolved in a species to solve a particular problem of survival. Even in fantasy setting, imagined creatures must abide by these principles for readers or players to willingly suspend their disbelief.<br />
<br />
Let’s take the hydra. Chaos Wielder, for whom I am creating this model, asked me to work within a couple of parameters in designing the creature:<br />
<br />
<br />
<ul><li>The hydra is a many-headed venomous snake like the monster that appeared in <i>Jason and the Argonauts</i>. In other words, Chaos Wielder wants the classical, mythological hydra, not the many-headed dinosaur from the D&D Monster Manual.</li>
</ul><ul><li>The hydra should be appropriate for a swamp setting.</li>
</ul><br />
<br />
Whether I wanted the hydra to sprout two heads for every one that got chopped off was up to me. Now this is fortunate, because apart from the difficulty of creating a model that could do that, this capability just doesn’t make sense. If the hydra is a vertebrate, as all snakes are, where would the neck bones of the extra head attach to? Isn’t there a physical limit to how many heads a hydra can grow? Otherwise, wouldn’t the whole world eventually be covered with hydra heads and necks?<br />
<br />
At this stage, I could see that growing new heads just wasn’t going to happen.<br />
<br />
For a snake to have more than one head raises more problems than it solves. Snakes do not bite off chunks of flesh from their meals. They swallow their prey whole. Snakes’ teeth are designed not for tearing off meat but for keeping prey from escaping their mouth. A snake with more than one head would have a tug of war over who gets to swallow their food. This isn’t a what-if scenario. It’s a fact. Like other animals, snakes occasionally give birth to conjoined twins. A two-headed snake could struggle for hours over which head gets to swallow its prey. Having multiple heads is not an adaptation. It is an accident of nature, and the unfortunate creature with this trait is unlikely to pass on its genes to the next generation.<br />
<br />
But that’s not all, as they say in infomercials. Looking at stills from <i>Jason and the Argonauts</i>, I had more questions that I probably should have asked before I started modeling the hydra. If the hydra is a serpent, why does it have a bird’s beak? Putting in a trait because it looks frigging awesome isn’t a good enough justification. Remember, form follows function. Also, if the hydra lives in the water, wouldn’t having a split tail make it more difficult for it to swim?<br />
<br />
Holy Harryhausen, Batman. After all that work I did on the hydra, I realized I had to start over from scratch. Nevertheless, as they say, no experience is ever wasted. I learned some new creature design principles and 3D modeling techniques.<br />
<br />
In case anyone is wondering, I did make progress. Since the hydra is basically a water serpent with many heads, I’ve been creating a 3D model of a snake.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXtyV5ByVL43zVcElKOZ2ESKca5MujfjqDD1nfroYiVP40bIlEGusL5SAJ1oTcRJA5CS_xCZy5PnX7LQsH5h6JBlyo7hwiONHg2Toir9LYKQJwZyxly5DB7qpRxdz4cK01YFeko1WfUoc/s1600/a_snake.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXtyV5ByVL43zVcElKOZ2ESKca5MujfjqDD1nfroYiVP40bIlEGusL5SAJ1oTcRJA5CS_xCZy5PnX7LQsH5h6JBlyo7hwiONHg2Toir9LYKQJwZyxly5DB7qpRxdz4cK01YFeko1WfUoc/s400/a_snake.jpg" width="400" /></a></div><br />
<br />
Don’t laugh. It wasn’t easy. More on my next blog post.<br />
<div><br />
</div>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com4tag:blogger.com,1999:blog-9122846242068305603.post-44297114516543979522011-12-05T00:52:00.002+08:002011-12-05T01:15:45.681+08:00Love Is a Many-Headed Thing, Part II'm baaack.<br />
<br />
While it may seem that I've pretty much abandoned my modding efforts for NWN2, some things just refuse to die. Once again, I find myself creating yet another NWN2 creature model.What was it that made me return to modding just when I thought I had laid it to rest? Was it love? Was it a compulsive, masochistic desire to post a new file in the Vault that few people will download and even fewer will vote for? Was it a promise that I made to Chaos Wielder years ago to create a new monster model for him?<br />
<br />
Yes, yes, and yes.<br />
<br />
Three months ago, Chaos Wielder emailed me, asking if I still intended to make good on my promise to him to make a hydra model, a promise that I made in 2008 when I was very much active in the modding scene. Truth be told, when I saw last year that few players still cared to download NWN2 mods, I decided to lay to rest my dream of creating Faithless and anything pertaining to NWN2. The iron was no longer hot, so there was no point in striking it. Then along came Chaos Wielder, gently, almost sheepishly reminding me of my promise to him, although he assured me that he wasn't holding me to it. Regardless, I grew up believing in keeping one's promises. I realized then that like vengeful ghosts, the things you say may come back to haunt you.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoPZtWF5O4gIEWKj10bQd8miWJfHAihZGwCnDFvzkSgloRgQ759ui0Qa8vRQqMi5L0-oRTWJQwnIUsMqtVGGKjnFu-gC4nCIINRFpq9EIXvMhovb5ovIKkcOPdyVO_FEFef1BsOgRhWOo/s1600/Hydra00.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoPZtWF5O4gIEWKj10bQd8miWJfHAihZGwCnDFvzkSgloRgQ759ui0Qa8vRQqMi5L0-oRTWJQwnIUsMqtVGGKjnFu-gC4nCIINRFpq9EIXvMhovb5ovIKkcOPdyVO_FEFef1BsOgRhWOo/s200/Hydra00.jpg" width="200" /></a></div>Last week, I finally got around to creating the model that I promised to make. Chaos Wielder wanted a hydra that looked like the creature from <i>Jason and the Argonauts</i>, not the D&D version of the monster. I downloaded a few photos that I could find on the Internet and went straight to work. My hydra started life as a bunch of ZSpheres in ZBrush, an excellent 3D modeling application. Rather than making all seven of its heads, I decided to create only one head and leave six neck stumps for me to replicate the head on later. The finished ZSphere model can be seen here. Kind of looks like a mutated ginseng root, doesn't it?<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj87SWjjtJp9s5-v8d_9ipG9TKEudrPSlX5-0UCQVIuHuqWrP9ysLUVMVlB9H3VWifTvv4YdI-_PIcrdj9Oqb0VFPa4c3m8GGP4fwtwmMT8PBbYKjM7YQEtIyLIyJoTbe13Wj_tL5VNNEU/s1600/Hydra01.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj87SWjjtJp9s5-v8d_9ipG9TKEudrPSlX5-0UCQVIuHuqWrP9ysLUVMVlB9H3VWifTvv4YdI-_PIcrdj9Oqb0VFPa4c3m8GGP4fwtwmMT8PBbYKjM7YQEtIyLIyJoTbe13Wj_tL5VNNEU/s200/Hydra01.jpg" width="200" /></a>I then transformed the ZSphere model into something that is known in ZBrush as an adaptive skin. I sculpted this skin into something vaguely hydra-like, as can be seen in the screenshot on the right. It looks rather like a lumpy mass of modeling clay, but that's just for starters. The next step was to make a more refined model through a process known as retopologizing, which basically means creating a new model by plotting a set of vertices over the old one.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiOzC9tXRU2K9ORMrjJBWgRerNc-awZBPat6pytXRWrss9_jEGoQzjnExr41O_FbsE4npT2dYHDqEXAyOS3e7KDxrx69ZZHXgHPHXGSV_Ehpm9uoRiqco0e1LRLqkRJ-qW4iRG17QK_fk/s1600/Hydra02.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiOzC9tXRU2K9ORMrjJBWgRerNc-awZBPat6pytXRWrss9_jEGoQzjnExr41O_FbsE4npT2dYHDqEXAyOS3e7KDxrx69ZZHXgHPHXGSV_Ehpm9uoRiqco0e1LRLqkRJ-qW4iRG17QK_fk/s200/Hydra02.jpg" width="200" /></a>I had actually gone as far as retoplogizing the hydra last week. Unfortunately, when I attempted to save the model, the application crashed, and my model was lost forever. I was so frustrated that I didn't work on the hydra for the next five days. In fact, I probably would have given up on creating the hydra altogether if it weren't for my six-year old son. He saw me making the model, and he said he wanted me to make a blue one for him. Ah, love. It's what makes a person strive onward with redoubled effort after stumbling down, rather like two fierce heads that sprout from a bleeding neck stump. I still had my lumpy modeling clay version intact, so yesterday, I retopologized the model one more time. The fruit of my masochistic compulsion can be seen here. The model looked more like a hydra at this point, although the neck stumps weren't convincing at all. That wasn't a problem because they were intended to be placeholders for the actual heads.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinSQcIdaen6e_wzkNAyHp1TI1h393HIzLQalYgdTlNZ7cXfb5-iChSVVwLOdFUmeY1aQlEXIaGGEacr70029ADWsr1O8C7xJbn_Ckk4v9j_s8aUQw4E7kLu_36Rip6477Jr2syswzMw3c/s1600/Hydra03.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="109" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinSQcIdaen6e_wzkNAyHp1TI1h393HIzLQalYgdTlNZ7cXfb5-iChSVVwLOdFUmeY1aQlEXIaGGEacr70029ADWsr1O8C7xJbn_Ckk4v9j_s8aUQw4E7kLu_36Rip6477Jr2syswzMw3c/s200/Hydra03.jpg" width="200" /></a>The next step was to export the model as an OBJ file for importing into 3DS Max. I replicated the central head and neck of the hydra and replaced each of the neck stumps with the head clones. I had to painstakingly adjust the vertices on the necks and shoulders of the creature so that I could weld them together.<br />
<br />
When that was done, I exported the model as a new OBJ file, which I imported to ZBrush. Below, you can see how the model looks now. There is still much work to be done, but at least I've nailed the basic shape of the creature.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1A0f0Mv1CRQ4DOMzKSMSrzsgkIyZtiKsaZU9gufGCRfSf_uV_ZQbTNG1ltMSxSCUI-nMIk4gqPsfaYwOj-0lNYDdugHX99KRSaymKAMNp6wr31gbOQGWJDSwfr-mIahIt4C29Vi-cpWU/s1600/Hydra04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1A0f0Mv1CRQ4DOMzKSMSrzsgkIyZtiKsaZU9gufGCRfSf_uV_ZQbTNG1ltMSxSCUI-nMIk4gqPsfaYwOj-0lNYDdugHX99KRSaymKAMNp6wr31gbOQGWJDSwfr-mIahIt4C29Vi-cpWU/s320/Hydra04.jpg" width="320" /></a></div>Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com9tag:blogger.com,1999:blog-9122846242068305603.post-67214442144416085962010-07-31T19:11:00.000+08:002010-07-31T19:11:20.704+08:00My Latest Work in the VaultWhile I haven't been exactly idle in the modding front, my output has been meager thus far. Nevertheless, I do have something of mine that was uploaded to the Vault earlier this week. It's... (drum roll, please...) a new module.<br />
<br />
Ha, ha, gotcha there. If truth be told, I didn't actually make the module. I just provided voice work for one of the characters. It's quite a character though -- the end-game boss, no less. You can hear my evil voice in <a href="http://nwvault.ign.com/View.php?view=Modules.Detail&id=6155">July Anarchy Prologue</a> by JM Scion. Unfortunately, my work is uncredited, so this blog will probably be the only place where I'm identified as the perp. If you still have Neverwinter Nights 1 installed in your computer and if you happen to enjoy science fantasy settings, why not give <a href="http://nwvault.ign.com/View.php?view=Modules.Detail&id=6155">July Anarchy Prologue</a> a go?Frank Perezhttp://www.blogger.com/profile/18195521703160138274noreply@blogger.com3