AutoPivot¶
AutoPivot pone el pivote de cada Peg donde está de verdad el arte, y deja cada frame donde el artista lo dibujó.
Corre como última fase de Assemble, y está activo por defecto — la casilla AutoPivot en la sección Settings del Browser, o en Preferences.
El problema que resuelve¶
Importa arte a Harmony a mano y el pivote de cada Peg cae en el origen — el centro de la cámara — sin importar dónde esté el dibujo. Rota un brazo y girará alrededor del centro de la escena en vez del hombro.
Arreglar eso a mano es un arrastre por peg, en cada peg, en cada escena.
Fase A — el torneo¶
En el frame 1, OSA construye la jerarquía de pegs a partir de los nodos que acaba de crear, atravesando grupos y composites para encontrar el subárbol real de cada peg.
En cada peg gana el subárbol hijo con el área de bounding box mayor, y su centroide se convierte en el pivote del peg.
Área mayor no es arbitrario: en un rig, aquello para lo que existe un peg es casi siempre lo más grande que hay bajo él. El hijo más grande del peg de la cabeza es la cabeza; el del peg del brazo es el brazo. Elegir el subárbol mayor lleva el pivote al arte que ese peg existe para mover.
Solo se consideran los nodos creados por OSA. Los nodos que ya estaban en la escena se dejan en paz — AutoPivot nunca edita el rig de otro.
Fase B — compensación por frame¶
Aquí viene la parte que importa para la animación.
Cuando se extrae el arte, cada frame se centra en la posición de referencia (frame 1). Eso es lo que hace correcto el pivote de la Fase A para toda la secuencia — pero también significa que el frame 2 en adelante quedaría en la posición del frame 1, no en la suya.
Así que la Fase B calcula, por frame, el delta de posición del peg que devuelve el arte de cada frame exactamente a donde estaba en el PSD original:
- usa la calibración píxel → OGL registrada durante la extracción, así que las cuentas van en las unidades propias de la escena;
- los pegs padres se mueven primero, de arriba abajo, y cada hijo resta el delta heredado del padre — aplica solo el residuo, para que un rig anidado no cuente dos veces el movimiento de sus padres;
- solo se animan position.x / position.y. Nunca rotación, nunca skew: AutoPivot existe para preservar la colocación, no para inventar movimiento;
- cada keyframe usa interpolación de escalón (
constSeg), así que no hay deriva entre exposiciones — un dibujo sostenido no se desliza.
Excluir un peg¶
Marca Exclude AutoPivot en el bloque Peg del Inspector, y el pivote de ese peg se queda exactamente como está.
Esto se activa automáticamente en todo peg que venga de un archivo .anm o .pvt, porque esos pivotes pertenecen al bake y sobrescribirlos rompería la animación que acabas de importar. Mira Transform Sync.
Úsalo a mano cuando el pivote de un peg sea una dirección artística deliberada — un cartel colgante que pivota en su soporte y no en su centro de masa.
En modo Original Bitmap¶
El recorte es la normalización. Un drawing en Original Bitmap no tiene art layers, y la pasada que recorta la exposición es la misma que la normaliza para AutoPivot — una operación, no dos.
Por eso el modo es más barato en planchas grandes: no hay un paso de normalización aparte sobre una imagen de 30 000 píxeles.
Cuándo no hace nada¶
| Situación | Por qué |
|---|---|
| No hay nodos de drawing con exposiciones | no hay bounding box que medir |
| Todos los pegs están excluidos | no hay nada que calcular |
| El peg no lo creó OSA | AutoPivot solo toca sus propios nodos |
Cada uno de estos es una línea de log, no un no-op silencioso — si los pivotes no se movieron, osa.log dice cuál de los tres fue.
