Texture change in Runtime

If you only have a few characters then the correct way as I see it would be to use Dynamic Material Instances. Read about them in Wiki: Instanced Materials | Unreal Engine Documentation

You don’t have to create multiple materials but you’ll need multiple material instances that will link to a single parent material.