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. 
Sphere Mask and Grid Mask.png
Hologram_Texture.png
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.   
HG Blueprint.png
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. 
Hologram Material Bindings.png
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. 
Screenshot 2026-09-27 020201.png
Screenshot 2026-09-27 020212.png
Screenshot 2026-09-27 020258.png
- 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.
Hologram Emitter.png
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