这是错误设置 Skinned Mesh Renderer 组件(下文中称蒙皮网格)的边界包围盒(Bounds),导致网格被视锥剔除导致的。
Unity 会对蒙皮网格设置包围盒,当渲染时,如果包围盒不与相机的视锥相交,Unity 会停止对该网格的渲染,用以节约资源。

如图所示,Bounds 除了尺寸,还有一个重要属性 Root Bone
,这会使蒙皮网格的包围盒跟随 Root Bone
的运动而运动。如果包围盒尺寸不够,或者错误设置 Root Bone
,就会导致特定角度和特定姿势下蒙皮网格被错误剔除。
不幸的是,很多 VRChat Avatar SDK 的开发者和用户都没有意识到正确设置包围盒的重要性,各种发型、衣服配件等更是重灾区,都需要手工重新设置 Bounds。
不过除了手工设置包围盒和 Root Bone
,普通用户的最佳选择是 Modular Avatar 提供的组件:MA Mesh Settings。
一般而言,偷懒的做法是将包围盒的边界尺寸设置为 111,具体大小以你的网格为准,根骨骼建议设置为身体的中心,如 Hips、Spine 或 Chest。
另外,虽然没有提到,但正确设置光照探针锚点覆盖也是很重要的。对于相连的网格,应当尽量保持光照锚点覆盖一致,可以避免在光照变化复杂的位置不同网格亮度不一致。该设置也可以通过 MA Mesh Settings 批量覆盖。