Page tree
Skip to end of metadata
Go to start of metadata

By Greg Hjelstrom

Introduction

A level for Renegade is composed of static and dynamic objects.  This document will give you a brief overview of the types of static objects you can create. 

Static objects never move and cannot be created or destroyed in game.  That being said, you can do a lot of things with animated static objects (including hiding or un-hiding the object, achieving the effect of creation or destruction).  In the Renegade level editor, there are two categories of static objects: Terrain and Tiles.  These two types are handled significantly differently.

Terrain

A terrain for Renegade is treated as a collection of individual meshes.  A terrain cannot be animated or changed in any way.  The bulk of the geometry for any given level is in the form of one or more terrains.  Terrains should always be exported with the “Renegade Terrain” option in the

Tiles

Tiles are static objects that can animate in various ways.  Doors, elevators, damageable objects, and building aggregates are all examples of tiles.  The physics model you select when you set the tile up in the editor defines the logic that controls how a tile animates.  Below is a list of the physics models available to tiles:

StaticPhys

An object that uses the StaticPhys physics model is just a static object in the level.  This is the simplest type of static object and cannot animate.  The only two parameters are the model name and a checkbox indicating whether this object is an occluder.

StaticAnimPhys

This is a simple animating object.  This can be used to make trees that sway, radar dishes that spin, etc.  All of the other physics models in this document are derived from StaticAnimPhys and have all of its parameters.  

Animation Settings:

Collision Mode: The most powerful feature of animated tiles is the ability to animate the physically collideable meshes in your model.  You can select from several collision modes: none, stop, push, and kill

Probably the most useful of these is the push mode.  The push mode will cause the physically collideable meshes in your tile to push the dynamic objects in the game.  One limitation must be kept in mind when you use this mode however – you may only use translation on meshes that are animating with collision mode push.  Elevators (called “lifts” in other games) simply use the push collision mode on their mesh to move characters and vehicles around.

Animation Mode: There are three animation modes: loop, target, and manual.  Loop is the most common mode and simply causes the object to play its animation over and over.  Target and manual are used when there is other code controlling the animation of this object.

Animation Name:  Normally, a StaticAnim object will use the animation built into its w3d file (just use the “Hierarchical Animated Model” option in the exporter).  However, if you want to play a different animation on the object, you can specify that animation here.  Typically it will be in the “fully qualified” form: <skeleton_name>.<anim_name>.  For example, if you export an object named “MyTree”.  Then you create a separate animation called “WaveAnim”, then the full name of the animation will be “MyTree.WaveAnim”.  This parameter is often needed if your tile is an “aggregate” model created in the w3d viewer by attaching emitters to another model.





















Texture Projector Settings

Enable Projector – Does this tile have a texture projector.

Perspective Projection – Should the texture projection be perspective (default is orthographic)

Projector Is Additive – should the texture projection be rendered additive.  The default is to render multiplicative which is useful for creating shadows; additive can be used to create spotlights.

Projector Is Animated – indicates to the engine that the projector is moving and should be re-checked for culling each frame

Ortho Width – width of the orthographic projection (used when Perspective Projection is false)

Ortho Height – height of the orthographic projection

Horizontal FOV – Field of view of the perspective projection.

Vertical FOV – Field of view of the perspective projection

Near Z – near z clipping plane for the projector, only used for rough culling, not clipping

Far Z – far z clipping plane for the projector

Intensity – The darkness of the projector (or brightness if it is additive)

Texture Name – name of the tga file to project

Bone Name – name of the bone to attach the projector to.

Shadow Settings

Tiles may have a static shadow projector that is automatically generated at level load time.  An example of this feature is the trees in various levels in Renegade.  When dynamic objects move into the shadow volume of the tree, the tree shadow is projected onto them.  The engine will share the shadow projection texture between multiple instances of an object whenever possible so you can have lots of shadow projectors in your level.  Unfortunately, these projectors do not currently project onto static geometry because we used light-mapping for the static shadows. 

To the left is a screenshot of the shadow parameters available to static animated objects:

ShadowDynamicObjs – this checkbox enables or disabled the entire “shadow” feature.

ShadowIsAdditive – (may be obsolete) can be used to make “stained glass window” types of effects where the “shadow” is an additive effect rather than a black silhouette effect.

ShadowIgnoresZRotation – allow instances of this tile to share the shadow texture even when they are rotated.  This works well for trees where you can’t really tell the difference in the shadow anyway.

ShadowNearZ – near z clipping plane of the shadow

ShadowFarZ – far z clipping plane of the shadow

ShadowIntensity – how dark (or bright if its additive) the shadow is.