Quick answer: Flicker comes from crossing tetrahedron boundaries in a sparse probe network. Add more probes along player paths, enable a Light Probe Proxy Volume on large renderers, set Light Probes on the MeshRenderer to Blend Probes, and check that moving objects are not set to fully Baked mode.
A character who brightens and dims as they walk down a hallway has a lighting problem, not an animation problem. Unity computes a single spherical harmonic per renderer from the probe tetrahedron it is currently inside, and when the renderer crosses a boundary the SH switches abruptly. Close the gaps in the probe network, smooth the interpolation, and the flicker goes away.
Check probe density along the path
Open the scene and hit the scene-view overlay button labeled Light Probes. You will see the tetrahedralized mesh connecting your probes. Look at where your characters actually walk — corridors, doorways, stairs — and confirm probes are no more than one or two character widths apart. In rooms with strong colored light (red carpets, blue skylights) you want even denser coverage because the SH delta between tetrahedra is larger.
Add probe groups by right-clicking in the Hierarchy and choosing Light -> Light Probe Group. Unity does not auto-place probes; you have to sprinkle them yourself. A spacing rule of thumb is 1.5 meters in interiors and 4–6 meters in open exteriors.
Use a Light Probe Proxy Volume on big renderers
For anything larger than a meter cube — vehicles, bosses, rigid environment props — a single SH per renderer is not enough. The result is obvious popping when the pivot crosses a boundary even though most of the mesh is nowhere near it. Add a LightProbeProxyVolume component on the GameObject and set the MeshRenderer’s Light Probes mode to Use Proxy Volume:
var lppv = vehicle.AddComponent<LightProbeProxyVolume>();
lppv.resolutionMode = LightProbeProxyVolume.ResolutionMode.Custom;
lppv.gridResolutionX = 4;
lppv.gridResolutionY = 2;
lppv.gridResolutionZ = 4;
vehicle.GetComponent<MeshRenderer>().lightProbeUsage =
UnityEngine.Rendering.LightProbeUsage.UseProxyVolume;
The proxy volume samples the probe network across a 3D grid inside the renderer’s bounds, so lighting varies smoothly across the mesh instead of snapping as the pivot crosses tetrahedra.
Fix the Anchor Override on irregular meshes
If a proxy volume is overkill, at least move the sample point to a stable spot on the character. By default Unity samples at the renderer’s transform position, which may be between the feet of a humanoid and thus under the floor. Assign an Anchor Override to a child transform at chest height:
meshRenderer.probeAnchor = chestBone;
This alone kills most of the visible flicker on characters, because the sample is no longer dipping into a probe located below the floor plane.
Match the lighting mode
Check your lights. A moving character using fully Baked lights will receive no direct illumination at all — the probes are the only thing lighting it, and any spatial change is a flicker. Mixed lights with the Shadowmask or Subtractive mode give the character real-time direct light while still using probes for bounce, which masks probe transitions.
On the MeshRenderer itself, set Light Probes to Blend Probes. The alternative, Off, disables probe lighting entirely, and Use Proxy Volume requires the component above.
Rebake after every probe change
Probe positions are only used at bake time. Moving a probe group and hitting Play without rebaking does nothing. Open the Lighting window and click Generate Lighting; watch the bake status until it finishes. On large scenes consider turning on GPU Progressive Lightmapper to shorten the iteration cycle.
“Light probes are a static sampling grid. Moving characters need either a denser grid or a proxy volume — single-sample probes will always pop at some speed.”
Related Issues
For related rendering issues on moving geometry, see Fix Unity raytracing acceleration structure missing, and for a Godot take on bouncy lighting problems, Fix Godot 3D models inside out invisible.
Tip: if probes look right in editor but flicker in play mode, your character probably has a runtime script overriding probeAnchor.