Document Summary: This document describes the Beams system and relevant parameters.
Document Changelog: Created by Daniel Wright; contributed by Wyeth Johnson, Scott Sherman and Alan Willard.
Basic Beam Setup
A basic beam needs the following to function:
A 'Beam Data' module to initialize the sprite as a beam and the following properties:
A lifetime module to determine how long the beam lives. A zero values gives an infinite life. Combine this with a spawnrate of zero in the mitter and a burst list which spawns a single particle to create a 'permanent' beam, good for flashlights and other such beam uses, although remember to flag the bKillOnDeactivate flag in the general emitter properties so that you can turn the beam on and off by turning the whole emitter system on or off.
- Sheets: 1
- MaxBeamCount: 1
- Speed: 0.0
- InterpolationPoints: 1
An initial size module, the only property used here is the X value, which determines the width of the beam.
An intial color module for beam color, assuming that your beam material is set up to use vertex colors using the VertexColor node in the Mat.
A source module. This will determine the start point of your beam. You can safely leave all these values at zero unless you want the origin of your beam to vary from the origin of the emitter.
A target module. This determines the endpoint of the beam, using an X/Y/Z location. The beam draws between the source and target modules. If you wnter a value of 1000 in the X axis, the beam will draw between the source (0,0,0) and the target (1000,0,0). If bUseLocalSpace is checked in the general emitter properties, you will be able to rotate the emitter system around and the beam will rotate in local space.
This simple setup should get you a functional beam.
Sheets: Number of cross-sections to use in beams. 0 will look like - or | in profile, 1 should look like +, 2 * and so on.
Speed: this affects beams 'growing' to their destination. Setting this value to 0 will give you beams that appear at their origin and destination simultaneously.
Interpolation points: Number of joints in the beam from origin to destination. Must be set to 0 for the Noise module to work.
Distance: If target type is set to distance, this is the value that is used as the endpoint of the beam.
Make sure Interpolation Points is set to 0 in the main Beam Data module.
bNoise is deprecated and no longer used, bLowFreq_Enabled is now used instead.
bNRScaleEmitterTime: Scales the noise range based on the duration of the emitter.
bSmooth: Set this flag to allow beams to smoothly interpolate from one noise point to another (used in conjunction with NoiseLockTime, make sure bLockTarget and bLockSource are turned on in their respective modules, and the NoiseLockTime is <0)
Frequency: Controls the number of noise points along the beam.
NoiseRange: This controls the area the noise points can move. This has to be set to a distribution Uniform type with Max and Min values different for the beam to wiggle.
NoiseRangeScale: Is a multiplying factor, so 0 will mean no wiggle, 1 will be wiggle equal to the full NoiseRange, 2 will be double the range.
NoiseSpeed: The speed with which the beam will attempt to reach the next set of noise points
NoiseLockRadius: When using moving noise points, this is the radius within which a noise point is considered as having been reached. This is to avoid jittering about a noise point.
NoiseLockTime: Time between choosing a new set of noise points. Used with bSmooth will interpolate between noise points over this period of time in seconds.
NoiseTangentStrength: This controls the amount of smoothing along the beam at the noise points. The higher this value is, the more curvy the beam noise will be. 0 will make the beam jagged.
NoiseTesselation: The amount of subdivision the join between noise points will undergo. This needs to be above zero for the beam to be rounded at its noise points.