After examining all the available official and leaked information about FFXIV, I will refrain from demonstrating leaked information. However, given the vast range of diversity we have seen with FFXIV's character creator, and clothing, we can safely assume that Square Enix has studied some other means of applying clothes to character meshes without consuming excessive amounts of data space.
I will break it down to several sections using TES4 Oblivion and a certain mod that has been made available at TESNexus - the Eisen, based on the FFXI Level 29 WAR Eisenbrust armor set.
Sec 0. Introduction
- Setting up Mod Directory
- Setting up NifSkope
- Displaying the Eisen Armor
Sec 1. The Eisenbrust Armor
Breakdown of the Eisen Armor
- Meshes & Textures
Sec 0. Introduction
- Setting up the Mod Directory
This is the first step you need to do before installing NifSkope and the Eisen armor files. Create a folder on your desktop labeled "TES Modding". Create a subfolder called "Data" inside that folder. Create two folders inside the Data folder, and name them "Meshes" and "Textures".
Okay, here's how we'll start. First, download NifSkope. It's part of a suite of tools called "NifTools" for modding in The Elder Scrolls 4: Oblivion, intended for use on the GameBryo engine's propietary model format, NetImmerse file. This is a free tool set available to anyone interested in modding. Download the installer into your "TES Modding" folder.
NifSkope Link: http://niftools.sourceforge.net/wiki/NifSkope
Next, download the Eisen Armor from The Elder Scrolls Nexus. The file is over 2MB, and because of site policy, you must have a registered account in order to download it. Download the file into your "TES Modding" folder. It is a .7z file, which can be opened with WinRAR or other similar compression utilities that support the format. (Many Oblivion modders use the .7z compression format because it has become the "standard" in the modding community)
Eisen Armor Link: http://www.tesnexus.com/downloads/file.php?id=25389
- Setting up NifSkope
Install NifSkope into any directory you wish. Upon installation completion, NifSkope will run. You should have a screen like this:
NifSkope Screenshot 1
Click on "Reader" then go down to "Settings". You will be greeted with a four-tab settings screen, with the file directory listing as blank. Click on "Add Folder", then click on "Folder" at the bottom of the "Custom" box. Browse to the TES Modding folder's "Data" folder on your desktop and click OK. Here you can also adjust your other settings to make NifSkope run more smoothly. That is at your discretion. After establishing your settings and directory, click the "X" button in the upper right of the settings screen. Your settings should be similar to the image shown below.
NifSkope Screenshot 2
Next, open the Eisen .7z file you downloaded, and extract the Data folder into the TES Modding folder. Allow it to overwrite anything already in the Data folder.
- Displaying The Armor
Almost done. Now that the Eisen armor has been installed into your modding folder and is ready to be viewed, go back into NifSkope and click on the "Load" button at the upper left. Navigate to your TES Modding folder, go into Data/Meshes/Armor/NK/Eisen, and then open NKEisenArmor6.nif.
NifSkope Screenshot 3
Once you do that, you may notice that the exposed skin segments of the armor around the hips are pure white. Why? Well, I'll explain that later.
-Breakdown of the Eisen Armor
Now that you've got the model displayed, let's look at how it breaks down into individual components. The first level of components of this model is the meshes. Start by uncollasping the "0 NiNode Value" item on the left. Adjust the "Name" column width to display them fully.
NifSkope Screenshot 4
What do you see now? We have a list of two different kinds of objects: NiTriStrips, and NiNodes. NiNodes are basically skeleton objects that the model and meshes are bound to. NiTriStrips are the actual mesh objects themselves. Click on the NiTriSTrips object called "up". You will see that the meshes related to that specific part of the model are highlighted as shown in the previous image. Now explore the model by clicking on different objects in the left hand window of Nifskope. You will notice that different components of the model are highlighted.
- Meshes & Textures
If you are familiar with modeling in 3D StudiO Max, Maya, or Blender, you will understand that the best way to create a character model is through the use of meshes, segmented polygons of a model that is given its own identity to help make it easier to animate, customize, or otherwise graphically present it in a video game or Computer-Generated Imagery. This "identity" given to each mesh comes with their own set of values that determine how they are presented to the viewer.
Uncollapse the "Up" NiTriStrips as shown. Widen the Name column to show it fully. Now we have six items attributed to that object. Look at the NiTexturingProperty, NiSpecularProperty, NiMaterialProperty items. Those determine how the object will map the mesh with a texture file. Uncollapse NiTexturingProperty. You should be seeing what is shown in the screenshot below.
NifSkope Screenshot 5
The NiTexturingProperty is where the mesh will look for the texture file to render onto the model with. This can be a texture map designed to be altered with RGB values, or it can be a unique texture meant for an extremely rare armor item in the game.
The NiMaterialProperty is where you will find the RGB values of the mesh. This can be used to change the ambient, diffuse, specular, and emissive colors. You can also adjust its Alpha values, which determine its "invisibility", depending on how the textures are made. Some DDS texture files have alpha mapping, which will allow portions of a mesh to become invisible, allowing it to show whatever is rendered beneath it. Glossiness is basically the "shiny" factor.
"But wait! How does this relate to how models in FFXIV works?" you may ask, well. For the answer, move on to the next section.
As you already know, FFXIV has a high degree of character customization, skin colors, hair colors, and the like. How is this achieved? If you studied and experimented with how the meshes interacted in the previous section, that would be readily apparent to you. By studying the GameBryo engine in Oblivion, the developers of FFXIV are giving themselves a strong understanding of how to increase customizability of the characters and NPCs while minimizing the amount of files required for each character. How?
By having a Base Model of each character and NPC as the foundation, and then creating variations on those models by adding different meshes that have different texture addresses that point to the skin texture, the armor texture, the clothing texture, metal straps, and so on. In FFXIV's case, it may be possible that Square has added multiple texture addresses for a single mesh in the same model file, and having the game engine reference the correct address for the correct item in the game.
"I still don't understand?" If you don't, then maybe I'm not doing it right. Remember earlier when you saw the exposed-skin meshes of the Eisen armor being milky white? That's the base model's texture. If you go to the Foot:Legs NiTriStrips' TexturingProperty entry in NifSkope, you'll notice that its address points to a default skin texture in the file structure of Oblivion.
In FFXI, the textures for a given model were all in the SAME texture file, with the exception of the head which is a separate model. This created customizability issues and limited Square-Enix to just one skin color for each race. By adopting the meshing texture illustrated here, they are making it easier to create armor and textures without interfering with your unique character's appearance, in fact they are enhancing the game's visual diversity.
For the DAT modding community in FFXIV, if Square Enix used methods similar to that used with the NetImmerse File format, modding in FFXIV will get easier because then you can alter the mesh information, instead of the entire model (and potentially breaking the model); you can swap out the texture addresses to point to new texture files. Additionally, with NifSkope, you're able to copy and paste meshes from other model into a model of your choosing - an example is that I once found a cape I really liked from another model, but didn't like the armor that came with it. So I opted to copy the cape mesh and paste it into a copy of my favorite armor model.
Eisen Armor With Cape!
In closing, I must emphasize that Square-Enix most likely did not copy the NetImmerse method of models, meshes, and texturing letter-for-letter, but used it as inspiration for their own Crystal Tools Engine. In fact, individual meshes have become a very common technique in today's video game industry, because it becomes easier to texture and is less labor-intensive to map out where the textures will be applied onto the model.
For example, a character like Marcus Fenix from Gears of War 2. Can you imagine all that texturing work on that character model being confined to a single texture file? Preposterous, the texture file would become inordinately huge, and mapping out how the texture would be applied to the model would result in a lot of wasted space in the texture file. Imagine it as a 4096x4096 pixel bitmap file. You've got all the textures of Marcus Fenix in that file, and all the space between each mesh segment in the texture file adds up to more hard drive space consumption.
So it is much more practical, in terms of labor and storage economics, to break down a character model into separate meshes and assign those meshes specific values that will call up their dedicated texture information. It has the added bonus of being more modder-friendly.
However, it remains to be seen if Square-Enix will be as friendly to graphics modders as they were in FFXI.
Edited, Apr 17th 2010 4:25pm by KatoArabel