How to manage MyCharacter to handle 30 differents characters?

All of those ways would be valid. I think because the different characters have different skills you might want to look at it from the PlayerController instead of from the Character, so go up a level.

You probably want to break up the different types of characters into groups, such as by class type or some other means that makes sense for your game. That way, instead of having 30 child characters of 1 parent character, you will have 4 or 5 child characters from the parent, then under each of those will be 4 or 5 sub-children that are similar to their parent but change in some way.

You can either figure out a way to make the controls generic in the Parent PlayerController, such as ActionX, ActionY etc. and then implement them differently in each character, so the PlayerController calls ActionX any time the left mouse is clicked, then it calls ActionX on the Character, but each implementation of the Character will do it’s own thing inside the function.

You could also instead break up the PlayerController in a similar way, sub classing it and having the main PlayerController pass it’s commands down to the child controllers.

There are either a gem or tutorial on how to do something like that in UDK, setting up a framework to have component Controllers. But it would be a bit different in UE4 though a similar idea. Taking the time to setup a good framework ahead of time will save you a lot of head ache later trying to just have 30 separate characters extending 1 parent character, but, it is valid to do that if you don’t want to deal with the complexity of setting up a sub classing character and Controller setup.