top of page
Procedural Hologram Particle System

Problem:
- The texture needs to mask out as the player moves through it, while nearby particles are dispersed from the interaction.
- Needs to be easily adjustable within the level.
Solution:
- Create a material using a sphere mask tied to the player's position to mask the texture as they move through it.
- Build a Niagara emitter that aligns particles with the texture and its color.
- Lerp between a rest and move state so depending on where the player is.


In the material editor, I created a sphere mask multiplied by a grid texture, then multiplied it by the particle color and connected it to the alpha. I also included a 2D Texture Parameter to eventually make it editable in the level. Now to get the player's actual position, I needed to create a blueprint and reference my Niagara system.

In the event graph of my blueprint, I was able to get the player's position and a texture variable. Now I can reference it in my Niagara system.

I created an emitter for my plane and set dynamic parameters for PlayerPosition, Hardness, Radius, and texture, so I could use them in the mesh render's attribute binders.
After dragging the blueprint into the world, the sphere mask achieved the effect I wanted, but now I needed the particle movement.



- I used Spawn Particles in Grid to match the particles to the grid texture, then Sample Texture to copy its colors.
- I created two states: StillPosition keeps particles in place, while MovePosition uses curl noise to move them when the player gets close.
- Adding a lerp blends these two states based on the players position.

Now the texture and radius can be changed within the level easily by other collaborators without having to touch the niagara system or blueprint.
bottom of page