v0.9.70

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

Inspector MRAjustarBounds
1 Campo Avatar — avatar con VRCAvatarDescriptor 2 Meshes detectados — cantidad de SkinnedMeshRenderer encontrados 3 Slider Margen Extra — porcentaje de margen adicional para los bounds (0%-50%, default 10%) 4 Auto-aplicar — aplica bounds automaticamente al escanear 5 Seccion Anchor Override — unifica la iluminacion entre cuerpo y ropa usando un punto de referencia comun 6 Seccion Resultado — muestra dimensiones del bounding box unificado, centro, limites verticales 7 Boton "Escanear" — detecta meshes y calcula bounds unificados usando BakeMesh 8 Boton "Aplicar Bounds" — aplica los bounds calculados a todos los meshes 9 Boton "Restaurar" — devuelve los bounds originales de cada mesh 10 Meshes Detectados — lista desplegable con todos los meshes procesados 11 Seccion Particulas — opcion para incluir ParticleSystem en el calculo de bounds 12 Resumen de estado — indica si bounds estan aplicados, cantidad de meshes, estado del anchor

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:

Visualizacion en Escena

MRAjustarBounds dibuja gizmos en la vista de escena de Unity para que puedas verificar visualmente el resultado:

Limpieza de MA Mesh Settings

MRAjustarBounds destruye automaticamente los componentes 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.