How to build models for FF7PC Introduction: Hello brave adventurer.... err, no, this shouldn’t be hear :-P Well, this is a document about how to make field models for FF7. If you are reading this I supose you have at least some interest to join the NPC Reconstruction Project. If you don’t know what it is, I’ll just tell you that it’s a project to redo all the NPCs of FF7 so that they look more or less like battle models. That said, we will begin listing what you need to make an FF7 model: - Final Fantasy 7 PC version: Source of P files and final testing enviroment. - LGP Tools: You need Ficedula’s program in order to decomplie and recomplie FIELD.LGP , BATTLE.LGP and MAGIC.LGP, the files that contains all the original models and their textures and animations. - Biturn: You need Mirex’s program in order to test how your models look like. Yes, you could do it directly in the game, but it would take too long. - Kimera: My little program. It allows you to edit the existing P files to some extent in order to make them fit in the new model you are creating. - Paint Shop Pro (or any other kind of 2D graphics editor that’s better than Paint): In order to modify the texture files for the models. - Notepad (on any other kind of text editor): To edit HRC and RSB files. - Imagination: Yep, you need loads of it. FF7 NPCs are pretty simple. If you are going to redo one, you will need to imagine how it actually should be. - Patience: Doing an FF7 model implies a heavy component of trial and error. You don’t really need to know anything about 3D modeling (I don’t know, for example). Remember that we are going to modify existing models, not to create them from scratch. Now let’s start. Brief techincal overview: In order to build FF7 models you will need to have some very basic knowledge about how their structure. FF7 models are split into a heriarchic set of files. Here you have a list of these files: - HRC File: The HRC file defines the “Skeleton” of the model. A “Skeleton” is a set of “Bones” that are translated and rotated by the animations to represent movement. Each “Bone” has a pair of joints (that can’t be changed because they are referenced by animations), a length and a list of RSB files. Example: ---? Joint where the bone ends ---? Joint where the bone starts 6.97045 ---? Length of the bone (distance between joints) 1 BXCB ---? List of RSB files Chest Hip The list of RSB files starts with the number of models that compose the bone. It can be 0 (none), 1 or more. If you put there more than one the resulting bone will contain all the models referenced by the list as if they where a single model. - RSB Files: The RSB files contain a direct reference to the P files that is where the actual 3D data is. However, the also contain a list with the textures used by the model they refer to. Example: PLY=BXCE.PLY MAT=BXCE.MAT GRP=BXCE.GRP NTEX=1 TEX[0]=bxce.TIM - ---? ---? ---? ---? References BXCE.P The same (but needed) The same (but needed) Number of textures used by the model ---? The first texture is BXCE.TEX P Files: The P files contain the actual 3D data for a single part of the model. Example: Fortunately, the files are lexicographically ordered and every file between one HRC and the next one is releated with that first HRC.Well, I think that’s all you need to know about the internal structure of the models. Working with Kimera: Now let’s have a look at the main section of this document: the user-guide of Kimera, the program that let’s you modify the P files. Kimera has a pretty simple interface, but it can a bit unintuitive sometimes. I’ll proced to descrive all it’s options briefly. - Load P file: Simply loads a P file (3D model). Evident. Save changes: Let’s you choose a file to save the currently loaded (and possibly modified) 3D model. If you choose a file that already exists, it will ask you if you want to overwite it. - - Draw mode: Let’s you choose one of the 3 rendering modes available. - Vertex colors is more or less how it would look like in-game. - Polygon color is there just for acuracy purposes beause it shows clearly where is every polygon - Mesh: Well... this is actually useless :-P Color editor: This panel contains options releated with the colors found in the 3D model: - Pallete : This square contains all the colors found in the 3D model. You can select one of them by cliking on it. Then it will be highlighted with a white square. Please, keep in mind that the last color of the list (Black in the example) usually doesn’t really belongs to the model. It’s an extra color that you can use on the model but isn’t there originally. - Red/Green/Blue level: When you select a color, it’s Red/Green/Blue values are reflected here. You can redefine the selected color by changing this values. - Detection Threshold: Well, this one is pesky. Let’s see, FF7 battle models have lighting drawn over them. Consecuently, they have a wide gradiation of the same color. Since working with all of these gradiations would be very unconfortable, Kimera tries to detect all the colors with the same Hue and treat them as a single color. Unfortunatley, there is no way to do this perfectly. It still - - - - recognizes like diferent colors some tht are actually the same. That’s the reason why we need to treat colors that have a similar (instead of exactly the same) hue like the same one. This control allows you to tell the program how aggresive must it be joining colors. If you set it to the maxium, there will be only one color. Please, keep in mind that when you change this control, every change you have made to the color pallete will be undone. Thus, I highly advise you against changing it after you start changing the colors. Brightenss: Allows you to increase or decrease the brightness of the colors. Resize: Change the size of the object in any of the three axis. Reposition: Change the center of the model. Please, keep in mind that it actually ranges between –10 and 10. This is useful for field models, but battle models are way larger and that range is unnoticiable in that scale. Thus, if you want to use parts of a battle model you must first reduce them (resize to arround 4% on all axis). Rotation: This control allows you to rotate the model in any of the three axis arround the center. Keep in mind that this changes will be reflected in-game. Light: This panel allows you to change the position of the light or simply disable it if you don’t want to add pre-calculated lighting to your model. Example (please, keep in mind that the game engine already applies some lighting to the models in-game) Lighting On - Lighting Off More fat/More thin: This allows you to perform a progresive resize following the Z axis. The peak of the deformation is applied at the level pointed by the black line that corsses the object. You can move it up or down by moving the horizontal scroll bar poistioned next to the picture. The “Fix back position...” control allows you to fix the position of the vertices that are considered to be form the rear part of the model. More acurately, those that have a negative Y coordinate. Example: Original After some fat/thin operations - Misc: - Delete all polygons but those with the selected color: Pretty explicit. Will remove all the polygons that have the color selected in the pallete panel. Example: Befor - After Delete all polygons but those with the selected color: It’s the complementary operation of the last one. Horizontal shift: Mmmm... maybe it should say mirror horizontally:-P. Example: Befor After - - Kill precalculated lighting: This options tries to remove the shadows painted over some of the models (mostly battle models). However, the succes of the operation will be very dependent of the pallete detected. If it contains too many (or too few) colors, the result will be pretty messy. If it fails, you will need to paint all the model on you own. - Kill textured groups: This option will remove the polygons where the textures are drawn. This is useful to take the hair of a model and use it somewhere else. If you did such a thing without using this option, you would get white polygons where the textures should be. The modes: - Paint polygon: When enabled, you will paint the polygon where you click with the selected color. - New polygon: When enabled you can create a new polygon by selecting 3 vertices. - Kill polygon: When enabled you will delete the polygons you click on. Well, I think we are done with Kimera for now. As you can see, this is a simple program with simple features. It will get more useful as I add more features I’m plannig. LGP Tools: This program has many functionalities. Some of them are completly unknown to me, so I’ll cover just what we need to know. - - - Extracting files: You can right-click on a file on the LGP and select “Extract” to save it somewhere. I’d rather suggest you to extract all the files at once, though. To do it simply press CTRL+A and tell the program the floder where you want it to place the extracted files. Creating an LGP file: Although you can drag&drop files to an LGP file directly, I advise you againts doing it. There seems to be some kind of bug that prevents some files to be written properly. You’d better create the entier LGP file from scratch every time you want to change something. In order to do that, simply use the “Create” button and tell the program where are the files you want to complie. Keep in mind, though, that building a new LGP file can take some time (and strangely enough, it’s a very variable amount of time). There is no progress bar that indicates the state of the process, the program simply stops responding. When it starts to catch events again it means that the process is over. Creating TEX files: Yep, you can also use this program to do it. In fact, is the only method I’ve found that actually works for me. The TEX files produced by Biturn seem to crash the game and the other program that converts BMP to TEX just crashes for me. Well, to convert a BMP to a TEX file first open an LGP file. Rightclick on any TEX file and select “Replace” (this will destroy the original file, but if you are going to redo the LGP from scratch that’s nothing to worry about). Then extract that file where you want it to be and rename it to with the name you want. With this you have perfectly valid TEX file, but you will need to turn on the transparent color. To do it, open the file with your favourite HEX Editor and change the 8th byte to 01. And that’s it. Just remember that TEX files are 8-bit. That’s all you need to know about LGP Tools. I’d tell you something about Biturn, but frankly, I think it’s simple enough to operate it without further instruction. Since the best way of learning is through examples, lets do a little one: A practical example: Building a model from scratch: For this example we will use th model called Boy_sk (defined in DGCD.HRC). First we will get all the files that compose that model. Sposing that you have extracted all the files of CHAR.LGP, just select the files between the DGCD.HRC and DHAF.HRC and copy them somewhere. You can forget about the animations as most of them actually belong to other models. I suggest you to copy there the standard “Standing” animation AAFE.A. This animation fits for any simple model (those that haven’t got such things as animated hair, like Tifa or Aeris). Now if we select DGCD.HRC using Biturn, we will see how the model looks like: Now we are going to change all the parts of the model by others with more polygons. We can find such files at BATTLE.LGP and MAGIC.LGP. However, it’s very likely that we will need to modify those files so that they look right for this model using Kimera. Let’s start with the head. The head of this boy reminds me a bit to Cloud’s one so we will use that as a base. But Cloud’s hair is way too spiky and it’s factions don’t match with those normal for a kid. There is one more problem: the neck. Cloud’s neck is too wide and, after removing the collar, too short also. We’d better simply cut it off and use another one. But first let’s start with the hair. First we will cut some spikes to make the haircut more normal using the “Kill polygon mode” of Kimera and close the holes this will produce with the “New polygon mode”. We will also change the color to brown: Now let’s cut the throat: We will finish with the head making the factions rounder using several thin/fat and resize operations and changing the lighting and colors so that they fit better for this model: We will talk about the neck later. Now let’s focus on the body. If you’ve tried the NPC Reconstruction project patch you may have already seen this model: As you can see, this character has almost the same parts you’d need for the one we are working on. If you are interested about the origin of this pieces, I’ll tell you that the limbs come from Shiva’s model and the hands and feet are from Cloud’s hires model. They have simply been recolored and resized. The sleeves were done cutting part of the fore-arm, resizing and recoloring (NOTE: This method can produce very nice efects so I suggest you to give it a try). As for the torso, it’s the upper half of Tifa’s body properly deformed using fat/thin operations. I used that torso because it already had braces drawn over it. The neck of the shirt is from Niblehime Sephitor’s model (I think is the only battle model that has one). We have nearly all the body already done, but there are basically 3 things that must be done: - Change the skirt by shorts: We must add a hip and the sleeeves for both legs. I took the hip from Yuffie’s model for no special reason (nearly any hip would do the job when properly modified). As for the sleeves, I did the same as with the shirt ones but this time I had to deform them properly using fat/thin operations and resizing. - Recoloring: Well, the flesh color is different and the braces are blue instead of red. - Adding pre-defined lighting: The model of the girl was made using an older version of Kimera that wasn’t able to draw shadows over the models (like in the battle models). Kimera 0.6 added the feature to do it easily and it really looks better. You can simply skip this step, of course, but I think it’s really worth the extra effort. Just be consistent with the light position you select for every part. Oh, I nearly forgot about the neck. Well you can take it from the girl’s model too. I stripped it from the head of Sephitort’s hi-res model. Just keep in mind that you must reference it in the head bone instead of the torso. It’s important for some animations. Now that we have changed the parts, you will also need to adjust the size of the bones in the HRC file. In this case, you can simply copy the values from the model we borrowed the body from. If you are doing the model from scratch, the only path is trial and error. Well, now you have the 3D model ready. Is that all? Nop. We need to change the textures (basically eyes and sometimes mouth). First of all, keep in mind that you must use a TEX file (or set of files) that fits th model of the head. In this case, we will use Cloud’s Hi-res texture as a base: The final texture for this model must keep the same structure. Of course, there is no need to keep the emblem of the belt. You can simply paint it black. But at least the eye and the mouth must keep the same position and size (more or less) and orientation. Let’s start modifying it. First, the eye is too serious. I suggest using Hi-res Jesse texture. Correct me if I’m wrong, but I think this texture isn’t even show in the game. Yes, I’m sure it’s used in the scene at the train, but you never get to see it. Don’t know why they made it so detailed (way more detailed than those used for standard battle models). Anyway, here is the texture: As you can see, there is a little problem with it: the orientation. Well, simply mirror th image. There is another, more subtile problem: the pallete. In order to keep exactly the same colors, I suggest working directly with this last texture. Of course, you should resize it to the same size of Cloud’s one (128x256 if I remember correcly). Then simply paste there the needed components. As you can see, I changed the eyebrow and made the mouth wider so that it look a bit more innocent: Well, now just follow the instructions provided earlier to turn this BMP to a TEX file and you are done. Anyway, I’d like to give you two more tricks that aren’t needed for this model but that can come handy for others: - What to do if your model has no textures? You can’t add etxtures to the model, but you can take the textured part from another model and kill all the polygons but the textured ones. You can do it by moving the detection threshold to the maxium, selecting the only color left and clicking on “Kill polygons with the selected color”. Then you simply need to reference that model in the list of models of the head. Of course you will probably need to readjust the position or size of that model. NOTE: Keep in mind that if you want that the character blinks, you will need to make the texture model the first in the list. NOTE2: Biturn seems to draw textures a bit further from the position where the game actually renders them. Thus you will need to adjust the position trying the model directly in-game. - What to do if I want o use the eyes from some texture but they have a different color? I supose this can be done with any moderately good photo editor, but I only know how to do it with Paint Shop Pro. You can change the hue of a range of colors via Color->Hue map: As you can see, changing the bar of a color range allows you to change their hue. And after all that work, here is the result: Final notes: Well, this is the end of this FAQ. If you have suggestions, additions or so just let me know. Hope you enjoy reading this more than I enjoyed writting it ?. See ya. Borde 19-2-06
© Copyright 2024