There are a variety of ways to deal with it, from the obsolete use of sprites to fully ribbed bodies with inverse kinematics and everything in between.
So at the beginning you can have textures. Animations for uploading and reloading are of course 2D animations. You can look good even in a modern environment with the high resolution and the use of pre-rendered Deph buffer. However, this is probably not worth the effort in modern games.
For a while, weapons in the Ego view were only meant to look good from this email view (they might even have a partial geometry and not be fully textured), and if hands were visible, they would just float there. In fact, it would not be a body in the first person … If you were to hack the camera position, you would only see a few hands and a weapon floating around.
This makes it very easy to animate and reload the recoil, even if the weapon lags behind the target, causing shake and other effects. A good animation also includes walking animations, which serve as an expression of the character.
You can find out if in a first person shooter game you have very little body: Look down. Where are your feet? Can you find her by turning around? What if you go into a corner? If they are not there, the game has no body for the player in the first person.
Of course, this only applies to the player in the first person, not to enemies or to other players who connect via network or couch multiplayer.
I would suggest starting here if you are working on a single player first person shooter game. Mainly because the situations in which you would have to worry about the first person view of another character or the third person view of the player avatar would be scarce.
Next you have to use the same animations for single player and multiplayer. Old implementations would render the avatar's head invisible from the first person's point of view to avoid accidental trimming (some would use other tricks, such as keeping the size small or disappearing from view). This is only really necessary if the game is running on a platform where facial clipping may not be handled properly. However, these tricks are still used when needed only for a brief moment, often in the cutscene.
Games of this age often relied on turning the avatar's torso to follow the cursor. It's a very eye-catching animation look when the avatar has a fluid running cycle, his torso is spinning at random, and his hands and head are very stiff.
For a multiplayer game, I would suggest starting with this approach. You can then upgrade if you have the resources. Using third-person animations for the first-person view allows you to create prototypes faster.
Games from this last decade have been able to arouse arms and mind fluently to adapt to the direction in which the player points. This can be done with a large animation library – with parametric settings or with a good inverse kinematics system.
※: Keyframes and interpolations, either for manipulated skeletons or morph targets, either picked up and optimized by mocap or designed by animators.
With this approach, you can have the flexibility you want, without changing models depending on what the character is in first person or not. However, as you can imagine, it is much more expensive.
However, considering how expensive good inverse kinematics systems can be, it may sound strange: inverse kinematics is the cheap option. Making a lot of Mocap with different and expressive animations for each character is the expensive option If you've invested in Mocap, you can also add inverse kinematics. However, if you only use inverse kinematics, each character will move in the same way. With Mocap it is possible to get better results.
About recoil et. al. Through the use of manipulated skeletons, the character can always be a physical entity that responds to external forces that displace it, and jumps back to the skeletal target position. So you can have a real recoil as a force on the body, and your inverse kinematics will dissolve the rest. Ragdoll is also simply deactivated instead of changing gears because the Ragdoll is actually always there.
Incidentally, remember to use wildcards. It's better that development does not have to wait for resources and animation, and it's often not clear how much polish you can achieve with your budget. You can also test better with the Quiker.