Ir para o conteúdo

AutoPivot

O AutoPivot põe o pivot de cada peg onde a arte realmente está, e mantém cada frame onde o artista desenhou.

Ele roda como a última fase do Assemble, e está ligado por padrão — o checkbox AutoPivot na seção Settings do Browser, ou nas Preferences.

O problema que ele resolve

Importe arte no Harmony na mão e o pivot de cada peg pousa na origem — no meio da câmera — não importa onde o desenho esteja. Rotacione um braço e ele gira em torno do centro da cena em vez de girar no ombro.

Corrigir isso na mão é um arrasto por peg, em cada peg, em cada cena.

Fase A — o torneio

No frame 1, o OSA monta a hierarquia de pegs a partir dos nós que acabou de criar, atravessando groups e composites para achar a subárvore real de cada peg.

Em cada peg, a subárvore filha com a maior área de bounding box vence, e o centroide dela vira o pivot do peg.

Maior área não é arbitrário: num rig, a coisa para a qual um peg existe é quase sempre a maior coisa abaixo dele. O maior filho do peg da cabeça é a cabeça; o do peg do braço é o braço. Escolher a maior subárvore coloca o pivot sobre a arte que aquele peg existe para mover.

Só nós criados pelo OSA entram na conta. Nós que já estavam na cena são deixados em paz — o AutoPivot nunca edita o rig de outra pessoa.

Fase B — compensação por frame

Aqui está a parte que importa para a animação.

Quando a arte é extraída, cada frame é centrado na posição de referência (frame 1). É isso que faz o pivot da Fase A ser correto para a sequência inteira — mas também significa que os frames 2 em diante ficariam na posição do frame 1, e não na sua própria.

Então a Fase B calcula, por frame, o delta de posição do peg que põe a arte de cada frame exatamente onde ela estava no PSD original:

  • usa a calibração pixel → OGL registrada durante a extração, então a conta é feita nas unidades da própria cena;
  • os pegs pais se movem primeiro, de cima para baixo, e cada filho subtrai o delta herdado do pai — aplica só o residual, para que um rig aninhado não conte o movimento dos pais duas vezes;
  • position.x / position.y são animadas. Nunca rotação, nunca skew: o AutoPivot existe para preservar posicionamento, não para inventar movimento;
  • todo keyframe é de interpolação step (constSeg), então não há deriva entre exposições — um desenho segurado não escorrega.

Excluindo um peg

Marque Exclude AutoPivot no bloco Peg do Inspector, e o pivot daquele peg fica exatamente como está.

Bloco Peg

Isso é marcado automaticamente em todo peg vindo de um arquivo .anm ou .pvt, porque esses pivots pertencem ao bake e sobrescrevê-los quebraria a animação que você acabou de importar. Veja Transform Sync.

Use na mão quando o pivot de um peg for direção de arte deliberada — uma placa balançando que gira no suporte em vez de girar no centro de massa.

No modo Original Bitmap

O recorte é a normalização. Um drawing em Original Bitmap não tem art layers, e a passada que recorta a exposição é a mesma que a normaliza para o AutoPivot — uma operação, não duas.

É por isso que o modo é mais barato em plates grandes: não existe um passo separado de normalização sobre uma imagem de 30 000 pixels.

Quando ele não faz nada

Situação Por quê
Nenhum nó de drawing com exposições não há bounding box para medir
Todo peg está excluído nada a calcular
O peg não foi criado pelo OSA o AutoPivot só toca nos nós dele

Cada um desses é uma linha de log, não um no-op silencioso — se os pivots não se moveram, o osa.log diz qual dos três foi.