WARNING : This site is outdated and the PopcornFX team will no longer answer your questions here.
For all support questions please go to our Discord server
0 like 0 dislike
Hey guys,

I see an effect like this,https://www.youtube.com/watch?v=2JUtZt3tI-8

What can I do to achieve that effect. I'm not a programmer,can you uploaded that example effect in a package here so that if something isn't clear.
by jackieruo (160 points)

3 Answers

0 like 0 dislike
Hi jackieruo,

You can achieve auras effects in the editor like so :

Add a mesh sampler, then in your SpawnerScript

 Position = YourMeshName.samplePosition();

This will make your particles start on a random point of your mesh, this is the first simple step to create every auras effects.

However, it will not work in unity before the next version of the plugin.

In the video you linked, the character mesh is divided into multiple parts and there is one effect for each part that is link to the corresponding bone in Unity, this is some kind of hack but it works.

I don't have this particular package to share, so if you tell us more precisely what you are trying to achieve maybe we can elaborate a little more on your issue.

Hope it helps!

by Deleted user (670 points)
Thank you for your answer, I would like at the edge of skinned mesh renderer to achieve an effect similar to the picture above, it looks like the outline glow, but there are combustion dynamics, only at the edges, not the middle part of the display
0 like 0 dislike


Like this...

by jackieruo (160 points)
0 like 0 dislike


/!\ Basic math ahead!

In the spawner script, you can set a Life of 0 seconds to the particles that are not on the edges of the mesh.

To achieve that, you can use the angle between the forward axis of your camera and the normal of the mesh to check whether the particle is on the edge of the mesh or not:

// Sample some coordinates on the mesh
int3 coords = Shape_1.sampleParametricCoords();
// Use those coordinates to get the 3D position on the mesh surface
Position = Shape_1.samplePosition(coords);
// Use the same coordinates to get the normal of the mesh at this position
float3 normal = Shape_1.sampleNormal(coords);
// A dot product returns 0 if two vectors are perpendicular
// 1 if they are parallel and in the same direction
// and -1 if they are parallel in the opposite direction
// Here we want to check if the dot product is near 0
// meaning that the normal is almost perpendicular to the camera forward axis.
// So if the absolute value of the dot product is small enough, the particles will live 1 second
// otherwise, we set their life to 0
// view.axisForward is only available since the editor 1.10
// You will need an attribute float3 "ViewForward" to make it work in the previous versions
Life = iif (abs(dot(view.axisForward(0), normal)) < 0.2, 1, 0);

You will need to know some basics about coding / 3d geometry to create custom effects like this one.

Hope this helps.

by Paul (8k points)
It's very kind of you, thank you.