Decorations are important to your map.
They add realism and help your world feel a little more natural, no matter how unnatural it may be. The are a few things we need to cover before we jump straight into the addition of decorations.
First, there are many different categories of "classes." A class is an object that is placed in your level to accomplish a specific purpose. Classes is a group of your object library, which includes Textures, Classes, Sound FX and Music.
Within the Classes category, you have several subcategories, which include: Brush (almost never used), Damage Type (not placed into a map), Decoration, Effects, HUD (not placed into a map), Info (which we have already used), Inventory, Keypoint, Light, Menu (will not be covered here), Navigation Point, Pawn, Projectile, Scoreboard (will not be covered here) and Triggers.
It is important to note that "decoration" is just that: decoration. Usually inert objects that lay strewn about your map. Things like barrels and boxes. Effects are those non-tangible things like certain reactions to actions. Then you have inventory - these are items that can be picked up by the player: weapons, ammunition and tools like the translator. Navigation Points are important for controlling - or giving life to - pawns. Pawns, which are usually non-inert items, such as schools of fish, flocks of birds and monsters and creatures are generally used when creating single-player levels. In this chapter, we will deal specifically with decorations and we will touch on "special" effects.
You must be careful with inventory and all other classes that can be seen by the player. The map you are creating is real life 3D. Three Dimensional software programs almost always work the same way: connect the dots. Dots are drawn. They are known as a "vertext point" or "vertices." Lines, or vertex lines connect these dots.
The open space inside a closed circle of vertex lines is called a "polygon" or "poly" for short. Each poly has two sides, usually known as the inside and outside (when the vertex lines are drawn clockwise, you are looking at the outside) - these sides are called "surfaces" - and "textures" are placed on the surface. Now, the more polys that appear in a scene, the harder your computer must work to generate and ray trace each and every surface - presenting you with a three dimensional picture. Ray tracing simply means the computer locates the light source and traces each and every possible ray of light and calculates how that light is reflected off a surface based on the strength and wavelength of the light, the position of the light, the color of the light, the color of the texture it is bouncing off of, the assumed material of the texture, the reflectivity of the texture and any other textures surrounding it.
This whole process is called "rendering" the image - or just "rendering" for short. So you can see what your computer is really doing for every single poly in the entire view - up to 30 times every second! This should give you an appreciation of just what Unreal is: a true, real-time three dimensional raytraced rendered computer generated movie! Knowing all this and working with 3D software for over ten years, this Author salutes Tim Sweeney and his team for what they have accomplished - no holds barred.
Back to the rules of decoration. Now that you know what kind of torture you are putting the player's computer through, you must take into account the number of vertices and polys in your scene. Since you are not creating a static image or "snapshot" - but rather a full blown stage, these numbers will run rampant as you travel through your level. Needless to say, the fewer number of polys in the visible frame, the faster the map will play at the that point. The good thing is that unreal only renders the polys in the player's immediate view. Those polys that cannot be directly seen by the player will not be rendered.
Now, the important thing to remember is that if your player can see it, it is rendered - in full! If your player is standing at the top of your plateau or your antenna array and looks down - and you have a weapon sitting on the ground, the engine will try to render that weapon - completely, even if the weapon is so far away that it appears as nothing more than a speck and is completely unnoticeable. Therefor, you must take great care in the placement of your objects and control of lighting. This chapter will not tell you where to put your decoration or what decoration to put in a specific location. Rather, we will cover most of the decoration items and what you can do with them. Note that we also will be covering of the effects classes throughout.
SOUND: This is simply an ambient sound. Adding an ambient sound to a decoration is a good way to get sound flowing through your map. However, you should note the sound will be loudest when the player is closest to the decoration and the sound will stop if the decoration is destroyed. All sound settings are standard.
OBJECT: This property is only used to identify the object to Unreal itself.
NETWORKING: This sets the networking priority. This author admits that the actual purpose of this setting is unclear.
MOVEMENT: This property is not usually used for decoration. However, you can use these settings to create ghost movement of your decoration.Experimentation is required here.
LIGHTING: The main settings of concern here apply to the textures of your decoration. For instance, the UNLIT property will work the same as that property when applied to any other surface - as with the surface properties box. An unlit property will cause the texture to show at full brightness, regardless of the environment lighting conditions. This setting will apply to the entire decoration. LIGHT COLOR: Will cause the reflection of light off the object to emulate a light source of this color.
FILTER: This is where you set the visibility of this object. bDifficulty (0, 1, 2, 3) - if set to false will remove this object from a game set to that difficulty level. For instance, if bDifficulty0 is set to false, this object will not appear in a game where the player has selected the easiest form of play. bNet - If set to false, this object will not appear in network games such as DeathMatch. bNetSpecial - Unknown bSinglePlayer - if set to false, will remove this object from a single-player game. OddsOfAppearing - if set to less than 1, will randomly place this object based on the percentage indicated here. A .5 will give thew object a 50 percent chance of being present during the current game.
EVENTS: Used as event/tag in other objects. It is assumed if this object is destroyed or picked-up, it will cause the event to be signaled.
DISPLAY: Setting the actual appearance of this object. Texture - Unknown. When used, it appears to set the texture for the entire room where this object is contained. Normal - this is a pop-down menu. This setting allows you to create unusual effects to this object, such as setting the translucency.
Sprite - Unknown
Skin - Allows you to actually change the texture of the object using the standard texture set found in the textures category of your object library.
ScaleGlow - Unknown
Mesh - the actual polygon model used for this object.
Fatness - allows you to change the size of the object - in width and breadth without affecting the height.
DrawType - Unknown
DrawScale - Allows you to change the overall size of the object. bUnlit - this is the usual unlit property. bShadowCast - will cause this object to cast shadows. bParticles - unknown bNoSmooth - unknown bMeshEnvironment - Unknown bMeshCurvy - unknown AnimSequence - allows you to substitute an animation sequence if this object is animated. AnimRate - the speed of the animation sequence AnimFrame - unknown AbientGlow - adjusts how dark the shadows will be - shadows cast onto the object.
DECORATION: PushSound / EndPushSound - the sound made when the player pushes the object - if pushable or moveable. EffectWhenDestroyed - If the object can be destroyed, an additional effect can be added, such as fireball or slime pool. Contents (Contents 3, Contents 2) - when this object is destroyed, these contents will be shown to the player. Contents can be just about anything, including other decorations. bPushable - If set to false, theis object will effectively be "nailed to the floor." bOnlyTriggerable - depending on the object - self explanatory.
COLLISION: CollisionHeight / CollisionRadius - how high a player needs to jump or how far around the player has to move to get past this object. bProjTarget - assumed to be a projectile target when using stand alone projectile classes. bCollideActors - if the object moves or falls, it will actually hit players and actors. bBlock Actors and Players - will block passage for players and actors.
HEALTH: Unknown. It is assumed that certain decoration pieces will give you health if picked up.
ADVANCED: The only known (or assumed) seetings are as follows: bMoveable: - This item can be moved blsSecretGoal - sets the secret flag for the player as having found a secret location. blsKillGoal - sets the kill flag for the player as having a kill. blsItemGoal - sets the item flag for the player as having found an item. bHighDetail - causes the item to display in high detail, requiring more CPU power. bHidden - Turns the item invisible (assumed) bDirectional - used for certain directional classes such as lights and portals.
Most items are self explanatory.
Take a close look at the properties box for each item you place. There may be specific settings available for that item. For instance, carcasses will usually have a variable available allowing you to have flies or rats savaging around. The Cryopod has field for open and close (assumed to be "event" tags) and so on. There are simply too many items available to go into detail.
As usual, experimentation is key. Place your items, play with it's property values and test play to see what happens. Many items have the option of performing an effect when it is destroyed. Again, experimentation is in order. Also, some effects can be used as stand-alone events. |