How to avoid compenetrations between base character and attached skeletal meshes?

I’m actually facing this:

Isn’t there a way to say to the engine:
Base level: Character (never compenetrate with the base layer)
Layer 1: Pants (never compenetrate with Layer 2 (shirt)
Layer 2: Shirt (being OVER the pants, do not compenetrate with Layer 1).

I mean, I’m not trying to achieve the moon rocket I hope.
I’ve tried so far:

  • Cloth simulation: Everything compenetrates with everything! (YAY!)
    ---- Getting crazy with spheres and stuff, didn’t solve the problem.
  • Morph targets: With morph target, I can expand the clothing, which makes an extremely ugly result.
  • Materials tricks: I can hide parts of the base body through materials, but that doesn’t solve the problem of clothes compenetrating eachothers.

I know people can achieve decent results, the problem is HOW!? :frowning: