Dimensões e Key Domains¶
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.