Gah - a solution with more questions. – EntropicLqd


From Unreal Wiki, The Unreal Engine Documentation Site
Revision as of 07:00, 15 July 2009 by Rejecht (Talk | contribs) (EFluidGridType)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
UT2003 :: Actor >> Info >> FluidSurfaceInfo (Package: Engine)

A water-like surface. Actors can cause ripples by touching it. Unlike xProcMeshes, FluidSurfaceInfos do not deform when damaged.


FluidSurfaceInfo Group[edit]

float AlphaCurveScale 
float AlphaHeightScale 
byte AlphaMax 

does anyone know how to use the surface alpha property of fluidsurfaceinfo to blend a second material onto the peaks of the waves in a water surface? -jeeptrash

bool bShowBoundingBox 
bool bUseNoRenderZ 
TerrainInfo ClampTerrain (edfindable)
Terrain used for auto-clamping water verts if below terrain level.
color FluidColor 
float FluidDamping 
between 0 and 1
float FluidGridSpacing 
distance between grid points
EFluidGridType FluidGridType 
float FluidHeightScale 
vertical scale factor
float FluidNoiseFrequency
range FluidNoiseStrength 
"Noise" or ripples that exist without a player interaction
float FluidSpeed 
wave speed
int FluidXSize 
num vertices in X direction
int FluidYSize 
num vertices in Y direction
float NoRenderZ 
bool OrientTouchEffect 
bool OrientShootEffect 
float RippleVelocityFactor 
How much to ripple the water when interacting with actors
class<Actor> ShootEffect 
Class of effect spawned when water surface it shot or touched by an actor
float ShootRadius 
How large a radius is affected when water is shot
float ShootStrength 
How hard to ripple water when shot
bool TestRipple
float TestRippleSpeed
float TestRippleStrength
float TestRippleRadius 
Test ripple that shows only in editor.
class<Actor> TouchEffect 
float TouchStrength 
float UOffset 
float UpdateRate 
Rate at which fluid sim will be updated.
float UTiles 
float VOffset 
float VTiles 
float WarmUpTime 
Amount of time to simulate during postload before water is first displayed

UnrealScript-Only Properties[edit]

array<int> ClampBitmap 
Bitmap indicating which water verts are 'clamped' ie. dont move
array<float> Verts0 (transient, const) 
array<float> Verts1 (transient, const) 
array<byte> VertAlpha (transient, const) 
int LatestVerts (transient, const) 
box FluidBoundingBox (transient, const) 
Current world-space AABB
vector FluidOrigin (transient, const) 
Current bottom-left corner
float TimeRollover (transient, const) 
float TestRippleAng (transient, const) 
FluidSurfacePrimitive Primitive (transient, const) 
array<FluidSurfaceOscillator> Oscillators (transient, const) 
bool bHasWarmedUp (transient, const) 




FGT_Square is slightly faster. FGT_Hexagonal looks better (default).


  • If your FluidSurface inexplicably stops moving (it may have been working fine, then stopped after a rebuild or after subsequent additions/changes to your map), you're apparently experiencing a bug in the PHYS_FluidSurface Physics setting. I'm told this problem also appears in DM-IronDiety, as their fluid surface seems all set up, but is completely immobile. A lame, but servicable work-around is to "jiggle" (or change, then change back) a setting in your FluidSurfaceInfo actor, like FluidXSize, to get the surface physics to "wake up" in Ued, then save your map without another rebuild. This will save the FluidSurface in a state that is active and it will appear so in game as well. Unfortunately, this "jiggling" must take place after each rebuild to ensure your FluidSurface doesn't save in a frozen state.

Quick HOWTO[edit]

Here is a quick way to get a fluid surface in a level.

  1. Add an Actor of class FluidSurfaceInfo to the level.
  2. Change the FluidXSize and FluidYSize along with the FluidGridSpacing to size it correctly for the level space you want to use it in.
  3. Find the Texture you want to use, and assign it to the first material in the Display -> Skins array
  4. Tweak extra settings to suit your level.
  5. Go shoot it.

Related Topics[edit]


Highlander: It seems that the FluidSurface is unlit by default as well. BTW.. the Class Wikifier is pretty neat

Wormbo: Yeah, it's neat, but it still needs some work. I've redone the Properties section.

Jeeptrash: Anybody know what AlphaCurveScale and AlphaHeightScale do? The UDN tutorial implies that they change the alpha based on the height of a vertex but I can't seem to get this working to demo it. Does it change the alpha of an alpha map in the material? of the whole shader?

The Twiggman: Wow those things are neat. Lol I always wondered how some of the volumes were moving like that, so I decided to find out and I looked at curse3's little area. Now you can just replace that old sheet with one of these for good effects. But doesn't that make you think you can make neat effects like a big web or something and have it ripple as you fall through it.

Tony: So is it possible to create circular liquid surfaces with this actor, or is the engine limited in this aspect?

Wormbo: It seems the FluidSurcafeInfo is limited to flat surfaces. If you want a different shape you need to use an xProcMesh.

Zengi: Is it possible to make a fluid type mesh while in game through code for summoning?