Beam
A Beam emitter makes beams that last a moment: a flash, a bolt, a ray that swells and fades. It is made by transforming a Beam. Each emitted beam is a duplicate of the original, drawn between the same two Attachments. A beam does not travel. Its width, its bend, its texture and its colour change over its life. Exercise 8 builds one step by step.
What it makes possible:
- A laser that charges. Width0 and Width1 graphs from 0.1 to 1.5, and a Tex. Speed graph from 0 to 6. Blender State 1 dim blue, State 2 white.
- A lightning flicker. Enabled on, Rate
20, Lifetime0.05, 0.15, Width00.3, 1.2. Every beam has a width of its own. - A tether between two Attachments on a character that never stops. Mode
Animate, Loop on, a level Tex. Speed. - A fireball that drags its own beam. A Beam emitter nested in the fireball’s
RenderTemplate, with both of its Attachments inside thatRenderTemplate.
At a glance
Section titled “At a glance”| Made from | A Beam |
| One particle is | One beam |
| Emit count starts at | 1 |
| Modes | Emit and Animate |
| Sections | Emission, Appearance, Blender, Shape, Texture, Flipbook, Events, Advanced |
| Not present | Motion and Link. A beam is drawn between its two Attachments and goes where they go. There is no Linger row. |
What an emitted beam is
Section titled “What an emitted beam is”Each emit makes one duplicate of the Beam kept in the RenderTemplate, switched on. The beam is drawn between the Attachments named in Shape ▸ Attachment 0 and Attachment 1. Both must be set, or nothing is drawn. The plugin does not make Attachments.
Over the beam’s Lifetime the graph rows and the Blender change its look. At the end of its Lifetime the beam is removed.
The Emit count is the number of beams made at the same moment, on the same two Attachments. The beams are identical unless a graph has a random spread or Lifetime is a range.
An edit shows on beams emitted afterwards. A beam already on screen keeps the values it started with.
Transform
Section titled “Transform”Transform switches the original Beam off and reads it as it stands.
| From the Beam | Goes to |
|---|---|
| Brightness, CurveSize0, CurveSize1, Width0, Width1, LightEmission, Segments, TextureLength, TextureSpeed | Level graphs on the matching rows. |
| FaceCamera, ZOffset, TextureMode | The matching rows. |
| Color, Transparency | State 1 of the Blender, at Time 0. |
| Texture, Attachment0, Attachment1 | Kept on the RenderTemplate. |
| LightInfluence | Not kept. It is set to 0. |
Transform adds four things under the Beam: RenderTemplate, GraphBlender holding one state, an empty BeamFlipbooks folder, and EmitParent.
Emission
Section titled “Emission”| Row | Kind | Starts at | Unit | What it does |
|---|---|---|---|---|
| Mode | List | Emit | Emit or Animate. See Emit against Animate. | |
| Loop | Switch | Off | Shown in Animate mode. Repeats the cycle until switched off. | |
| Enabled | Switch | Off | Shown in Emit mode. Makes beams at the Rate until switched off. | |
| Rate | Number | 10 | Beams per second | Shown in Emit mode. How many beams are made each second while Enabled is on, or during a Duration. |
| Lifetime | Two numbers | 1 | Seconds | How long each beam lasts. Each picks a value between the two. |
| Timescale | Graph | 1 | The speed of the beam’s own clock. |
The Emit, Delay and Duration boxes on the HUD fire a Beam emitter as they fire any other. Emission and the HUD describes the shared rows in full.
Appearance
Section titled “Appearance”| Row | Kind | Starts at | Unit | What it does |
|---|---|---|---|---|
| Brightness | Graph | The Beam’s own | Multiplies the light the beam gives off, over its life. | |
| Light Emission | Graph | The Beam’s own | 0 to 1 | How much the beam’s colour is added to what lies behind it, over its life. |
| Light Influence | Graph | 0 | 0 to 1 | How much scene lighting shades the beam, over its life. |
A Beam emitter has no Color row and no Transparency row. Both are set in the Blender box, which sits under Appearance. On a beam, each is a gradient along the beam’s length, from Attachment 0 to Attachment 1. The Blender describes it.
| Row | Kind | Starts at | Unit | What it does |
|---|---|---|---|---|
| Attachment 0 | Instance, picked with * | The Beam’s own | Where the beam starts. | |
| Attachment 1 | Instance, picked with * | The Beam’s own | Where the beam ends. | |
| Width0 | Graph | The Beam’s own | Studs | The width at Attachment 0, over the beam’s life. |
| Width1 | Graph | The Beam’s own | Studs | The width at Attachment 1, over the beam’s life. |
| CurveSize0 | Graph | The Beam’s own | Studs | The size of the bend at Attachment 0, over the beam’s life. |
| CurveSize1 | Graph | The Beam’s own | Studs | The size of the bend at Attachment 1, over the beam’s life. |
| Segments | Graph | The Beam’s own | How many straight pieces the bend is drawn with. | |
| FaceCamera | Switch | The Beam’s own | On, the beam turns its flat side to the camera. | |
| ZOffset | Number | The Beam’s own | Moves the beam toward or away from the camera in the drawing order. |
The two Attachment rows take an Attachment only. Anything else is refused with the message Must be a Attachment. The rows have no clear button. A pick is used by every beam emitted afterwards. With several Beam emitters selected, the row shows the first one’s Attachment and a pick is written to all of them.
Graph rows are followed smoothly, every frame. The line between two keypoints is straight. Take a Width0 graph of 0, 2, 0 and a Lifetime of 1 second. The beam is 1 stud wide at 0.25 seconds. It is 2 studs wide at 0.5 seconds and 1 stud wide at 0.75 seconds.
Two numbers typed into a graph row give each beam one fixed value between them. Width0 1, 3 makes every beam a different width between 1 and 3 studs.
The plugin sets no limit on Width or CurveSize values. Negative numbers are accepted.
Texture
Section titled “Texture”| Row | Kind | Starts at | Unit | What it does |
|---|---|---|---|---|
| Texture | Text | The Beam’s own | The image drawn along the beam. Enter an asset id. | |
| Tex. Length | Graph | The Beam’s own | The length of one repeat of the texture, or the number of repeats, depending on Tex. Mode. Over the beam’s life. | |
| Tex. Speed | Graph | The Beam’s own | Repeats per second | How fast the texture runs along the beam, over its life. |
| Tex. Mode | List | The Beam’s own | How the texture is laid along the beam: Stretch, Wrap or Static. |
The Texture box takes any text that holds digits. The first run of digits becomes the asset id. An empty box, or -, clears the texture. With several Beam emitters selected the box shows ~.
Tex. Speed is measured in repeats of the texture per second. At 1, one whole length of the image passes each second. A positive value runs from Attachment 0 toward Attachment 1. A Tex. Speed graph from 0 to 4 over a Lifetime of 2 seconds scrolls 4 repeats in all.
A Tex. Speed graph that changes over the beam’s life follows Timescale. The scroll slows, stops and runs backwards with the beam’s clock. A level Tex. Speed keeps its speed whatever the Timescale.
A playing flipbook replaces the texture at every change of frame.
Flipbook
Section titled “Flipbook”| Row | Kind | Starts at | Unit | What it does |
|---|---|---|---|---|
| Mode | List | OneShot | None, OneShot, Loop or PingPong. | |
| Framerate | Two numbers | 30 | Frames per second | The speed of Loop and PingPong. Each beam picks a value between the two. Hidden while Mode is OneShot. |
| StartRandom | Switch | Off | Each beam starts on a random frame. | |
| Reverse | Switch | Off | Plays the frames backwards. |
The frames are the Decals inside the BeamFlipbooks folder under the emitter, in the order of their numbered names: 1, 2, 3. Only Decals count. The folder starts empty. With an empty folder there is no flipbook, and the Texture row is used.
To fill the folder, select the Beam emitter and press Insert on a flipbook in the Inventory. Insert replaces what the folder held with numbered Decals. Decals added by hand also work. The folder is read again at every emit.
| Mode | What plays |
|---|---|
| None | Nothing. The Texture row is used. |
| OneShot | The frames once, spread over the beam’s Lifetime. Framerate is not used. |
| Loop | The frames again and again, at the Framerate. |
| PingPong | The frames forwards, then backwards, at the Framerate. |
In OneShot, 8 frames over a Lifetime of 2 seconds show each frame for 0.25 seconds. Playback follows the beam’s own clock, so Timescale slows, stops and reverses it. Decals and flipbooks gives the playback rules in full.
Events
Section titled “Events”The Events section works as on any emitter. See Events. A Beam emitter fired by an event fires in place. An event cannot move it to another position.
Advanced
Section titled “Advanced”| Row | Kind | Starts at | What it does |
|---|---|---|---|
| Anim. Steps | Number | 100 | No visible effect on a Beam: its graphs are followed every frame. |
| Emit Into | Instance, picked with * | None | Where emitted beams are placed in the Explorer. It does not change where a beam is drawn. |
| Preload Texture | Switch | Off | Keeps the emitter’s textures loaded, so the first emit does not show a blank texture. |
| Pool | Switch | Off | Reuses finished beams in place of making new ones. For emitters with a high Rate. |
Advanced describes these rows in full.
Emit against Animate
Section titled “Emit against Animate”| Emit | Animate | |
|---|---|---|
| What plays | A duplicate of the RenderTemplate for each emit. | The RenderTemplate itself, switched on for one cycle. |
| Emit count and Rate | Used. | Not used. There is one beam. |
| The Emit button | Fires the Emit count after the Delay. | Plays one cycle after the Delay. With a Duration above 0, the cycle repeats for that long. |
| Fired again while playing | More beams are added. | The cycle starts again from the beginning. |
| At the end | The beam is removed. | The RenderTemplate gets its own values back and is switched off. |
| Loop | Not shown. | Repeats the cycle. Each cycle reads the rows and the Blender again. |
Changing Mode stops the emitter at once. Beams on screen are removed, and Enabled and Loop are switched off.
A beam nested in another emitter
Section titled “A beam nested in another emitter”A Beam emitter placed inside another emitter’s RenderTemplate fires once for each particle of that emitter. It uses its own Emit count, Delay and Duration. Nesting gives the procedure.
| Where Attachment 0 and Attachment 1 are | Result |
|---|---|
Inside the parent’s RenderTemplate | Each beam is tied to that particle’s own Attachments. The beam travels with the particle. |
Outside the parent’s RenderTemplate | Every beam uses the same two Attachments. |
Attachment emitters in the same RenderTemplate fire before the Beam emitter. The beam can then use the Attachment they emit.
Inside a Model emitter with a Scale graph, the Model’s scale multiplies Width0, Width1, CurveSize0, CurveSize1 and Segments every frame. It multiplies Tex. Length too, unless the Model’s Scale Texture is off.
A stock Beam, not transformed, can also be carried by a particle. See Editing stock ParticleEmitters, Trails and Beams.
With the tools
Section titled “With the tools”| Tool | Effect on a Beam emitter |
|---|---|
| Size | Multiplies the Width0, Width1, CurveSize0, CurveSize1 and Segments graphs. Tex. Length is not changed. |
| Time | Multiplies Rate, the Flipbook Framerate and the Tex. Speed graph. Divides Lifetime. |
Size and Time describes both tools.
Limits
Section titled “Limits”- No Motion rows and no Link. To move a beam, move its Attachments, or nest the Beam emitter in an emitter that moves.
- No Linger row. A beam is removed when its Lifetime ends.
- A Lifetime of 0 or less is treated as a very short Lifetime.
- Each emitted beam counts as one particle toward the Particle Cap.