Ir para o conteúdo

Dimensões e Key Domains

Video tutorial — coming soon

Essa é a ideia sobre a qual a ferramenta inteira é construída, e cabe em uma página.

Uma pose é armazenada em um endereço. Uma dimensão é um componente desse endereço.


Como as dimensões de um layer se somam

Um pose layer keya através de três coisas:

seu próprio grid   +   seu control carregador   +   seu knob

Cada uma contribui com seus próprios eixos, e elas compõem um único endereço:

O layer Soma Chip
Um grid 3 × 3, global, sem knob 2 2D
O mesmo layer dentro do control Head 2 + 2 4D
…keyado através de um knob de 13 posições de fonema 2 + 2 + 1 5D
…se esse knob fosse um grid 3 × 3 em vez disso 2 + 2 + 2 6D

Seis é o teto de um pose layer — seu próprio grid (no máximo 2), seu control (no máximo 2), e um knob (no máximo 2) — e quatro quando a cadeia é totalmente global: sem um control em jogo não há grid carregador, e um layer global para nos seus próprios 2 mais um knob 2D. O ORC impõe o orçamento em todo lugar onde um eixo pode ser anexado — o picker de Knob esconde candidatos acima do orçamento, um arraste recusa com o motivo, e Make Global recusa quando o resultado passaria de 4D. Um layer aceita exatamente um knob, o que é o que limita a cadeia.

O Outliner mostra o número em cada linha, e passar o mouse sobre ele escreve a soma por extenso:

5D — total axes this layer keys across (own grid + carrying parent + each extra knob).

Dois casos não contribuem nada:

  • A face de um control — ela é o grid do control, então não keya através dele também.
  • Um layer global — não há nada acima dele. Um slider global lê 1D.

Drivers e look-ats chegam a oito

Um driver ou um campo de look-at soma as dimensões do seu próprio widget em cima da mesma pilha:

o próprio widget (0–2)   +   o control (0–2)   +   o pose layer (0–2)   +   seu knob (0–2)

Um pad driver 2-D keyado através de um control e um pose layer e o knob 2-D desse layer é 8D. Nada impede você; nada avisa também.

Widget Suas próprias dimensões
Checkbox 0
Slider, Combo Slider 1
Pad 2-D (Continuous Grid) 2
O joystick de look-at 2

Key domains

Um key domain é o conjunto de posições através das quais algo é keyado.

Pose layers têm o seu determinado por onde eles ficam na árvore — é por isso que arrastar um layer muda seu comportamento. Drivers e look-ats escolhem o seu explicitamente, com as mesmas quatro opções e as mesmas palavras:

Domain Um valor por… Use quando
Global Tudo. Não é keyado de forma alguma. O valor nunca depende da pose.
Control Snap do control Ele muda com o turnaround — perspectiva, escorço.
Pose Layer Snap do pose layer, o mesmo em toda pose do control Ele pertence à expressão, não ao ângulo.
Control + Pose Layer O produto dos dois Ele genuinamente varia com ambos.

Pose Layer é o único domain que um layer global pode usar

Um layer parentado em Globals não tem dimensão de control, então Control e Control + Pose Layer não têm nada contra o que keyar. O ORC deixa essas opções acinzentadas e diz por quê.

Os dois modos do look-at escolhem cada um seu próprio domain, dentre os mesmos quatro — veja Look-At.

Quando um domain está indisponível

O ORC nunca esconde uma opção que não pode oferecer. Ele deixa acinzentado e coloca o caminho a seguir no tooltip:

Acinzentado Porque
Control, Control + Pose Layer "Pick a control first — Globals has no control grid to key across."
Pose Layer "No pose layer to key across for this owner."
Control + Pose Layer "No pose layer under this control — a Globals layer is not under it, so it cannot form the product. Pick the control that owns the layer, or key across the layer alone."
Tudo menos Global, num checkbox driver "Checkbox drivers are Global only — pick another widget type to scope to a Control / Pose Layer."

Se um domain ficar indisponível temporariamente — você ainda não escolheu o control — o ORC lembra sua escolha e a restaura no momento em que a dimensão volta a existir, em vez de rebaixá-lo silenciosamente para Global.

Endereços de snap

Todo snap tem um nome, e ele é construído a partir dos domains acima, da esquerda para a direita: a posição do control, depois a do layer, depois a do knob.

Você vai ver esses endereços no log, nas prévias de preset e na tabela do Unroll:

Um segmento por dimensão, da esquerda para a direita — o snap do control, depois o do layer:

Endereço Lê-se como
R5C10 Uma face de control na linha 5, coluna 10
UR0C4:P1LR1C2:P1RR2C0 Snap do control R0C4 · grid left da page 1 em R1C2 · grid right dela em R2C0
UR1C2:P2LR0C1 Snap do control R1C2 · grid left da page 2
UBR1C2:P1LR0C0 Snap do control R1C2 na face back · grid left da page 1 em R0C0
G:P1LR1C2 Um layer global — sem nenhum componente de control
UR1C2:K1R0C3 A pose própria de um knob — o control dono em R1C2, o knob em R0C3
UR0C4:P1LR1C2:W3 A pose da page 1, na posição 3 do knob do layer

Os prefixos:

U O snap do control carregador (sua unit) — seja qual for o nome desse control. Um control Torso também keya com U. UB é sua face back.
G Nenhum control — um layer global, keyado sem cabeça.
P1L / P1R, P2L Os grids left e right da page 1, os da page 2, e assim por diante — um esquema numerado para cada page.
K1 Um knob autorando suas próprias poses — K mais seu slot de eixo, depois seu snap.
:W3 Posição 3 do knob do layer.

O nome do control nunca aparece no endereço — cada layer pertence a exatamente um control, então U sempre significa "meu control carregador", sem precisar de numeração.

Por que a letra é U e não C

U vem de control unit — o nome interno do ORC para um control. A letra óbvia seria C de control, mas C já está ocupada: é a letra de coluna dentro de todo snap. CR0C4 colocaria dois significados diferentes de C a cinco caracteres de distância, e um endereço existe para ser lido de relance — então o control keya com U.

Por que o :W de um knob 2-D é um número único e chapado

Um knob 2-D endereça sua posição como um único índice — :W7 num knob 3 × 3 significa linha 2, coluna 1 (linha × colunas + coluna) — em vez de um snap R2C1. Isso é deliberado: o rig composto armazena cada posição de knob como um arquivo de estado empilhado no próprio layout do Toon Boom (stack/0.tbState, 1.tbState, …), e o índice chapado é o nome desse arquivo. O endereço fica alinhado com a coisa que ele aponta.

Você nunca precisa digitar um endereço. Mas quando uma mensagem, uma prévia de preset ou a tabela do Unroll nomeia um, é assim que se lê.

Interpolation

Entre os snaps, o ORC faz o blend. Com Interpolation ligado, a pose é a mistura ponderada dos quatro snaps vizinhos, com os pesos sempre somando 1. Desligue e o snap mais próximo simplesmente vence.

É um toggle de runtime no rig finalizado, então o animador escolhe entre um control suave e um com passos duros. Um snap sem key não é um buraco — é uma posição que faz blend a partir dos vizinhos.

Também é o único global. Todo outro toggle nativo existe por coisa que ele afeta, e só quando essa coisa existe: Mirror precisa de um pose layer pareado, Mirror All precisa de mais de um par, e Front ↔ Back precisa de um control com ambas as faces — cada control de duas faces compondo seu próprio flip. A pergunta do Interpolation — fazer blend entre snaps, ou pular? — é feita uma vez, sobre o rig inteiro; um checkbox de interpolation por layer ou por control multiplicaria widgets sem acrescentar uma única decisão. Então um checkbox governa tudo, e ele só fica desnecessário num rig sem nada contínuo para fazer blend — só drivers on/off, nenhum grid.

O que as dimensões custam

Todo eixo multiplica as poses disponíveis, o tempo que o Compose leva, e a memória que ele usa.

Rig Poses endereçáveis
Um layer 3 × 3, global 9
…dentro de um control 5 × 3 135
…mais um knob de 13 posições 1.755
…mais uma face Front e Back 3.510

Você nunca é obrigado a keyar todas. Mas uma dimensão que você adiciona é autoria que você está prometendo, e o ORC vai te avisar disso conforme as contagens sobem:

1024 snaps — authoring this by hand is a big job, and capture/compose time grows with every keyed snap.

Ele avisa. Não bloqueia.

A única coisa que de fato bloqueia o Compose

A dimensionalidade em si nunca impede um compose. Exatamente um conflito estrutural impede:

Dois extra knobs escrevendo o mesmo node e o mesmo canal não podem somar. Quando isso acontece, a linha ofensora do Outliner acende em vermelho — nome, chip e ícones — e o Compose se recusa até você resolver.

Tudo mais é um aviso.

Relacionado

  • Knobs — o terceiro eixo
  • Controls — o segundo
  • Drivers — escolhendo um domain explicitamente
  • Compose — no que o endereço se transforma