Humanoid NPC characters mostly use 'overriders' as a way to have different animatons.
They use default root animator assigned by the name 'NPCAnimator' located in 'Resources/Animators/' folder.
To implement overrider with individual animatons create animator overrider by clicking on 'Create' in the project window ( or click right mouse buton ) and choose 'Animator Override Controller'.
In overrider assign 'NPCAnimator' in 'Controller' feld and insert animatons you wish to replace.
When replacing animations, also look at the needed curves and events in animation clip you wish to replace.
Generic NPCs need their own animator created from their own animations.
I'll repeat that custom animator for generic NPCs needs to have the next parameters:
'pSide',
'pForward',
'pJump',
'pAtackSpeed',
'pAtackSpeed2',
'pAtackSpeed3',
'pJumpLeg',
'pMatchStart',
'pMatchEnd',
'pTriggerType',
'pCrouch',
'pOnGround',
'pBlock',
'pAtack1',
'pStrafe',
'pDiveRoll'.
If not removed manualy from code, animator will throw missing parameter errors.
Next, create default locomotion state and call it
'DefaultLocomotion'.
You can start 'attack state' by using 'pAttack' parameter and you can combine it with 'pTriggerType' parameter to start different attacks.
You can look in the code on how that work ( check method 'NPCBehaviour.executeAttack()' .
Look in the examples in the package on how to expand
animator used in generic rigs for trigger/action usage.