MRAjustarBounds
Preparacion — Unifica bounds e iluminacion de todos los meshes del avatar
Descripcion
MRAjustarBounds evita que partes de tu avatar desaparezcan cuando la camara se mueve. Escanea todos los SkinnedMeshRenderer, calcula un bounding box unificado que envuelve todo el avatar, y lo aplica a todos los meshes. Tambien unifica el punto de anclaje de iluminacion (Anchor Override) para que toda la ropa se ilumine de forma consistente.
Interfaz del Inspector
Por que es Necesario
Cada SkinnedMeshRenderer en Unity tiene su propio bounding box (caja delimitadora). Unity usa esta caja para decidir si el mesh es visible desde la camara actual — si la caja queda fuera del campo de vision, Unity deja de renderizar el mesh completo. Este proceso se llama frustum culling.
El problema aparece cuando la ropa o accesorios tienen bounding boxes ajustados: al mover la camara ligeramente, Unity decide que ese mesh ya no es visible y lo deja de renderizar, causando que partes del avatar desaparezcan visualmente. Esto es especialmente notable con ropa holgada, faldas largas o accesorios que se extienden lejos del cuerpo.
MRAjustarBounds resuelve esto calculando un unico bounding box que envuelve todo el avatar completo y aplicandolo a todos los meshes. Asi, todos los meshes se muestran u ocultan juntos, eliminando las desapariciones parciales.
Configuracion Principal
| Propiedad | Tipo | Descripcion |
|---|---|---|
Avatar |
GameObject | Raiz del avatar. Se propaga automaticamente desde MRMenuRadial. |
Margen Extra |
Slider (0 - 0.5) | Padding adicional alrededor del bounding box calculado. Default: 10%. Un valor mas alto es mas seguro pero aumenta ligeramente el costo de renderizado. |
Auto-aplicar |
Bool | Si esta activado, aplica los bounds automaticamente al detectar el avatar. Util para flujos de trabajo rapidos. |
Anchor Override (Iluminacion Unificada)
Ademas de unificar bounds, MRAjustarBounds puede unificar el Anchor Override (punto de anclaje de iluminacion) de todos los meshes. Sin un anchor unificado, cada mesh toma la iluminacion de un punto diferente en el espacio, lo que causa costuras visibles entre el cuerpo y la ropa — una parte puede verse mas brillante o mas oscura que otra a pesar de estar al lado.
| Propiedad | Tipo | Descripcion |
|---|---|---|
Unificar Iluminacion |
Bool | Aplica un punto de anclaje comun a todos los meshes para que reciban la misma iluminacion. |
Auto-detectar Chest |
Bool | Busca automaticamente el hueso Chest del avatar y lo usa como anchor. Recomendado — el Chest es el punto mas estable y centrado para la mayoria de avatares. |
Anchor Manual |
Transform | Solo aparece si desactivas Auto-detectar Chest. Permite elegir manualmente cualquier Transform como punto de anclaje. |
Particulas
Si tu avatar tiene efectos de particulas (ParticleSystem), puedes incluirlos en el calculo de bounds para que no desaparezcan al mover la camara.
| Propiedad | Tipo | Descripcion |
|---|---|---|
Incluir Particulas |
Bool | Incluye los ParticleSystem en el calculo del bounding box unificado. |
Margen Particulas |
Slider (0 - 1) | Margen separado para particulas. Default: 20%. Las particulas suelen necesitar mas margen porque se expanden en el espacio. |
Botones de Accion
| Boton | Descripcion |
|---|---|
| Escanear | Detecta todos los SkinnedMeshRenderer del avatar, calcula el bounding box unificado usando BakeMesh (WhiteFlare) y muestra las dimensiones resultantes. |
| Aplicar Bounds | Aplica el bounding box calculado a todos los meshes del avatar. Los bounds se aplican como localBounds en cada SkinnedMeshRenderer. |
| Restaurar | Restaura los bounds originales de cada mesh a su valor previo a la aplicacion. |
| Aplicar Anchor | Aplica el punto de anclaje de iluminacion unificado a todos los meshes. |
| Restaurar Anchor | Restaura los anchors originales de cada mesh. |
Resultado
Despues del calculo, el inspector muestra los detalles del bounding box unificado:
- Estado:
CALCULADO(amarillo) cuando los bounds fueron calculados pero no aplicados, oAPLICADO(verde) cuando ya se aplicaron a los meshes. - Centro: Coordenadas X, Y, Z del centro del bounding box en espacio local del avatar.
- Tamaño: Dimensiones del bounding box en los 3 ejes (ancho, alto, profundidad).
- Rango de altura: Altura minima y maxima del avatar, util para verificar que los pies y la cabeza estan incluidos.
- Meshes procesados: Cantidad de SkinnedMeshRenderer detectados y procesados.
- Advertencia de clamp: Si el bounding box excede el maximo permitido por VRChat, se muestra una advertencia indicando que fue recortado al limite.
Visualizacion en Escena
MRAjustarBounds dibuja gizmos en la vista de escena de Unity para que puedas verificar visualmente el resultado:
- Caja verde (wireframe): Bounding box calculado pero aun no aplicado. Te permite verificar que el tamaño es correcto antes de aplicar.
- Caja azul (wireframe): Bounding box aplicado. Confirma visualmente que los bounds estan activos en los meshes.
- Cruz amarilla: Punto central del bounding box. Debe estar aproximadamente en el centro del avatar.
Limpieza de MA Mesh Settings
MA Mesh Settings (Modular Avatar) que encuentre en el avatar. Estos componentes interfieren con el calculo de bounds unificados porque aplican sus propios bounds durante el build de NDMF, sobrescribiendo los valores calculados por MR. La destruccion ocurre tanto en el inspector (al escanear) como durante el build NDMF.
