Ir para o conteúdo

Compose

Vídeo tutorial — em breve

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á. HeadHead-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 loaded
  • No 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 values
  • Constraint 'Arm Follow' has no target nodes
  • Constraint 'Arm Follow' has no channels selected

Compose Settings

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:

  1. 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.
  2. Um composite cujo nome segue as convenções de master-controller — master-controller, masters, controllers, ctrl, -MC
  3. O composite principal do grupo — o que alimenta o seu Multi-Port-Out.
  4. 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

Composing

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 .tbState já 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