UDN
Search public documentation:

CascadeUserGuide
日本語訳
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 Home > Unreal Editor and Tools > Unreal Cascade User Guide
UE3 Home > Particle & Effects > Particles Systems > Unreal Cascade User Guide
UE3 Home > FX Artist > Unreal Cascade User Guide

Unreal Cascade User Guide


Overview


Cascade is a tool for creating particle-based effects using emitters in the Unreal Engine.

Opening Cascade


The Cascade particle editor can be opened by double-clicking any Particle System asset or through the right-click context menu of a Particle System asset in the Content Browser. Either of these will open up that particular particle system in Cascade for editing.

Cascade Interface


Cascade is comprised of six areas:

cascadelayout.jpg

  1. Menu Bar - Visualization and navigation tools.
  2. Tool Bar - Visualization and navigation tools.
  3. Preview Pane - Shows the current particle system (including all emitters contained in that system). Controls in the Sim toolbar options set simulation speed.
  4. Emitter List - This pane contains a list of all emitters in the current particle system, and a list of all modules within those emitters.
  5. Properties Pane - This pane allows the properties of the current particle system, particle emitter, or particle module to be viewed and modified.
  6. Curve Editor - This graph editor displays any properties that are being modified over either relative or absolute time. As modules are added to the graph editor, there are controls for which to display (discussed later in this document).

Menu Bar

Edit

  • Regenerate lowest LOD - Regenerates the lowest LOD by using values that are a preset percentage of the highest LOD's values.
  • Save Package - Saves the package containing the particle system.

View

  • View Origin Axes - Toggles the display of the axes markers at the world origin of the preview pane.
  • View Particle Counts - Toggles display of paticle count stats for each emitter in the particle system in the preview pane.
  • View Particle Event Counts - Toggles display of particle event stats for each emitter in the particle system in the preview pane.
  • View Particle Times - Toggles display of particle time stats for each emitter in the particle system in the preview pane.
  • View Particle Distance - Description needed.
  • View Geometry - Toggle display of a stand-in static mesh in the preview pane. Can be useful for testing certain emitter effects such as collision.
  • View Geometry Properties - Opens the properties window for the stand-in geometry allowing you to modify its properties and change the mesh being used.
  • Save Cam Position - Saves the viewpoint from the preview pane's camera out as the thumbnail for the particle system in the Content Browser.
  • Save Motion Radius - Description needed.

Window

  • Properties: - Toggles the display of the Properties Pane.
  • Unreal Curve Editor: - Toggles the display of the Curve Editor.
  • Preview: - Toggles the display of the Preview Pane.

Tool Bar

There is also a toolbar, as shown below:

CascadeToolBar.jpg

The toolbar contains the following controls (from left to right on the toolbar):

Icon Name Description
toolbar_restartsim.jpg Restart Sim This will reset the simulation in the preview window.
toolbar_restartlevel.jpg Restart in Level This reset the particle system, and any instance of the system in the level.
toolbar_find.jpg Find in Content Browser Opens the Content Browser and selects the current particle system.
toolbar_savethumb.jpg Save Thumbnail Image Saves the viewpoint from the preview pane's camera out as the thumbnail for the particle system in the Content Browser.
toolbar_orbit.jpg Toggle Orbit Mode Toggle the preview viewport camera between orbiting around the particle system or free-moving.
toolbar_motion.jpg Toggle Motion Toggle the effect of any motion from modules on emitters.
toolbar_viewmode.jpg Change view mode Cycles the viewmode used in the preview pane.
toolbar_bounds.jpg Toggle Bounds Toggles the display of the particle system's current bounds in the preview pane.
toolbar_postprocess.jpg Toggle PostProcess Toggles the use of the cascade post process chain in the preview pane.
toolbar_grid.jpg Toggle Grid Toggles the display of the grid in the preview pane.
toolbar_play.jpg Play Play the simulation in the preview viewport.
toolbar_pause.jpg Pause Pause the simulation.
toolbar_simspeed.jpg Set sim speed Cycles through the available sim playback speeds.
toolbar_loop.jpg Toggle Loop System For emitters not set to loop, this will force them to in the preview viewport.
toolbar_realtime.jpg Toggle Realtime Realtime preview of emitters in the preview viewport.
toolbar_color.jpg Background Color Allows the user to change the background color of the preview viewport.
toolbar_sphere.jpg Toggle Wireframe Sphere  
toolbar_undo.jpg Undo Undo the last operation performed.
toolbar_redo.jpg Redo Redo the last undone operation.
toolbar_regenfromhighest.jpg Regenerate lowest LOD duplicating highest Regenerates the lowest LOD by duplicating the highest LOD.
toolbar_regenlowest.jpg Regenerate lowest LOD Regenerates the lowest LOD by using values that are a preset percentage of the highest LOD's values.
toolbar_jumphighest.jpg Jump to Highest LOD Level Loads the highest LOD.
toolbar_jumphigher.jpg Jump to Higher LOD Level Loads the next higher LOD from the current one.
toolbar_addbefore.jpg Add LOD before current Adds a new LOD before the currently loaded LOD.
toolbar_addafter.jpg Add LOD after current Adds a new LOD after the currently loaded LOD.
toolbar_jumplower.jpg Jump to Lower LOD Level Loads the next lower LOD.
toolbar_jumplowest.jpg Jump to Lowest LOD Level Loads the lowest LOD.
toolbar_delete.jpg Delete LOD Deletes the currently loaded LOD.

Preview Pane

The preview pane gives you a rendered preview of the current particle system just as it would appear when rendered in-game. It provides realtime feedback of changes made to the particle system in Cascade. In addition to the fully rendered preivew, the preview pane can also render in unlit, texture density, overdraw, and wireframe viewmodes and show information such as the current bounds of the particle system.

Emitter List

The emitter list contains each particle emitter contained within the particle system being edited in Cascade. It is a horizontal listing of all the emitters where each column represents a single particle emitter contained in the system. Each column is made up of an emitter block, followed by any number of module blocks.

The emitter block is shown below:

Cascade_EmitterBlock.jpg

The following buttons are displayed on the emitter block (left to right):

CASC_ModuleEnable.jpg / CASC_ModuleDisable.jpg

This button will enable/disable emitter. The first image is displayed when the emitter is enabled, the second when disabled. It is important to note that when disabled, the emitter will not have Tick or Render called on it.

The middle button is the rendering mode for the emitter. Clicking it will switch to the next rendering mode available. The following icons are supported:

CASC_Normal.jpg The emitter should render normally.
CASC_Cross.jpg The emitter should render wire-crosses at the positions of the particles.
CASC_Point.jpg The emitter should render points at the positions of the particles.
CASC_None.jpg The emitter should not rendered at all.

The final button on the emitter block is the following:

CASC_CurveEd.jpg This button will send the relevant emitter properties to the curve editor window (#4).

Each module in an emitter appears in a column under the emitter block. The following image is of a module in Cascade:

Cascade_ModuleBlock.jpg

The upper right icon is the button for sending the relevant module data to the curve editor. The lower right icon is the button to enable/disable the module. (NOTE: Disabled modules that are shared between emitters will be disabled on all emitters!)

The final button is only present on modules that can render a 3D representation of themselves in the preview viewport.

CASC_Cross.jpg / CASC_None.jpg

The left image indicates that the 3D preview should be drawn. The right indicates it is currently disabled.

Curve Editor

Adding a module to the graph

Adding a module to the Graph Editor is very simple. The green box that appears on the left side of a module will add that module to the graph editor. The color of the module that appears in the Graph Editor is determined randomly when the module is created. To change this, open the Cascade set of properties in the Property window for the module you want to modify, and set the color there.

Manipulating the graph

The yellow box that appears to the right of the entry in the Graph Editor toggles rendering the splines for that module. Right clicking on one of these entries will allow you to remove it from the graph.

Creating points on the graph

Note that you need to make sure the Distribution you are modifying is a 'curve' type (eg DistributionFloatConstantCurve) before you can add multiple points etc.

To create points in the Graph Editor, ctrl-left click on the spline for the value you want. The easiest way to do this is by turning off all the other modules by using the checkbox discussed above. All modules start at 0 with a single key at time 0. Ctrl-Left clicking on the spline anywhere in the timeline will create a point there. This point can be dragged around at will, but as discussed above if the spline represents a vector (XYZ) then it will move all 3 keys for that vector in time but not in value.

Right clicking on a keypoint will bring up a menu and let you manually enter the Time or Value of that keypoint. If its a key in a color curve, it will also let you select its color using the color picker.

If the module is ColorOverLife, then the splines rendered will reflect the current color at that time, while the points will be colored to reflect the particular channel for that spline.

GraphEditor.jpg

See the Curve Editor User Guide page for more details.

Properties Pane

The properties pane contains a standard UnrealEd properties window (minus the advanced search and favorites features). The properties displayed in this pane depend on what is currently selected in Cascade. If nothing is selected (or if the particle system itself is selected, i.e. through the context menu in the emitter list), then the properties of the particle system itself are shown. If a particle emitter is selected, meaning the emitter block, then the properties of that specific particle emitter are displayed. If a particle module is selected, the properties for that particular particle module are displayed.

Controls

Mouse Controls

Movement controls for Cascade are as such:

In the Preview pane, left mouse button rotates the scene around the particle system center, right mouse button will zoom in and out.

In the Emitter pane, left-clicking on an emitter or module will select that emitter. Left-click dragging on a module will move that module wherever it is dropped, provided there is an emitter under it. This can be used to drag a module up or down in a stack, or to another emitter. Right-click will open up a context-sensitive dialog for creating a new emitter (clicked on empty space), creating a new module (clicked on empty space within an emitter), deleting a module (clicked on a module name), or deleting an entire emitter (clicked on the main emitter module at the top).

Shift-left click and drag will instance a module between emitters, which is expressed as a + next to the module name, and the modules will share the same color.

Ctrl-left click and drag will copy a module from the source emitter to the target one.

Middle-mouse click and drag will pan around in the Emitter pane.

With an emitter selected in the Emitter pane, using the left/right arrow keys will alter its place in the order of the overall particle system. Emitters are updated and rendered by the particle system in the left-to-right order they appear in Cascade.

In the Properties pane, left-click selects fields or opens rollouts for properties.

In the Graph view, the controls change depending on what mode you are in. There are two modes for manipulating the Graph view, these are:

Pan Mode: Left-click drag will move the view around, mousewheel zooms in and out uniformly.

Zoom Mode: Left-click drag will scale the graph vertically, right-click drag will scale the graph horizontally.

If a spline already exists in the graph, then left-clicking anywhere on that spline will create a key at that point. Keys can be moved by left-click dragging them, but in a module with multiple values being graphed (such as RGB for Color Over Lifetime) anytime a key is created, a key is added to the other splines of that module. These keys will always be kept at the same time as the others, so if the key for Red is moved forward or backwards in time, the keys for Green and Blue will be moved horizontally as well (but not vertically).

The other two buttons in the Graph view are Fit buttons. The button on the left will zoom and pan the view to the horizontal extents of the currently visible splines, and the button on the right will do the same on the vertical axis.

Creating a Particle System


To create a particle system in Unreal Engine 3, open the Generic browser and either open File>New and choose Particle System from the dropdown at the bottom of the dialog box, or right click on empty space in the Generic browser and choose New Particle System from the context menu. Both these methods will prompt for Package, Group, and Name. Fill in the appropriate data, and the new Particle System will appear in the Generic browser outlined in white.

Creating a Sprite Emitter


Creating an emitter inside of Cascade is very easily accomplished. Simply right-click in the Emitter list pane of Cascade and choose New Sprite Emitter. An emitter will be created with Lifetime and Initial Size modules. (Currently these modules do not contain useful default settings; this will be updated in the future). Set the Lifetime to 1 Min/Max and the Size to 30 for X,Y,and Z Min/Max. This will give the particle valid settings to render.

Basic Emitter Options


Right-clicking on an emitter block will bring up a menu of the following options:

Rename Emitter - Let's you change the name of the emitter (Alternatively, you could change the name by going to EmitterName in the global settings, and typing in the new name).

Duplicate Emitter - Duplicates the emitter within the particle system.

Duplicate + Share Emitter - Duplicates the emitter within the particle system, sharing all the modules between the source emitter and the duplicated one.

Delete Emitter - Deletes the emitter (Alternatively you could just select the emitter and hit the DELETE key).

Export Emitter - Exports the emitter from the current Cascade window to a particle system that is selected in the General Browser. (Open the particle system with the emitter you want to export, go to the General Browser and select the desired target particle system, the go back to the Cascade window and select Export Emitter.)

Creating Modules


Creating modules is done in much the same manner as creating an Emitter. Right-click in the blank space below the Emitter you wish to add to, and choose the Module you want from the drop down list provided.

Copying Emitters


Open the particle system that contains the emitter you want to copy, select the particle system you want it to be copied to in the generic browser, right click on the emitter you want to copy, and choose Emitter>Export Emitter. That will create a copy of the emitter in the other particle system.

Modules


Module Information

If you change a property to a distribution type that changes over time, some modules use 'relative time' and some use 'absolute time' (more on distributions below).

  • Absolute time is basically the containing emitter time. If you have an emitter set up for 3 loops of 2 seconds, Absolute time for modules in that emitter will run from 0 to 2 seconds three times.

  • Relative time is between 0 and 1, indicating the the lifetime of each particle.

Descriptions of the currently available modules can be found at ParticleSystemReference.

Module Interaction

Modules interact with each other based on their location in the stack within an emitter. For example, creating an emitter with an Initial Location of Min(x=2, y=2, x=2), Max(x=-2, y=-2, z=-2) will spawn the particles in a very small box, then an Initial Velocity with the StartVelocityRadial set to 100 Min and Max will cause the particles to move away from the center of the box. Adding another Initial Location with Max and Min values of 100 for X, Y, and Z will move the entire emitter 100 units away in all directions, but the particles will still move away from the center of the newly located box. Moving the second Initial Location module above the Initial Velocity module will cause the particles to move away from the origin of the system rather than the location offset.

Distribution Types

See the Distributions Reference page for more details.

Particle System Level of Detail (LOD)


Particle systems in UnrealEngine3 now provide level-of-detail support. This document will cover the creation of LOD levels in your particle system as well as the in-game usage of them.

Cascade LOD Controls

The following section of the Cascade toolbar covers the LOD controls.

Cascade LOD Controls

toolbar_lodtools.jpg

A break down of each control follows.

Jump to Highest LOD Button toolbar_jumphighest.jpg

When the Jump to Highest LOD button is pressed, the system will be set to the highest available static LOD.

Jump to Higher LOD Button toolbar_higher.jpg

When the Jump to Higher LOD button is pressed, the system will be set to the next available higher static LOD than the current LOD setting.

Add LOD before current Button toolbar_addbefore.jpg

When the Add LOD before current button is pressed, the system will insert a new static LOD level before the currently loaded LOD.

Current LOD toolbar_lodcurrent.jpg

The current LOD info boxes show which LOD is currently loaded as well as how many LODs exist in the particle system.

Add LOD after current Button toolbar_addafter.jpg

When the Add LOD before current button is pressed, the system will insert a new static LOD level afterthe currently loaded LOD.

Jump to Lower LOD Button toolbar_jumplower.jpg

When the Jump Lower to LOD button is pressed, the system will be set to the next available lower static LOD than the current LOD setting.

Jump to Lowest LOD Button toolbar_jumplowest.jpg

When the Jump to Lowest LOD button is pressed, the system will be set to the lowest available static LOD.

Regen Lowest LOD Button toolbar_regenlowest.jpg

When the Regen Lowest LOD button is pressed, the particle system will remove all existing lower LOD levels and regenerate a new the lowest.

Regenerate Lowest LOD Duplicating Highest Button toolbar_regenfromhighest.jpg

When the Regenerate Lowest LOD Duplicating Highest button is pressed, the particle system will remove all existing lower LOD levels and regenerate a new the lowest that is an exact copy of the highest level.

Delete LOD Button toolbar_delete.jpg

When the Delete LOD button is pressed, the currently selected static LOD level will be deleted from the particle system.

Creating LOD Levels in a Particle System

The following section will go over the intended design flow for creating particle systems will full LOD support.

The highest LOD level is used to layout the overall desired effect. It is important to note that modules can only be added/deleted when editing at the highest LOD level. In this example, a single subUV emitter is created displaying a frame of a texture showing a red 1. This is done via a SubImage Index module with a constant index set to 0. The resulting system is shown in the screen-shot below.

Highest LOD Level

LODLevel_Highest.jpg

The image is slightly blurry due to the large size selected for the particles. This was done for demonstrating the LOD level selection that will happen in-game.

Once the designer feels the particle system is ready for LOD development, he should select Regenerate Lowest LOD from the Edit menu. This will cause the system to regenerate the lowest LOD level. (It will also delete any static LOD levels that were created in the interim.) At the current time, this will simply duplicate the highest LOD level with a lower spawn rate. Once feedback is collected from internal teams, appropriate generation routines for common modules will be implemented.

After selecting the lowest LOD level, tweaking of values can commence on it to get the appropriate look. One thing to note is that by default, all modules in the static LOD level are marked un-editable. This is represented by the module showing a marbled background. (This background texture is subject to change.) To edit a module in a static LOD level, it must be enabled. This is done by right-clicking the module and selecting Enable Module from the context menu.

In our example, we have enabled the SubImage Index module for editing and set the index to 3. This results in an emitter showing a green 4, and is shown below:

Lowest LOD Level

LODLevel_Lowest.jpg

Note that the spawn rate was automatically set to 10% of the highest LOD level.

The next step would involve adding a static LOD in-between the highest and lowest by pressing the Add LOD before current button (assuming you are still viewing the lowest LOD). The SubImage Index module is enabled and has the index set to 1. This results in the emitter showing a yellow 2, as shown below:

LOD Level 1

LODLevel_33.jpg

The same was done for another static LOD between the first static LOD and the lowest LOD by presing the Add LOD after current button and enabling the SubImage index module. The SubImage Index was set to 2 resulting in an emitter displaying a blue 3, as shown below:

LOD Level 2

LODLevel_66.jpg

LOD Method and Distance Settings

In-game control of particle system LOD is accomplished one of two ways. An enumeration in each particle system called LODMethod provides the method for determining how.

The first allowed value is Direct mode, indicated by selecting PARTICLESYSTEMLODMETHOD_DirectSet for the LODMethod property. When this mode is selected, the particle system will use the LOD level that is set on it. This is intended for game-spawned effects, and assumes that the appropriate level will be set on it as required.

The second allowed value is Automatic mode, indicated by selecting PARTICLESYSTEMLODMETHOD_Automatic for the LODMethod property. When this mode is selected, the particle system will determine the LOD level to utilize at spawn time, as well as each time it loops for looping effect. The level is determined by calculating the distance from the camera, looking up the appropriate level in the LODDistances array. The system will select the level based on the distance being greater than or equal to the entries in the array.

The following image shows the property window for our particle system example:

The LODDistances Property Window

LODDistanceProperty.jpg

In this example, LOD 0 (the highest) would be used when the emitter is from [0..1249] units from the camera. LOD 1 would be from [1250..1874], LOD2 from [1875..2499], and LOD3 when the distance is greater than 2500 units.

The LODDistanceCheckTime is used to set how often (in seconds) each ParticleSystemComponent set to Automatic mode will perform distance checks for LOD determination at run-time. In this case, each instance of this particle system in the level will perform its distance check every tenth of a second.