Step by Step Guide

Using a mouth as an example. Can be applied to other facial features like eye sockets etc.

  1. Make sure to create a linked duplicate of the mesh using ALT+D. This will be the Shrinkwrap/Proxy Head. This way they both share the same mesh data and Vertex Groups, Shape keys and all Mesh related Info is synchronized.

This linked duplicate will be referenced in modifiers used on the mouth mesh (like Shrinkwrap and Data Transfer) to pull information from the head without creating a dependency loop and breaking the modifier

Screenshot 2025-05-08 175431.png

Screenshot 2025-05-08 175522.png

(Proxy Head should be at the same position as the original head. Image is just for visualization.)

<aside> ⚠️

Make sure both Head and Proxy Head share the same modifiers that alter the mesh. This applies to things like Armature and Subdivision. This way the proxy will follow your rig (since vertex groups are synchronized) and will have the same smoothness as the original head.

</aside>

Screenshot 2025-05-08 175454.png

  1. Add Vertex Groups to the Mouth (names are arbitrary). Each one fulfilling one purpose in the modifier stack:

    Screenshot 2025-05-08 175639.png

shrink_outside will be used for a Shrinkwrap using the Outside mode. Allowing the mesh to move away from the head but not inside it. This should be applied to the outer part of the mouth, not the inner area.

Screenshot 2025-05-08 175703.png

shrink_above will be used for a Shrinkwrap using the Above Surface Mode. This will snap the mesh to the head completely and makes sure it’s displayed above the mesh. This should be applied to the Rim of the outer mouth area. With a smooth falloff to the middle to allow the mouth to still move away from the head for specific expressions.

Screenshot 2025-05-08 175725.png

cutter will be used to determine the cutout of the head, using the GN modifier to create a visible hole in the mesh. It should be applied to one loop of the mouth that best represents the opening.

Screenshot 2025-05-08 175751.png

data_transfer will be used to mask out the area of the mouth that should get the same normal data of the head. This way a seamless transition between the two objects is possible. Like with shrink_outside this should be applied to the outer part of the mouth.

Screenshot 2025-05-08 175806.png

  1. Add the Transparency Boolean Modifier

These are the essential settings to make the setup work: