Using sphere as player hitbox and localizing damage via sphere impact tangent

Hi,

Im rather new to UE4 and game development in general (3 weeks or so), and am working on a little FPS project in my spare time. Having put the basics together (movement, weapons, some basic sounds etc) i feel like its time to tackle the more technically demanding part of my vision, but I don’t really know whether its even possible…

Essentially, I want to have a spherical shield around a player, against which all projectiles and beam weapons will collide. I want to use the ‘Hit’ data in order to apply some kind of localized damage to a player: the angle the damage inflictor hits the sphere at regulates the damage taken.

What I think I need to do is take the impact location on the sphere and find its tangent. Then I need to give it the same Z properties as the damage inflictor vector and do something to find the angle between them and use that angle to make a damage multiplier float.

My problem is that I have no idea how to obtain the impact location on the sphere and then my understanding and knowledge of vector maths is lacking to find the angular difference between them.

Any help would be appreciated!