PopcornFX Plugin BETA

What’s that “PopcornFX” ?

It’s a real-time Particle Engine suite:

  • The PopcornFX Editor is tailored to create and author PopcornFX particle effects (and it’s free).

  • The PopcornFX C++ SDK is the middleware used to run PopcornFX particles into any Game Engine.

  • And PopcornFX Plugins are ready to go SDK integrations into famous Game Engines.

Simply put, our main goal is to give you the maximum flexibility and control over your particles, at the best performance we can do.

Now we are ready to open the
Unreal Engine 4 PopcornFX Plugin BETA !

For now, the Plugin is a closed source pre-built plugin so it’s only compatible with the exact UE4 version the Plugin has been built with.

The beta version is free and not limited in features, but is limited to Debug/Development UE4 Editor Win64 (no shipping, no packaging).

Downloads, Demos, Wiki and more

You can Complete the form to help us know more about the UE4 community expectations.

The latest build is the v0.5.2, compatible with 4.7.6 or 4.8.0. Beta limited to Win64 UE4Editor.

Enjoy !

EDIT: v0.5.2

I confirm cool technology, familiar with Ogre community.
Black desert. Substance painter and many other places. Pay attention.

I’m super excited by this.

Whoa, now this is super impressive stuff, I’ll be playing with this after I wake up! Already got everything in place, so I’ll post some feedback when I can!

I’m finding it kinda difficult to set this up correctly. I must be missing something somewhere. Say I import the “Blast” sample, it imports, just not the textures, so they are all red. But the effect is there. Possibly a good thorough UE4 Setup tutorials in the Wiki or a video would help resolve this issue and anything related that someone else might experience. A good step by step would be nice.

Hey TheOneWolf,

You should start with the Pack provided in the PKFXContentExamples project.

There are several reasons why Blast cannot be imported as-is in UE4:

I will add a wiki Troubleshooting page with those issues.

Are you sure about this? .dds is available in supported import file types.

My bad, the BlastPack.dds works, so it leaves the other issues.

But, I still have some other dds DXT1 and DTX5 textures that fail to import. At the time, I though that all compressed dds failed to import.

How did you resolve this issue? My blasts textures come in as red, also saids failed to import dds format. Even converting it to png didn’t resolve the issue?


(I cannot take screenshots right now, so I’ll try to explain without)

There is still other issues for Blast.pkfx:

  • AlphaBlend_Additive mode not supported in UE (the default material renders red to show you that)

Quick workaround: override the UMaterial: in UE, open Pk_Blast (the other tab you opened in the screenshot), UE4/Class PopcornFXEffect - PopcornFX look at “PopcornFX|Renderer Materials” and change the material to M_Pk_Billboard_AlphaBlend_Lit for example (make sure you enabled “Show Plugins Folder” Folders | Unreal Engine Documentation)

The right way would be to correctly change all CParticleRenderers BillboardingMaterial to be AlphaBlend or Additive (http://wiki.popcornfx.com/index.php/CParticleRenderer_Billboard)

  • Asset name conflict between BlastPack.dds/png and BlastPack.pkat which both are just named “BlastPack” in UE.

You can import manually both with seperate name, then override them in UE’s Pk_Blast “PopcornFX|Asset Dependencies” UE4/Class PopcornFXEffect - PopcornFX

Or, you can rename them to T_BlastPack.dds and Pkat_BlastPack.pkat, and change all reference to them in Blast.pkfx

  • The Gravity is probably -Y because Blast has been created for an AxisSystem Y-Up

We will “convert” some pkfx of the Sample Pack to be compatible with UE for the next release.

Thanks, i’ll give it a try and update. Sorry I overlooked your initial post about this above lol
A Suggestion that might help. When say we want to export something to be UE4 ready, you could give us an option under the menu for “UE4 Pack/Export”.
When it exports it, it’ll put everything such as the pkat, png/ddg and what not in one go. That way, we are not hunting down the parts and getting them mixed up. Wouldn’t hurt to have the option within the menu to change the naming scheme we’d prefer.


The v0.5.1 is up:

Downloads, Changelog, Demos …

If you don’t already have, Please complete the form, it really helps us to know more about the UE4 community expectations.

About the v0.5.1:

Some fixes has been made to simplify pkfx compatibility for UE4:

  • AlphaBlend_Addtive material is now handled (~faked)
  • Asset name conflict at import (same filename but different extentions) are auto-renamed at import.

You still have to take care of dds DXT* compressed texture not supported by UE4.
And pkfx made for other Axis System will probably appear 90 degree rotated in UE4, BUT the future PopcornFX v1.8.2 will contain helpers to get a pkfx cross-AxisSystem compatible faster.


Here is the v0.5.2 for Unreal Engine 4.8.0 and 4.7.6 !

Don’t forget to give us your feedback !

Still have a problem with AlphaBlend_Addtive material. It is working in 0.5.2? I try to import Black Hole from standart asset, I even decompressed dds-texture. But everything i saw it is black shiny square. Or I do something wrong?b65d426a9056.jpg

And one more question. How define collision with solid object? It is not implimented yet?

Hi Pr0t0Ss12,

There is no issue with the AlphaBlend_Additive material in your FX, however, the “Distortion_01” texture was imported as a Default texture.

This causes issues with the final result (you can see refraction billboards in the picture you attached).

In order to fix this:

  • Open the “Distortion_01” texture by double clicking it
  • Under the Compression category, set Compression Settings to Normalmap
  • Save your texture

Just to make sure, do the same for “DistortionRing_01” which should also be compressed as a normalmap.

After investigating the FX, some spawner scripts contain lines such as

Position = float3(0, 1, 0);

This is why the smoke has a strange offset. You could replace these lines by

Position = scene.axisUp();


Position = float3(0, 0, 1);

(same result)

Are you talking about mesh particles colliding with the world ? This is indeed implemented (see UE4/Collisions - PopcornFX)

You would have to make sure your CParticleEvolver_Physics is setup to have OneWay/TwoWay collisions.

Hugo Nedelec

Programmer - PopcornFX UE4 Plugin

Just announcing the
PopcornFX Answer Hub now available for any questions about PopcornFX (Editor, UE4 Plugin, Runtime etc …).

Thank for reply! It is really help me! I want to ask about shadow inside the hole, it looks very ugly and smoke too, why they square?

Hi Pr0t0Ss12,

It looks like a few of the textures you decompressed from the .dds format weren’t correctly saved.

The pictures you provided are not in good quality but I believe the “corrupt” textures are:

  • Shadow_01 (this one really seems to be corrupt)
  • Lightning_01
  • Lightning_03

Please try saving the original .dds ones in another format such as .png because unreal engine doesn’t seem to handle some compressed .dds format really well.
After saving the original textures into a .png format, you have two options:

  • Replace all the previous .dds textures by your new .png ones (in the different CParticleRenderer_Billboard of your FX), then reimport your FX.
  • Inside UE4, Remove the corrupt textures that were imported in the content browser, and import the new ones. Then you will be able to link them inside the effect directly in UE.

By fixing these texture issues, the black billboards should disappear.
It seems that a lot of the sample pack textures are not supported by UE4, we are looking for a solution to fix these texture issues on all sample packs.

Regarding the smoke, I missed that in the spawner script of the “Smoke” layer in your FX:

Velocity = float3(rand(-1,1), 0, rand(-1,1)) * Scale;

which is why the smoke goes verticaly. It should be replaced by :

Velocity = float3(rand(-1,1), rand(-1,1), 0) * Scale;

When the PopcornFX-Editor 1.8.2 will be released, it will be possible to use

Velocity = **float3suf**(rand(-1,1), 0, rand(-1,1)) * Scale;

which basically mean that depending on the pack’s axis system, values will swizzled automatically in PopcornFX for better axis system compatibility (float3SideUpForward).

Hope this helps !


Here I made a batch script to uncompress all dds in the current folder to u8888 (RGBA 8bit) using the NVIDIA DDS Utilities, so they should be compatible for UE4.

Here is how to:

You can now (re-) import them in UE4, they should all work, without any change to the pkfx

It’ll put this script in the next Plugin version.

Yes! It is help now it looks like that: