Apply beam damage

Hello everyone,

I have been reading up on applying damage to actors and it seems the gist is to spawn a projectile and have the projectile apply damage to the actor on impact. I can see how this works for missiles and bullets, but how would you apply this concept to a beam? I am trying to implement something similar to the pulse laser’s alternate fire in the first Unreal Tournament that deals damage based on how long the beam is in contact with another player.

I am thinking of simply applying damage in the tick method of the beam as long as it is in contact with another player. Would this be the way to go? I would love to hear your opinions.

Thanks!

So I didn’t play Unreal Tournament (I know, I know…) but if I’m correct this might be something like Zarya’s beam from Overwatch? ; ) If so, what I would do is create your tick event to fire however often you want to apply the damage. Then use the LineTraceByChannel node to cast a line the range of the beam starting from your character, I’d assume. You can use that line trace to act just like the beam would and if you turn on the visual duration option then you’ll see it in-game to make sure it’s set up right. The trace will give you a lot of information back, but the only thing you’ll really need is the actor hit. You can then cast to whatever you want, including multiple actors if the beam goes through them.

On the art side, I don’t really have a clue how you’d go about this. Maybe create a cone with a cool beamy animated texture and particle effect then use some code to change it’s length based on what it’s hitting. Not sure really.

Oh, and a hint for your line trace. I like to create a billboard component on my player then position it to wherever I want the beam/trace to end in my viewport. Then you can grab the GetWorldLocation node and reference that billboard instead of mathing where you want the beam to end.

Good luck!