Chapter 3.0 Introduction to Volumes

Volumes are invisible geometry that define a certain space, usually enabling some special functionality when the player is within the area designated by the volume. The area of a volume is defined by a BSP brush. This enables the designer to easily create effects localized to a given portion of the map, such as swimmable areas, collision, triggers, or even modifying post process effects.

There are several distinct types of Volumes, and the major subsets have their own docs or are covered in more appropriate areas. This document will cover more general properties that are common to almost all volumes.
http://udn.epicgames.com/Two/VolumesTutorial.html 

volumebutton.jpgAdding Volumes

To add a Volume, first give your red brush the shape and location you want, then press the Volume Button in the left toolbar. You will then get a list where you can choose which Volume you want to add.

Volumes Types ( current 07.26.2011 )
This nearly exhaustive list of the various volumes available in UDK is a work in progress ( WIP ). It has been culled from various online resources and when possible from their respective *.uc class types located in these UDK directories:

C:\UDK\Development\Src\Engine\Classes
C:\UDK\Development\Src\UDKBase\classes

However care should be taken when utilizing these volumes in the Unreal Editor as the game volumes are often themselves WIP, still in development by the Epic Unreal Team. The volumes functionality and viability will vary from monthly build to monthly build. However in practice their functionality will improve as user feedback and developer refinements all together improve the Unreal toolset.

BlockingVolume
A BlockingVolume is simply an invisible, blocking, brush. A blocking volume blocks players and other actors, but it allows zero extent traces (projectiles, rockets, ...) to go through. Players will be able to walk on this invisible staircase, but you can shoot through it.
 
BlockingVolumes provide faster and better collision than Static Meshes: they add BSP to the map, but they won't cut any other BSP from the level and they can't create BSP-holes because they aren't rendered. To use a BlockingVolume around a Static Mesh, just add a BlockingVolume around it, and then in the properties of the Static Mesh, in Collision, set bBlockNonZeroExtendTraces to False: now the Static Mesh will stop bullets, but will let players walk through. Now, the players are blocked by the BlockingVolume instead.

DynamicBlockVolume
The BlockingVolume is also available in a dynamic form, the DynamicBlockingVolume. This is essentially the same as a standard BlockingVolume, except that the location and rotation of the dynamic version is capable of being animated throughout the level.

ColorScaleVolume
This volume tints the overall color of your level by the color specified in the ColorScale property. Note when editing this property that X, Y, and Z are analogous to R, G, and B, respectively. Therefore, setting the X value to 1 and Y and Z to 0 tints your scene with 100% red. The InterpTime volume controls the time period over which the tint reaches its maximum value.

CullDistanceVolume
Cull distance volumes are very useful optimization tools. What they do is automatically set a cull distance for all primitives within the volume, based on the bounds of the individual primitives. The cull distance volume value is only used if it is lower than the set MaxDrawDistance of the primitive. The main intention for implementation was to optimize the case of large outdoor maps with detailed indoor bases.
http://udn.epicgames.com/Three/VisibilityCulling.html#Cull%20Distance%20Volumes
**Distance Culling**
http://udn.epicgames.com/Three/VisibilityCulling.html#Cull%20Distance%20Volumes

EnvironmentVolume
Used to define certain gameplay areas, and has optional support for interacting with the NavMesh (To block some types of enemies from pathing through it).

ForcedDirVolume
The ForcedDirVolume allows the designer to force UTVehicles (or any individual subclass thereof) to go in a particular direction. This volume is somewhat similar to a BlockingVolume, only instead of simply stopping the vehicle, ForcedDirVolume ushers it along in a specified direction to keep it, and thus the gameplay, moving. This volume has some properties of its own that are explained next:
  • TypeToForce—This property determines whether all, or a subclass of, UTVehicles areaffected by the ForcedDirVolume. When this property is set to None, all UTVehicles are affected.
  • bIgnoreHoverboards—When this property is true, hoverboards are not affected by theForcedDirVolume.
  • Arrow—This component determines the direction in which vehicles are forced. Thedirection can be modified by adjusting the Rotation property of the Arrow component. 

  • bDenyExit—When true, this property keeps the player from exiting the vehicle whileaffected by the ForcedDirVolume.
    • bBlockPawns—When this property is true, the ForcedDirVolume also blocks pawns.
    • bBlockSpectators—When this property is true, the ForcedDirVolume also blocksspectators.
    GameCameraBlockingVolume
    Volume used to block the camera only (all other types of collision are ignored)

    GameCrowdInfoVolume
    List of all GameCrowdDestinations that are PotentialSpawnPoints

    GravityVolume
    The GravityVolume is based on the PhysicsVolume. This volume allows you to adjust gravity levels for all actors within the volume. Its default value is –520. If you set this to a positive value, gravity within the volume is reversed. However, this does not mean the player simply floats off the ground. The player needs some sort of initial hop to get off the ground, and then the GravityVolume takes over.

    LadderVolume
    The LadderVolume is a special version of the PhysicsVolume that allows your character to climb a surface as if it was a ladder. Typically, this ladder is placed against a climbable surface, such as a ladder static mesh. Each LadderVolume has a specified direction, indicated by a pink arrow that is visible within the volume. This arrow must point toward the surface that should be climbed.When a pawn (player) that has its bCanClimbLadders property set to True enters a LadderVolume and faces a direction within 45 degrees of the specified direction, that pawn enters the Phys_Ladder physics state and then starts climbing the ladder.

    Here are two important properties for LadderVolumes:
    • bAutoPath—When set to True, this property automatically creates Ladder actors at the top and bottom of the volume that are used in Ladder Volume 
    • Player - 45° 45°

      LevelGridVolume
      Structure contains coordinates for a single grid cell  ( INCOMPLETE DEF)

      LevelStreamingVolume
      These volumes assist with level streaming by automatically loading the level
      corresponding with each volume whenever the player enters it.

      LightmassCharacterIndirectDetailVolume
      Lightmass generates higher density indirect character lighting samples inside these volumes
      Useful for sections where characters are not over static ground, e.g., elevators

      LightmassImportanceVolume
      The LightmassImportanceVolume controls the area that Lightmass emits photons in, allowing you to concentrate it only on the area that needs detailed indirect lighting. Areas outside the importance volume get only one bounce of indirect lighting at a lower quality.
      http://udn.epicgames.com/Three/Lightmass.html#LightmassImportanceVolume

      MassiveLODOverrideVolume
      Forces lowest detail MassiveLevelOfDetail  to be displayed when the viewer is inside the volume.

      NavMeshBoundsVolume
      This volume only blocks the path builder - it has no gameplay collision

      NxGenericForceShieldBrush
      Type of Coordinates to define the force field (INCOMPLETE DEF )

      PathBlockingVolume
      Same as a BlockingVolume but gets destroyed on level startup. It's used to block bot paths when they are built, but goes away when the level is actually played.

      PhysicsVolume
      A PhysicsVolume exhibits some change in the standard physics of the level whenever the
      player enters it.You can use it to control such things as velocity, friction, and how much damage a player
      takes while in a given area. Several other volumes extend from the base PhysicsVolume, each of which is discussed in this section. This volume controls the standard physics within your level. This volume is given a very low Priority value in its properties, meaning that if you pass into any other volume in your level, the effects of the DefaultPhysicsVolume are overridden. To access the DefaultPhysicsVolume, open the Level Browser and click your current level to select it. Then, right-click and choose Show Selected in Scene Manager. This brings up the Scene Manager window. Make sure the Show Brushes option at the top of the browser is checked, and you will see an entry for the DefaultPhysicsVolume object. On the right side of the browser, you will see all the available properties for the volume.
      Here are some of the more commonly used properties that control the physics in your level:

      bPainCausing  DamagePerSec—These two properties work hand-in-hand to cause your volume to damage a player as long as the player is within it.
      • bPainCausing property - activates the ability to cause damage
      • DamagePerSecond - inflicts #damage per second. If set to a negative value the volume will have a regenerative effect.
      DynamicPhysicsVolume
      The DynamicPhysicsVolume is identical to the standard PhysicsVolume with the exception that its location and rotation can be animated through the use of Matinee.
        PortalVolume
        Used to define areas of a map by portal. Provide a list of teleporters residing in this volume

        PostProcessVolume
        The PostProcessVolume allows you to modify the current post-process being used in
        specific areas of the map. It does not allow you to apply a new post-process; to do this, one would use aKismet sequence. The bEnable properties for Bloom, Depth of Field (DOF), Motion Blur, and Scene Effect determine whether the volume affects each of those aspects of a post- process. The bUseDefaults property forces the original settings of the post-process, meaning that the volume has no effect.

        PrecomputedVisibilityVolume
        Precomputed visibility decreases rendering thread time in game at the cost of increasing runtime memory and lighting build time somewhat. It saves rendering thread time by reducing the number of primitives that have to be handled by the dynamic occlusion system (hardware occlusion queries) and because it works immediately, while the dynamic occlusion system needs time to converge, which often means poor performance coming around a corner or rotating the view quickly. This technique is only useful for medium sized levels or smaller, as the memory and computation requirements grow with the level size. It is also only useful for games with mostly static environments, restricted player movement and somewhat 2d play areas.
        http://udn.epicgames.com/Three/PrecomputedVisibility.html

        PrecomputedVisibilityOverrideVolume
        Overrides visibility for a set of actors. Depending on the variable in this volume an Array of actors will always be considered visible by Precomputed Visibility when viewed from inside this volume or ( as the volume name impplies ) the Array of actors will always be considered invisible by Precomputed Visibility when viewed from inside this volume.

        ProcBuilding
        Creating good-looking buildings can be a very labor-intensive task, as it usually involves placing a lot of individual meshes. The 'ProcBuilding' system in UE3 is designed to allow designers to very quickly create and edit good looking city buildings. It also automatically creates a low-LODed version of the building using a simple mesh and render-to-texture, to allow you to create large cities.
         http://udn.epicgames.com/Three/ProceduralBuildingsTutorial.html
        **Procedural Buildings**
        http://udn.epicgames.com/Three/ProceduralBuildings.html

        RB_ForceFieldExcludeVolume
        This volume acts as a boundary to force field effects caused by force field actors, such as the RB_CylindricalForceActor. Force fields have no effect on actors within this volume. The RB_ForceFieldExcludeVolume has one property: ForceFieldChannel—This property determines which force fields to exclude. Any force field actors using the same channel specified here are excluded. All other force fields still continue to have effect.

        ReverbVolume
        A ReverbVolume affects all sounds that play while the player is within it. The volume’s purpose is to replicate the way sounds reverberate in a variety of environments, including mountains, forests, stone hallways, and many more. Presets for each type of environment can be found in the volume’s ReverbType property. Also available are properties to control sound volume while within the volume’s area, as well as the FadeTime, which controls how long it takes to fade from the normal sound to the associated reverb type.

        ReverbVolumeToggleable
        Volume with variables that can toggle it's ReverbVolume function off/on.

        TestSplittingVolume
        This volume creates 'cookie cutter' edge that will be used to split the mesh beneath it for example if you have a cost inflicting volume that needs to conform the mesh to itself you could return an array of verts along the bottom boundary of the volume, and a height up to the top of the volume and then you have poly boundaries exactly along the border of the volume with which you can add edges which affect cost  (INCOMPLETE DEF)
        • @param Poly - array of vectors that describe bottom of 'cookie cutter' volume (should be CW and convex)
        • @param PolyHeight - height above the poly within which polys should be split (extrude passed poly up by this amount and use faces for clip)
        • @return - TRUE if this shape should be used to split the mesh FALSE if no splitting is necessary
        TriggerVolume
        A TriggerVolume is a simplified volume used to trigger Touch Events in Kismet. It is true that any volume can in fact do this; however, the TriggerVolume has had all other functionality  stripped away, meaning that it is perfect when all you want to do is trigger a Kismet sequence, but don’t want to have to worry about any other settings. This volume is unique in that it has a green wireframe instead of the standard pink.

        DynamicTriggerVolume
        The DynamicTriggerVolume is identical to the standard TriggerVolume, except the dynamic version can have its location and rotation animated through Matinee.

        UDKForcedDirectionVolume
        Allows the ForceDirectionVolume to be limited to certain types of vehicles
        *See also ForceDirectionVolume 

        • TypeToForce - Select Type of Vehicle to limit effect to 
        • IgnoreHoverboards - If true, doesn't affect hoverboards
        • Arrow - For editing - specifies the forced direction
        • DenyExit - if the vehicle is affected by force volume with this flag set, the player cannot exit the vehicle
        • BlockPawns - Whether non-vehicle pawns should be blocked by this volume
        • BlockSpectators - Whether spectators should be blocked by this volume.

        UTAreaNamingVolume
        This volume’s only use is to name specific areas of the map. This is used mainly for displaying locations on the scoreboard, but could be used for other purposes with a little imagination. This volume uses the LocationName property previously described to name the area enclosed by the volume.

        UTAutoCrunchVolume
        This volume forces players on console versions of UT3 to automatically crouch. This is important because there is no control for manually crouching on consoles. This volume has no properties specific to itself.

        UTDynamicWaterVolume
        Version of UTWaterVolume that can be moved during gameplay (attached to matinee, etc) More expensive, so only use when really needed

        UTKillZVolume
        This volume very simply kills any pawns that enter it. It is usually used to kill players at a certain depth when falling, such as falling into a pit or falling out of the world. The UTKillZVolume has one property: KillZDamageType—This property determines the type of damage used when killing the pawn.

        UTLavaVolume
        The UTLavaVolume is identical to the UTWaterVolume, other than a few default values of properties. FluidFriction has been bumped up to 8.0 to slow the player down greatly within this volume. Also, a very high damage of 20.0 per second has been implemented to hurt any players caught within this volume.

        UTScriptedBotVolume
        This volume destroys any bots created through Kismet when they exit the volume. This can be useful if you want to limit scripted bots to a specific area of the map.

        UTSlimeVolume
        This volume is also identical to a WaterVolume, with the exception of the default values of a few properties. It has a higher FluidFriction value (5.0) and is set to cause damage of 7.0 per second. As identified by its name, this volume is used to simulate pools of slime within a map.

        UTWaterVolume
        The UTWaterVolume handles the spawning of different effects when a pawn, projectile, or vehicle enters the volume. This volume also causes damage to pawns whose heads are contained within the volume after a certain amount of time to simulate drowning. When creating standard water within UT3, this would be the volume you would use.


        No comments:

        Post a Comment