there is various ways to do this, i think paperdolling is the easier for me because i use pixel art but, you need to have some art skills and patience
what you have to do is draw a character without the parts you want to change, like a naked character sprite
then on top of that sprite you start making the parts, hat, masks, shirts, pants...
all objects need to be single image files and depending of the way you handle your project you probrably need to make those objects with all the character frames.
afters this you can pin the parts on the character inside the engine with events. you can use both the orgin point or image points.
spriter is better for hand drawing sprites and this kind of customization, but it share the same concept; the difference is that you can make the image point logic inside of spriter and just need to animate the character