Quick answer: Skeleton-driven animation moves vertices outside the bind-pose AABB, causing frustum culling to remove the mesh when its origin is offscreen. Set extra_cull_margin to 2–4 m to expand the AABB.

Here is how to fix Godot 4 skinned MeshInstance3D characters that disappear when the camera frames their head or weapon. The mesh culls out because its bind-pose AABB does not include animation extents. The fix is a single property: extra_cull_margin.

The Symptom

Character animates correctly when fully visible. Camera close-up on head: the entire body vanishes. Pulling back, character reappears.

What Causes This

Bind-pose AABB. Computed from the rest pose; animation extents are not included.

Frustum culling. Removes meshes whose AABB is fully outside the camera frustum.

Bone-attached weapons. Items parented to bones move with animation but their meshes have separate AABBs; same issue.

The Fix

Step 1: Set extra_cull_margin.

extends MeshInstance3D

func _ready():
    extra_cull_margin = 2.0   # 2 meters of buffer

For weapons or large attacks reaching far, raise to 4 m or more.

Step 2: Or set custom_aabb explicitly.

var aabb := AABB(Vector3(-2, -1, -2), Vector3(4, 3, 4))
custom_aabb = aabb

For known worst-case bounds, custom_aabb is precise.

Step 3: For bone-attached weapons, expand their margin too. Each MeshInstance3D has its own AABB. A weapon parented to a hand bone needs its own extra_cull_margin set.

Step 4: Verify in editor. Toggle View → Gizmos → Show Bounds. The mesh AABB renders as a wireframe. With margin set, the box is visibly larger and includes animation extents.

Step 5: Apply via export presets. If using imported GLB/GLTF, the import sets bind-pose AABB. Override via inheriting scene that adjusts margin.

“Bind pose AABB plus extra cull margin equals visible animation. Two meters covers most humanoids.”

Related Issues

For tetrahedralization, see Light Probe Tetrahedralization (Unity equivalent). For animation tree, see AnimationTree State Machine.

extra_cull_margin = 2. Done. Character stays visible.