Compose¶
Compose transforma tudo o que você autorou — pose layers e suas keys, controls, knobs, drivers, constraints, visibility groups, look-ats — num Master Controller node real na sua cena Harmony, mais os arquivos de que aquele nó precisa.
É a única coisa no ORC que escreve na sua cena.
O nome da MC¶
Digite um nome em MC Name. Você não precisa do sufixo:
| Você pressiona | O ORC faz |
|---|---|
| Enter, ou clica fora | Adiciona -MC se ainda não estiver lá. Head → Head-MC. |
| Enter de novo | Clica em Compose. |
A checagem não diferencia maiúsculas/minúsculas, então um nome digitado como head-mc é mantido exatamente como você digitou.
Não há outra validação — nenhuma remoção de caracteres, nenhuma checagem de unicidade. O Harmony decide o nome final do nó, então um nome colidente pode voltar alterado, e o ORC reporta o nome que de fato recebeu.
Por que o Compose está desativado¶
O tooltip é sempre o motivo, e sempre algo sobre o qual você pode agir:
| Tooltip | Correção |
|---|---|
| Enter a name for the Master Controller first. | Digite um nome. |
| The "Eyebrows" pose layer has no keys yet. Stamp a snap with F6 or delete the empty layer. | Keye ela, ou apague a layer vazia. |
| 3 layers are keyed but have no targets (…). Add what each one should move to its target list. | Dê targets a elas. Um widget que não move nada não é entregável. |
| Nothing to compose yet. Add poses, drivers, constraints, or look-ats — or set both Front and Back MC to bake a merged runtime. | Não há nada no rig. |
O Compose fica ativado quando o nome está preenchido, nenhuma layer está pela metade, e pelo menos um destes:
- pelo menos uma pose key em algum lugar,
- tanto uma MC Front quanto uma Back estão definidas (você está mesclando as duas),
- zero pose layers mas pelo menos um driver, constraint ou look-at ativado — um rig que é só automação compõe normalmente.
Layers que nunca precisam de keys — as faces de um control, um knob, um grid importado — ficam isentas.
Duas coisas que o interrompem¶
Blockers — recusados sem meio-termo¶
| Conflito | Por que não funciona |
|---|---|
| Conflito de knob | Dois ou mais extra knobs escrevendo no mesmo nó e canal. O runtime captura uma base intocada por nó e atributo, então essas escritas não podem se somar — a última venceria em silêncio. |
| Conflito de drawing | Um nó READ trocado por duas ou mais layers irmãs. Uma troca de drawing é discreta, então não pode fazer blend, e nada estabelece uma hierarquia entre irmãs. |
Você recebe uma linha vermelha nomeando o conflito, e o Compose não começa. A linha correspondente no Outliner também acende vermelha.
Uma troca de drawing compartilhada ao longo de uma hierarquia é normal — a layer mais profunda vencer é intencional.
Warnings — confirme e continue¶
Se algo é apenas suspeito, o botão vira CONFIRM? por cinco segundos, com a lista ao lado. Deixe o tempo esgotar e ele volta a Compose.
No pose data loadedNo Front or Back face: import an MC or author one— só quando não há nenhuma das duas. Só Front é normal.Driver 'Blink' (Eyelids) has no keyed valuesConstraint 'Arm Follow' has no target nodesConstraint 'Arm Follow' has no channels selected
Compose Settings¶
| Setting | O que decide |
|---|---|
Save states / script to |
Onde os arquivos .tbState, o script de runtime e os arquivos de dados do ORC são gravados. Por padrão, a pasta scripts da sua cena. |
Connect MC to composite |
A qual Composite a nova MC é ligada. O ORC pré-seleciona seu melhor palpite; a lista completa de composites na cena está sempre disponível. |
Como o palpite é feito
A escolha é derivada do próprio rig, não da ordem da lista.
Primeiro o ORC encontra o grupo principal do rig: todo nó da target list vota em todos os seus grupos ancestrais, e o grupo mais profundo que detém a maioria dos targets vence. A profundidade é o que impede um grupo de deformação de ganhar o voto — ele só contém seu próprio punhado de membros, então a maioria sempre recai no grupo do personagem, do lado de fora dele.
Dentro daquele grupo, a primeira correspondência vence:
- Um composite que uma MC existente já alimenta — o link com mais MCs primeiro. Se um está dentro do grupo principal, ele vence de imediato.
- Um composite cujo nome segue as convenções de master-controller —
master-controller,masters,controllers,ctrl,-MC… - O composite principal do grupo — o que alimenta o seu Multi-Port-Out.
- Nenhum composite dentro do grupo → o que o próprio nó do grupo alimenta por fora.
Nada correspondeu → o primeiro composite da cena. Seja qual for a escolha, é apenas uma pré-seleção — o combo sempre lista todos os composites da cena.
Mantenha a mesma pasta de saída entre composes
O cache incremental mora ali. Reutilizar a pasta é o que torna um re-compose rápido.
Se nenhum composite for escolhido, a MC é criada em Top e deixada sem conexão. Caso contrário, ela é criada no grupo pai daquele composite e posicionada logo acima dele na Node View, para você achá-la facilmente.
O que acontece¶
Quatro fases, todas reportadas ao vivo:
| Fase | O que produz |
|---|---|
Slicing state files… |
As pilhas de pose .tbState, uma por layer/side/page, mais o manifesto. A linha de detalhe nomeia exatamente onde está: "Layer 'Eyebrows-L' — Pose 3 of 25 · Knob 2 of 13". |
Constraint pre-wiring… |
Registra as colunas originais de cada constraint para que seu toggle possa restaurá-las. |
Generating MC script… |
O script de runtime que a MC vai executar. |
Assembling MC node in Harmony… |
O próprio nó, seus atributos, seu script de UI e dados, e os blobs do próprio ORC. |
O log Recent activity abaixo mantém um registro com timestamp, incluindo qualquer warning.
Um Ctrl+Z desfaz um Compose
Toda a montagem roda dentro de um único passo de undo do Harmony chamado ORC Compose.
A fase de slicing de fato escreve colunas — é assim que ela lê suas poses — mas essas escritas são transitórias, descartadas, e sua pose é restaurada depois, quer o Compose tenha sucesso, falhe ou seja cancelado.
Cancelando¶
Cancelar é uma confirmação de dois cliques: o primeiro clique arma por quatro segundos (CONFIRM? (4s)), o segundo cancela. O ✕ da janela se comporta da mesma forma — um Compose em andamento nunca simplesmente fecha. Enter nunca aciona o Cancel, então um pressionamento reflexo não pode abortar uma MC pela metade.
O cancelamento é cooperativo: ele para na próxima fronteira segura, nunca no meio de uma chamada, então você verá "Will stop after the current Harmony call returns…".
O que um cancelamento deixa para trás:
- Cancelar durante o slicing: os arquivos
.tbStatejá escritos permanecem, e o cache é salvo para que o trabalho conte para a próxima execução. Nenhum nó de MC é criado. - Cancelar depois que a montagem começou: o nó existe. Não há transação sobre o compose inteiro — Ctrl+Z no passo
ORC Composeé o caminho de volta. - De qualquer forma, sua pose é restaurada.
Como termina¶
| Resultado | O que significa |
|---|---|
| Compose complete — Top/robin-head-MC | 12 state stack(s), 2 constraint(s) | Concluído. A Node View leva você até o novo nó e o seleciona. |
| Compose finished with 3 warning(s) — see the log | A MC existe e funciona, mas um passo não fatal teve um problema. Leia o log. |
| Compose failed — no state files produced | Nada era fatiável. |
| Compose failed — script generation error | |
| Compose failed — MC assembly error: … |
O que fica no disco¶
Na pasta de saída que você escolheu:
| Arquivo | O que é |
|---|---|
<Stack>.tbState, ou <Stack>/0.tbState, 1.tbState… |
As pilhas de pose. Uma layer com um knob ganha uma pasta, um arquivo por posição do knob — o layout nativo do próprio Toon Boom. |
<folder>_compose_state.json |
O manifesto de runtime. |
<name>_orc.js |
O script de runtime gerado. |
orc_pose_data.json |
Toda a configuração do seu rig — a fonte para a re-edição e para o Widget Editor standalone. |
orc_session_state.json |
O estado da UI de autoria, para que reabrir restaure seu workspace. |
.orc_cache/snaps.json |
O cache de compose incremental. Não faz parte do rig; seguro para apagar. |
Os nomes das pilhas são derivados dos nomes das suas layers — Eyebrows e Eyebrow viram ambos Eyebrow, sides adicionam L/R, back stacks adicionam Back, pages adicionam seu número.
O que fica no nó¶
Além do script de runtime e seus dados, o ORC escreve três blobs próprios no nó da MC: seus dados de pose, seu estado de sessão e o manifesto. Eles são embutidos inline apenas quando cada um é pequeno o suficiente; qualquer coisa maior fica no disco, porque embutir megabytes de texto num atributo do Harmony trava o motor de script dele na leitura.
Um pequeno atributo-ponteiro registra o caminho relativo à cena da pasta de saída, que é como a re-edição e o unroll encontram o resto.
Mantenha a pasta de saída junto com a cena
A MC lê seus arquivos de estado do disco em runtime. Mova a cena sem eles e o rig não tem poses para carregar. O caminho é guardado relativo à cena para que mover o par junto seja seguro.
Recompondo¶
Compor de novo sobre o mesmo rig é normal e esperado — é assim que você itera.
Como o ORC guarda referências de frame em vez de poses assadas, você pode voltar ao frame 861, corrigir a sobrancelha, e recompor: a mudança é captada. Nada precisou ser keyado de novo.
O cache incremental faz com que um re-compose só refatie o que de fato mudou, motivo pelo qual manter a mesma pasta de saída importa.
Relacionados¶
- Keying & Auto-Capture — o que o Compose lê
- Re-editing a Composed MC — voltando a entrar
- Unroll — indo no sentido contrário
- Troubleshooting

