What is the best practice for classes defined by weapons

Challenge Statement:
I have been working on playing around with some concepts in UE4.9 where a characters playable class is defined by the weapon they are holding. A ranged archers animations and whatnot are defined by them holding a bow. However if they want to be a fighter they hold a sword which has different set of animations, etc.

I am not confident in which method is best practice when defining a playable character’s class through the weapon. Should there be an overall game parent character blueprint that has tasks universal across the game and all the classes and have child class based blueprints that are playable class specific, such as a fighter which defines proper skeleton / animations, variables specific to class, etc. I am frustrated / unsure that I am going down the right path due to my lack of experience in implementing this most efficiently in Unreal Engine.

Guidance on best practices for doing this so that a player could be limited to one character but can switch out classes based on the weapon they equip.

Not sure about best practices, but couldn’t you just have a single character with an animation blueprint that switches between different weapon states based on say, a WeaponType enumeration?

So when you select different gear, you can run a function to modify the enum as well as all the characters variables you want to change to suit the new gear (hasRangedAttack, armor, hitpoints, etc , or even the mesh and animBlueprint if you really need to).

Wow, I actually didn’t think to actually use the states to manage the weapons like that, so thanks for the input. I spent so much time actually trying to force UE4 to rotate between whole pawns and blueprints specific to class. Gonna give this a go tonight.