Creating Props

From WiCWiki

Revision as of 09:30, 16 May 2008 by Tabu (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Contents

Introduction

We will go through what it takes to make a prop for World in Conflict. The documentation will contain following props:

Static props, Dynamic props, Houses, Fences and Bridges.

Most of the preparations and steps are the same for all the different types of objects.

Good luck with your building and creating!

The model

The model has to be in .LWO format. Preferred program to use is Modo or Lightwave. You can also build your model in other 3d applications and export it to .OBJ, then convert it to .LWO. In the end it has to be .LWO. You can use many layers to separate your model as Showbox will automatically generate a mesh-heirarchy for you.

We separate the model when using multiple textures and often when using a detail layer (for houses we also need a window layer). When using big complex models with many details, you can put all your details in a separate layer and define it as a detail layer. This makes it fade away at a specific distance instead popping away in a LOD. The houses have more use of the detail layer than the props, but props like bridges can sometimes seem like a house in size and complexity. Keep in mind that on lower graphic settings, the detail layer will not render in order to save performance.

A House

“The definition of a house is that it contains a .Slot. A Possibility for the marines to enter the building. All other props count as props for the engine.”

This is what a House could look like in Modo:

Image:wicmodel.jpg

Here you can see that we have a Layer where we put our base mesh. The red Layer is the Detail layer(LOD)and the blue layer is the Window-layer which reflects the environment.The Window-layer also fades away, so keep some geometry behind it. We have a separate texture to the windows, but we paint the texture behind like the one in the window texture but at a lower resolution. For this big house we also have a roof model that has its own texture, as with the Window-layer it also fades away.

When we UVmap, we keep the size to 256pixels / 6m. That means that we use the same pixel resolution throughout the game. That also means that on large houses and props, we have to tile the same surfaces over and over. If this was a brick house, we would have high detail in the bricks but the same square brick tiled all over. If you then were to paint something over the bricks, then it would repeat several times over the model. That leaves us at a high detail house looking very plain and stiff. A counter-measure to that is to make a new UVset that doesn’t tile and make an overlay texture which we add the necessary detail to. To use one of these textures you have to add a new texture to the current surface. See image:

Image:uvRAD.jpg

Under the Default shader it should contain a standard Diffuse Color Image with your tiled UVset. And if you want Showbox to find your other UVset with the other texture, you have to add a new Image with the Effect “Subsurface Amount”, with your second UVset linked. After that you will have to set it up in Showbox. This article shows how: #Props_and_Showbox

You can also see at the images how it could look like when we both tile and don’t tile.

Debug:

You can’t have 2-point polygons in your model. It will make your model crash. It can be a problem in Modo 101 and LW.

Test:

  • . In Lightwave and Modo you can’t assign different smoothing values on different edges. But what you can do is, put a high surface smooth angle and disconnect the polygons from each other. Then you will have your hard edge between the edges.
  • . When you UVmap in Modo, you can adjust the mapping size to 24m if you want to use a 1024x1024 texture. If you want to use a 2048x2048 can map in size 48 etc. IF you want to use our standard to UVmap 256px/6m resolution.

Textures:

  • . Your model has to have a texture assign to it. Remember to choose right UVset. Important is to only having one surface per layer. If you don’t it will either crash or split it into two in Showbox.
  • . Showbox supports .DDS (and .TGA). If you have a .PSD file linked in your 3D program the Showbox with automatically change the search filename to .DDS. So if you work with a texture named house.psd”, the Showbox will try to find “house.dds” in the same catalogue. And if it finds it you will have your texture showed in Showbox and ingame. So you could always work with your .PSD in Modo and then later save it to .DDS to have it showed in Showbox.

Go here to find more about textures.

Tips:

All your UVs doesn’t need to be mapped, it will not make your model crash. If you want to find them, you have to check your model, you can’t debug it in Showbox.

The LODs

LODs are VERY important to World in Conflict. Compared to other RTS we have a free roaming camera that can view the entire landscape simultaneous. Other RTS only shows a small area below the camera from the top down. This only renders a few houses at the same time, when we show all of ours. So we have to LOD the houses and even the smallest props. The houses are made in four LODs. First the high detailed version, then the second LOD is aprox. 50% the cost of the high detailed (without the DetailLayer). The third LOD is then aprox. 25% of the high detailed version and the lastLOD, the fouth is a new model that is built with only the basic shape of the house. Meaning that we remove the details from the first model and save it to a new _LOD file. From what distance the house will LOD is dependant on the houses area and the option for LODs in the map.

The LOD4 uses a new small texture that is not tiled at all. The Showbox can bake the Diffuse, Spec, RAD map to the new LastLOD texture.

To get the LODs to work they should be named _LOD in the filename. Ex. “House.lwo” , “House_LOD2.lwo”, “House_LOD3.lwo” & “House_LOD4.lwo”. Where are, when using a new texture to the LOD4 you have to name your texture “house_lastlod.dds”.

“So if you want your map to have lots of Performance you should add LODs to your props.”

In-Between Process

When you are finish and have saved it to a .LWO file you must make a scene out of it. For now we have to use Lighwave scene editor.

For props it isn’t that important to make a scene out of it, as it is for houses. Why we use scene editor is for use of “layers”, “null objects” (that you can bind to an FX”) and animating, using bones. Also very important is, if you want your model to have LOD distances, you have to have a scene. Otherwise the LODS will never appear. So even if you don’t need it to be an .LWS scene, make it a habit to make a scene out of it just in case.

Props and Showbox

When you open the Showbox and you want to make a new object, you open your .LWS scene and put it in Stand (STND) state. It is the default state all of your model will be in. Other states are mention elseware in this documentation. If everything worked you have it now in your 3dperspective view. Spin it around and check for visual errors.


When you have imported your model into Showbox, it looks like this, if everything has gone accordingly.

Image:leshowbox.jpg

  • 1.

Here are the statistics for the model. The thing to keep in mind is that it is not only modeltri count that makes the model expensive. It is only how many drawcalls and frameverts.

Drawcalls is the most expensive in Wic. The more drawcall you render the more stress for the engine. This model contains three drawcalls. One modellayer is one drawcall. The more you use the more expensive. So try to keep it low. And if you place a lot of props of the same type you will eventually generate a lot of drawcalls.

The other is frameverts. Not only the polygons is counted here, if you have edges with a hard smoothing angel, the engine will begin to cut up the model, generating more verts. And also your uvcount is included. If you split a UVshell it will also add more verts to do so. So if you LOD and so, keep count of the Frameverts. Maybe you can save some by heighten the smoothing angle or connect some UVs.

  • 2.

Here are your Hierarchy of your model. It should look like a more detailed version of your .LWS hierarchy. In this case it contains a Main, Detail & Win layer. What the HUR3 stands for is for when the model brakes, explodes, get wrecked. Then a new model spawns, the “wreck_main” model spawns. More about Wrecks and how to set it up: read here.

  • 3.

Surfaces:

Normalmap diffuse is the default shader in Showbox when you load your object. This is an another surface you can use to get more love from your model. You can read more about surfaces here.

  • 4.

This is the Showbox shelf that I am about to explain more about.

Image:showboxmenu.jpg

    • 1.

Here is the Physics Editor. It is where you make all the options for the model, how it’s going to react with the world.

Image:physeditor.JPG

      • 1. 1.

This shows the perspective view of your model. Here you can clearly see all of your physics boxes, representing in different colors. You can even scale and move the boxes here, works in a different way though. Instead of uniformscale, you move around a side of the box.

      • 1. 2.

Here you have your main Body, this body is attached to a bone. In this case it is under the _main bone. If you use skinned objects with bones you have several body, one for each bone. But for simple objects you only need one.

When you go to the Physics editor for the first time on a object you have to make a new Body, either use the generate button or add body button. Generate is good to use when you want to have many Bodies.

Dynamic tells the engine if the object can move or if it’s just static. All houses are dynamic, means generic poles are dynamic. If you shoot at something or drive over it, it will move by the physic power, if it is set to be dynamic.

Layer describes for the engine what type of prop it is. In this case it is set to be a house, layer 3. In most cases it it set to be Layer 1, all. The other Layers are more explained else ware.

The mass is what your model will weigh. 10000 is standard but smaller object should have less weight. Try to compare to the reality. It is not that representative of the real world though.

Touchkill is, if you want your model to fade away after a time when you have dynamically moved the object. Instead of having your object laying on the map forever it is fading away after set seconds.

      • 1.3.

Here are your elements. It is they who define your physic. There are two types I want to explain here. First the dynamic prop type. They should never have AI box checked. They should only have the Physics box checked. And if you are going to build a house, you should begin with an AI physicsbox, these are really expensive, so make one that covers the entire model, the less the better. They should only have the AI box checked. Then you should have hit boxes for your model. These are the Physics/ LOS/LOF boxes. Physics mean that other physics object will collide with this box. LOS/LOF is Line of Sight and Line of Fire. So when this is checked, your bullets and sight won’t go trough. AI and LOSLOF can be set on one box if that is possible. But have in mind to keep the number of boxes to a minimal.

    • 2.

Shadow Editor, here are the options for the Shadow on the model. The Shadow contains of a lowpoly model containing simple boxes and tubes. The model should be build so that the geometry is within the original mesh. The mesh should not be convex, therefore using boxes is a good way to go to insure that the surfaces is not convex.

First when you create the shadow you choose “New”, there you save your .sdw file. After that you have to “Add” your shadow mesh. “Add” for object that not are skinned with bones and “Add Skinned” for object that are. When you add your shadow, parent it to the main layer. If you need, you can add a LOD2, choose the mesh and parent under same layer/ bone. All the values are controlled ingame.

    • 3.

Here are where you have control of your lods.

Here you can set your layers to “Is Detail” and “Is Window”. When using a lastlod, you don’t want it on detail and window layer. Then you check the the “no_lastlod” box.

Mesh Lod 2, 3 & 4 is at what distance the model will come to the respective LOD. Just for see in Showbox. DO NOT USE INGAME. When you are done set the value in Showbox you must uncheck the “Do not auto calculate lod”. Then the engine and the map control at what distance the object will lod. Removedist is if you want to fade away the layer, could be use to see how fading away the detail and window layer could look like.

The slider Near / Far is if you want to check close how the model looks like far away.

    • 4.

Here are the values for GetY. More about this in Fences.

    • 5. Nodes

Nodes explained.

    • 6. Wires

Old system we don’t use anymore.

See Nodes if you want to add Wires.

    • 7.PE lib

PE lib explained.

    • 8.

Paint is used to let the object inherit the color from the ground, the landscape. Just add by changing the plane to a proper height. You must have the shader:

Normalmap specular Bump RAD (groundCol). Where ground Col is the ground colour you want to paint.

Tips:

If you want to use a ground colour (The model inherit the color from the ground), then it’s not recommended on dynamic props. When the object moves and falls to the ground, it maybe falls on another surface, example from concrete to grass, the model will change it colours and it will look weird.

    • 9.

Here are like show/hide options. Useable sometimes, explained else ware.

    • 10.

Here you can see your different texture variations. More about textures here.

    • 11.

Checkboxes for the object, good debug if you think you are done and might have forgotten a step. When all are green for your right type, you could be done.

Fences

The fence system uses a unique setting in the physics window. It works like this, when you drive over a fence, the bone will be bent down to the ground. The origo of the bone will never move, only rotating down to the ground. It looks like this

Image:fenceoverrun.jpg

Image:fenceoverrun2.jpg

To change the texture when you run over a fence, select the surface named “Fence Wreck (test)”, Where the 1st texture in the list is the texture used for when the fence is not destroyed. The 2nd texture is the destroyed texture of the fence.

Both these textures alpha is used to define if there are wholes in the fence.

A third texture is possible to use as a spec texture.

The weightmaps of the bones described further down is what decides where the 2nd texture will be displayed when a bone in a fence is “destroyed”.

Physics: for fence

Open the Physics Editor and generate new Physicsboxes. For each bone it will generate a physbox. Make sure that they intersect each other for smoother transition between the bones. Choose Properties from each element and check, only the box, “Is Fence”. Now it will use the Fence system. See image for reference on all other options.

Image:fencephys.jpg

GetY:for fence

When you make long distances of fences you want it to follow the hills of the landscape. The preparations you have to make are to rig the model with bones a long the whole model. Each bone is then softweighted to the fence. Making a soft transition between up and down. So if you place it, it will follow the landscape softly. It could look like this in Lightwave:

Image:fencerig.JPG

Every pole will get a 0 value along the Y orientation on the landscape. This procedure continuous in Showbox.

Tip:

Add an extra length below 0 value in Y (In the model). When the landscape is very steep you don’t get a gap between the model and the landscape.

To get your bones to follow your landscape you have to go in to the Joints option in Showbox. There you must change “0” to “1” in the GetY. Also you must determine how much in meter the bone is allowed to constrain up and down. We often take a default value on 20m/20m. After that, you are done.

Image:fenceJoints.jpg


Debug:

If there is a problem, it is most likely that there is something wrong with the weightmap and/or bone setup.

Bridges

First of all, you build your bridge like you want it, (In .LWO format), then you make an .LWS scene. When you are done with that you open your .LWS, in STAND, in the Showbox. There we will setup it up so it works as a Bridge in the game.


Physics: for bridge

Open the physic editor in Showbox and Create a body. Use the “add body” button. After that you turn of the “is dynamic” and change the layer to Bridge (5). After that you make the element as wide as you bridge and let it go out from the sides a few meters. This box will change the terrain Collision so your bridge will decide were the collision is at. After that you have to change the properties on the element to be a “box is cutting”, see image point 2 and 3.

We need to more boxes that tells the AI were you can’t drive. Make two more Elements and put them on the side of the “box is cutting” box, see image point 1.

The only option for these two boxes is “Is AI pathfinding box” turned on. see image point 4 and 5.

Image:bridge.jpg


GetY: for bridges

Now that we are done with the physics, we have to make an another model called *.gety. This file will tell the engine what model it will replace the terraindata with.

Make a plane that covers the bridge, build an extra length that goes down a bit. So that the Tanks will get a smooth drive up for the bridge, otherwise it can pop the tank up to the bridge. When you are done, save it as a new file, called “yourbridgename.gety”. This file can you open and see in Showbox. Just press the GetY button on the shelf and select your file. It should look something like this.

Image:bridgegety.jpg

Tips:

Make the GetY wider than the actually bridge. It will help the engines pathfinding. Also keep the AI boxes on the side and front go at least 3m more than the GetY model.

Debug:

Don’t forget that you have to script the Physics & GetY in Juicemaker.

Also, you cant have an Material with a texture added to it when you are making a GetY model.

Save & Export:

Done

Personal tools
User Created Content