Philosophical Problem Separating Character Logic/Data from it's Rendered Manifestation

Hello and thanks for your time, I’m looking for suggestions and discussion on how to handle characters that can have alternate skins or outfits that dynamically change.

My game is a party member collecting ARPG where you collect party members but then unlock outfits and classes for them. When they change outfits or classes they require a new set of animation and skeleton to handle weighted dangling parts of clothing, different hairstyles, or anims and logic for a new combat style when class changes.

I’m struggling to place general logic for the actor that is always needed across any outfit or class from the actor’s visual representation. If I put all possible skeletal meshes needed for any outfit on the actor they become loaded with an overwhelming amount of components, if I make each visual look it’s own actor then I lose mutable data attached to the actor, like health, etc. if they have to be swapped out during gameplay.

I’ve currently arrived at a system where there’s a parent actor that does not have the rendering elements of the actor and serves more as the idea of the actor, and it spawns the current visuals for the actor which it then attaches to itself. This allows a lot of niche things like targeting to not have to break targeting if the actor switches outfits, and the ability to store mutable stats somewhere reasonable. This solution however is unwieldy and not fun to work on.

I’ve also tried making a data base registry attached to the game instance, but this also gets very overwhelming when dealing with things like dynamically spawned NPCs that also need this functionality.

Does any one have an alternate idea for how to approach this problem in a nice way?

I think that can be done using the ability system (Good luck with that because it’s very complex to learn).

Another option is to implement your own design pattern… In this case I think the one that fits your needs is called “decorator”