Overview
A PopcornFXEffect is the UE asset (.uasset) that will contain the sources of the PopcornFX Effect (.pkfx) (see Effect production pipeline).
Importing an effect
Effects are imported like any other UE asset:
- Click the Import button
- Simply drag & drop the source pkfx file into your project’s content browser.
Once the effect is imported, you should now see the PopcornFXEffect asset in your content browser with its associated thumbnail (see Capturing thumbnails).
Effect editor
A dedicated preview editor is available for effects, simply double-click a PopcornFXEffect asset:
- Effect dependency list (Textures, Meshes, Atlases, Sounds, ..)
- Material list
- Effect attributes for preview
Effect dependencies
You will find here everything the effect needs for update (simulation) and rendering.
All dependencies can be overridden by a custom asset as long as the new asset resides inside the Pack Mount Point.
Effect materials
By default, the UE plugin chooses UE materials compatible with the various renderers the effect uses.
Materials are grouped (batched) by their compatibility (same draw call).
You can override the default mapped material with a custom one.
Default materials
We provide default materials for every renderers, but you can override them globally, per project.
- Under Edit >> Project Settings >> PopcornFX Editor >> Default Materials
Material parameters
The plugin maps the following renderer parameters to the material if they are available:
Parameter name | Parameter type | Description | Renderer type(s) |
DiffuseTexture | Texture 2D | Diffuse map | Billboard / Ribbon / Triangle / Mesh |
DiffuseTextureRamp | Texture 2D | Diffuse Ramp map if DiffuseRamp is enabled | Billboard / Ribbon / Triangle / Mesh |
EmissiveTexture | Texture 2D | Emissive map if Emissive is enabled | Billboard / Ribbon / Triangle / Mesh |
NormalTexture | Texture 2D | Normal map if LegacyLit is enabled | Billboard / Ribbon / Triangle / Mesh |
SpecularTexture | Texture 2D | Specular map if LegacyLit is enabled | Billboard / Ribbon / Triangle / Mesh |
AlphaRemapper | Texture 2D | Alpha-remap map if AlphaRemap is enabled | Billboard / Ribbon / Triangle / Mesh |
MotionVectorsTexture | Texture 2D | Motion Vectors map if Atlas blending mode is MotionVectors | Billboard / Ribbon / Triangle / Mesh |
PopcornFX_SoftnessDistance | Scalar (float) | Softness distance if SoftParticles is enabled | Billboard / Ribbon / Triangle / Mesh |
PopcornFX_MaskThreshold | Scalar (float) | Alpha-test value threshold if material is Masked | Billboard / Ribbon / Triangle / Mesh |
PopcornFX_SphereMaskHardness | Scalar (float) | SphereMask node’s hardness value for volumetric fog materials | Billboard / Ribbon / Triangle / Mesh |
PopcornFX_MVDistortionStrengthColumns | Scalar (float) | MotionVectors distortion strength (columns) | Billboard / Ribbon / Triangle / Mesh |
PopcornFX_MVDistortionStrengthRows | Scalar (float) | MotionVectors distortion strength (rows) | Billboard / Ribbon / Triangle / Mesh |
PopcornFX_SixWay_RLTSTexture | Texture 2D | Right-Left-Top-Alpha Texture if SixWayLightmap is enabled | Billboard |
PopcornFX_SixWay_BBFTexture | Texture 2D | Bottom-Back-Front Texture if SixWayLightmap is enabled | Billboard |
VATPositionTexture | Texture 2D | Positions texture if one of the VAT types is enabled | Mesh |
VATNormalTexture | Texture 2D | Normals texture if Fluid or Soft VAT is enabled | Mesh |
VATColorTexture | Texture 2D | Colors texture if Soft VAT is enabled | Mesh |
VATRotationTexture | Texture 2D | Rotations texture if Rigid VAT is enabled | Mesh |
VATPackedData | Scalar (bool) | Whether or not to treat VAT data as packed if Fluid or Soft VAT is enabled | Mesh |
VATNumFrames | Scalar (uint) | Number of frames in the VAT if one of the VAT types is enabled | Mesh |
VATPivotBoundsMin | Vector (float3) | Pivots min value if Rigid VAT is enabled | Mesh |
VATPivotBoundsMax | Vector (float3) | Pivots max value if Rigid VAT is enabled | Mesh |
VATPositionBoundsMin | Vector (float3) | Positions min value if Normalized Data is enabled for one of the VAT types | Mesh |
VATPositionBoundsMax | Vector (float3) | Positions max value if Normalized Data is enabled for one of the VAT types | Mesh |
Also, some UE material nodes map to built-in PopcornFX parameters:
Node name | Description | Renderer type(s) |
Texcoord 0 | UVs already built with the atlas definition (if any). | Billboard / Ribbon / Triangle |
ParticleColor | Renderer’s Diffuse Color input (previously was VertexColor ) | Billboard / Ribbon / Triangle / Mesh |
VertexColor | Renderer’s Emissive Color input | Billboard / Ribbon / Triangle |
ParticleSubUVProperties.TextureCoordinate0 | Renderer’s Emissive Color input (xy channels) | Mesh |
ParticleSubUVProperties.TextureCoordinate1.X | Renderer’s Emissive Color input (z channel) | Mesh |
Texcoord 1 | If Linear is set as the blending mode of Atlas, second set of texcoords | Billboard / Ribbon / Triangle |
DynamicParameter0.X | If Linear is set as the blending mode of Atlas, TextureID for lerping between texture samples | Billboard / Ribbon / Triangle |
DynamicParameter0.Y | If AlphaRemap is enabled, AlphaCursor used to determine the alpha remap | Billboard / Ribbon / Triangle |
DynamicParameter0 | Renderer’s Input0 input if ShaderInput0 is enabled | Mesh |
DynamicParameter1 | Renderer’s Input1 input if ShaderInput1 is enabled | Billboard / Ribbon / Triangle / Mesh |
DynamicParameter2 | Renderer’s Input2 input if ShaderInput2 is enabled | Billboard / Ribbon / Triangle / Mesh |
DynamicParameter3 | Renderer’s Input3 input if ShaderInput3 is enabled | Billboard / Ribbon / Triangle / Mesh |
Custom materials
Creating custom materials is possible, but requires that the following properties are enabled:
- Material applied on Billboard/Ribbon/Triangle renderers: check Used With Particle Sprites and set Material Domain to Surface
- Material applied on Mesh renderers: check Used With Mesh Particles
Note: You can create a copy of materials provided with the plugin to start from a working material.
Effect attributes
This section will list all attributes and attribute samplers.
Tweaking attributes values in this section will override default values for every instance of this effect, if their values aren’t overridden.
Attributes can either be set from here, or in realtime via C++ or Blueprint.