FluidSurfaceInfo
A water-like surface. Actors can cause ripples by touching it. Unlike xProcMeshes, FluidSurfaceInfos do not deform when damaged.
Properties
FluidSurfaceInfo Group
- 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
- 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)
Enums
EFluidGridType
- FGT_Square
- FGT_Hexagonal
Tips
- 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
Here is a quick way to get a fluid surface in a level.
- Add an Actor of class FluidSurfaceInfo to the level.
- Change the FluidXSize and FluidYSize along with the FluidGridSpacing to size it correctly for the level space you want to use it in.
- Find the Texture you want to use, and assign it to the first material in the Display → Skins array
- Tweak extra settings to suit your level.
- Go shoot it.
Related Topics
- Fluid Surfaces tutorial
- xProcMesh class
- Holes In Fluid Surfaces tutorial
Discussion
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?