Jump to content

Welcome, Guest!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

Search the Community

Showing results for tags '4 - professional'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Buildings
  • Characters
  • Maps
  • Mods
  • Scripts
  • Skins and Textures
  • Vehicles
  • Weapons
  • Servers
  • Miscellaneous


  • Welcome to MultiPlayerForums.com
    • Community News
    • Introductions
    • Discussions
    • Media
  • Games
    • Games Discussion
    • C&C Renegade
    • C&C Renegade-X
    • Other Command and Conquer
    • Unreal Tournament
  • RenHelp.net Read-Only Archives
    • Buildings
    • Characters
    • Maps
    • Mods
    • Scripts
    • Skins And Textures
    • Vehicles
    • Weapons
    • Dedicated Servers
    • Miscellaneous
  • C&C Renegade Mutant Co-Op's Discussions
  • Tiberium Crystal War's Help
  • Tiberium Crystal War's News
  • D&D Players's Looking for Group
  • D&D Players's General Discussions
  • C&C Renegade Imperial Age's Discussions
  • C&C Renegade Imperial Age's Bug Submission
  • Tiberium Crystal War's Discussions
  • BlackEagle CTF's Topics
  • BlackEagle CTF's Moderator Application
  • Home sector colonization's Topics


  • Age of Empires
    • Age of Empires 2 HD
    • Age of Empires 3
  • Command & Conquer
    • C&C: Generals & Zero Hour
    • C&C: Imperial Age
    • C&C: Red Alert
    • C&C: Red Alert 2 - Yuris Revenge
    • C&C: Red Alert 3
    • C&C 3: Tiberium Wars
    • C&C: Renegade
    • C&C: Renegade-X
    • C&C: Tiberian Dawn (95)
    • C&C: Tiberian Sun
    • C&C: Tiberium Crystal War
    • C&C: 4
    • C&C: Ultimate Collection
    • C&C: The First Decade
  • Counter Strike Global Offensive
    • CS - Hostage Rescue Maps
    • DE - Bomb Defusal Maps
    • FY - Fight Yard Maps
  • Killing Floor
    • Maps
    • Server Side
  • Unreal Tournament 3
  • Unreal Tournament 4
    • CTF Maps
    • DM Maps
    • Mutators
    • Servers
  • Tiberium Crystal War's Downloads


  • Community Calendar
  • D&D Players's Game Events
  • Tiberium Crystal War's Events

Found 12 results

  1. Level Of Detail Model tutorial Here is an example of the HLOD model of the GDI Hummvee, The image shows us the amount of polys and what distance the model will render at... The HLOD system is also used when the settings are set lower to provide better performance.. the engine will choose an appropriate level of detail depending on what the slider is set to in the configuration menu... To create a new HLOD model, we will need 4 models.. You can add addition models but 4 is a good number to start with For this tutorial I will be using a tiberium crystal model that was orginally created for TCW and is in use across different maps on UltraAOW, You can get the example file used here Let's begin! First thing you notice I have 4 different models spread across the y-axis... and for mesh models "mcryXX" etc.. at the end of each mesh name is followed by a .00 .01 .02 etc.. The highest poly model you wish to display must be centered at 0,0,0, on the XYZ axis.. the remainder can be spread across the y-axis like mine is... the only one that matters is that .00 model.. It must be centered in the world axis.. the other files will be originated at the highest poly model on export anyway.. When done creating your model you will need to create " Origin " bones for level. As you can see above the small box centered to each level is a Origin box, and then each of the different level Origin box is linked to the proper 00, 01, 02, 03 level meshes When I create LOD models, I tend to create the highest poly mesh and simply clone it and move it aside to create and edit lower poly meshes... you can edit the material, vertexs, faces, or anything to create a lower polygon model of the highest mesh Here are the settings I used for the Origin bones and the actual mesh of the crystals, you can also take a look at the file provided for reference, I did not apply collisions to the actual crystal as I did not want the model to interfere with bullets,characters,vehicles... You can however change it to your preferences.. Once all the Origins, Meshes are completed, you can now export the model to W3D.. once exported the W3D is not complete.. we still need to configure the render distances and export the HLOD info.. Ok so open up the model in W3DViewer As you can see the model is loaded, and rendering the highest polygon model ( .00 ) Currently the HLOD is not setup to switch to lower poly models... and we will set them up and export to a model that will automatically switch depending on the player camera distance. Since we have 4 models we will need 4 spots to where each level will render ingame... Keyboard Keys to switch between levels of detail are [ key and ] key and spacebar to set the render distance First I want to get the viewer camera set to about 25 units away.. you can see this at the bottom of the viewer under Camera Now at about 30 units is want the model to switch the the .01 model, set the camera to 30 and press [ to render the next level ( .01 ) press spacebar to set the distance.. Now move back to about 40 to render the next level ( .02 ) press [ again and spacebar to set distance Now move again back to about 50 to render the last model ( .03 ) press [ and spacebar Now that we have set the distances we can check our results of the switching, go to LOD>Auto Switching then move you camera back and forth and you should see the model switch from the high poly model to the lower poly models...and after 50 units the crystals won't render at all We've completed another step in the process but we need to export this new LOD model.. Go to file>export>LOD and make sure to save the file in a different directory as the other model we exported from max.. so you'll end up with 2 W3D files that share the same name... Now w3dviewer doesn't export the LOD information.. so you will need to use TT 4.0 tools to get it working, we will need to use mergelod.exe to export a correct W3D model with the proper distance settings, so we can use it ingame Now drag and drop both files into mergelod.exe once dropped the file is now ready to use.. notice the 1kb file... that is the information file, the larger 2,023kb file is now the proper file to use... open your larger W3D file and check Autoswitch option.. it will now properly switch the models when you import into Renegade.. You can delete the 1kb model and simply rename the 2,023kb model back to the original file name without the (2) Thanks for reading and goodluck! You can get the TT 4.0 Editor/Game tools here
  2. 4 - professional Lightmap tutorial

    If you wish to host this tutorial elsewhere please let us know below.. I have finally gotten around to creating a simple tutorial on how to get lighting effects from 3DSMax 8 into Renegade, Some would call this "lightmapping" when using this and some other tools TT have developed you too can get professional looking shadows, lighting effects... just one thing i should mention, this method is not dynamic lighting, but rather static baked in lighting Let's begin Open your completed level, textures are optional, but recommended that the level be completely textured before starting the process. Just easier to render and see the effect the lighting will have on the level Here I have placed some lights and other atmosphere effects to the scene. Let's render [F9] the scene and check out how the lighting looks, Everything looks fine, When you happy with the final product move on to the next step. **Remember to render often to check for lighting errors or glitches be sure to look at all surfaces etc.. Now that our lights are done, lets hide them and just keep the terrain I want to lightmap visible, First thing you want to do is clone all the terrain pieces you wish to apply the lighting to... In my case, it is the concrete boxes and ground. [Right Click > Clone] Now both pieces are cloned simply move them to the side, Leave it there for now, we will work on that in a bit.. As you can see I've moved mine a bit off from center. Now select the original two pieces and remove the materials from them [utilities Tab> UVW Remove>Materials Make sure "Set Gray" is checked] With the materials off the original meshes, we need to combine them for the lightmap. [utilities>Collapse>Collapse Selected] This will make the pieces into one mesh. Now that it is one mesh, we need to apply a UVW unwrap, Select the mesh [Modifiers>UV Coordinates>Unwrap UVW] Now that it has applied a UV unwrap we need to flatten all faces for the lighting information. ** Before moving on set the "Map Channel" to 2, we will need to remember this for later Under "Selection Modes" click on the third button to the left "Face Sub-object Mode" then select all faces in the scene [Ctrl+A] to select all, then we need to flatten, [Mapping>Flatten Mapping]. Once that is done just use the defaults that are displayed on my screenshot. Click "Ok" when done. The modifier should auto-flatten to something similiar to what i got pictured above. Once that is done, move on to the next step. Now we need to render the lighting information to a texture, [Rendering>Render to Texture] This will provide a pop-up of the settings of the texture we will render, Set the Padding to 64, Object should "Use existing Channel" then set the channel to 2, we set this channel from earlier... Continue down to "Add" button, Click on it and select "Lightingmap" after it will provide you with the ability to change the file name and type of the texture output [To change output location click on the " ... " ] **For lightmaps I tend to make them DDS with DXT-1 settings, and Use a 256x256 size Once you are happy with file name and output location press "Render", You should see a pop up with the lightmap texture, something like my lightmap pictured above. Once rendered close the pop up windows Now the lightmap texture is applied to the original mesh, At this point we need to detach the single mesh back into the orginal two pieces we started with.. [Right-Click on the mesh>Detach with the element tool] Once complete move on to the next step. Now this is where the cloned copy of the original comes into play, We need to attach the cloned pieces to the lightmapped pieces. Ground>Ground, Concrete Boxes>Concrete Boxes... Once you attach the cloned copy to the lightmap meshes a pop up will appear [Pictured above] leave those default settings and press Ok. Now that the pieces are attached together we need to re-apply the materials over the meshes, Once complete move to next step Now the two pieces are retextured we need to get rid of the cloned mesh we made earlier [Mine was the top one] just make the mesh editable and select and delete the cloned mesh [Pictured above] We are left with the one piece, Now we need to apply the lightmap texture we made earlier to the materials of the Ground and Concrete Boxes.. Go into the material editor [ M ] and apply the next step settings to the materials. Vertex Tab, Stage 1 Mapping should be set to 2 Shader Tab, Pri-Gradient set to "Disable", Detail Color to "Scale" Textures Tab, Check Stage 1 Texture, And place the Lightmap texture you output earlier here, Click on "Clamp U" and "Clamp V"Once completed close material editor and Export your scene into a W3DOnce all is complete and lightmap textures are applied to the mesh/meshes.. You will need to add a user defined parameter.. Right click, goto properties and goto User Defined tab... There you will see a text box add the line [ Prelit=true ] - everything in between the brackets.. And apply this line to all lightmapped mesh.. This is so that the Renegade vertex lighting system ignores these pre-baked light meshes Here is my completed level with Lightmap applied in W3D Viewer...Enjoy! and experiment!! This is what the model looks like without a lightmap texture and using default vertex lighting instead Hope you guys learned a bit from this... you can now go and create some cool looking levels with this method of lightmapping I've provided for you...It can get very complex for larger, more detailed levels, so you will need to dedicate quite sometime to do it right! I've only covered the basics on this tutorial, but I'm sure you guys can experiment and achieve more... Good luck and please feel free to post any questions you might have about Lightmapping in this tutorial thread...
  3. 4 - professional "VIS" Sector Tutorial

    VIS Tutorial By Pwn Call ------------------------------------------------------------------------ Intro First I recommend that you read through this whole tutorial before you start it as well as the comments on the following pages. That way you can see why you need to do things a certain way and it may be different for your type of map. This way you can fix the issue early before you are too far into to it. VIS is a system that Westwood created that allows for better FPS when playing Renegade. The basic principle behind VIS is that it allows your computer to only load what is visible in that specific map from where you are located. So for example if you are inside one of your buildings it won't bother to load the interiors (and most likely the exteriors) of the enemy base because they aren't in your line of view. I learned how to do VIS from YSL Muffins original VIS tutorial which can be found here. This tutorial is quite in depth but can be quite confusing as well so hopefully mine is a little less confusing while still explaining it well. Also I use one of his pictures in my tutorial so credit goes to him. ------------------------------------------------------------------------- Step 1 - Create your level Usually I like to make my level first then add my VIS sectors at the end, you can add them as you go if you want but I think it gets more confusing that way. Also you should only set up the sectors in Level Edit once you are done with everything else, otherwise things can get messed up easily. Step 2 - Determine which type of sectors will work best with your map type If your map is: Flat - Use the plain sectors as shown in this tutorial for the entire thing, also make sure you add them for lower or higher levels of terrain, for example the tops of high rise structures or other high or low places you can get to. Very Hilly terrain - Use the method to create sectors where you clone your terrain, and detach several vertices at a time. This will take much moretime but works much better with hilly terrain, allowing for much fewer VIS glitches later on. Also make sure to look closely for VIS glitches around the really steep parts of your map. Mostly flat with some steep hills - Use the flat plain method for the flat parts of the map and use the clone terrain part for the hills. Step 3 - Create your VIS Sectors Alright here we go! So VIS sectors are basically meshes that lie below the surface of your map and you must create a VIS sector anywhere the player's camera can reach. For example when you are in first person mode the camera is exactly where the players head is, however in 3rd person mode, or more importantly when you are in a vehicle, the camera is somewhere above and behind the player. So with that being said you don't only have to put the sectors anywhere your player can go, but also off the edges of the map where they camera may be. So look in this next example of me making my sectors for my map, they might not need to be that far off the sides but it is better to make them further off rather than not far enough off because it will give you hassles later on. Also I use a standard plane with 1 segment to keep poly's low and I believe the size I used was 25x25 meters. I wouldn't go much bigger than this with your sectors or a whole lot lower, it also depends on the size of your map. Another important thing to do is to name your sector, I usually call the first one I make VIS and then when you clone it it will name the next one VIS01 and so on. This way you can select them all easily later because they will go under all of your terrain. Now before you start cloning them all over your map make sure you lower them on the between about 1 and 1.5 meters. Then clone it. And repeat until you have the VIS sectors cover all of your terrain like so. It is extremely useful to use the Grid tool for this so it is easy to line them up, if you don't know how to use the Grid there is a tutorial I made here. Also remember this map I am doing is all flat so planes work well for this. For most maps which are not flat you will have to create your VIS sectors a little differently. The best way to do it is to clone your floor terrain and lower it. Once you lower it you will have to select several vertices at a time and detach them until you have all of the sectors separated. Don't forget to lower it! It also helps if you do this before you texture it but it isn't necessary. Now not only do you have to do this for your terrain it has to be done anywhere where your character can get to. For example you can see White Nyte's here which is walk onable so I have to make a sector for this like so. And don't forget to lower it! Now you don't have to put VIS sectors on everything, just things that are much higher or lower than the existing sectors. For example the top of White Nyte's is most likely too high for the sector and the ground to be effective, that is why I am adding on for the roof of the building. But smaller things like curbs or rocks that you can go on are low enough that you don't need to make a different sector for. I believe a sector works 10 meters above it but remember it is 1 meter below the ground and the camera can go up higher than your character or even higher in vehicles. Test it out and see what works best for your terrain. Also the renegade buildings come with their own VIS sectors built in so you don't need to add them to the buildings. Step 4 - Exporting Before you export there is one more thing you have to do. First select all of your VIS sectors. Do this by selecting them by name which is really easy (if you named them VIS like I told you to earlier) Now we have to set the W3D options of the VIS sectors. With them selected click on the Hammer icon on the upper right of your screen, then W3D Options. Then check off both hide and VIS under the collision settings. This allows your VIS sectors to be invisible but still work. They won't disappear in Gmax but they will be gone in LE. Alright now you are good to export your map to Level Edit. Step 5 - Level Edit Set Up So now you should have exported your map with all of your sectors into Level Edit. First I would make sure you set everything else up in Level edit like buildings, waypaths, presets, etc. Also you have to have a Pathfind Generator somewhere on your map to set up the VIS or else Level Edit will crash when you set it up. Now to start setting up you must do these 4 things in this order. The last 2 will take a while because it is creating all of the VIS points, and make sure you set the granularity to about 5, if you go any lower it takes a TON of time. If you have a crappy PC I recommend 8, you will just have to add more manual VIS points later. Alright that took a while! Now you are almost done. Now what you have to do is walk around and look for VIS glitches. A VIS glitch is where the system thinks you cannot see an object so it won't load that object when in reality you should be able to see it. It looks something like this... That is the inside of the refinery and there is a mesh there covering up that hole but it doesn't think you are supposed to be able to see that mesh. So what you must do is create a manual VIS point. To do this just hold down the control key and hit the accent button which has these symbols on it ` and ~ (left of the 1) so Ctrl+`. Once you do that it should fix the VIS glitch and make that mesh or object reappear. If it doesn't reappear try moving around or moving the camera around slightly and try it again, some VIS glitches are stubborn! Some cases if it can't be fixed it may be because there isn't a VIS sector in that location and in that case you need to go back to RenX and fix it. Common places to look for these VIS glitches are as follows: Most of the Renegade buildings have them especially in and around the doorways, the hand of nod by the ped area windows has a ton of them so look there very thoroughly or add your own sectors to that spot, entrances and exits to tunnels, areas that have really steep slopes, corners, etc. Also for finding ones around doors you can hit Ctrl+Shift+T which will hide the doors. Note that this also hides all tiles like trees or other objects you have made in your level, so once you are done around the doors hit Ctrl+Shift+T to make them reappear. Once you make a manual VIS point it will appear in LE like a little camera to show where you have them. Now walk all over your level and look for them, it is easier to find them in 3rd person mode because the camera swings wider so you will have more luck finding them. After you walk around the whole level and find them all you can do it one more time only with tanks viewpoint. Do this by going to the Camera tab then choose the Mammoth Tank. This should make your view look somewhat like this Now when you are going around in this view you don't have to go anywhere a tank couldn't go. Also use the Mammoth tank because it has the widest turn radius for the camera. Really check the edges of your map and around buildings well cause these are places that are prone to VIS glitches. ------------------------------------------------------------------------------ Flying Maps For flying maps you have to have more than just the VIS layer under the ground, every 9 meters or so in height you need to add another layer until you reach the flight roof. That is really the only difference for flying maps. ------------------------------------------------------------------------------ This is a very confusing tutorial for those of you who are new to VIS, so ask any questions you have below and I will help to answer them. Also if you know more about VIS than me let me know if I did something wrong or if there is a better way to do something!!!
  4. Originally Posted by Jonwil, ported to the new RenHelp by Generalcamo, with additional information added. Firstly, a bug has been identified in the vertex solve code related to meshes with bump mapping such as water. With the fixes provided by 4.0, you no longer need to hide water meshes before you run "compute vertex solve". Secondly, another bug was identified whereby meshes that have no vertex colors and have an opacity of less than 1 set in their material settings would be treated as though the opacity was set to 1. This has been fixed The most well known example where the opacity bug can be seen is with the glass in the nod airstrip tower. With the new fixes, you will no longer need to hide any of the glass on the stock renegade buildings (including the air tower and the hand of nod) before you run "compute vertex solve". Thirdly, 4.0 adds a new feature to the vertex solve code that lets you completely disable vertex solve on a particular mesh. This is intended for meshes where the vertex solve still screws up even with the above 2 features as well as for vertexes that contain pre-calculated lighting baked into the w3d file. (such as lightmap textures) To use it, you select the mesh in 3DS MAX and open the "Properties" dialog. Then you click on the "User Defined" tab. In that box you type "Prelit=true" (without the quotes). This will cause the vertex solve code to completly ignore this mesh (i.e. its essentially same as hiding the mesh before you vertex solve) The process is similar in Gmax/RenX. NOTE: If you are using the Prelit=true feature on a mesh that is part of anything other than terrain, ALL the meshes in that w3d file need to be Prelit=true otherwise it will screw up when you run the vertex solve. Before we go into some of the deeper and more complicated stuff, here is some information about w3d you might need to know: 1.Buildings have a prefix set in the building definition 2.Meshes that contain the building prefix followed by the ^ character are exterior meshes for that building 3.Meshes that contain the building preset followed by the # character are interior meshes for that building 4.Buildings can also have lights associated with them. Lights will match the building if the name of the light (which is taken from the .wlt file, see below) matches with the mesh prefix of the building. 5.Lights in renegade can come from 2 places, they can be directly placed into leveledit or they can be placed via a .wlt file 6.Every light in renegade has a "group ID" and a name. 7.A .wlt file is a file that is associated with a terrain .w3d file and contains one or more groups of lights. 8.When a .wlt file is loaded into leveledit, the lights are given names matching the .wlt filename. 9.The first group of lights in the .wlt file are given a "group ID" of 0, the second group is given a "group ID" of 1 and so on. 10.When a building is initialized, it creates 4 lists (actually 5 if you count the building aggregates but that doesn't matter for this discussion) and fills them with the appropriate data. The InteriorMeshes list contains all the interior meshes for the building. The ExteriorMeshes list contains all the exterior meshes for the building. The PowerOffLights list contains all the lights with a name that matches the building and a "Group ID" of 1. The PowerOnLights list contains all the lights with a name that matches the building and a "Group ID" of 0. 10.Meshes can have "Alternate materials" associated with them. This is basically a second set of material data stored in the .w3d file. (this second set of data may contain textures, shader settings, material settings, texture coordinates etc) 11.When a building is destroyed, the alternate materials on both the interior and exterior meshes are enabled. When a building goes low power, the alternate materials on the interior meshes are enabled. 14.When a building is destroyed or goes low power, all the lights in the PowerOnLights list are disabled and all the lights in the PowerOffLights list are enabled. With these fixes, we have also identified how to make Alternate materials and alternate lighting work. The alternate material feature will only work properly on terrain and will only work on meshes that are prelit (i.e. those that have "Prelit=true" set) The alternate lighting feature will only work properly if the meshes being lit all have Prelit=true set. Meshes which do not have Prelit=true (and therefore get lighting from the vertex solve) will probably not look correct when the lights switch to the "power off/dead" set of lights. To use the alternate lighting feature you do the following: (there may be other ways to generate .wlt files, I am only describing the way I know to do it) 1.Load leveledit and create a blank map 2.Place the building interior terrain for the building you want to add lights to at 0,0,0 (i.e. so that 0,0,0 in the building terrain is at 0,0,0 in the level) 3.Create any light presets you like and place them anywhere in the level (but presumably they will be inside the building). These will be the "normal" lights 4.Choose Lighting-Export... from the menu. Save the lights as e.g. normal.wlt (the name doesn't matter, I am using normal.wlt for this example) 5.You can (if you like) save this level with the placed lights in it for later further work if you like (you dont need to though) 6.Delete all your "normal" lights 7.Place your "dead" lights (which will also be used when there is low power) 8.Choose Lighting-Export... from the menu. Save the lights as e.g. dead.wlt (the name doesn't matter, I am using dead.wlt for this example) 9.You can (if you like) save this level with the placed lights in it for later further work if you like (you dont need to though) 10.Put wltmake.exe, memorymanager.dll, normal.wlt and dead.wlt in a folder. Open a command prompt and go to this folder. 11.Run wltmake out.wlt normal.wlt dead.wlt. Instead of out.wlt in that command, use the name of your building interior mesh but with a .wlt extension (so if the building is mabar_int.w3d, the wlt file would be mabar_int.wlt) 12.Copy the new output wlt file into your always.dat file or whatever (somewhere LE and the game can find it) 13.Edit the preset for your building interior terrain and set m_LightFilename to the name of your new .wlt file 14.Repeat steps #1 to #13 for all the buildings that need special lights 15.Once that is complete, open up each map that contains the newly-lit buildings. 16.Delete any instances of the building interior meshes (or of any terrain that proxies them in) and re-insert them into the level so that the lights get pulled in. 17.Save and re-export the map. 18.Enjoy your new lighting (hopefully) To use the alternate materials feature you do the following: 1.Take your mesh in max or gmax and apply the "normal/alive" materials (including any light maps you may have created) 2.Export this to a w3d file (lets call it normal.w3d for this example) 3.Edit the mesh and apply the "dead" materials (including any light maps you may have created) 4.Export this to another w3d file (lets call it dead.w3d for this example) 5.Put both w3d files, memorymanager.dll, altmat.exe and w3dlib.dll in a folder. Open a command prompt and go to this folder. 6.Run altmat out.w3d normal.w3d dead.w3d replacing out.w3d with the name of the output mesh you want (i.e. the name that matches the building you are working with) 7.Place the new w3d file in a place that leveledit and the game will find it. 8.Export your maps as normal 9.Load the game and enjoy your new materials The things you can change between normal and dead materials are: Vertex colors Texture coordinates All the values on the Vertex Material tab All the values on the Shader tab All the values on the Texture tab EXCEPT for the "Stage 0 Texture" and "Stage 1 Texture" checkboxes Changing anything else (including geometry or pass counts) will not work and may lead to crashes (in altmat or in the game). Remember that you can't rename a w3d file so make sure you use the correct output filename.
  5. Boning a VTOL-Vehicle Because I was asked this several times, here a little tutorial. I used the Helicopter that comes together with the Westwood Vehicle Pak that you can download at: ftp.westwood.com/pub/Renegade/tools Open your model: When I refer to a `bone` in this tutorial, this simply means a StandardPrimitives Box with the size of 1x1x1, created in the Top-View, here is an example: The name, is the same as the bonex name, for example if the VehicleP bone is mentioned a box 1x1x1 with the name VehicleP and the W3D Options [ ]Export Geometry unchecked. Get started: First we need a Rotor00 bone, for (belive it or not) the rotor, place this in the rotation center of the rotor of your helicopter: Now we must link the rotor to the rotor00 bone. Use the Linking tool , select the rotor, and Drag and Drop to the rotor00 bone. the box will flash when you release the mouse button to indicate the linkin was successfull. If you acidently linked it to another object, don`t mind. Just link it to the right bone, you might want to use the other view`s to archive your aim easier. To controll the linking (also in later stages) deactivate the Linking tool by clicking for example at the selection tool (or any other tool than the linking) and you will come up with a window like this, activate the Display Subtree Option You see the rotor00 bone, and a little shift to the right the TopRotoShape (what is the name of the rotor). So everything is right. I`ll post some images of this dialog in the further process of the tutorial so you can controll your work easilie. Now we will go on with the rear rotor create a rotor01 bone for the rer rotor. Just create it the same way as the top rotor, but rotate is 90 degree to the right in the Front View. To easilie do this you can rightclick on the rotate tool . Now move the bone to the rear rotor, and link it to the rear rotor mesh. You should now have a result like this: By the way: You should save your work from time to time Arm your vehicle At the moment your vehicle can`t fire a wepon, nor can be shot. We will change this now. Every Vehilce can have a primary ammo and a secondary ammo. Also it can have two "pods". We will create just pods for primary ammo. Create a MuzzleA0, and a MuzzleA1 bone in the Top-View. Place them there where later the Rockets should be relased. Congratulation, your vehicle is now able to fire the hell out of some enemys. But isn`t it unfair that they can`t fire back ? So select all meshes of your helicopter and activate the [x] Projectile W3D setting for this. Add Worldbox and Boundingbox Create a box named Worldbox that covers all part of the helicopter what later should be collide whith physical things Activate (*)OBBox [x]Hide [x]Physical, [x]Vehicle, [x]Camera, as the W3D-Settings. Create another box, covering all parts of the model only activate OBBox and Hide. Your vehicle can now shoot, and can be damaged, you are now nearly finished with the RenX part. Help your helicopter move over the ground create three new bones WheelP01, WheelP02, WheelP03. rotate them 90 degree in the top view to the right or left, or use the rotate tool by right clicking Place them all at the vheels postion. This will later help your helicopter to move out of the warfactory/above the ground. Finish Linking Now you must link all Bones to the Mainbody, also the Bounding and Worldbox: Export your model Here is an image of my completly boned model: Now export it e.g. as v_my_heli.w3d wit these settings: Add your vehicle to Leveldit Browse to the Apache Preset and klick to ADD (or TEMP if you want to use it in a mix map) Enter a name, and change the model to your w3d file: I also changed the weapon type to the MLRS Ammo: Load your map and add the helicopter Load your map, and click add, also don`t forget some startupspwaner: Export the Modpackage and test your helicopter ingame. Problems that might occour: My helicopter shoots in the wrong direction! - Rotate the Muzzle Bone My Helicopter fly into the wrong direction! (WTF?) - Group all your Stuff and rotate it 90 degree I want a MG/Wepon that can be moved (like the orca/apachee has) - Just create a turret/barrel/muzzle liek for a normal vehicle I need more rotors - Just add rotor02, rotor03 and so on A note by SeaMan "Your can have only four rotor bones (rotor00,rotor01,rotor02,rotor03). "
  6. Creating the turret: Of course the firs part is, that you create your turret in GMAX/RenX, you are restrickted to this rules: * Only one turret * maximum 2 different weapons The one I using in thuis tutorial is a modified Flack that I once boned for Warpath: Creating the three parts for the turret A turret consists of three logical parts: The base (red), the turret (blue) and the barrel (yellow) To archve this select one mesh from the base and activate in the Modifier Tab the attach button: Now click on every object that is part of the base, maybe a warning pops up: Select the first option and press ok, go on, untill everything for the base is attached to one object. Now deselect Attach!! Now repeat this for the Turret and the base. After that, select your bottom, name it: v_bottom, the turret: v_turret, the barrel v_barrel. These Names doesn`t really matter, but this naming make it easier for you alter to identyfy what object is the right one. Get the needed bones and MuzzleFlash: Goto file --> Merge Browse to your RenegadeTools directory. Westwood provides you with the gmax version of the Humvee. Select that file: After that a little dialog pops up, select the following Items: Press ok, you will now recognize some new stuff in your Gmax-Scene: Press `H` and select the merged objects: Now rotate the object so that the Muzzleflash is infront of your gun: Now its boneing time: Select the turret.00 bone. First action is remove the .00 from the name. Now move it (DON`T ROTATE IT!) to the position where the roation centere of your turret is. The turret later will rotate around this position: Next one is the barrel.00 bone. Remove here also the .00 and move this bone tho the position where the barrel later will go up/down: Now its time for the MuzzleA0.00. Remove the .00, move this bone to the position where the bullet later should leave your turret: Positioning of bones is now complete. If you have not done it until now, save your work. The LinkAge: Now you must `Link` your Objects to the bones. That simply means, that if the Bone is moved, this object is also moved. Select your v_turret, activate the Link () Mode. Then press `H` and Link it to the `turret` bone: Now select the v_barrel and link it to the `barrel` bone. Deaktivate the Link Mode and press `H`, activate [x]display Subtree, it should look like this: Most work is done now. Final RenX steps: select all your V_ objects and activate the W3D collisons setting: Projetile: Create a box that covers your whole turret, name it Worldbox: activate the following W3D settings for your Worldbox: Congratulation! The RenX Part is done and you can export your Turret as Hirachial Model: Adding your turret to your Mod: Open up Commando with your Modpacket, goto your Preset tree and go: Object --> Vehicles ---> mounted ---> Nod Turret --> Nod turret MP -- Nod Turret MP improved and Press ADD (or TEMP if you want it for a .mix map): Enter anName, e.g. Tut_Turret, under The Physics Model Tab select your exported W3D: Press OK, load your Map and add it:
  7. Basic Ground Vehicles Tutorial by BrainSpitter Preparation. What you will need for this tutorial 1.)GMAX and the Renegade Mod tools package. 2.)A model of a vehicle you will use. 3.)Basic knowledge of GMAX Reference Wheel Bones There are 4 types of wheel bones in Renegade, in this tutorial, we are only concerned with 2, the WheelC bone (center bone) and the wheelP bone (wheel position bone) Wheel `C` bone The Wheel C bone determines the center of your wheel for wheeled vehicles, for tracked vehicles, they do not matter as much. Your wheel will rotate around this point (you must attach the wheel to this bone for this to happen) For conventional tracked vehicles, DO NOT attach this bone to your tracks (it will make them spin around, trust me, you don`t want this) Wheel `P` Bone The Wheel `P` bone determines the contact point of your vehicle to the ground, if you put this bone away from the bottom of your wheel/track, your vehicle will float. To make tank treads work properly, you must attach your tread to this bone. WorldBox There MUST be a worldbox in your vehicle or else you will not be able to import it into the map editor (you will get an error saying: error, worldbox not found) The Worldbox is actually the `matter` of your vehicle, without the worldbox, you will walk straight through your vehicle (not to mention not being able to get into it) The worldbox does not determine when damage is done to you, this is done through your vehicle model`s body itself. Turret Bone The turret bone determines the center of rotation for your turret. Attach your model`s turret so it will spin correctly. Barrel Bone The barrel bone determines where the connecting point of your barrel is, you should connect your barrel object to this bone. Muzzle bone The muzzle bone determines where projectiles will come out from your model. There can be up to two MuzzleA bones and up to two MuzzleB bones. The `A` bones are used for the primary weapon of the vehicle and the `B` bones are used for the secondary weapon of the vehicle. example: the mammoth tank`s primary weapon is it`s cannons, so there are 2 muzzle A bones on its barrels (one on each), its secondary weapons are its rockets, so there are 2 muzzle B bones on its rocket launchers (one on each) Tutorial This tutorial will walk you through the steps to creating a Bradley M3A3 Tank which uses a cannon for it`s primary weapon, and a rocket as its secondary weapon. 1)Combining objects. Open up RenX and open up your model. Theres my Bradley, as you can see, its all in seperate pieces. The first thing we want to do, is to combine parts together to create a few sections that we will use later on. These parts will be: The Chassis - basically the body of the vehcile which does not include the turret, barrel or tracks. The Barrel - The tube which the projectile shoots out of. The Tracks/treads (or wheels) - each tread/wheel must be a seperate piece. To combine different objects to create a single object, you have to use the "attach" command. The easiest way to do this, I`ve found, is to assign a hotkey for this command. to do this, on the top menu, hit `customize` then click `customize user interface` this will bring you to this window: Here I`ve selected the `attach mesh` command and given it a hotkey (just type in the key you want to assign `attach mesh` to in the box labeled `hotkey`) *note, I don`t think your model needs to be a mesh in order for it to work, but in this tutorial, I am using meshes select one object of your turret`s and press your hotkey. next, click on another object, it will bring up a list of attach options, the default is fine, click `ok`. *note, depending on what your model is made up of, you should choose the correct attach feature, I used attach mesh because my model is made up of meshes, if you cannot attach things, its probably because you`re trying to attach something thats not a mesh/patch/poly (depending on your hotkey) to change what your model is made up of, select an object, right click and select `convert to` notice that now your two objects are now one, continue to do this untill you combine all the objects that make up your turret into one. congratulations! you`ve just created your turret! Now, select your turret and rename it (in the circled red box on my pic) to v_turret Now combine the parts that make up your barrel (if you have more than one object for your barrel(s)) and rename it/them v_barrels Now combine the parts that make up your chassis and rename it v_chassis Now combine the parts that make up each one of your wheels/treads and rename them: V_tread_L (for left tread) V_tread_R (for right tread) (or if you`re using wheels, wheelR1/2, wheelL1/2) *I doubt it really matters what you name them, but I`m not 100% certain Ok, now that we`re all done with that, I now have 4 objects on my stage, the chassis, the barrel, the turret, and the left and right tracks. The next step is to make your vehicle shootable, drivable and selectable. This is all achieved at once. select all your objects (not your bones world box or origin if you have them in already) and click on the `utilities` tab in the upper left corner of the renx window (the tab with the hammer on it) Click on "W3d tools" scroll down to where it says "w3d export settings" Deselect "export transform (bone)" if it is selected Geometry options should be set to `normal` and set `colision options` to projectile (make sur no other otions are selected) *note, if you have anything grouped, this will not work, so if the options are unselectable, go to group/ungroup in the renx menu) and thats it! Now its time to create the world box. 2.)Creating The world box. The worldbox is what determines collision in the game, ie./ like when you hit something when driving, or someone hits you. The easiest way to make a world box, is to import it from the sample mammoth tank model that was included with the mod tools. To do this, go to file, select "XRef objects" click "add" (in the upper right of the window) and find the mammoth tank model, it should be in C:\Program Files\RenegadePublicTools\HowTo\Vehicles\Mammoth Tank select the mammoth model and click "open" a window will pop up with a list of all the objects in the model, find the one named "Worldbox.00" and the one name "Origin.00" (not the other origins like origin.02) select them (you can hold down ctrl to select both at the same time) and click `ok` your screen should look like this: select the worldbox and origin and click "merge" they will then be put into your scene (if you cannot see them, zoom out). The world box may be alot bigger than your model, just resize it to fit it, if it is too big, or too small ingame, you can always go back and resize it later. You`ve just created your worldbox :-) It should also be as small as possible while still containing the wheels and bulk of the body of the vehicle. here you can see my worldbox with my tank. Now we want to move the origin into the center of your vehicle. First, select your origin, an easy way to do this is to hit "H" to open up the select by name window, if hitting "H" does not work for you, go to edit/select by/name in the menu bar. Once you`ve selected your origin, just move it into the convergence of axis on your stage (where all the axis meet) Now we have to align the vehicle properly. go to edit/select all. now use the rotate tool on your toolbar to rotate your vehicle, the worldbox. Rotate your vehicle so that the `Z` axis points upward in relation to your vehicle, the "X" axis points forward, and the "Y" axis points left. notice the axis and where they are pointing in relation to my vehicle. Now align your vehicle so that it centered on your axis like this: in the "top" view port , the axis should be align in the very center of your vehicle, this is the Vehicle`s CENTER OF GRAVITY, if you place your vehicle too much in front of the axis, your vehicle will lean forward, too far back and your vehicle will lean backward, etc. in the Front viewport your axis should be aligned not too far up, not too far down, the further up you put your axis, the easier it is for your vehicle to tip over, the further down, the harder. The next step is creating your bones. 3.)Creating bones. Every vehicle needs bones or else it will not work. There are 4 types of bones, but in this basic tutorial, we are only going to use 2, every wheel needs at least 2 bones, the Wheel `C` bone (or wheel Center bone) and the Wheel `P` bone (the wheel position bone) The Wheel C bone determines the center of your wheel, its the point at which your wheel rotates around, this is important for Wheels, but not so important for Treads, you can either create your own bones by making boxes and such, but if you`re lazy (like me) you can import them from the mammoth sample like we did with the worldbox (which works just as well) So go to file/XRef objects, click `add` again, select the mammoth tank model (C:\Program Files\RenegadePublicTools\HowTo\Vehicles\Mammoth Tank) and once again the window will popup with a list of all the objects in the model, scroll down to find the wheels, you`ll notice there is a whole crap load of em, all we`re interested in are the WheelC01R.00, wheelC02L.00, wheelP01RL.00, WheelP02R.00 bones, so select them and click ok. A screen will popup saying "one or mosre objects you have selected has a transform animation. Do you wish to merge this animation?" click `No` select the wheels (don`t select the worldbox or origin) and click `merge` and the bones will appear on your screen.(if you cant see them, zoom out) Now the first thing we have to do is get their axix lined up. This is very important or else your vehicle`s driving controls will be all messed up.(you`ll get forward instead of backward, left instead of right etc.) select your wheel P bones. in the circled red box on the top menu bar, it should say `view` change it to `local` now if your axis on your wheel P bones DO NOT look like the ones in the picture, change them, to do this, use the rotate tool and rotate the boxes, notice how the wheel `C` bones turn as well, this is what we want. after they are aligned correctly like in the pic above, the wheel `C` bones should also be aligned correctly, for the WHEEL C bones, on the `top` viewport, the `z` axis should be pointing down and the X axis should be pointing forward. (this is not like the wheel P bone, do not get these mixed up) Now move these boxes to the correct position, the two boxes with the `L` at the ends of them should be on the left track, the ones with the `r" should be on the right. like so: *note, you can change the size of your bones if you want. make your wheel P bones touch the bottom of tracks, this is the contact point at which the ground meets the wheels/tracks, but make sure to keep your boxes inside the worldbox. your wheel C bones should be int he center of your wheels if you are using wheels, if you`re using tracks, it doesnt really matter where you put them. Next we will make the turret, barrel and muzzle bones. The turret bone is the point at which the turret spins aroun. The barrel bone(s) detemines the point at which the barrel is connecte to your vehicle. The Muzzle bone(s) determines the point at which projectiles come of your vehicle. You can have up to 2 muzzle a bones and two muzzle B bones. Muzzle A bones are where your vehicles` primary weapon comes out, muzzle b bones are where your vehicles secondary weapon comes out. Again, I find the easiest way to do this is to import them fromt he mammoth model, so go to file/XRef objects, click add, select the mammoth model, and from the list, select the objects: Turret.00, Barrel.00 and Muzzle0.00 and muzzleb0.00. click ok, select ONLY your new bones fromt he list and click merge. Now the first thing we want to do is to align these correctly, the fastest and easiest way to do this is to first select the bones (not your wheel bones, just the turret, barrel, and muzzle bones) and if you still have "local" selected in the circled red box in my pic, change it to "view" and click the tab on your right menu named "hierarchy" click the buttons labeled "Pivot" (if it`s not alreayd selected) and "affect pivot only" then click on the button labeled "align to world" now click on "affect pivot only" to deselect it and click on the button labeled "dont affect children" so the bones will be easier to move. now move the bones into their correct position. Here are hwere they need to go (again) The turret bone is the point at which the turret spins around. The barrel bone(s) detemines the point at which the barrel is connecte to your vehicle. The Muzzle bone(s) determines the point at which projectiles come of your vehicle. You can have up to 2 muzzle a bones and two muzzle B bones. Muzzle A bones are where your vehicles` primary weapon comes out, muzzle b bones are where your vehicles secondary weapon comes out. Heres where my bones are going to go: You can change the sizes of the bones if you like, just use the scale tool. (next to the rotate tool) Good, now we have all our bones!, we`re almost home! The next step is renaming some of the objects and linking all of your objects together correctly. 4.)Linking It`s very important that you link your objects together correctly for them to work properly. We will begin by renaming some of the objects that we imported. WheelP01R.00 WheelC01R.00 WheelP02L.00 WheelC02L.00 Origin.00 Worldbox.00 For all of these, we need to delete that .00 after them, the.XX that you saw in the mammoth model objects are what LOD (level of detail) they belong to, .00 is the lowest. Only one LOD shows up in game at a time, so if you named something with a differen .XX number than everything else, that thing would not show up ingame. to rename them, hit `H` or go to edit/select by/name, select them one by one and rename them in the menu to your right. just delete the.00 off the end. after that, we are ready for linking. Press "h" again or edit/select by/name click the box labeled "display subtree" to select it. you`ll notice that some things are already linked, thats fine. To link things, select the CHILD (the one to be linked under another object) click the "select and link" button and click and drag from the child to the parent. When you see the little folder thingy change color (you`ll know when you see it) release the button and the object should light up for about a second. This means that the two objects have been succesfully linked together. To confirm this, select the `move` tool or `rotate` tool or any other tool because if you don`t the link will not show up in the hierarchy, press "h" or edit/select by/name and check to see that the two objects you wanted to be linked are linked. This is how you want your things to be linked when you`re done. Worldbow is linked to origin. V_chassis is linked to origin. Turret(bone)and both WheelPs (bones) are linked to v_chassis Barrel and v_turret are linked to turret (bone) MuzzleA0(bone) and v_barrels are linked to barrel(bone) MuzzleB1(bone) is linked to v_turret V_tread_R and WheelC01R(bone) is linked to wheelP01R(bone) V_tread_L and WheelC02L(bone) is linked to wheelP02L(bone) All your bones are now done. The next step is to do a one frame animation. nothing big, don`t be scared. 5.)preparing for export. In order for your wheels to be moveable (up and down) we need to do a little one frame animation. First, click the animate button on the bottom of your Renx window: It will turn red when you do, what this does, is it records a keyframe everytime you make a change to the scene. so make sure not to do anything else escept what i tell you to do, and turn it off when you`re done. after you`ve clicked one the animate button, select your wheels and type "1" in that box with the key icon next to it (this advances you to frame one of your scene) now tuck in your wheels to their highest position, "as if your vehicle has jsut fallen off a skyscraper and landed directly on its wheels" Before: After: notice i did not move the worldbox or anything else except the wheels and its bones. now turn off the animate button (just click it again so its not red) and you`re done! Thats right, you`ve just completed your first vehicle model! w00t! now we have to export it, just go to file/export and save it into your mod folder (in the level editor file) The next step is importing it into level editor. 6.)Importing into level editor. Open up your Renegade level editor. first we have to make a map for your vehicle to go on, if you already have a level you want to use, then thats fine as well. to make a map, just click the "+" sign next to the terrain folder on your right, click the "+" sign next to levels-muliplayer, select a map and click `make` on the bottom of that window. wait a while and your map will appear, use the numpad to navigate around. now click the "+" sign next to the `object` file, click the `+` sign next to `vehicle` and for my Bradley, i will replace the nod light tank with my model, so I click `nod light tank` and select `cnc_nod_light_tank` and click `mod` at the bottom of that window. click the tab labeled "physics model" and click the folder icon next to the modelname box, browse for your vehicle and double click it. amke sure there is NOTHING in the dependencies tab and that there ARE Enter and Exit commands under the transitions tab, (if there isnt, then you wont be able to enter or exit the vehicle) now click ok and lcik make on the bottom of that window, you should see your vehicle appear. Now just save your level, and export your mod package to your Renegade/data folder. Congratulations, you`ve just created a working renegade vehicle!
  8. Introduction Renegade uses a form of rigid body dynamics to simulate a wide variety of vehicles. All of the geometric characteristics of a vehicle are determined directly from a model which is exported from 3ds-max. For example, the number, placement, and behavior of any wheels in the vehicle is determined by the set of “bones” in the model. Many wheel configurations can be defined by the model: front-wheel drive, four-wheel steering, all-wheel drive, tank tracks, etc can all be set up. Parameters such as the mass, engine strength, and suspension stiffness are set in the Renegade level editor. Balance The first thing to do is to position your vehicle model such that its center of mass is at the origin in MAX. In the X-Y plane, the CM (center of mass) should usually be placed exactly at the centroid of all of the wheels in the vehicle. If the CM behind this point, the vehicle will lean backwards on its suspension, if it is in front of this point, it will lean forward, etc. In the Z axis, the CM should be placed some distance below the center of the object to help prevent tipping over when turning corners. Collision Detection (WorldBox) As is the case with all objects in Renegade, you can use separate meshes for projectile collision detection and physical collision detection. In the case of vehicles you have to use a single OBBox named "WorldBox" for physical collision detection. (Note: physical collision detection is used when the object is moving in the world, projectile collision detection is used when the code is determining whether bullets hit the vehicle). For projectile collision detection, just use some representative meshes from your model. The WorldBox OBBox must be linked to the origin of the vehicle, and be aligned with the world axes. It should also be as small as possible while still containing the wheels and bulk of the body of the vehicle. The physics code in renegade collides with objects in a buffer zone near the surface of the worldbox so it should not completely contain the model. Below is a screenshot of a WorldBox. Note how the WorldBox does not extend all the way to the front, top or back of the vehicle. WorldBox checklist · It should be named exactly "WorldBox" (or "WorldBox.00" when part of an LOD model) · It should only exist in the top LOD of your vehicle · It should be set up to export as an OBBox · It should be Hidden · It should have its Physical and Camera collision settings enabled · It should be the only object in the vehicle model with Physical and Camera collision enabled · It should be as small as possible while still containing the wheel contact patches in their initial position (more on this later). Wheels Wheels are defined by adding bones with a particular naming convention into your model. All vehicles, including VTOL aircraft, have wheels. At the bare minimum, there must be two bones per wheel; one to define the contact point of the wheel and one to define the center of rotation of the wheel. The code will use the pivot points of the wheel bones to determine the following things: the initial position of the wheel, the radius of the wheel, the axis that the suspension travels along, and the axis that the wheel rotates about. The two basic bones needed by each wheel are the "WheelP" (wheel position) bone, and the "WheelC" (center) bone. Below is a view of a wheel from the Humm-Vee model (with the WheelP bone selected). Note that the z-axis points along the direction of travel of the suspension and the x-axis points forward. Also, the pivot point of the WheelP bone must be contained inside the world-box. The initial position of all wheels should be at their extreme topmost point; imagine that the vehicle has just fallen off a skyscraper and landed directly on its wheels. Attached to the wheel position bone, you need a bone which defines the center of rotation of the wheel; the WheelC bone. Below is a view of a wheel with both bones set up. Again, the important axis is the z-axis, it points along the axis of rotation of the wheel; in the "Top" viewport in Max, the z-axis should be pointing down your monitor (for all four wheels). The graphical representation of the wheel is then attached to the WheelC bone and will rotate and translate as the vehicle is simulated. The simulation pays no attention to the graphical representation of the wheel or even whether it exists or not. The hierarchical linkage for a simple wheel should look like the one below. Note that the WheelC bone is attached to the WheelP bone; not the other way around. The `E` at the end of each of the names above is a flag signifies that this particular wheel applies the engine force at its contact point. Through this naming convention you can create four-wheel drive, front-wheel drive, or rear-wheel drive wheels. Other flags that are available include: · S - The wheel will turn when the vehicle changes its steering parameter. · I - The wheel will turn in the opposite direction of the vehicle`s steering parameter (rear wheel steering). · E - The wheel will exert the engine force at its contact point · L - The wheel is part of the left track of a tracked vehicle · R - The wheel is part of the right track of a tracked vehicle · F - The wheel is "fake"; it will graphically move with the vehicle but no forces are computed. The complete naming convention for a wheel bone is below. The name always starts with the word `Wheel`, followed by a single character and a two digit number (e.g. WheelP00). Following the digits, any of the above flags can be added. Wheel {P,C,T,F} {00} [E] [L] [R] [F] Here are some examples of valid wheel bone names: · WheelP00ES - The contact point of wheel 00 which has the engine force and steering applied to it · WheelC05 - The rotation axis of wheel 05 which only exerts a suspension force and rolls with the vehicle Advanced Wheel Settings You may notice that there are two more types of wheel bones that have not been described yet. These bones can be used to create wheels whose suspension moves in a manner more complex than simply translating along the z-axis of the WheelP bone. First I`ll show an example of a translational constraint using a WheelT bone. This example is from the front wheel of the Nod Recon Bike: The presence of the WheelT bone in a wheel hierarchy causes the wheel to translate along the Z-axis of the WheelT bone rather than the contact point bone. This is used for the front tire of the Nod Recon Bike. The rear wheel of a Recon Bike rotates along an arm. This can be accomplished by using a WheelF bone. Below is a picture of that situation. The WheelF bone will be rotated about its Y-axis to maintain contact between the wheel and the ground (see the picture for how to set it up). This is probably the most complex type of wheel to create... Look at the Nod Recon Bike for reference. Wheel Checklist · Each wheel should have a bone named WheelPxx and WheelCxx (where xx is a two digit number) · All wheel bones should have all W3D options disabled except for Export Transform · The wheels should be positioned at their extreme topmost position (smashed into the vehicle) and their contact points must be contained inside the world box of the vehicle. · The hierarchy should look like this: Origin->WheelP->WheelC->Graphical Wheel · The Z axis of all WheelP bones should point along the direction of travel of the suspension · The X axis of all WheelP bones should point towards the front of the vehicle (direction of rolling) · The Z axis of all WheelC bones should point along the axis of rotation of the wheel (typically down in the Top viewport) · All wheel bones should have their flags set (append an `E` to the wheels that are attached to the engine, append an `S` to the wheels that steer, etc) Turrets Vehicles can have turrets which can fire weapons. The turret aiming motion is generated by the game code as long as certain bones are present in the model. There are three types of bones involved in controlling a turret. The `Turret` bone will be rotated to set the turret`s `heading`. The `Barrel` bone will be rotated to set the tilt of the weapon. And the `Muzzle` bone will be used as the location to create projectiles from. Below is a picture of a the turret from the GDI Mammoth Tank: In the above picture, you can see that there are several muzzle bones. There can be up to two MuzzleA bones and up to two MuzzleB bones. The `A` bones are used for the primary weapon of the vehicle and the `B` bones are used for the secondary weapon of the vehicle. All of the bones follow the convention that their axes should be aligned with the world axes; Z is up, X points towards the front of the vehicle, Y points to the left of the vehicle. If you create your boxes in the `Top` viewport, they will be oriented in this fashion automatically. One improvement over the linkage shown above would be to attach the V_Barrels mesh as a child of their Muzzle bones because the game engine automatically applies a recoil to the muzzle bone (attaching them in that way would cause the meshes to recoil when the weapon is fired). Turret Checklist · The model should contain a `Turret` bone, a `Barrel` bone, and one or more muzzle bones (up to two MuzzleA and two MuzzleB bones) · The bones should be connected in the hierarchy shown above. · Visible meshes in the model should attach to the appropriate bones so that they move when the game logic controls the turret (i.e. the turret mesh should be attached to the turret bone so that it will rotate properly) · All of the bones should have their pivot points aligned with the world axes. · All bones should have Export Transform enabled and Export Geometry disabled. Engine Special Effects VTOL vehicles can control bones to display engine effects. Here are some examples of engine effects: · The flame on the Orca engine lengthens when the vehicle accelerates or climbs (EngineFlame) · The Orca engine rotates forward and back as the vehicle accelerates or decelerates (EngineAngle) · The rotors on helecopters spin when they are in flight (Rotor) Any bone present in the model which starts with the name "EngineFlame" will translate along its Z-axis along with the vehicle`s acceleration. Any bone present which starts with the name "EngineAngle" will rotate about its Z-axis. In the screenshot below, the EngineAngle bone for one of the Orca engines is selected. Below it is the EngineFlame bone and not shown is a skin which has vertices attached to both bones and stretches as the EngineFlame translates. Helicopter vehicles can use the EngineAngle bone to tilt their rotors as they fly forwards and backwards. In addition, they can contain `Rotor` bones which will spin about their Z-axis when in flight. The parameters for how much these bones rotate and translate are all controlled through settings in the level editor. Engine Effects Checklist · "EngineAngle" bones will rotate about their Z axis · "EngineFlame" bones will translate along their Z axis · "Rotor" bones will constantly spin about their Z axis while the object is in flight Vehicle Damage As a vehicle becomes damaged, the game code can un-hide particular bones in your model. This can be used to show damage by attaching emitters to those bones since emitters in the model will start emitting when the bone they are attached to becomes un-hidden. There is support for three stages of damage, activated when the model reaches 25%, 50%, and 75% damage. When the model loses 25% of its health, all bones whose names begin with DAMAGE25 will be un-hidden. Once the object has lost 50% of its health, all bones whose names begin with DAMAGE50 will also become un-hidden. And when it has lost 75%, the DAMAGE75 bones will un-hide. Physics Parameters All of the actual physics parameters are controlled through the level editor. When creating a vehicle, the first thing you have to do is choose the physics model that it will use. There are four main physics models for vehicles: WheeledVehicle, TrackedVehicle, Motorcycle, and VTOLVehicle. Parameters common to all vehicles · Mass - the mass of the vehicle · GravScale - a scale factor that is applied to the gravitational force on the vehicle, normally should be 1.0. · Elasticity - not currently used. · AerodynamicDragCoefficient - controls the amount of drag. · Spring Constant - spring constant for the suspension (even VTOL vehicles have a suspension) · Damping Constant - damping in the suspension springs · Spring Length - suspension length, wheels start at their initial position and can translate down this far · Traction Multiplier - scales the amount of traction available to the vehicle · Lateral Moment Arm - length of the rotational moment arm for lateral forces at the tire contact patches. this lets us fake the lean of the vehicle when turning without having to adjust the W3D model. · TractiveMoment Arm - length of the rotational moment arm for tractive forces at the tire contact patches. This lets us control how much the vehicle "dives" when it brakes and how much it leans back when accelerating. · EngineFlameLength - if the vehicle has an "EngineFlame" bone, this controls how far that bone will translate. Since this parameter is available to all vehicles (not just the Orca), we could create things like Recon Bikes and cars that have a flame emitting out of their engine. Parameters specific to ground vehicles · MaxEngineTorque - this is the torque that the engine can output. For tracked vehicles we don`t have a sophisticated engine simulation; this torque is simply divided between the wheels and applied (also scaled by user input) · EngineTorqueCurveFilename - this is the engine torque curve (relates torque to engine RPM). These curves are created with the "SimpleGraph" tool · Gear Count - number of gears in the transimission · GearRatio[0-6] - transmission gear ratios · FinalDriveGearRaio - gear ratio in the differential · DriveTrainInertia - inertia in the drive train components · ShiftUpRpms - point at which the code shifts into a higher gear · ShiftDownRpms - point at which the code shifts down to a lower gear · MaxSteeringAngle - maximum angle of the steering tires · LeanK0 - internal torsional spring constant for motorcycle "balancing" · LeanK1 - internal torsional damping constant for motorcycle "balancing" Parameters specific to VTOL vehicles · MaxHorizontalAcceleration - acceleration of the vehicle in the X-Y plane · MaxVerticalAcceleration - acceleration of the vehicle along the Z axis · MaxFuselagePitch - angle that the vehicle pitches when acclerating forward · MaxFuselageRoll - angle that the vehicle rolls when strafing or turning · PitchControllerGain - spring constant for the pitch controller · PitchControllerDamping - damping constant for the pitch controller · RollControllerGain - spring constant for the roll controller · RollControllerDamping - damping constant for the roll controller · MaxYawVelocity - how fast the vehicle can spin · YawControllerGain - how fast the vehicle reaches its MaxYawVelocity · RotorSpeed - how fast the `ROTOR` bones should spin · RotorAcceleration - acceleration of the `ROTOR` bones · RotorDeceleration - deceleration of the `ROTOR` bones
  9. How To make your own Full Conversion Mod. Written by Oblivion165 _______________________________________________________ This is a Tutorial on how to compile your own mod. Such as Reborn, RenAlert ect. During this tutorial i will use the name Renegade2 as the mod name. Your will need these things to complete the task: A De-Mixer (Mix, Dat, Pkg Extractor) i highly suggest "RenegadeEx" RenegadeTools 2 Basic Skills with Renegade, some more advanced skills are needed. Hard Drive Space Step 1: Preparing First Copy Your renegade folder, except Always.dat, Always2.dat and none of the .mix`s. Paste it in your westwood Dir. Rename it to your mods name, such As "Renegade2" Open LevelEdit and make a new mod called "Always", Copy Scripts.dll, and Scripts2.dll from your "Renegade2" Folder and paste them into your mod folder, you do not have to put it in a scripts folder. Open your Extractor, and open Always.dat from the original Renegade\data Dir. Step 2: Hard Part This is the hardest, longest part, be patient, it will go faster than you think. A list of the needed files to run Renegade is here: Always List As you get these files out of Always.dat, dump them into your mod folder. After you have All of the files from the list, Extract your mod as "Always.dat" in your Mod Folder. The Game should be able to load fine now. If you would like to play on a map just make a quick one, Keep in mind that the regular renegade maps wont run, they are missing building files and such. Step 3: Customization As you go through the list of files you will see common types. Here is a generalized list of what they are and what they do. "If_" Mostly Menu Items, Renegade menus are w3d files. "Hud_" Images of Pt`s Your Personal Hud, and Health info "H_a_" Player Animation, Runing shooting, everything "W_" Weapon Models "F_" First Person Models "C_" Character Models "S_" Bones, Gestures Editing these files will allow you to customize Renegade, but most of the Customization comes from LevelEdit. From LevelEdit, Edit the Strings Table, Object Names, and change models. in your always.dat mod folder change all of the model or sounds or whatever to what you want, then Export the Always.Dat Again. To make maps for your mod, the easiest thing to do is copy the Existing Folders from your Always Folder. This way it have all the same setting as your always.dat, and your wont get bugs in game. Thats all i can help you with, the rest is up to you. Enjoy. This is a list of every item you need to run your own Always.Dat, There are alot of extra files in here that arent needed.These files will let you run the game, every menu item and function, Every Character model and gun. This may look like alot, but use your Mix Extractors Search abilities, such as alot of the names are similar such as hud_health1.dds and hud_health2.dds, so instead of searching for each one, search for "Hud_" and extract everyone that comes up. 000101_a.wav 01_tracer_op.dds 01lv1-cliff8.tga 0201oldwood.tga 0201wdbeams.tga 0201wdbeams2.tga 0203lathe.tga 03-ammoclip.mp3 18_lampflare2.dds 19_bmflare1.dds 19_bmflare2.dds 19_bmflare3.dds 19_buletshell.dds 19_flareft.dds 19_lcflare1.dds 19_lcflare2.dds 19_lcflare3.dds 19_muzzflsh_5.dds 19_muzzflsh_8.dds 19_rlflare.dds 19_sakura_head2.dds 19_tracerbullet.dds 20_flame03.dds 20_gdi_concrt01.tga 20big_flash1.dds 20big_flash2.dds ag_exp_debris02.w3d ag_flame01.w3d ag_flamtnk_exp1.w3d ag_mammoth_exp1.w3d ag_obcharg2.w3d ag_sigflare_gld.w3d ag_tib_exp1.w3d ag_tshell_ex04.w3d ag_tshell_ex06.w3d ag_tshell_ex08.w3d ag_tshell_ex10.w3d ag_tshell_ex12.w3d ag_tshell_gdi01.w3d ag_tshell_nod01.w3d al_tex012.dds amb_ambulance1.wav amb_nod_flame1.wav ambgull.wav ammoclip.mp3 ammoshells1.wav ammoshells2.wav ammoshells3.wav asset_report.txt atr_flar0001.dds back.dds bars.tga beam_texture2.dds brick.tga brick002r.tga brick003r.tga brick004.tga brick004r.tga brown_leather.tga bullet_eva.tga bulletshell_1.w3d bulletshell_2.w3d bush_dead.dds c_ag_gdi_dead.w3d c_ag_gdi_mg.w3d c_ag_gdi_mobi.w3d c_ag_nod_mg.w3d c_civ1_head.w3d c_civ2_head.w3d c_civ3_head.w3d c_civ4_fem_head.w3d c_civf_.w3d c_civf_head.w3d c_civf_l0.w3d c_civf_l1.w3d c_civf_l2.w3d c_civf_l3.w3d c_clerg_head.w3d c_cook_head.w3d c_cwoman_head.w3d c_deadeye.dds c_flametanks.dds c_flametroop.dds c_flametroop2.dds c_fmsrv_head.w3d c_gdi_dead_.w3d c_gdi_dead_head.w3d c_gdi_dead_l0.w3d c_gdi_dead_l1.w3d c_gdi_dead_l2.w3d c_gdi_dead_l3.w3d c_gdi_en_.w3d c_gdi_en_body.dds c_gdi_en_head.dds c_gdi_en_head.w3d c_gdi_en_l0.w3d c_gdi_en_l1.w3d c_gdi_en_l2.w3d c_gdi_en_l3.w3d c_gdi_en2_.w3d c_gdi_en2_body.dds c_gdi_en2_head.dds c_gdi_en2_head.w3d c_gdi_en2_l0.w3d c_gdi_en2_l1.w3d c_gdi_en2_l2.w3d c_gdi_en2_l3.w3d c_gdi_gr_.w3d c_gdi_gr_head.w3d c_gdi_gr_l0.w3d c_gdi_gr_l1.w3d c_gdi_gr_l2.w3d c_gdi_gr_l3.w3d c_gdi_gr1_body.dds c_gdi_gr1_head.dds c_gdi_gun_.w3d c_gdi_gun_head.w3d c_gdi_gun_l0.w3d c_gdi_gun_l1.w3d c_gdi_gun_l2.w3d c_gdi_gun_l3.w3d c_gdi_hothair.dds c_gdi_hotw_.w3d c_gdi_hotw_head.w3d c_gdi_hotw_l0.w3d c_gdi_hotw_l1.w3d c_gdi_hotw_l2.w3d c_gdi_hotw_l3.w3d c_gdi_hotwire.dds c_gdi_lock_head.w3d c_gdi_locke_.w3d c_gdi_locke_l0.w3d c_gdi_locke_l1.w3d c_gdi_locke_l2.w3d c_gdi_locke_l3.w3d c_gdi_lt_.w3d c_gdi_lt_head.w3d c_gdi_lt_l0.w3d c_gdi_mg_.w3d c_gdi_mg_head.w3d c_gdi_mg_l0.w3d c_gdi_mg_l1.w3d c_gdi_mg_l2.w3d c_gdi_mg_l3.w3d c_gdi_mg2_.w3d c_gdi_mg2_head.w3d c_gdi_mg2_l0.w3d c_gdi_mg2_l1.w3d c_gdi_mg2_l2.w3d c_gdi_mg2_l3.w3d c_gdi_mgo.dds c_gdi_mgo_.w3d c_gdi_mgo_head.w3d c_gdi_mgo_l0.w3d c_gdi_mgo_l1.w3d c_gdi_mgo_l2.w3d c_gdi_mgo_l3.w3d c_gdi_mobi_.w3d c_gdi_mobi_head.w3d c_gdi_mobi_l0.w3d c_gdi_mobi_l1.w3d c_gdi_mobi_l2.w3d c_gdi_mobi_l3.w3d c_gdi_mp_.w3d c_gdi_mp_head.w3d c_gdi_mp_l0.w3d c_gdi_mp_l1.w3d c_gdi_mp_l2.w3d c_gdi_mp_l3.w3d c_gdi_mutant.dds c_gdi_mutant_.w3d c_gdi_mutant_l0.w3d c_gdi_mutant_l1.w3d c_gdi_mutant_l2.w3d c_gdi_mutant_l3.w3d c_gdi_pr_.w3d c_gdi_pr_head.w3d c_gdi_pr_l0.w3d c_gdi_pr_l1.w3d c_gdi_pr_l2.w3d c_gdi_pr_l3.w3d c_gdi_pr1_.w3d c_gdi_pr1_head.w3d c_gdi_pr1_l0.w3d c_gdi_pr1_l1.w3d c_gdi_pr1_l2.w3d c_gdi_pr1_l3.w3d c_gdi_pr2_head.w3d c_gdi_ptch_.w3d c_gdi_ptch_head.w3d c_gdi_ptch_l0.w3d c_gdi_ptch_l1.w3d c_gdi_ptch_l2.w3d c_gdi_ptch_l3.w3d c_gdi_pwsuit_.w3d c_gdi_pwsuit_l0.w3d c_gdi_pwsuit_l1.w3d c_gdi_pwsuit_l2.w3d c_gdi_pwsuit_l3.w3d c_gdi_pwsut2_.w3d c_gdi_pwsut2_l0.w3d c_gdi_pwsut2_l1.w3d c_gdi_pwsut2_l2.w3d c_gdi_pwsut2_l3.w3d c_gdi_rk_.w3d c_gdi_rk_head.w3d c_gdi_rk_l0.w3d c_gdi_rk_l1.w3d c_gdi_rk_l2.w3d c_gdi_rk_l3.w3d c_gdi_rko_.w3d c_gdi_rko_head.w3d c_gdi_rko_l0.w3d c_gdi_rko_l1.w3d c_gdi_rko_l2.w3d c_gdi_rko_l3.w3d c_gdi_rkt.dds c_gdi_syd_.w3d c_gdi_syd_head.w3d c_gdi_syd_l0.w3d c_gdi_syd_l1.w3d c_gdi_syd_l2.w3d c_gdi_syd_l3.w3d c_gdi_syd1.dds c_gdi_syd2.dds c_gdi_syd2_.w3d c_gdi_syd2_1.dds c_gdi_syd2_3.dds c_gdi_syd2_l0.w3d c_gdi_syd2_l1.w3d c_gdi_syd2_l2.w3d c_gdi_syd2_l3.w3d c_havoc_head.w3d c_havocd_head.w3d c_havocn_head.w3d c_havocw_head.w3d c_labtec1_head.w3d c_labtec2_head.w3d c_labtec3_head.w3d c_logan_head.w3d c_minigun1.dds c_minigun2.dds c_minigun3.dds c_minigun4.dds c_mserv1_head.w3d c_mserv2_head.w3d c_n_1stm_head.w3d c_nod_en_head.dds c_nod_en_head.w3d c_nod_flametank.w3d c_nod_kane_head.w3d c_nod_ksma_head.w3d c_nod_mdz_head.w3d c_nod_mdz2_head.w3d c_nod_mg_head.dds c_nod_mg_head.w3d c_nod_mgo_head.dds c_nod_mgo_head.w3d c_nod_mrav_head.w3d c_nod_petm_head.w3d c_nod_petr_head.w3d c_nod_rav_head.w3d c_nod_saku_head.w3d c_nod_seac_head.w3d c_nod_sf_rsold.dds c_nod_tc_head.dds c_nod_tc_head.w3d c_Slim.tga C_Slim.W3D capflag.wav cc_bldg1.dds cc_bldg2.dds cc_bldg3.dds cc_bldg4.dds cc_conc1.dds cc_conc2.dds cc_conc3.dds cc_conc4.dds cc_rdsign.dds cc_road2.dds Chair.W3D civ1_head.dds civ2_head.dds civ3_head.dds civdead1.wav cursor_action.dds cursor_arrow.dds cursor_busy.dds cursor_pan_up.dds cursor_rotate.dds cursor_text.dds cx_nod_sk_head.w3d d_bh_s_brick1.dds d_bh_s_brick2.dds d_bh_s_brick3.dds d_bh_s_dirt1.dds d_bh_s_dirt2.dds d_bh_s_dirt3.dds d_bh_s_glass1.dds d_bh_s_glass2.dds d_bh_s_glass3.dds d_bh_s_metal1.dds d_bh_s_metal2.dds d_bh_s_metal3.dds d_bh_s_mud1.dds d_bh_s_mud2.dds d_bh_s_mud3.dds d_bh_s_sand1.dds d_bh_s_sand2.dds d_bh_s_sand3.dds d_bh_s_snow1.dds d_bh_s_snow2.dds d_bh_s_snow3.dds d_bh_s_wood1.dds d_bh_s_wood2.dds d_bh_s_wood3.dds deadtree1.dds death01.wav death01_reverb.wav death02.wav death02_reverb.wav death03.wav death03_reverb.wav deathtransitioneffect.dds door.tga door01.tga draw.tga dropflag.wav dsp_dead_bush.w3d dsp_deadbush.dds dsp_flag.w3d dsp_miniconsel.w3d dsp_nodflag.w3d dsp_nodflag2.w3d dsp_small_dead.w3d dsp_woodworld.tga e_01_dfsmoke.w3d e_19_aflame1.w3d e_19_arock1.w3d e_19_asmk1.w3d e_19_brigexp1.w3d e_19_brigexp2.w3d e_19_brigsmk1.w3d e_19_chgflar1.w3d e_19_chgflar2.w3d e_19_chgflar3.w3d e_19_ex3big.w3d e_19_ex4big.w3d e_19_expld1a.w3d e_19_explode1.w3d e_19_explode2.w3d e_19_explode2a.w3d e_19_explode2c.w3d e_19_explode3a.w3d e_19_explode3b.w3d e_19_explode7.w3d e_19_exsprk1a.w3d e_19_exsprk2a.w3d e_19_fire1.w3d e_19_fire2.w3d e_19_fire3.w3d e_19_fire4.w3d e_19_fire5.w3d e_19_fire7b.w3d e_19_flame6a.w3d e_19_flare1.w3d e_19_flare1a.w3d e_19_humexp1.w3d e_19_humexp2.w3d e_19_humsmk1.w3d e_19_ionxpl.w3d e_19_ionxpl2.w3d e_19_ionxpl3.w3d e_19_newexp1.w3d e_19_newexp2.w3d e_19_newexp3.w3d e_19_newexp4.w3d e_19_newsmk1.w3d e_19_newsmk2.w3d e_19_nexp1a.w3d e_19_obelex1.w3d e_19_obelex2.w3d e_19_obelex3.w3d e_19_obfire2.w3d e_19_refsprk1.w3d e_19_rockp1a.w3d e_19_smfiretrl.w3d e_19_smoke1.w3d e_19_smoke2.w3d e_19_smoke2a1.w3d e_19_smoke3.w3d e_19_smoke4.w3d e_19_smolder1.w3d e_19_smolder2a.w3d e_19_sparks1.w3d e_19_sparks2.w3d e_19_sparks3a.w3d e_19_tibcp1a.w3d e_19_tibcp1b.w3d e_19_tibsmk1.w3d e_19_volspk.w3d e_19_woodp.w3d e_beam_1.dds e_beam_2.dds e_beam_3.dds e_beam_noise.dds e_beam_noise_1.dds e_biggun1.w3d e_blcktrial.w3d e_blu_tib_mist.w3d e_blu_tib_mist1.w3d e_brlblksmk.w3d e_brlorgexp.w3d e_brlorgexp2.w3d e_brlrckexp.w3d e_brlspkexp.w3d e_brlwhtexp.w3d e_brlwhtexp2.w3d e_c130smoke.w3d e_c4_disarm_smk.w3d e_c4_fire12.w3d e_c4_fire6.w3d e_c4_smoke.w3d e_c4_smoketrail.w3d e_cannon.w3d e_cannon-mist.w3d e_canon-flame.w3d e_cbubble1.w3d e_chemweapon.w3d e_chopperdust1.w3d e_com_pressure.w3d e_coreflare2.w3d e_coreshower.w3d e_coresmok2.w3d e_corespark2.w3d e_damage25.w3d e_damage50.w3d e_dirt2.w3d e_down_vent.w3d e_dsp_fire.w3d e_dsp_firebig.w3d e_dsp_firebig2.w3d e_dsp_smokebig.w3d e_dsp_steam.w3d e_dsp_tibgas.w3d e_dsp_tibtree.w3d e_dsp_water.w3d e_dsp_waterbig.w3d e_e3biketire.w3d e_e3introspark.w3d e_e3strifpuffs.w3d e_efctspark.w3d e_effflare1.w3d e_effflare2.w3d e_effflare3.w3d e_elecsmok2.w3d e_electric01.w3d e_electric02.w3d e_electric03.w3d e_electric04.w3d e_exp_ballfire1.w3d e_exp_dirt01.w3d e_exp_dirt02.w3d e_exp_ring01.w3d e_exp_trail01.w3d e_exp_vertcol01.w3d e_explode1.w3d e_explode2.w3d e_explode3.w3d e_falldust1.w3d e_fallfire1.w3d e_fallrock1.w3d e_falls_down.w3d e_fallwood1.w3d e_fiery_ex06mtr.w3d e_fiery_ex10mtr.w3d e_fiery_ex16mtr.w3d e_fiery_fall.w3d e_fiery_flame.w3d e_fiery_smoke.w3d e_flame.w3d e_flame01.w3d e_flame02.w3d e_flame03.w3d e_flame04.w3d e_flame6.w3d e_flametank.w3d e_flamethrower.w3d e_flare01.w3d e_flare02.w3d e_flare1.w3d e_flare2.w3d e_flare5.w3d e_flareexp.w3d e_flaresm.w3d e_flesh1.w3d e_flesh2.w3d e_gen_grass.w3d e_gen_mud.w3d e_gen_tiberium.w3d e_glass01.w3d e_glass02.w3d e_glassdust.w3d e_grass1.w3d e_grass2.w3d e_grdorgexp2sm.w3d e_grdorgexpsm.w3d e_grdwhtexp2sm.w3d e_grdwhtexp3sm.w3d e_grdwhtexpsm.w3d e_greydust.w3d e_grnblobssm.w3d e_grnexp3sm.w3d e_grnexp4sm.w3d e_grnoutsmk2sm.w3d e_horzarc1.w3d e_hrz_pwr.w3d e_huv_bigxplod.w3d e_huvfoam.w3d e_ion_explode1.w3d e_ion_fireball.w3d e_ion_smoke.w3d e_ion_sparks.w3d e_iongun_charge.w3d e_lavballfire_1.w3d e_lavballfire_2.w3d e_lavballfire_3.w3d e_lavballsmk_1.w3d e_lavballsmk_2.w3d e_lavballsmk_3.w3d e_lavballspk.w3d e_lavballspk_2.w3d e_laz_flesh.w3d e_laz_glass.w3d e_laz_metal.w3d e_laz_rock.w3d e_laz_sand.w3d e_laz_slag.w3d e_laz_snow.w3d e_laz_wood.w3d e_logsparks.w3d e_low-mist.w3d e_lv01-explode.w3d e_master01.dds e_mech_damage01.w3d e_mendoza_gun01.w3d e_metal1.w3d e_metal2.w3d e_metal3.w3d e_misl-contrail.w3d e_mist3.w3d e_mud3.w3d e_muz_rail1.w3d e_mz_50mm.w3d e_mz_electric.w3d e_mz_electric2.w3d e_mz_fire_x.w3d e_mz_sam1.w3d e_mz_smoke_x.w3d e_mz_smoke_x2.w3d e_mz_smoke_x3.w3d e_mz_smoke_x4.w3d e_mz_tank1.w3d e_mz_tib_x.w3d e_ob_power.w3d e_ob_redburn.w3d e_ob_redstar.w3d e_ob_smoke.w3d e_ob_sparks1.w3d e_obl_fx1.w3d e_outsmksm.w3d e_perm_electric.w3d e_perm_flame.w3d e_perm_foliage.w3d e_perm_steam.w3d e_pp_coresmk.w3d e_pressure.w3d e_pwr_smoke.w3d e_pwr_smoke2.w3d e_ref_fire.w3d e_rise.w3d e_rise_heat.w3d e_rock.w3d e_rockettrail.w3d e_rockp.w3d e_s19_smoke6b.w3d e_sand.w3d e_sig-flare_gld.w3d e_smk_black1.w3d e_smoke2.w3d e_smoke6.w3d e_smolder1.w3d e_snowblow.w3d e_snowclump.w3d e_spark_float.w3d e_spark2.w3d e_spark3.w3d e_sparkexpsm.w3d e_sparks.w3d e_sparks1.w3d e_sparks2.w3d e_sparks3.w3d e_splash1.w3d e_splash-big.w3d e_splash-big2.w3d e_splash-mist.w3d e_spls-big2.w3d e_spray.w3d e_stars.w3d e_tboil-mist.w3d e_tib_bullet.w3d e_tib_down.w3d e_tib_dump.w3d e_tib_hit.w3d e_tib_low-mist.w3d e_tib_rifl_exp1.w3d e_tib_shards1.w3d e_tib_trail.w3d e_tiber_mix.w3d e_tiberium1.w3d e_tiberium2.w3d e_tiberium3.w3d e_tiberium4.w3d e_tiberium5.w3d e_tiberium6.w3d e_tiberium7.w3d e_tk_roll_dirt.w3d e_tk_roll_mud.w3d e_tk_roll_sand.w3d e_tk_roll_snow.w3d e_tk_roll_tib.w3d e_tk_roll_water.w3d e_tk_sld_conc.w3d e_tk_sld_dirt.w3d e_tk_sld_grass.w3d e_tk_sld_ice.w3d e_tk_sld_ltmtl.w3d e_tk_sld_mud.w3d e_tk_sld_rock.w3d e_tk_sld_sand.w3d e_tk_sld_snow.w3d e_tk_sld_tib.w3d e_tk_sld_water.w3d e_tk_sld_wood.w3d e_tlow-mist.w3d e_tr_roll_dirt.w3d e_tr_roll_mud.w3d e_tr_roll_sand.w3d e_tr_roll_snow.w3d e_tr_roll_tib.w3d e_tr_roll_water.w3d e_tr_sld_conc.w3d e_tr_sld_dirt.w3d e_tr_sld_grass.w3d e_tr_sld_hvymtl.w3d e_tr_sld_ice.w3d e_tr_sld_ltmt.w3d e_tr_sld_mud.w3d e_tr_sld_rock.w3d e_tr_sld_sand.w3d e_tr_sld_snow.w3d e_tr_sld_tib.w3d e_tr_sld_water.w3d e_tr_sld_wood.w3d e_trailfire_1.w3d e_trailsmk_1.w3d e_tshell_exp01.w3d e_tshell_exp02.w3d e_tshell_exp03.w3d e_tshell_exp05.w3d e_tshell_exp06.w3d e_tshell_trail1.w3d e_tshell_trail2.w3d e_tshell_trail3.w3d e_v-arc1.w3d e_v-arc2.w3d e_volc-smoke.w3d e_volfire.w3d e_vollava.w3d e_volsmk1.w3d e_water.w3d e_water_ring10.w3d e_water2.w3d e_water3.w3d e_water4.w3d e_waterbubble1.w3d e_watertrail1.w3d e_wep_fx1.w3d e_wep_fx2.w3d e_whitesmoke1.w3d e_wood1exp.w3d e_wood1sm.w3d e_wood2.w3d e_wood2exp2.w3d e_wood2sm.w3d e_x_c130boom1.w3d e_x_c130boom2.w3d e_x_c130fire.w3d e_x_c130flare.w3d e_x_comrocket.w3d e_x_comrocketf.w3d e_x_comrockets.w3d e_x3_splash.w3d emp_bags.tga f_ca_idle.w3d f_ca_run.w3d f_ca_walk.w3d f_cm_c4-r.w3d f_cm_chem.w3d f_cm_flmt.w3d f_cm_gren.w3d f_cm_pist.dds f_cm_pist.w3d f_cm_rail.w3d f_cm_rifl.w3d f_cm_snip.w3d f_cm_tibf.w3d f_cm_tibr.w3d f_ga_c4-p_fire.w3d f_ga_c4-r_enter.w3d f_ga_c4-r_exit.w3d f_ga_c4-r_fire.w3d f_ga_c4-r_idle.w3d f_ga_chem_enter.w3d f_ga_chem_exit.w3d f_ga_chem_fire.w3d f_ga_chem_idle.w3d f_ga_chem_relod.w3d f_ga_chng_efire.w3d f_ga_chng_enter.w3d f_ga_chng_exit.w3d f_ga_chng_fire.w3d f_ga_chng_idle.w3d f_ga_chng_relod.w3d f_ga_flmt_enter.w3d f_ga_flmt_exit.w3d f_ga_flmt_fire.w3d f_ga_flmt_idle.w3d f_ga_flmt_relod.w3d f_ga_gren_enter.w3d f_ga_gren_exit.w3d f_ga_gren_fire.w3d f_ga_gren_idle.w3d f_ga_gren_relod.w3d f_ga_ionb_enter.w3d f_ga_ionb_exit.w3d f_ga_ionb_fire.w3d f_ga_ionb_idle.w3d f_ga_ionc_fire.w3d f_ga_ionc_idle.w3d f_ga_ionc_relod.w3d f_ga_lsrg_efire.w3d f_ga_lsrg_fire.w3d f_ga_nuke_fire.w3d f_ga_pist_enter.w3d f_ga_pist_exit.w3d f_ga_pist_fire.w3d f_ga_pist_idle.w3d f_ga_pist_relod.w3d f_ga_rail_fire.w3d f_ga_rail_relod.w3d f_ga_ramj_fire.w3d f_ga_rifl_enter.w3d f_ga_rifl_exit.w3d f_ga_rifl_fire.w3d f_ga_rifl_idle.w3d f_ga_rifl_relod.w3d f_ga_rock_enter.w3d f_ga_rock_exit.w3d f_ga_rock_fire.w3d f_ga_rock_idle.w3d f_ga_rock_relod.w3d f_ga_shot_fire.w3d f_ga_snip_enter.w3d f_ga_snip_exit.w3d f_ga_snip_fire.w3d f_ga_snip_idle.w3d f_ga_snip_relod.w3d f_ga_tibf_relod.w3d f_ga_tibr_relod.w3d f_gm_c4-p.dds f_gm_c4-p.w3d f_gm_c4-r.dds f_gm_c4-r.w3d f_gm_c4-t.dds f_gm_c4-t.w3d f_gm_chem.dds f_gm_chem.w3d f_gm_chng.dds f_gm_chng.w3d f_gm_flmt.dds f_gm_flmt.w3d f_gm_gren.dds f_gm_gren.w3d f_gm_ionb.dds f_gm_ionb.w3d f_gm_ionc.dds f_gm_ionc.w3d f_gm_lsrg.dds f_gm_lsrg.w3d f_gm_lsrr.dds f_gm_lsrr.w3d f_gm_nuke.dds f_gm_nuke.w3d f_gm_pist.dds f_gm_pist.w3d f_gm_rail.dds f_gm_rail.w3d f_gm_ramj.dds f_gm_ramj.w3d f_gm_rifl.dds f_gm_rifl.w3d f_gm_rock.dds f_gm_rock.w3d f_gm_rprg.dds f_gm_rprg.w3d f_gm_shot.dds f_gm_shot.w3d f_gm_snip.dds f_gm_snip.w3d f_gm_tibf.dds f_gm_tibf.w3d f_gm_tibr.dds f_gm_tibr.w3d f_gm_volt.dds f_gm_volt.w3d f_ha_c4-p_enter.w3d f_ha_c4-p_exit.w3d f_ha_c4-p_fire.w3d f_ha_c4-p_idle.w3d f_ha_c4-r_enter.w3d f_ha_c4-r_exit.w3d f_ha_c4-r_fire.w3d f_ha_c4-r_idle.w3d f_ha_c4-t_enter.w3d f_ha_c4-t_exit.w3d f_ha_c4-t_fire.w3d f_ha_c4-t_idle.w3d f_ha_chem_efire.w3d f_ha_chem_enter.w3d f_ha_chem_exit.w3d f_ha_chem_fire.w3d f_ha_chem_idle.w3d f_ha_chem_relod.w3d f_ha_chng_efire.w3d f_ha_chng_enter.w3d f_ha_chng_exit.w3d f_ha_chng_fire.w3d f_ha_chng_idle.w3d f_ha_chng_relod.w3d f_ha_flmt_efire.w3d f_ha_flmt_enter.w3d f_ha_flmt_exit.w3d f_ha_flmt_fire.w3d f_ha_flmt_idle.w3d f_ha_flmt_relod.w3d f_ha_gren_enter.w3d f_ha_gren_exit.w3d f_ha_gren_fire.w3d f_ha_gren_idle.w3d f_ha_gren_relod.w3d f_ha_ionb_enter.w3d f_ha_ionb_exit.w3d f_ha_ionb_fire.w3d f_ha_ionb_idle.w3d f_ha_ionc_enter.w3d f_ha_ionc_exit.w3d f_ha_ionc_fire.w3d f_ha_ionc_idle.w3d f_ha_ionc_relod.w3d f_ha_lsrg_efire.w3d f_ha_lsrg_enter.w3d f_ha_lsrg_exit.w3d f_ha_lsrg_fire.w3d f_ha_lsrg_idle.w3d f_ha_lsrg_relod.w3d f_ha_lsrr_enter.w3d f_ha_lsrr_exit.w3d f_ha_lsrr_fire.w3d f_ha_lsrr_idle.w3d f_ha_lsrr_relod.w3d f_ha_nuke_enter.w3d f_ha_nuke_exit.w3d f_ha_nuke_fire.w3d f_ha_nuke_idle.w3d f_ha_pist_enter.w3d f_ha_pist_exit.w3d f_ha_pist_fire.w3d f_ha_pist_idle.w3d f_ha_pist_relod.w3d f_ha_rail_enter.w3d f_ha_rail_exit.w3d f_ha_rail_fire.w3d f_ha_rail_idle.w3d f_ha_rail_relod.w3d f_ha_ramj_enter.w3d f_ha_ramj_exit.w3d f_ha_ramj_fire.w3d f_ha_ramj_idle.w3d f_ha_ramj_relod.w3d f_ha_rifl_enter.w3d f_ha_rifl_exit.w3d f_ha_rifl_fire.w3d f_ha_rifl_idle.w3d f_ha_rifl_relod.w3d f_ha_rock_enter.w3d f_ha_rock_exit.w3d f_ha_rock_fire.w3d f_ha_rock_idle.w3d f_ha_rock_relod.w3d f_ha_rprg_enter.w3d f_ha_rprg_exit.w3d f_ha_rprg_fire.w3d f_ha_rprg_idle.w3d f_ha_shot_enter.w3d f_ha_shot_exit.w3d f_ha_shot_fire.w3d f_ha_shot_idle.w3d f_ha_shot_relod.w3d f_ha_snip_enter.w3d f_ha_snip_exit.w3d f_ha_snip_fire.w3d f_ha_snip_idle.w3d f_ha_snip_relod.w3d f_ha_tibf_enter.w3d f_ha_tibf_exit.w3d f_ha_tibf_fire.w3d f_ha_tibf_idle.w3d f_ha_tibf_relod.w3d f_ha_tibr_enter.w3d f_ha_tibr_exit.w3d f_ha_tibr_fire.w3d f_ha_tibr_idle.w3d f_ha_tibr_relod.w3d f_ha_volt_enter.w3d f_ha_volt_exit.w3d f_ha_volt_fire.w3d f_ha_volt_idle.w3d f_ha_volt_relod.w3d f_hm_gdi.w3d f_hm_gdi_hands.dds f_hm_gdi_wrists.dds f_hm_havoc.w3d f_hm_nod.w3d f_hm_nod_hands.dds f_hm_nod_hands.tga f_hm_nod_wrists.dds f_hm_nod_wrists.tga f_skeleton.w3d female_death01.wav female_death02.wav fhead1 copy.dds flamethrower_fire.wav flamethrower_off.wav flamethrower_on.wav flamethrower_pilot.wav flamethrower_reload_1.wav flare01.dds font12x16.tga font6x8.tga font8x8.tga font9x12.tga fontnew4.tga gd_tower.w3d gdidead1.wav gdirender.dds grey_menu.tga grill_128.dds h_a_412a.w3d h_a_422a.w3d h_a_4242.w3d h_a_4243.w3d h_a_4262.w3d h_a_4263.w3d h_a_432a.w3d h_a_601a.w3d h_a_611a.w3d h_a_612a.w3d h_a_613a.w3d h_a_622a.w3d h_a_623a.w3d h_a_624a.w3d h_a_631a.w3d h_a_632a.w3d h_a_633a.w3d h_a_634a.w3d h_a_635a.w3d h_a_690a.w3d h_a_691a.w3d h_a_692a.w3d h_a_693a.w3d h_a_6x01.w3d h_a_6x03.w3d h_a_6x04.w3d h_a_6x05.w3d h_a_7002.w3d h_a_811a.w3d h_a_812a.w3d h_a_821a.w3d h_a_822a.w3d h_a_831a.w3d h_a_832a.w3d h_a_841a.w3d h_a_842a.w3d h_a_851a.w3d h_a_852a.w3d h_a_861a.w3d h_a_862a.w3d h_a_871a.w3d h_a_890a.w3d h_a_891a.w3d h_a_892a.w3d h_a_893a.w3d h_a_a0a0.w3d h_a_a0a0_l01.w3d h_a_a0a0_l02.w3d h_a_a0a0_l03.w3d h_a_a0a0_l04.w3d h_a_a0a0_l05.w3d h_a_a0a0_l06.w3d h_a_a0a0_l10.w3d h_a_a0a0_l11.w3d h_a_a0a0_l12.w3d h_a_a0a0_l13.w3d h_a_a0a0_l15.w3d h_a_a0a0_l20.w3d h_a_a0a0_l21.w3d h_a_a0a0_l22.w3d h_a_a0a0_l23.w3d h_a_a0a0_l24.w3d h_a_a0a0_l25.w3d h_a_a0a0_l26.w3d h_a_a0a0_l26b.w3d h_a_a0a0_l26da.w3d h_a_a0a0_l26db.w3d h_a_a0a0_l26dc.w3d h_a_a0a0_l27.w3d h_a_a0a0_l28a.w3d h_a_a0a0_l28b.w3d h_a_a0a0_l28c.w3d h_a_a0a0_l29.w3d h_a_a0a0_l30.w3d h_a_a0a0_l31.w3d h_a_a0a0_l32.w3d h_a_a0a0_l33.w3d h_a_a0a0_l34.w3d h_a_a0a0_l35.w3d h_a_a0a0_l36.w3d h_a_a0a0_l37.w3d h_a_a0a0_l38.w3d h_a_a0a0_l39.w3d h_a_a0a0_l40.w3d h_a_a0a0_l41.w3d h_a_a0a0_l42.w3d h_a_a0a0_l43.w3d h_a_a0a0_l44.w3d h_a_a0a0_l45.w3d h_a_a0a0_l46.w3d h_a_a0a0_l47.w3d h_a_a0a0_l48.w3d h_a_a0a0_l49.w3d h_a_a0a0_l50.w3d h_a_a0a0_l51.w3d h_a_a0a0_l52.w3d h_a_a0a0_l53.w3d h_a_a0a0_l54.w3d h_a_a0a0_l55.w3d h_a_a0a0_l56.w3d h_a_a0a0_l57.w3d h_a_a0a0_l58.w3d h_a_a0a0_l59.w3d h_a_a0a0_l60.w3d h_a_a0a0_l61.w3d h_a_a0a0_l62.w3d h_a_a0a0_l63.w3d h_a_a0a0_l64.w3d h_a_a0a0_l65.w3d h_a_a0a0_l66.w3d h_a_a0a0_l67.w3d h_a_a0a0_l68.w3d h_a_a0a0_l69.w3d h_a_a0a0_l70.w3d h_a_a0a0_l71.w3d h_a_a0a0_l72.w3d h_a_a0a1.w3d h_a_a0a1_02.w3d h_a_a0a1_03.w3d h_a_a0a1_04.w3d h_a_a0a1_05.w3d h_a_a0a2.w3d h_a_a0a3.w3d h_a_a0a4.w3d h_a_a0a5.w3d h_a_a0a6.w3d h_a_a0b1.w3d h_a_a0b1_02.w3d h_a_a0b1_03.w3d h_a_a0b1_04.w3d h_a_a0b1_05.w3d h_a_a0b2.w3d h_a_a0b3.w3d h_a_a0b4.w3d h_a_a0c0.w3d h_a_a0c1.w3d h_a_a0c2.w3d h_a_a0c3.w3d h_a_a0c4.w3d h_a_a0c5.w3d h_a_a0c6.w3d h_a_a0d0.w3d h_a_a0d3.w3d h_a_a0d4.w3d h_a_a0e1.w3d h_a_a0e2.w3d h_a_a0f0.w3d h_a_a0j0.w3d h_a_a0j1.w3d h_a_a0j1_01.w3d h_a_a0j2.w3d h_a_a0j3.w3d h_a_a0j4.w3d h_a_a0l0.w3d h_a_a0l1.w3d h_a_a0l2.w3d h_a_a0l3.w3d h_a_a0l4.w3d h_a_a0s0.w3d h_a_b0a0.w3d h_a_b0a0_l05.w3d h_a_b0a0_l15.w3d h_a_b0a1.w3d h_a_b0a1_02.w3d h_a_b0a1_03.w3d h_a_b0a1_04.w3d h_a_b0a1_05.w3d h_a_b0a2.w3d h_a_b0a3.w3d h_a_b0a4.w3d h_a_b0a5.w3d h_a_b0a6.w3d h_a_b0b1.w3d h_a_b0b1_02.w3d h_a_b0b1_03.w3d h_a_b0b1_04.w3d h_a_b0b1_05.w3d h_a_b0b2.w3d h_a_b0b3.w3d h_a_b0b4.w3d h_a_b0c0.w3d h_a_b0c1.w3d h_a_b0c2.w3d h_a_b0c3.w3d h_a_b0c4.w3d h_a_b0c5.w3d h_a_b0c6.w3d h_a_b0d0.w3d h_a_b0d3.w3d h_a_b0d4.w3d h_a_b0j0.w3d h_a_b0j1.w3d h_a_b0j2.w3d h_a_b0j3.w3d h_a_b0j4.w3d h_a_b0l0.w3d h_a_b0l1.w3d h_a_b0l2.w3d h_a_b0l3.w3d h_a_b0l4.w3d h_a_bodyslam.w3d h_a_c0a1_02.w3d h_a_c0a1_03.w3d h_a_c0a1_04.w3d h_a_c0a1_05.w3d h_a_c0b1_02.w3d h_a_c0b1_03.w3d h_a_c0b1_04.w3d h_a_c0b1_05.w3d h_a_c1a0.w3d h_a_c1a1.w3d h_a_c1a2.w3d h_a_c1a3.w3d h_a_c1a4.w3d h_a_c1a5.w3d h_a_c1a6.w3d h_a_c1b1.w3d h_a_c1b2.w3d h_a_c1b3.w3d h_a_c1b4.w3d h_a_c1c0.w3d h_a_c1c1.w3d h_a_c1c2.w3d h_a_c1c3.w3d h_a_c1c4.w3d h_a_c1c5.w3d h_a_c1c6.w3d h_a_c1d0.w3d h_a_c1j0.w3d h_a_c1j1.w3d h_a_c1j2.w3d h_a_c1j3.w3d h_a_c1j4.w3d h_a_c1l0.w3d h_a_c1l1.w3d h_a_c1l2.w3d h_a_c1l3.w3d h_a_c1l4.w3d h_a_c2a0.w3d h_a_c2a1.w3d h_a_c2a2.w3d h_a_c2a3.w3d h_a_c2a4.w3d h_a_c2a5.w3d h_a_c2a6.w3d h_a_c2b1.w3d h_a_c2b2.w3d h_a_c2b3.w3d h_a_c2b4.w3d h_a_c2c0.w3d h_a_c2c1.w3d h_a_c2c2.w3d h_a_c2c3.w3d h_a_c2c4.w3d h_a_c2c5.w3d h_a_c2c6.w3d h_a_c2d0.w3d h_a_c2d3.w3d h_a_c2d4.w3d h_a_c2g0.w3d h_a_c2j0.w3d h_a_c2j1.w3d h_a_c2j2.w3d h_a_c2j3.w3d h_a_c2j4.w3d h_a_c2l0.w3d h_a_c2l1.w3d h_a_c2l2.w3d h_a_c2l3.w3d h_a_c2l4.w3d h_a_c3a0.w3d h_a_c3a1.w3d h_a_c3a2.w3d h_a_c3a3.w3d h_a_c3a4.w3d h_a_c3a5.w3d h_a_c3a6.w3d h_a_c3b1.w3d h_a_c3b2.w3d h_a_c3b3.w3d h_a_c3b4.w3d h_a_c3c0.w3d h_a_c3c1.w3d h_a_c3c2.w3d h_a_c3c3.w3d h_a_c3c4.w3d h_a_c3c5.w3d h_a_c3c6.w3d h_a_c3d0.w3d h_a_c3j0.w3d h_a_c3j1.w3d h_a_c3j2.w3d h_a_c3j3.w3d h_a_c3j4.w3d h_a_c3l0.w3d h_a_c3l1.w3d h_a_c3l2.w3d h_a_c3l3.w3d h_a_c3l4.w3d h_a_con1.w3d h_a_con2.w3d h_a_cresentkick.w3d h_a_d11a.w3d h_a_d1a0.w3d h_a_d1a1.w3d h_a_d1a2.w3d h_a_d1a3.w3d h_a_d1a4.w3d h_a_d1a5.w3d h_a_d1a6.w3d h_a_d1b1.w3d h_a_d1b2.w3d h_a_d1b3.w3d h_a_d1b4.w3d h_a_d1c0.w3d h_a_d1c1.w3d h_a_d1c2.w3d h_a_d1c3.w3d h_a_d1c4.w3d h_a_d1c5.w3d h_a_d1c6.w3d h_a_d1d0.w3d h_a_d1j0.w3d h_a_d1j1.w3d h_a_d1j2.w3d h_a_d1j3.w3d h_a_d1j4.w3d h_a_d1l0.w3d h_a_d1l1.w3d h_a_d1l2.w3d h_a_d1l3.w3d h_a_d1l4.w3d h_a_d2a0.w3d h_a_d2a1.w3d h_a_d2a2.w3d h_a_d2a3.w3d h_a_d2a4.w3d h_a_d2a5.w3d h_a_d2a6.w3d h_a_d2b1.w3d h_a_d2b2.w3d h_a_d2b3.w3d h_a_d2b4.w3d h_a_d2c0.w3d h_a_d2c1.w3d h_a_d2c2.w3d h_a_d2c3.w3d h_a_d2c4.w3d h_a_d2c5.w3d h_a_d2c6.w3d h_a_d2d0.w3d h_a_d2d3.w3d h_a_d2d4.w3d h_a_d2g0.w3d h_a_d2j0.w3d h_a_d2j1.w3d h_a_d2j2.w3d h_a_d2j3.w3d h_a_d2j4.w3d h_a_d2l0.w3d h_a_d2l1.w3d h_a_d2l2.w3d h_a_d2l3.w3d h_a_d2l4.w3d h_a_d3a0.w3d h_a_d3a1.w3d h_a_d3a2.w3d h_a_d3a3.w3d h_a_d3a4.w3d h_a_d3a5.w3d h_a_d3a6.w3d h_a_d3b1.w3d h_a_d3b2.w3d h_a_d3b3.w3d h_a_d3b4.w3d h_a_d3c0.w3d h_a_d3c1.w3d h_a_d3c2.w3d h_a_d3c3.w3d h_a_d3c4.w3d h_a_d3c5.w3d h_a_d3c6.w3d h_a_d3d0.w3d h_a_d3j0.w3d h_a_d3j1.w3d h_a_d3j2.w3d h_a_d3j3.w3d h_a_d3j4.w3d h_a_d3l0.w3d h_a_d3l1.w3d h_a_d3l2.w3d h_a_d3l3.w3d h_a_d3l4.w3d h_a_deathblast.w3d h_a_deathblast2.w3d h_a_div1.w3d h_a_div2.w3d h_a_div3.w3d h_a_div4.w3d h_a_draw.w3d h_a_drawc.w3d h_a_dsh1.w3d h_a_dsh2.w3d h_a_dsh3.w3d h_a_dsh4.w3d h_a_f1a0.w3d h_a_f1a1.w3d h_a_f1a2.w3d h_a_f1a3.w3d h_a_f1a4.w3d h_a_f1a5.w3d h_a_f1a6.w3d h_a_f1b1.w3d h_a_f1b2.w3d h_a_f1b3.w3d h_a_f1b4.w3d h_a_f1c0.w3d h_a_f1c1.w3d h_a_f1c2.w3d h_a_f1c3.w3d h_a_f1c4.w3d h_a_f1c5.w3d h_a_f1c6.w3d h_a_f1d0.w3d h_a_f1j0.w3d h_a_f1j1.w3d h_a_f1j2.w3d h_a_f1j3.w3d h_a_f1j4.w3d h_a_f1l0.w3d h_a_f1l1.w3d h_a_f1l2.w3d h_a_f1l3.w3d h_a_f1l4.w3d h_a_f2a0.w3d h_a_f2a1.w3d h_a_f2a2.w3d h_a_f2a3.w3d h_a_f2a4.w3d h_a_f2a5.w3d h_a_f2a6.w3d h_a_f2b1.w3d h_a_f2b2.w3d h_a_f2b3.w3d h_a_f2b4.w3d h_a_f2c0.w3d h_a_f2c1.w3d h_a_f2c2.w3d h_a_f2c3.w3d h_a_f2c4.w3d h_a_f2c5.w3d h_a_f2c6.w3d h_a_f2d0.w3d h_a_f2d3.w3d h_a_f2d4.w3d h_a_f2g0.w3d h_a_f2j0.w3d h_a_f2j1.w3d h_a_f2j2.w3d h_a_f2j3.w3d h_a_f2j4.w3d h_a_f2l0.w3d h_a_f2l1.w3d h_a_f2l2.w3d h_a_f2l3.w3d h_a_f2l4.w3d h_a_f3a0.w3d h_a_f3a1.w3d h_a_f3a2.w3d h_a_f3a3.w3d h_a_f3a4.w3d h_a_f3a5.w3d h_a_f3a6.w3d h_a_f3b1.w3d h_a_f3b2.w3d h_a_f3b3.w3d h_a_f3b4.w3d h_a_f3c0.w3d h_a_f3c1.w3d h_a_f3c2.w3d h_a_f3c3.w3d h_a_f3c4.w3d h_a_f3c5.w3d h_a_f3c6.w3d h_a_f3d0.w3d h_a_f3j0.w3d h_a_f3j1.w3d h_a_f3j2.w3d h_a_f3j3.w3d h_a_f3j4.w3d h_a_f3l0.w3d h_a_f3l1.w3d h_a_f3l2.w3d h_a_f3l3.w3d h_a_f3l4.w3d h_a_fal8.w3d h_a_flma.w3d h_a_flmb.w3d h_a_flmc.w3d h_a_flp1.w3d h_a_flp3.w3d h_a_flp4.w3d h_a_fly1.w3d h_a_fly2.w3d h_a_fly3.w3d h_a_fly4.w3d h_a_flykick.w3d h_a_g0a1_01.w3d h_a_g0b1_01.w3d h_a_h0b1_01.w3d h_a_h11c.w3d h_a_h12c.w3d h_a_h13c.w3d h_a_host_l1a.w3d h_a_host_l1b.w3d h_a_host_l1c.w3d h_a_host_l2a.w3d h_a_host_l2b.w3d h_a_host_l2c.w3d h_a_host_l3a.w3d h_a_host_l3b.w3d h_a_host_l3c.w3d h_a_i0b1_01.w3d h_a_j01c.w3d h_a_j04c.w3d h_a_j08c.w3d h_a_j0b1_01.w3d h_a_j11c.w3d h_a_j12c.w3d h_a_j13a.w3d h_a_j13b.w3d h_a_j13c.w3d h_a_j14c.w3d h_a_j15c.w3d h_a_j17c.w3d h_a_j18c.w3d h_a_j19a.w3d h_a_j19b.w3d h_a_j19c.w3d h_a_j19s.w3d h_a_j20a.w3d h_a_j20b.w3d h_a_j20c.w3d h_a_j21c.w3d h_a_j22c.w3d h_a_j23c.w3d h_a_j24c.w3d h_a_j26c.w3d h_a_j27c.w3d h_a_j33c.w3d h_a_j43a.w3d h_a_j43b.w3d h_a_j43c.w3d h_a_j99a.w3d h_a_j99b.w3d h_a_j99c.w3d h_a_legpain.w3d h_a_punchcombo.w3d h_a_sidekick.w3d h_a_sld1_01.w3d h_a_sld1_02.w3d h_a_sld2_01.w3d h_a_sld2_02.w3d h_a_sld3_00.w3d h_a_sld3_01.w3d h_a_sld3_02.w3d h_a_sld4_00.w3d h_a_sld4_01.w3d h_a_sld4_02.w3d h_a_troop1a.w3d h_a_troop1b.w3d h_a_troop1c.w3d h_a_troop2.w3d h_a_troopdrop.w3d h_a_v42a.w3d h_a_v62a.w3d h_a_x1e_run.w3d h_a_x33c.w3d h_a_x5d_parat_1.w3d h_a_x5d_parat_2.w3d h_a_x5d_parat_3.w3d h_a_x9c_suit.w3d h_a_xg_napc_out.w3d h_b_a0a0.w3d h_b_a0a0_02.w3d h_b_a0a0_03.w3d h_b_a0a0_04.w3d h_b_a0a0_05.w3d h_b_a0a0_06.w3d h_b_a0a0_07.w3d h_b_a0a0_08.w3d h_b_a0a0_09.w3d h_b_a0a0_10.w3d h_b_a0a0_11.w3d h_b_a0a0_12.w3d h_b_a0a0_13.w3d h_b_a0a0_14.w3d h_b_a0a1.w3d h_b_a0a1_00.w3d h_b_a0a1_01.w3d h_b_a0a1_02.w3d h_b_a0a1_03.w3d h_b_a0a1_04.w3d h_b_a0a2.w3d h_b_a0a3.w3d h_b_a0a4.w3d h_b_a0b1.w3d h_b_a0b1_01.w3d h_b_a0b1_02.w3d h_b_a0b1_03.w3d h_b_a0b1_04.w3d h_b_a0b2.w3d h_b_a0b3.w3d h_b_a0b4.w3d h_b_b0a1.w3d h_b_b0a2.w3d h_b_b0a3.w3d h_b_b0a4.w3d h_b_b0b1.w3d h_b_b0b2.w3d h_b_b0b3.w3d h_b_b0b4.w3d h_b_c1a0.w3d h_b_c1a1.w3d h_b_c1a2.w3d h_b_c1a3.w3d h_b_c1a4.w3d h_b_c1b1.w3d h_b_c1b2.w3d h_b_c1b3.w3d h_b_c1b4.w3d h_b_c2a0.w3d h_b_c2a1.w3d h_b_c2a2.w3d h_b_c2a3.w3d h_b_c2a4.w3d h_b_c2b1.w3d h_b_c2b2.w3d h_b_c2b3.w3d h_b_c2b4.w3d h_b_c3a0.w3d h_b_c3a1.w3d h_b_c3a2.w3d h_b_c3a3.w3d h_b_c3a4.w3d h_b_c3b1.w3d h_b_c3b2.w3d h_b_c3b3.w3d h_b_c3b4.w3d h_b_d1a0.w3d h_b_d1a1.w3d h_b_d1a2.w3d h_b_d1a3.w3d h_b_d1a4.w3d h_b_d1b1.w3d h_b_d1b2.w3d h_b_d1b3.w3d h_b_d1b4.w3d h_b_d2a0.w3d h_b_d2a1.w3d h_b_d2a2.w3d h_b_d2a3.w3d h_b_d2a4.w3d h_b_d2b1.w3d h_b_d2b2.w3d h_b_d2b3.w3d h_b_d2b4.w3d h_b_d3a0.w3d h_b_d3a1.w3d h_b_d3a2.w3d h_b_d3a3.w3d h_b_d3a4.w3d h_b_d3b1.w3d h_b_d3b2.w3d h_b_d3b3.w3d h_b_d3b4.w3d h_b_f1a0.w3d h_b_f1a1.w3d h_b_f1a2.w3d h_b_f1a3.w3d h_b_f1a4.w3d h_b_f1b1.w3d h_b_f1b2.w3d h_b_f1b3.w3d h_b_f1b4.w3d h_b_f2a0.w3d h_b_f2a1.w3d h_b_f2a2.w3d h_b_f2a3.w3d h_b_f2a4.w3d h_b_f2b1.w3d h_b_f2b2.w3d h_b_f2b3.w3d h_b_f2b4.w3d h_b_f3a0.w3d h_b_f3a1.w3d h_b_f3a2.w3d h_b_f3a3.w3d h_b_f3a4.w3d h_b_f3b1.w3d h_b_f3b2.w3d h_b_f3b3.w3d h_b_f3b4.w3d h_c_6001.w3d h_c_6002.w3d h_c_7001.w3d h_c_7002.w3d h_c_a0a0_l01.w3d h_c_a0a0_l02.w3d h_c_a0a0_l03.w3d h_c_a0a0_l04.w3d h_c_a0a0_l05.w3d h_c_a0a0_l06.w3d h_c_a0a0_l07.w3d h_c_a0a0_l27.w3d h_c_a0a0_l29.w3d h_c_a0a1.w3d h_c_a0a2.w3d h_c_a0a3.w3d h_c_a0a4.w3d h_c_a0b1.w3d h_c_a0b2.w3d h_c_a0b3.w3d h_c_a0b4.w3d h_c_tubedie.w3d hd_reticle.dds hd_reticle_hit.dds hnd_flag2.dds hnd_flame.w3d hud_6x4_icon_default.dds hud_6x4_info.dds hud_6x4_mainbar.dds hud_6x4_messages.dds hud_6x4_radar.dds hud_6x4_radar_off.dds hud_6x4_reticle_01.dds hud_6x4_reticle_02.dds hud_6x4_reticle_center_01.dds hud_6x4_reticle_center_02.dds hud_6x4_weapon_01.dds hud_6x4_weapon_14.dds hud_6x4_weapon_17.dds hud_6x4_weapon_18.dds hud_6x4_weapon_19.dds hud_6x4_weapon_21.dds hud_armedal.dds hud_armor1.dds hud_armor2.dds hud_armor3.dds hud_autoguns.dds hud_autoguns.tga hud_c&c_g_barracks.dds hud_c&c_g_guardtow.dds hud_c&c_g_harvister.dds hud_c&c_g_power.dds hud_c&c_g_refinery.dds hud_c&c_g_warfact.dds hud_c&c_gdilogo.dds hud_c&c_healthbar.dds hud_c&c_n_airstrip.dds hud_c&c_n_handof.dds hud_c&c_n_harvister.dds hud_c&c_n_power.dds hud_c&c_n_refinery.dds hud_c&c_nodlogo.dds hud_c&c_oblisk.dds hud_cd_rom.dds hud_chainguns.dds hud_chatpbox.dds hud_chem_fire.dds hud_cnc_button.dds hud_cnc_g_apc.dds hud_cnc_g_equipbuy.dds hud_cnc_g_hummer.dds hud_cnc_g_mammoth.dds hud_cnc_g_mlrs.dds hud_cnc_g_orca.dds hud_cnc_g_tank.dds hud_cnc_g_transport.dds hud_cnc_g_vehiclebuy.dds hud_cnc_gcharacter.dds hud_cnc_gdeadeye.dds hud_cnc_gdi_ions.dds hud_cnc_gengineer.dds hud_cnc_genlistgran.dds hud_cnc_genlistmin.dds hud_cnc_genlistrock.dds hud_cnc_ggunner.dds hud_cnc_ghavoc.dds hud_cnc_ghavok2.dds hud_cnc_ghavok3.dds hud_cnc_ghavok4.dds hud_cnc_ghotwire.dds hud_cnc_gmobiusion.dds hud_cnc_gmobiusion2.dds hud_cnc_gmutants.dds hud_cnc_goffrock.dds hud_cnc_goffshot.dds hud_cnc_gpatchrail.dds hud_cnc_gsydneych.dds hud_cnc_gsydneys.dds hud_cnc_gsydneys2.dds hud_cnc_n_apache.dds hud_cnc_n_apc.dds hud_cnc_n_artill.dds hud_cnc_n_buggy.dds hud_cnc_n_equipbuy.dds hud_cnc_n_flamet.dds hud_cnc_n_ltank.dds hud_cnc_n_stealth.dds hud_cnc_n_transport.dds hud_cnc_n_vehiclebuy.dds hud_cnc_nblackrok.dds hud_cnc_nblacksnip.dds hud_cnc_ncharacter.dds hud_cnc_nchemall.dds hud_cnc_nengineer.dds hud_cnc_nengineer2.dds hud_cnc_nenlisauto.dds hud_cnc_nenlisrock.dds hud_cnc_nflameall.dds hud_cnc_nmendvolt.dds hud_cnc_nmendvolt2.dds hud_cnc_nod_nuke.dds hud_cnc_noffrock.dds hud_cnc_noffshot.dds hud_cnc_nravarock.dds hud_cnc_nravarock2.dds hud_cnc_nsakuram.dds hud_cnc_nsakuram2.dds hud_cnc_nstealthlaz.dds hud_driverseat.dds hud_gdiwinban.w3d hud_grana_ionc.dds hud_guncircle.dds hud_gunseat.dds hud_health.dds hud_health1.dds hud_health2.dds hud_health3.dds hud_hemedal.dds hud_ionbeaken.dds hud_keycard_green.dds hud_keycard_red.dds hud_keycard_yellow.dds hud_main.dds hud_mystery_crate.dds hud_nodwinban.w3d hud_nukebeak.dds hud_obje_arrow.dds hud_objectives.dds hud_passseat.dds hud_proxyc4.dds hud_radar.dds hud_ramsentu.dds hud_remotec4.dds hud_repairgun.dds hud_sg_lr_rg.dds hud_sniper.dds hud_sniperock.dds hud_star.dds hud_target brackets.dds hud_tibflech.dds hud_tibrvoltr.dds hud_timec4.dds hud_winscreen.dds i_apache.tga i_buggy.tga i_chem_troop.dds i_flame_tank.tga i_flame_troop.dds i_hand_of_nod.tga i_light_tank.tga i_mammoth_tank.tga i_orca_fighter.tga if_ag_title.w3d if_ammo.dds if_back01.w3d if_background.w3d if_background2.dds if_background2.w3d if_bar.dds if_base.w3d if_bk01.dds if_bk02.dds if_bk03.dds if_bk04.dds if_bk06.dds if_blip.dds if_buildingskill.dds if_button01.dds if_casualties.dds if_cheatgod.dds if_circle01.dds if_circle02.dds if_eva_logo2.dds if_evagizmo.w3d if_evalogo.w3d if_evapulse.w3d if_evarings.w3d if_flash01.dds if_flash02.dds if_gametime.dds if_gdi_logo2.dds if_general.dds if_helpload.w3d if_highlight.w3d if_hlbar.dds if_hlbar3.dds if_killvehicles.dds if_left_main.dds if_left_main_mid2.dds if_left_mainsplit2.dds if_leutenant.dds if_logo.w3d if_lrgstar.dds if_lvl00load.w3d if_lvl01load.w3d if_lvl02load.w3d if_lvl03load.w3d if_lvl04load.w3d if_lvl05load.w3d if_lvl06load.w3d if_lvl07load.w3d if_lvl08load.w3d if_lvl09load.w3d if_lvl10load.w3d if_lvl11load.w3d if_lvl80load.w3d if_lvl90load.w3d if_lvl94load.w3d if_major.dds if_menuparts8.dds if_menuparts9.dds if_missioncomp.tga if_nodhits128.dds if_nodkills.dds if_percentage.dds if_powerups.dds if_private.dds if_renlogo.dds if_renlogo1.dds if_ring.dds if_ringglow.dds if_runovers.dds if_sargent.dds if_scanline.dds if_scanline2.dds if_screen.w3d if_screenin.w3d if_screenout.w3d if_selector.w3d if_stars.dds if_titletrans.w3d if_treefld.dds if_treefld_open.dds if_treeplus.dds if_vehicleskill.dds if_vehicletime.dds if_weapons.dds in_statictrans2.w3d L01-bagmap.tga L01-brick.tga L03_wood01.tga l07_stuc04.dds loadscreen_beam.dds loadscreen_cnc_1.dds loadscreen_cnc_2.dds loadscreen_cnc_3.dds loadscreen_cnc_4.dds loadscreen_cncr_1.dds loadscreen_cncr_2.dds loadscreen_cncr_3.dds loadscreen_cncr_4.dds loadscreen_help_1.dds loadscreen_help_2.dds loadscreen_help_3.dds loadscreen_help_4.dds loadscreen_lvl0_1.dds loadscreen_lvl0_2.dds loadscreen_lvl0_3.dds loadscreen_lvl0_4.dds loadscreen_lvl00_1.dds loadscreen_lvl00_2.dds loadscreen_lvl00_3.dds loadscreen_lvl00_4.dds loadscreen_lvl01_1.dds loadscreen_lvl01_2.dds loadscreen_lvl01_3.dds loadscreen_lvl01_4.dds loadscreen_lvl02_1.dds loadscreen_lvl02_2.dds loadscreen_lvl02_3.dds loadscreen_lvl02_4.dds loadscreen_lvl03_1.dds loadscreen_lvl03_2.dds loadscreen_lvl03_3.dds loadscreen_lvl03_4.dds loadscreen_lvl04_1.dds loadscreen_lvl04_2.dds loadscreen_lvl04_3.dds loadscreen_lvl04_4.dds loadscreen_lvl05_1.dds loadscreen_lvl05_2.dds loadscreen_lvl05_3.dds loadscreen_lvl05_4.dds loadscreen_lvl06_1.dds loadscreen_lvl06_2.dds loadscreen_lvl06_3.dds loadscreen_lvl06_4.dds loadscreen_lvl07_1.dds loadscreen_lvl07_2.dds loadscreen_lvl07_3.dds loadscreen_lvl07_4.dds loadscreen_lvl08_1.dds loadscreen_lvl08_2.dds loadscreen_lvl08_3.dds loadscreen_lvl08_4.dds loadscreen_lvl09_1.dds loadscreen_lvl09_2.dds loadscreen_lvl09_3.dds loadscreen_lvl09_4.dds loadscreen_lvl10_1.dds loadscreen_lvl10_2.dds loadscreen_lvl10_3.dds loadscreen_lvl10_4.dds loadscreen_lvl11_1.dds loadscreen_lvl11_2.dds loadscreen_lvl11_3.dds loadscreen_lvl11_4.dds loadscrn1.w3d map_edges.dds mct_screen-fx.bmp mct_screen-fx.dds menu.mp3 metal.tga metal_track_01.wav metal_track_02.wav meter.tga minigun_fire.wav minigun_loop.wav minigun_reload_1.wav minigun_reload_2.wav mutant_death01.wav mutant_death02.wav mutant_death03.wav mutant_death04.wav muzzle_smoke.dds muzzleball2.dds muzzleball3.dds muzzlesmoke.dds muzzletest2a.dds mx0_nodofficer_deathfire1.wav mx0_nodofficer_deathfire2.wav mx0_nodtrooper1_death1.wav mx0_nodtrooper1_death2.wav mx0_nodtrooper1_deathfire1.wav mx0_nodtrooper1_deathfire2.wav mz_pist1.w3d mz_pist3.w3d noddead1.wav nodrender.dds o_flag.w3d o_tracer1gold.w3d o_tracer1red.w3d o_tracer25gold.w3d o_tracer25red.w3d ocean.tga oldfloor.tga options screen.mp3 p_armor1.w3d p_armor2.w3d p_armor3.w3d p_health1.w3d p_health2.w3d p_health3.w3d p_headband.dds p_headband.w3d p_rifl.w3d pallet.w3d ParticleEmitter.w3d pickupflag.wav pine2.tga pine4.tga powerup_ammo.wav radio1.wav radio2.wav radio3.wav radior1.wav radior2.wav radior3.wav radior4.wav rav_death.w3d ref_bul_glass.dds ren_death.dds REN_DRT_02.tga rico5.wav ricochet5.wav ricocloth1.wav ricocloth2.wav ricocloth3.wav ricocon1.wav ricocon2.wav ricocon3.wav ricocon4.wav ricodirt1.wav ricodirt2.wav ricodirt3.wav ricodirt4.wav ricoelec1.wav ricoelec2.wav ricofire1.wav ricofire2.wav ricoflsh1.wav ricoflsh2.wav ricoflsh3.wav ricoflsh4.wav ricofol1.wav ricofol2.wav ricofol3.wav ricoglass1.wav ricoglass2.wav ricoglass3.wav ricogrs1.wav ricogrs2.wav ricogrs3.wav ricohm1.wav ricohm2.wav ricohm3.wav ricohs1.wav ricohs2.wav ricolm1.wav ricolm2.wav ricolm3.wav ricolm4.wav ricomud1.wav ricomud2.wav ricomud3.wav ricorock1.wav ricorock2.wav ricorock3.wav ricosand1.wav ricosand2.wav ricosand3.wav ricosteam1.wav ricosteam2.wav ricotiber1.wav ricotiber2.wav ricotiber3.wav ricowa1.wav ricowa2.wav ricowood1.wav ricowood2.wav rockettrail.w3d rope_retract.wav s_a_expression.w3d s_a_gesture_l.w3d s_a_gesture_r.w3d s_a_hand_l.w3d s_a_hand_r.w3d s_a_head.w3d s_a_human.w3d s_a_mouth.w3d s_a_tall.w3d s_a_wide.w3d s_b_expression.w3d s_b_gesture_l.w3d s_b_gesture_r.w3d s_b_hand_l.w3d s_b_hand_r.w3d s_b_head.w3d s_b_human.w3d s_b_mouth.w3d s_c_head.w3d s_c_human.w3d s_part.tga s_part2.tga s_part3.tga s_part4.tga s_z_head.w3d s_z_human.w3d s_z_mouth.w3d Sand_emit.tga sandroll.wav sandskid.wav sandtread.wav shadowblob.dds shell.dds shine.tga shine_g.dds shine_o.dds shine_y.dds shootmix1l.wav shootmix1r.wav shotfire.wav shp_trak.dds skin_hands.tga skin_wrists.tga SmkStk_Brk01.tga so_doors.w3d sovbrck1.tga sovrubble.tga spawntransitioneffect.dds strings.tdb sunlensflare.dds tank_flame_fire.wav tank_flame_idle.wav tank_flame_start.wav tank_flame_stop.wav tank_flameshoot_loop_1.wav tib_bullet01.dds tib_bullet02.dds tib_bullet03.dds tracer.dds tracer.w3d tracer_bullet.w3d tracer_gold.w3d tracer_green.w3d tracer_red.w3d tracer_white.w3d trike.dds trike.w3d v_flare_head.dds v_gdi_gboat_flashbeam.dds v_gdi_orcaflame.dds v_nod_flame.dds v_nod_flame.w3d vdc_gdi_humvee.w3d vdc_gdi_medtnk.w3d w_a-10bomb.w3d w_atr_scem02.dds w_beacondisp.dds w_beltchain.dds w_blubeam.dds w_bluflare.dds w_bluflash.dds w_c4-p.dds w_c4-p.w3d w_c4-p_b.w3d w_c4-r.dds w_c4-r.w3d w_c4-r_b.w3d w_c4screen1.dds w_c4-t.dds w_c4-t.w3d w_c4-t_b.w3d w_chem.dds w_chem.w3d w_chem_b.w3d w_chemsludge.dds w_chemtank1.w3d w_chng.dds w_chng.w3d w_chng_b.w3d w_crystle.dds w_disp_gun.dds w_elec1.dds w_elecflare.dds w_flmt.dds w_flmt.w3d w_flmt_b.w3d w_gdi_tlgn.w3d w_gdi_tlgn_fire.w3d w_gdi_tlgn_idle.w3d w_gls1.dds w_gm_pist.dds w_grad1.dds w_grad2.dds w_grad3.dds w_gren.dds w_gren.w3d w_gren_b.w3d w_gust1.wav w_gust2.wav w_gust3.wav w_high_loop.wav w_invs.w3d w_ionb.dds w_ionb_b.w3d w_ionb_closed.w3d w_ionb_open.w3d w_ionc.dds w_ionc.w3d w_ionc_b.w3d w_lite_loop.wav w_lsrg.dds w_lsrg.w3d w_lsrg_b.w3d w_lsrr.dds w_lsrr.w3d w_lsrr_b.w3d w_med_loop.wav w_muzzleflash1.dds w_nuke.dds w_nuke.w3d w_nuke_b.w3d w_numbers.dds w_pist.dds w_pist.w3d w_pist_b.w3d w_rail.dds w_rail.w3d w_rail_b.w3d w_ramj.dds w_ramj.w3d w_ramj_b.w3d w_redbeam.dds w_rifl.dds w_rifl.w3d w_rifl_b.w3d w_rock.dds w_rock.w3d w_rock_b.w3d w_rocketlscrn1.dds w_rprg.dds w_rprg.w3d w_rprg_b.w3d w_scopelight1.dds w_shot.dds w_shot.w3d w_shot_b.w3d w_smmuzzleflash_1.dds w_smmuzzleflash_2.dds w_smmuzzleflash_3.dds w_snddisp.dds w_snip.dds w_snip.w3d w_snip_b.w3d w_tibf.dds w_tibf.w3d w_tibf_b.w3d w_tibr.dds w_tibr.w3d w_tibr_b.w3d w_timescrn.dds w_torch.dds w_volt.dds w_volt.w3d w_volt_b.w3d w_voltdisplay.dds w_whtlight1.dds w_whtlight2.dds x5h_chinook_1.w3d x5h_chinook_2.w3d x5h_chinook_3.w3d x5h_chinook_4.w3d xe_1b_flame.w3d xe_2a_rkflame.w3d xe_2a_rkflare.w3d xe_2g_flame.w3d xe_2g_flare.w3d xe_rocketflame.w3d xe5_rocketflame.w3d yeah1.wav yes1.wav yo1.wav you.dds
  10. How to create a Weapon Posted on October 15, 2002, by Abjab at the Westwood Forums Edited, reformated and images added by Läubi on June 4, 2003 [edit: I have reformated the tutorial as well as adding some comments with knowledge that was found out later and things I have found out myself. Additives are marked with a red `edit` plus a number -Läubi ] Ok I know allot of you people have been trying to figure out how to create your weapons so they are correctly positioned and oriented depending on if its viewed in 1st or 3rd person or if its on the character`s back. Well I`ll try to make it easy to understand. First you need 3 individual models for the weapon. it`s always a good idea to use same name convention WW uses for their models, I`ll use the auto-rifle weapon for the example. [edit1: If you do this you can use the reloadanimation and handposition of the WS weapon, if you do not find a weapon that fits your needed handpostion/reload animation you can create your own Weapon models for 3rd person view are named like this: w_rifl.w3d (where rifl is your weapon name) Weapon models for when the gun is on the character`s back are named like this: w_rifl_b.w3d Weapon models for 1st person view are named like this: f_gm_rifl.w3d File: w_rifl.gmax/w3d 3rd person weapon models: All characters have a "gun bone" that tells renegade which hand does hold the gun. the weapon`s pivot point is positioned at this "gun bone" position. In other words, once you have created your weapon mesh, move its pivot where you want the hand to be. You fix the style that the character should hold the gun in Level Editor i.e.: Shoulder: uses both hands (second hand position is set automatically by Renegade) Pistol: uses one hand etc... [edit2: This is only autosetup for 3rd Person view! For 1st Person view] Now the weapon and its pivot needs to be correctly oriented in RenX: Weapon Orientation: Viewing from top, the weapon should be pointing to the right, and the top side of the weapon is facing you. Pivots Axes: X is pointing to the front of the gun (right in top view) Y is pointing to the top side of the gun (pointing at you in top view) Z is pointing to the right side of the gun (down in top view) Weapons Bones: MuzzleA0, A1: position at which bullets are fired, muzzle bones pivots axes are oriented the same way the weapon`s pivot is. eject: position at which shells exits, its pivot`s Z axis is pointing to the back of the gun and its pivot`s X or Y determines which way the shell exits (I think X does) [edit3: As far as I know the eject bone is obsolent for 3rd person view because Renegade do not show the outcoming clip in 3rd Person view] Origin: use world axes coordinate, positioned a little back of the weapon`s pivot (approximately at elbow`s position) [edit4: from my experience this affects the position of the elbow if you use an two handed mode like shoulder in Leveledit as mentioned before.] If you use a muzzle flash aggregate, link it to the muzzle just like for vehicles. File: f_gm_rifl.gmax/w3d 1st person weapon models: For 1st person view, you can use the same model, or create a simplified version of it with details only in the viewable parts of the gun. Also, for 1st person view, you have to create a magazine mesh for the reload anim. [edit5: Better use a simpler version of the weapon for 3rd Person view than for 1st Peron view!] Like for 3rd person view, the weapon`s pivot position determines where the hand should hold the gun. Weapon Orientation: Orientation of the weapon for first person view is different then the 3rd person. Viewing from top, the weapon should be pointing down, its right side facing you. Weapon Pivot axes: X is pointing to the top side of the gun (right in top view) Y is pointing to the back side of the gun (up in top view) Z is pointing to the right side of the gun (pointing at you in top view) Magazine Pivot axes and position: X is pointing to the right side of the gun (pointing at you in top view) Y is pointing to the back side of the gun (up in top view) Z is pointing to the top side of the gun (right in top view) The pivot of the magazine is positioned at the top of the magazine mesh (pivot`s Z max), back most of the magazine (pivot`s Y max) and left most of the weapon side (pivot`s X axis). The magazine mesh itself is positioned wherever you want it to be on the gun. Name the magazine: f_cm_rifl (where rifl matches your weapon`s name) Weapons Bones: MuzzleA0, A1: for 1st person view, muzzle bone uses a different pivot orientation, X points direction of bullets (down in top view) Y is pointing to the right side of the gun (pointing at you in top view) Z is pointing to the top side of the gun (right in top view) eject: eject bone`s pivot orientation is also different from 3rd person view, X should be pointing direction of shells to exit (right, up 45 degree) Y is pointing to the back side of the weapon (up in top view) Z is pointing right, down (45 degree) Origin: Origin might be determining how far the gun is from the camera, in the auto-rifle w3d, it is centred to the weapon`s pivot position, aligned with world coordinates. [edit6: in fact this is the bone that gets attached to the gunbone of the character. How far the weapon is away from your Character is setup in Leveledit.] File: w_rifl_b.gmax/w3d Back weapon models: This is the model used when on the back of the character, there is no bones for this model. Only the mesh itself and its origin. Weapon orientation: Same orientation of the 3rd person model. Viewing from top, the weapon should be pointing to the right, and the top side of the weapon is facing you. Weapon`s pivot orientation: Since it is on the character`s back and that the weapon is not straight on the back, the pivot axes determines the angle of the weapon on the character`s back. Since this would be hard to explain, here`s the XYZ rotation in absolute world coordinates for the auto-rifle. To set your weapon`s pivot rotation simply click on the "affect pivot only" in the hierarchy tab, then right click on the rotate tool and type this in absolute world X,Y,Z: Weapon`s pivot is centred with the weapon Origin is positioned at the same point where the hand should hold the gun in 3rd person view. (weapon`s pivot point of 3rd view model) Origin using world axes coordinate as always. [edit7: I dunno what Ajab means with that, but you just need to center the orgin to the weapon.] X: -0.9516 Y: -7.6463 Z: 7.3055 You can download the files I used to create the screenshots here. This is just the standard rifle imported into Gmax, I have corrected just the textures a bit and set the bones so they are not visible after export. Finish: Ok that`s it for the RenX part, now all the rest is set in Level Edit, try messing around with settings until you get the results you wish. [edit8: You can now start with doing your own handposition and reloadanimation if you want one.] Hope that helped, Abjab [edit9: I hope that too, and I hope my notes help you to better understand this Tutorial. Have fun with the Tutorial and modding for Renegade]
  11. !!! Important notice !!! 1. To follow these Tutorial you must have these files and the 1st Person view of your wepon. Put all these files into a folder (e.g. mywep) You must also have created your weapon for use in Renegade see the Weapon tutorial ----------------PART I - prepare your weapon 2. Open you 1st Person Wepon in RenX, you must have two parts, the gun, and the clip. Choose a name (max 4 chars) I have coosen m16r, and name your gun f_gm_xxxx (xxxx = your name) and the clip f_cm_xxxx Now group thr clip and the gun, goto Hirachy -> Affect Pivot Only -> Center to object Deaktivate now the Affect Pivot Only and move the gun into the center of GMAX -------------- Now save the file and export it as f_gm_xxxx.w3d (Hierachial Model) into the folder where all the other files are. 3. Now export your file as f_ga_xxxx_idle.w3d, select Pure Animation, Frame 0 to 0, use Existing Skeleton (select here your exported f_gm_xxxx.w3d file) Do the same again, but name the file f_ga_xxxx_fire.w3d ( Before that you can make an animation, e.g. if there is a rotating gun, like the chaingun, but normaly there is no aniamtion needed at this time, the fire anim will be made later. The aniamtion here is only needed, if there is something moving at the gun while firering) 4. Ungroup now the wepon. Now it is time for the relaodaniamtion. For that you should know, how long it takes for your gun, to reload (this will be set up in Commandoeditor). Now calculate the needed frames. Needed frames = ( 30 * reloadtime ) If you have the needed frames divide them by 2. Move to this frameposition and a click Animate . Move now the clip down, so that it is unloaded. Now move to the needed frame and move the clip back, so that the clip is back at the old pose. Now click again at Animate. Now export your file as f_ga_xxxx_relod.w3d, select Pure Animation, Frame 0 to (the end frame), use Existing Skeleton (select here your exported f_gm_xxxx.w3d file) Your reloadaniamtion is now done. Select the gun and the clip and make a groop of them. Save your work. Of course it is possible to make any other aniamtions for the reload, but this is an easy and effective way. Now make a new file, and just create an 0,001 x 0,001 x 0,001 Box ->name it f_cm_xxxx and select hide at the W3D Options ------- now export the file as f_cm_xxxx.w3d as Hirachial Model ----------------PART II - do the handposition and the animations 5. Open now the gun_hands.gmax file, and save it under a new name ( e.g. m16r_hand.gmax ) now goto file->merge and merge your 1st Person weapon into, save your work. Rotate your grouped gun now, so that the gun is on the right position between the both hands. (use only the rotation tool, to prevent missposition) The blue boxes are the bones, that are affecting the handposition. Press `H` to diplay all Objects in the scene, activate [x] Display Subtree, you see now the linking of the bones. I recommend to use this dialog later to to select the bone you want to aniamte. YOU MUST ANIAMTE THE BONES INSTEAD OF ANY PART OF THE HAND OR WEPON OR IT WILL NOT WORK. The bones are what they named, f_l_forearm = left forearm, f_l_hand = left hand the fingers have a simple system: With the (n = 0 - 4) f_l_finger n - bone you can move the finger at the hand, with the f_l_finger n1 - bone you can bend the finger. 6. We will now do the standard hand position, I recommend that you spend a bit of work for this, because this basepose will later be used too for the reloadaniamtion etc. Of course you can make for every state (enter/exit, fire, reload, idle) a seperate handposition, if that is needed. Now click the animate button, and move to frame 1. It`s important that you move to frame 1 and has enabled the Animate or you`ll later get in trouble with exporting!!!! Then select the bone you want to change, and move the fingers, hand and forearm into the position you want. I recommend that you only rotate the fingerbones, or the may look too long or deformed. If you want to test the handposition export your Model as Hierachial Model, and deaktivate [ -] Export using existing skeleton ------- 7. When you are ready with the handposition you must select the bone: `gunbone` and move it exactly to the pivot: Now go to the hirachy tab, select pivot -> Affect Pivot only, and rotate the pivot of the bone (Use Top-view) so that the green arrow stands in an 90° angel to the worlds green arrow (y - Achse) and the red arrow stands in a 90° angel to the green and red arrow. Now the most work is done deaktivate the animate button, save the file. Now hide your wepon, and export it as f_ha_xxxx_idle.w3d select Pure Animation, Frame 1 to 1, use Existing Skeleton f_skeleton.w3d 8. Now it is time for the fireanimation. Save your file with a new filename e.g. mywepon_fireanim.gmax I can`t say directly what to do from now on, because it depends on your wepon, and you can`t "see" a animation on pictures. A good idea is to animate the forearm bones a bit. But only animate the handbones, not the weapon! Then save, hide the wepon and export the file with the same settings as before, but at the frames use 1 to (lastframe you used) name the file f_ha_xxxx_fire.w3d 9. Then open the gmax file with your standard handposition and save it again with a new name e.g mywepon_exit.gmax Make now an aniamtion for the exit of your wepon, e.g. rotate the forearm bones, so that it looks like the wepon gets behind you. Export the files with the already known settings as f_ha_xxxx_exit.w3d Repeat these with an enter animation and export as f_ha_xxxx_enter.w3d 10. Now comes the final step, the relaod animation. For that load your standard handposition file again, save it e.g. as mywepon_relaod.gmax Ungroup your wepon, so that the clip when you aniamte the handposition moves too. Goto frame 1 and press animate and change the base position if that is neede, so that the hand holds the clip and the move to the frame when the clip is `unloaded` and correct the handposition. Then move to the frame, when the clip is attaced to the wepon and correct the handposition again. Export it with the same settings as before and name it f_ha_xxxx_relod.w3d ----------------PART III - insert your files and enjoy your work 11. Copy now all .w3d you have exported into your Mod folder, setup your wepon in Commando editor and select as 1st Personview the file f_gm_xxxx.w3d 12. Export your Modpacket and ENJOY! F.A.Q. Question: My wepon is a bit to high/low or has not the postion it should have Answer: Rotate or move the gunbone boneQuestion: The handposition and animations works fine, but the clip don`t move while reload. Answer: Check if you have exported the f_ga_xxxx_relod.w3d right (check start/endframe, and the naming)
  12. RenX / Leveledit Animation & Emitters Ok, here is how to make an aggregate and put emitters on it. StoneRook and I (Bumpaneer) have been working on this for a long while, so if you have any questions you know where to direct them. First off you need a building. Here is mine. The building must be centered at 0,0,0. Then create a box (1,1,1) and center it at 0,0,0. The name of your box will be the call to your aggregate. I used mghel_ag_1~ for mine. The ~ at the end of the file name is critical. When you have all this, export it as terrain. Next start a new project, this will contain all the changing parts of your building. (Places where smoke will pop up, damaged tiles, etc). Here is mine for the chopper pad. The triangles are two sets of lights, layered on top of each other. One set blinks and one set does not (for when the building is destroyed). Here is how to animate them so only one set shows up at a time. After both are created go to the Open Track View button. Open up the objects tab and find the object you want to animate. Select it and click the Add Visibility Track option. You should now have an option labeled Visibility under your object name. Click the Add Keys button and choose a frame to start. You can right click on the key to change its value (1.0 for fully visible 0 for invisible). Here is what the setup should look like. You`ve probably noticed that semi-visible box by now. That is used for any place you want to have an emitter, such as smoke. It is a 1x1x1 box that has a Visibility track. When it is visible you can see the smoke, when it is not, you can`t. The box has the aggregate box and hide checked under the w3d options. Once everything is all set up you are ready to export. When you export choose Hierarchical Animated Model. Make sure you DON`T name it what you told your building to look for (ex. mghel_ag_1 is WRONG for me). I just called mine testing. After all this is done we are done with RenX, so you can close it down. The easiest way to add an emitter is to use one Westwood already created. I extracted e_19_smoke2.w3d from always.dat. Now open up your exported animation in W3d Viewer (testing.w3d for me). The go to File->Open and open the emitter aggregate you want to use (e_19_smoke2.w3d) OR create your own emitter. I am not going to go through how to do that now, read the Westwood tutorials. Under the Hierarchy tab, choose your model (TESTING for me) and go to the Hierarchy menu at the top. Choose Make Aggregate... and give it a name. The name you put here is the name you told your building to look for (ie. mghel_ag_1 for me). Your side menu should look something like this. Click on the object name under the Aggregate tab (mghel_ag_1) and go to the aggregate menu. Choose the Bone Management option and click on the bone (or other object) you want to attach the emitter to. Find the emitter you want to attach in the Render object: dropdown box and click the attach button. After all that is set use the Export Aggregate button to export it. You`ll need both .w3d files in your mod folder for Level Edit (ie testing.w3d and mghel_ag_1.w3d). In Level Edit create a new terrain object for your building exterior. Then create a new tile for your buildings aggregate. Point it to the aggregate you exported from W3D Viewer (mghel_ag_1). Set the physics type to BuildingAggregate and the AnimationMode to MANUAL. In the AnimationName box type the name of your animation (it comes from the original file so mine is testing.testing.). Set what frames to display at what damage points farther down. And that should do it for you. Good Luck. ~Bumpaneer

About MultiPlayerForums Gaming Community

You can configure the secondary footer through Pad -> global -> secondaryFooter.