Root Motion or CharacterController in FPS

I want to make a Horror FPS game where the player can see their own body when they look down.
I have two options here

  1. Allow the animation to dictate movement - Root Motion
  2. Move character and sync animation as best i can - CharacterController

My thoughts are to use Root Motion as I get a much cleaner walk (no sliding) and I’m able to make the player more immersed by making the animations more grounded. However, I haven’t tried using root motion to move a player in a FPS style setting before.

our goal is to have clean and grounded movement, the ability to climb, jump, use a weapon. Also to use IK for controlling hands.

Character controller is just very easy to code with, but I think that trying to match the speed with the animations along with directions will be a pain.

Any thoughts?

A couple things to consider -

How much character movement will be done - where the player is looking down at the ground - to see if any movements are sliding or not 100% exact?

Will the player be performing A LOT of locomotion movement/actions while looking down where the feet can be seen?

Have you performed any research on similar games? The first one that comes to mind is Aliens Isolation - which had visible body FPS. I think there were some sliding in some of the rotate in place animations and some of the variable speed movements, but nothing that was completely terrible.

When you eventually start testing - consider including a couple in place animations that don’t have locomotion to see how well the two setups control the legs with in place animations like side step, rotate L/R in place, and crouch.