whats the best technique for managing character animations and movement?

I want to create a system for character animation managing. my characters have animations like: walk , run , aim and move , shoot on aim , crouch , aim on crouch , shoot on crouch , switch weapon on walk or idle, custom animations in different situations , etc . What is the best technique for managing these animations in a simple and efficient manner. I'm developing a FSM(finite state machine) system for animation, should I continue that or is there a better solution.

Thanks in advance.

I don't think there is best technique - all of them have pros and cons. You should consider the main two: FSM and blend-trees. It seems that one works better for some things and other one for others.