After careful review, we’ve decided not to support this in SkinnedMeshRenderer. While supporting NaN values could offer benefits, it risks breaking existing projects that depend on current behavior to filter NaNs out. Additionally, ensuring consistent behavior across all platforms, now and in the future, is not guaranteed.
Blend shapes are applied using weights; when the weight is 0, the delta is applied but the result is the original vertex. Allowing NaN would break this, since multiplying zero by NaN still yields NaN, resulting in the primitive always getting culled. The described use case instead relies on an implementation detail of SkinnedMeshRenderer: blend shapes with zero weight are skipped. Only this last behavior results in a toggle to cull primitives.
Instead, for the described use case, we recommend relying on existing values we allow through or creating a custom blendshape-like system. For instance, you can use a compute shader to modify vertices after skinning and achieve a similar result. For this you would need to use SkinnedMeshRenderer.GetVertexBuffer() to retrieve the graphics buffer and dispatch at the correct time in the player loop.