v0.9.70

MROrganizaPB

Preparacion — Reorganiza PhysBones y Colliders en contenedores organizados por prenda

Descripcion

MROrganizaPB reorganiza los componentes VRCPhysBone y VRCPhysBoneCollider de tu avatar, moviendolos desde los huesos del armature a contenedores organizados ("PhysBones" y "Colliders"). Esto permite activar o desactivar las dinamicas por prenda desde el menu radial, algo que normalmente no es posible cuando los PhysBones estan directamente en los huesos.

Interfaz del Inspector

Inspector MROrganizaPB
1 Campo Avatar — propagado desde MRMenuRadial 2 VRChat SDK — estado de deteccion del SDK de VRChat 3 Boton "Escanear Avatar" — detecta todos los VRCPhysBone y VRCPhysBoneCollider 4 Contador de deteccion — cantidad de PhysBones y Colliders encontrados 5 Estado — indicador de color: No escaneado (gris), Escaneado (azul), Organizado (verde) 6 Boton "Organizar PhysBones" — mueve los componentes a contenedores independientes 7 Boton "Revertir" — devuelve todos los componentes a sus posiciones originales en el armature 8 Componentes por contexto — lista agrupada por pieza de ropa o avatar 9 Contadores PB/Col — cantidad de PhysBones y Colliders por grupo 10 Indicador OK — marca verde cuando el grupo ya esta organizado (incluye pre-organizados desde v0.9.70)
Desde v0.9.70, si todas las piezas ya tienen sus PhysBones organizados por el creador de la ropa, el sistema los reconoce automaticamente como organizados (semaforo verde) sin necesidad de accion manual.

Problema que Resuelve

Los componentes VRCPhysBone normalmente estan "pegados" directamente a los huesos del armature (por ejemplo, en Hips/Hair_Root). En esta posicion, no puedes desactivarlos independientemente por prenda — si desactivas el hueso, afectas a todo lo que depende de el.

MROrganizaPB resuelve esto moviendo cada PhysBone a un contenedor separado. El componente sigue referenciando el mismo hueso raiz (Root Transform), pero ahora vive en un GameObject independiente que puedes activar o desactivar sin afectar al armature. Esto es lo que permite que MRAgruparObjetos (frames) controle las dinamicas por prenda.

Antes de organizar

Avatar/
  Armature/
    Hips/
      Hair_Root/       [VRCPhysBone] ← pegado al hueso
      Skirt_Root/      [VRCPhysBone] ← pegado al hueso
      Head/
        HeadCollider/  [VRCPhysBoneCollider]

Despues de organizar

Avatar/
  Armature/
    Hips/
      Hair_Root/       (sin VRCPhysBone)
      Skirt_Root/      (sin VRCPhysBone)
      Head/
        HeadCollider/  (sin VRCPhysBoneCollider)
  PhysBones/
    PB_Hair/         [VRCPhysBone] ← Root Transform = Hair_Root
    PB_Skirt/        [VRCPhysBone] ← Root Transform = Skirt_Root
  Colliders/
    Col_Head/        [VRCPhysBoneCollider]

El PhysBone sigue funcionando exactamente igual porque su Root Transform apunta al mismo hueso. La diferencia es que ahora vive en un contenedor que se puede referenciar desde un frame del menu radial.

Configuracion

Propiedad Tipo Descripcion
Avatar GameObject Raiz del avatar. Se propaga automaticamente desde MRMenuRadial.
Auto escanear al cambiar avatar Bool Si esta activado, re-escanea automaticamente cuando se asigna un nuevo avatar. Activado por defecto.

Botones de Accion

Boton Descripcion
Escanear Detecta todos los VRCPhysBone y VRCPhysBoneCollider en el avatar y sus prendas. Muestra el conteo de componentes encontrados por grupo.
Limpiar Limpia los resultados del escaneo sin realizar ninguna organizacion. Util para empezar de cero.
Organizar Mueve los componentes seleccionados a contenedores organizados. Pide confirmacion antes de ejecutar. Crea un punto de Undo para poder deshacer.
Revertir Devuelve todos los componentes organizados a sus posiciones originales en el armature. Deshace la organizacion completamente.

Lista de Componentes

Despues de escanear, la lista muestra los PhysBones y Colliders encontrados, agrupados por contexto:

Estados

Estado Color Descripcion
No escaneado Gris Estado inicial. Necesitas presionar Escanear para detectar los componentes del avatar.
Escaneado Azul El escaneo detecto componentes. Puedes revisar la lista y presionar Organizar cuando estes listo.
Organizado Verde Los componentes fueron movidos a contenedores exitosamente. Cada grupo muestra "OK".

Estructura Resultante

Despues de organizar, la jerarquia del avatar incluye contenedores separados para los PhysBones y Colliders del avatar y de cada prenda:

Avatar/
  Armature/
    Hips/
      Hair_Root/           (sin VRCPhysBone)
  PhysBones/                ← contenedor del avatar
    PB_Hair/               [VRCPhysBone]
  Colliders/                 ← contenedor del avatar
    Col_Head/              [VRCPhysBoneCollider]
  Ropa/
    PhysBones/             ← contenedor de la prenda
      PB_Skirt/            [VRCPhysBone]
    Colliders/              ← contenedor de la prenda
      Col_Skirt/           [VRCPhysBoneCollider]

Auto-vinculacion a Frames

Despues de organizar, MROrganizaPB intenta vincular automaticamente cada contenedor de PhysBones al MRAgruparObjetos (frame) correspondiente. Esto significa que al activar o desactivar una prenda desde el menu radial, sus dinamicas tambien se activan o desactivan automaticamente.

La vinculacion automatica funciona buscando el frame que controla la misma prenda donde se encontraron los PhysBones. Si el frame existe, el contenedor de PhysBones se agrega como una referencia adicional dentro de ese frame.