How should I grab enemies by the throat in my FPS?

I am making a physics heavy FPS that utilizes something not unlike the gravity gun from half-life 2.

But a major caveat is that I want to be able to use enemies as a body shield.

Grabbing things and throwing them or using them as a shield is going to be a major major major part of this game.

In fact there’s going to be three Enemy types in regards to grabbing.

Ones that are smaller than you, ones that are the same size as you, and ones that are bigger than you.

All of them can be grabbed before or after you unlock the grappling beam ability.

If you have the grappling beam it gives you some range, If not you have to get in close.

And of course with the grappling beam you have more throw distance.

Smaller enemies don’t affect you in the least In terms of movement. And of course you cannot pick them up while they’re actively attacking. But catch them at the right moment and you can snatch them up and throw them as a weapon. If you pick them up with the grappling beam they just fly towards you.

Enemies that are your size results in you moving slower, And if you were using the grappling beam You move towards each other.

And enemies that are larger than you can only be grabbed with the beam, but you move towards them and don’t affect their movement in the slightest.

Pretty simple so far.

Now obviously small enemies would work almost identical to objects you pick up in half-life or dusk.

And larger enemies don’t get picked up at all.

The only real issue is enemies is your own size.

I have it in my head that you grab them and hold them up by the neck. They can’t fight back, and You can use them as a body shield against incoming projectiles until they die.

Pretty freaking gnarly if you ask me.

But this does come with issues.

Namely, how do I handle look rotation?

I think it’s pretty obvious this is gonna mean Capping maximum rotation speed.

And looking up and down should be independent of them. So if you look up, the enemy you’re grabbing by the throat is gonna move down relative to the screen. They are always going to be at the same angle relative to your body. Which kind of makes sense.

But then what happens when you look left and right next to a wall?

It seems like I have three options here.

  1. Have them become part of the gui And allow the player to turn into the wall Normally, Which is gonna play all kinds of havoc when you throw them.

  2. Have their body Take up physical space and limit turning if they hit a wall. Which is gonna frustrate the hell out of Players in certain circumstances. Not to mention probably be shaky and Janky as hell.

  3. Increase the players movement collider and censor it between the player and the enemy they are holding. But this is going to make it very awkward to aim, which honestly isn’t necessarily a bad thing considering it would be awkward as hell to aim.

Thoughts?