A customizable Cyberpunk-style holographic police line.
In Cyberpunk 2077, there are tons of cool holographic labels everywhere: company logos, ads, and police lines near crime scenes.
They're shiny and convey messages effectively to the player's eyes using emissive elements.
Before recreating this in Unreal Engine, we must make a texture to display our customized text first.
Try to make it align with the stripe size with a uniform width(I used 1/20 in the image).
Too lazy to use Substance Designer...
Simply go to View/Pattern Preview to secure a seamless texture!
Make a plane with UVs that match the texture(same portion as the one above).
Build a material and simply connect it...
Apply the material on the mesh and it displays text!
Time to animate it! Use Panner to add horizontal speed to the texture, and UV Offset to switch between different lines.
Don't forget to name these parameters to edit them easily later in the material instance.
Tips:
Round the offset to the nearest integer and times it with 0.05 to ensure it always snaps to one of the lines on the texture.
And this is what we can do so far:
Add a tilable pattern for the background to create a pixelated screen effect
Add 2 more parameters to define the opacity of the text and the background
It's pretty much usable till now, but still, there is fun stuff to play with.
Will some world position offset make it more realistic? (as if it's made from a real material instead of a holograph? Who knows)
This part prevents the WPO to happen on the edges
Add another color and a sine function to switch between 2 colors periodically
Maybe a less-smooth animation makes more sense?
I round the Time to play the animation once a second, and a scalar parameter to control the speed.
There are shiny edges in the reference so I added another mask to achieve this.
Now it switches color, with an adjustable framerate, and has a wiggling effect.
I kind of wish the material changes text by it self, and I'll need a transition effect for that.
Some blueprints to loop the UV offset and transition parameter...
Final result