PhysicsVolume
A PhysicsVolume is a bounding volume which affects actor physics. Each Actor is affected at any time by one PhysicsVolume.
Properties
PhysicsVolume Group
- bool bBounceVelocity
- bool bDestructive
- bool bMoveProjectiles
- bool bNeutralZone
- Players can't take damage in this volume.
- bool bNoInventory
- Don't use this, it will not have the desired effect! (It will destroy Inventory actors in the volume, but since UT2003 uses Pickups for things players can pick up, this is pretty much useless.)
- bool bPainCausing
- This volume damages actors in it.
- bool bWaterVolume
- float DamagePerSec
- class<DamageType> DamageType
- class<Actor> EntryActor
- Sound EntrySound
- class<Actor> ExitActor
- Sound ExitSound
- float FluidFriction
- vector Gravity (replicated to clients)
- float GroundFriction
- int Priority
- determines which one of several overlapping PhysicsVolumes gets to apply its physics properties (Gravity, GroundFriction, ZoneVelocity and so on) on players and other actors in the overlapping area.
- float TerminalVelocity
- vector ViewFlash
- vector ViewFog
- vector ZoneVelocity
Karma Group
- float KBuoyancy
- float KExtraAngularDamping
- float KExtraLinearDamping
VolumeFog Group
- bool bDistanceFog
- There is distance fog in this physicsvolume.
- color DistanceFogColor
- The distance fog's color.
- float DistanceFogEnd
- The distance at which the fog starts.
- float DistanceFogStart
- The distance at which the fog reaches its maximum density.
Hidden
- PhysicsVolume NextPhysicsVolume
- Info PainTimer
Methods
Inherited From Actor
- PostBeginPlay ( )
- In versions prior to 2186 PostBeginPlay sets up a VolumeTimer? on the server if bPainCausing was true. Now it only calls the superclass implementation.
- Trigger (Actor Other, Pawn EventInstigator)
- Triggering toggles the bPainCausing property if the DamagePerSec value isn't 0.
- Touch (Actor Other)
- Does various things when actors touch the volume:
Inventory subclasses are given a LifeSpan of 1.5 when bNoInventory=True and the Inventory doesn't have an Owner.
Actors with PHYS_Projectile or Effects with PHYS_None get some Velocity added if bMoveProjectiles is True.
Actors that can't exist in a pain volume are destroyed if this is a pain volume, other actors are damage.
If this is a water volume (bWaterVolume=True) the PlayEntrySplash function is called. - Untouch (Actor Other)
- Calls the PlayExitSplash function if this is a water volume and the actor exiting the volume can cause splashes.
New Functions
- CausePainTo (Actor Other)
- Hurts/damages the actor.
- PlayEntrySplash (Actor Other)
- PlayExitSplash (Actor Other)
- TimerPop (VolumeTimer? T)
New Events
- ActorEnteredVolume (Actor Other)
- Called when an actor entered the volume.
- ActorLeavingVolume (Actor Other)
- Called when an actor leaves the volume.
- PawnEnteredVolume (Pawn Other)
- Called when a Pawn entered the volume. This triggers the volume's Event with the pawn as the instigator.
- PawnLeavingVolume (Pawn Other)
- Called when a Pawn leaves the volume. This untriggers the volume's Event with the pawn as the instigator.
- PhysicsChangedFor (Actor Other)
- Called when an actor in this PhysicsVolume changes its physics mode.
Known Subclasses
- DefaultPhysicsVolume?
- LadderVolume
- LavaVolume?
- PressureVolume?
- WaterVolume
- xFallingVolume
Discussion
Off-Kilter: I don't know about the note on bNoInventory. LavaVolume has this set to true by default, IIRC. Also, for bWaterVolume I've used this to get people to float around and be somewhat buoyant in lava. Is this the correct way?
Wormbo: bNoInventory seems to be a leftover from older engine versions where Inventory (UT) was the base class for all pickups as well. However, in UT2003 Inventory only is the base class for items in a player's inventory. The Pickups of those items aren't subclasses of Inventory anymore.
In UT bNoInventory=True for a ZoneInfo (UT) meant "destroy all items that somehow enter this zone." The code for this was copied over to UT2003 without the neccessary modifications, so it still destroys Inventory class actors, but not any Pickups. It is highly unlikely that any Inventory actors will enter a LavaVolume. The only exception is when the origin of the map is in such a volume. In that case it might cause problems with inventory items spawned of players because those are invisible and usually spawn at the origin. If they spawn inside a bNoInventory volume they might get destroyed immediately and the player doesn't get what he just picked up somewhere else on the map.