v0.9.70

Relacion entre Componentes

Como se conectan y comunican los 12 componentes del sistema Menu Radial.

Diagrama General

Menu Radial esta compuesto por 12 componentes organizados en una jerarquia clara. MRMenuRadial es el punto de entrada que coordina todo el sistema:

MRMenuRadial (Orquestador) │ ├── MRCoserRopa → Detecta y cose ropa/pelucas ├── MROrganizaPB → Organiza PhysBones ├── MRAjustarBounds → Unifica bounds de meshes ├── MRAnalisisColision → Detecta conflictos con MA ├── MRPesoTexturas → Analiza peso de texturas │ └── MRMenuControl → Genera archivos VRChat │ ├── MRUnificarObjetos "Outfits" │ ├── MRAgruparObjetos (Frame: Outfit 1) │ ├── MRAgruparObjetos (Frame: Outfit 2) │ └── MRAgruparObjetos (Frame: Outfit 3) │ ├── MRUnificarObjetos "Pelucas" │ ├── MRAgruparObjetos (Frame: Peluca 1) │ └── MRAgruparObjetos (Frame: Peluca 2) │ ├── MRUnificarMateriales "Materiales Outfits" │ ├── MRAgruparMateriales (Vestido) │ └── MRAgruparMateriales (Pantalon) │ ├── MRUnificarMateriales "Materiales Pelucas" │ └── MRAgruparMateriales (Peluca) │ └── MRIluminacionRadial

Tres Capas del Sistema

El sistema se organiza en tres capas con responsabilidades claras. Cada capa depende de la anterior:

Capa 1: Orquestacion

MRMenuRadial es el punto de entrada. Su responsabilidad es:

Capa 2: Preparacion del Avatar

5 componentes que analizan y preparan el avatar. Se ejecutan al asignar el avatar o al hacer clic en "Sincronizar":

Capa 3: Sistema de Menu

6 componentes que definen la estructura del menu VRChat y generan las animaciones:

Flujo de Datos

Los datos fluyen en una direccion clara, desde la asignacion del avatar hasta la generacion de archivos VRChat:

  1. El usuario asigna el avatar → MRMenuRadial propaga la referencia a todos los componentes hijos.
  2. Cada componente de preparacion escanea independientemente → MRCoserRopa detecta piezas, MROrganizaPB detecta PhysBones, etc.
  3. Auto-generar crea la estructura de MRMenuControl → Basandose en las piezas detectadas por MRCoserRopa.
  4. MRUnificarObjetos crea MRAgruparObjetos → Un frame por cada pieza de ropa o peluca detectada.
  5. MRUnificarMateriales crea MRAgruparMateriales → Un agrupador por cada prenda con materiales intercambiables.
  6. Durante el build NDMF, MRMenuControl genera los archivos finales → FX Controller, Parameters, Menu. Estos se mezclan con los archivos existentes del avatar.

Orden de Ejecucion NDMF

Durante el build, los plugins de MR se ejecutan en un orden especifico. Este orden es critico para que todo funcione correctamente:

Fase Componentes Que Hace
Resolving (antes de MA) MRAnalisisColision, MROrganizaPB Desactiva componentes conflictivos de MA, organiza PhysBones en contenedores.
Transforming (antes de MA) MRCoserRopa, MRMenuRadial Cose armatures de ropa, mezcla FX Controller, Parameters y Menu con los del avatar.
Modular Avatar procesa MA aplica MergeArmature, BoneProxy, ShapeChanger. ShapeChanger detecta los toggles generados por MR.
Transforming (despues de MA) MRAjustarBounds, Cleanup Aplica bounds unificados a todos los meshes. Limpia componentes de MR del avatar final.
El orden es critico. El merge de FX debe ocurrir antes de que Modular Avatar procese, para que ShapeChanger detecte los toggles generados por MR. Si el orden fuera diferente, los toggles de ropa no se integrarian con las animaciones de ShapeChanger.

Dependencias entre Componentes

Esta tabla muestra de que depende cada componente y a que otros componentes alimenta con datos:

Componente Depende de Alimenta a
MRMenuRadial Avatar Todos los demas
MRCoserRopa Avatar MRMenuControl (piezas detectadas)
MROrganizaPB Avatar, MRCoserRopa (piezas) MRAgruparObjetos (contenedores PB)
MRAjustarBounds Avatar Ninguno (proceso independiente)
MRAnalisisColision Avatar, MRCoserRopa Ninguno (solo informativo)
MRPesoTexturas Avatar, MRCoserRopa Ninguno (solo informativo)
MRMenuControl MRMenuRadial Archivos VRChat (FX, Parameters, Menu)
MRUnificarObjetos MRAgruparObjetos (frames) MRMenuControl (slot)
MRAgruparObjetos Objetos del avatar MRUnificarObjetos (frame data)
MRUnificarMateriales MRAgruparMateriales MRMenuControl (slot)
MRAgruparMateriales Renderers del avatar MRUnificarMateriales
MRIluminacionRadial Materiales lilToon MRMenuControl (slot)