Discord Support

Flow generator documentation

Welcome to the official documentation. If you encounter an issue not covered here, please use the Discord link at the bottom left of the menu to reach out for support.

If you enjoy my work, please consider leaving a review on the product. It only takes a moment and makes a big difference!

Review

Overview

BP_Maestro :

  • This blueprint allows triggering multiple flow sequences
  • Set the play rate for each sequence
  • Play the sequence at the beginning of the level or call an event
  • Loop the sequence
  • Set the delay before firing the other flow or wait for the flow end
  • Launch other maestros at the end of the current one

BP_FlowPart :

  • This blueprint makes it possible to change the appearance of a material according to the position and the normal of a plane moving along a spline
  • Apply the effect on a spline mesh or multiple static meshes (external to the spline mesh)
  • Customize the spline
  • Spawn a particle along the flow to simulate electricity

Video Tutorial

BP_MAESTRO

This blueprint allows triggering multiple flow sequences

  • Auto play:  Do the sequences have to be launched at level start?
  • Loop:  Do the sequences have to loop from start?
  • Sequences (array of struct):  The list and settings of each sequence
    Flow parts: An array of flow parts that will be launched simultaneously
    Play rate: The play rate of each flow part in the array above
    WaitFlowEnd: Does the next sequence has to be launched at the end of the current sequence?
    Delay before next: Is there any additional delay before launching the next sequence?
  • Play other maestro: At the end of the current sequences, does this bp has to launch another maestro?
  • The other maestro: If the boolean above is true, which maestro has to be launched? (The delay before next of the last sequence can be used)

How to easily change the sequence order?
Drag and drop the array grip

How to change a parameter for all sequences in a maestro (like the play rate)?
In the search bar of the actor, search for the parameter name. You will not have to open all the tables one by one.

BP_FLOW PART

This blueprint makes it possible to change the appearance of a material according to the position and the normal of a plane moving along a spline

  • Mat: The flow material instance
  • Static mesh: The mesh that has to be built along the spline (for each spline point)
  • Forward axis: The forward axis of the mesh along the spline
  • Spline scale: The mesh scale along the spline
  • Speed adjustment: To prevent low FPS issues, this variable compensates for possible holes in the flow
  • Cast shadow: Does the static meshes have to cast shadow (this prevent light build issues)
  • Spawn particle: Spawn a particle along the flow to simulate electricity?
  • Flow static mesh: Does this flow part bp have to generate flow on static mesh?
  • Static mesh (array): If the boolean above is true, to which meshes must it send the position of the plane?

How-To Edit a Spline Component in the Viewport

FLOW MATERIAL

The flow generator material function is the basis of the asset.
The vector parameters “normal” and “pos” are driven by the FlowPart blueprints for each material dynamic instance.

Do not manually change these settings in the instances of the material, let the flow parts blueprints do it.

I voluntarily separated the result and the opacity mask. The "Opacity mask" pin is the clamped result, without flow effect, without panner, of the effect.
But you can do funny things by putting the opacity mask in the material opacity pin, like an opacity with a panner or an emissive flow.

To apply the effect to custom materials (with texture for example), just call the MF in the editor and pin the result or the opacity mask in the material pin.
An example is provided in the project (the UE4 logo mesh and material).

HOW TO USE THE FLOW IN OTHER BP

The communication with the bp are pretty easy. Inside each BP_FlowParts there is a variable “Distance” that can be used to check the flow progress.
This variable is clamped between 0 and 1, no matter the spline length.To launch a sequence, just call the event “Play sequence” with a BP_Maestro as reference.
To launch a flow, just call the event “Launch sequence” with a BP_FlowPart as reference.Check the level blueprint to see multiple example.

WORKFLOW

Since sometimes you work with invisible objects (like light flows on static meshes) that cannot be selected because they are invisible, you’ll have to follow a particular workflow.

  1. Drag and drop a BP_FlowPart in the level
  2. Set the static mesh variable but let to default all other variables (if you put your material instance now, the static mesh will disappear)
  3. Move the origin of the bp near the place you want the flow to be
  4. Modify the spline to match your wishes OR select the external static meshes in the array “Static Meshes”
  5. Repeat the operation as much as necessary with the flow parts
  6. Drag and drop the BP_Maestro in the level
  7. Create your flow sequences
  8. Set the Maestro variable “loop” to true
  9. Preview your work in the editor
  10. When the result is perfect you can now customize the flow with the definitive material, play rate or delay.

Troubleshooting: Control the flow in the sequencer

If you absolutely want a flow in the sequencer you need to modify how the flow works.
You might be able to do it but I can’t help you troubleshoot issues if you go further.

  1. Create a new Material parameter collection
  2. Create a “pos” vector parameter
  3. In the BP_FlowPart create a new Mat Param Coll variable, set it to be a public variable
  4. In the construction script: apply the nodes available on the right ==>
  5. In the M_FlowArrow use your material parameter collection ==>
  6. Animate the material collection parameter in the sequencer like below.
    You’ll need to apply this logic to the “normal” parameter as well. You’ll need to create 1 mat param collection per Flow_Part!

How to trigger the effect in the sequencer?

Flow generator is a RUNTIME asset.
The blueprint is creating and moving component at runtime.
You need to press “PLAY” to make it work.
The sequencer is in “EDITOR TIME” not runtime.If your sequence is playing at runtime you can trigger a sequence like this:

  1. Create a new event trigger track in the sequencer
  2. Put your key in the track and double click on it
  3. In the sequence director BP call the “play sequence” for example.

How to change the “emicolor” in the sequencer

  1. Create a new sequence
  2. Select the BP_FlowPart
  3. Add the BP_FlowPart to the sequencer
  4. Click on the +track and add the “NODE_AddSplineMeshComponent-0”
  5. Add the material parameter “Material element 0”
  6. Add the “Emi color” parameter
  7. Tweak the RGB values!

Avoid the stretching of the flow texture

  1. Open the master material (not the instance).
  2. Add the nodes above before the panner node. (The U/V tiling are parameters so the instance should inherit this propriety).
  3. Save,apply the master material.
  4. In the material instance (MI_...) play with the U/V tiling parameter, you should be able to avoid the stretching of the texture.

Troubleshooting: Holes in the flow

There are holes in the flow (frequently near spline points)
The normal and the position of the plane is sent every tick during the timeline, but if the FPS are low, or if the play rate is very high, holes can appear in the flow.Try to adjust the “Speed adjustment” variable in the flowpart bp.

Troubleshooting: Log error

How to fix the log error?In the BP_FlowPart>ManageCurrentStep function add this:

Check out my other products!

Check out my other products!