What i did was have 2 child game objects under the "Player" gameobject, each with animator components. I have a player animator controller for all the player related animations. For tools/weapons i have separate controllers and they are swapped out depending on which is "active"... I use ScriptableObjects to configure the different tools... Just what i came up with...