Aller au contenu

Dimensions et Key Domains

Video tutorial — coming soon

C'est l'idée sur laquelle tout l'outil est construit, et ça tient sur une page.

Une pose est stockée à une adresse. Une dimension est un composant de cette adresse.


Comment s'additionnent les dimensions d'une layer

Une pose layer keye à travers trois choses :

sa propre grid   +   son control porteur   +   son knob

Chacune apporte ses propres axes, et ils composent une adresse unique :

La layer Somme Chip
Une grid 3 × 3, globale, sans knob 2 2D
La même layer à l'intérieur du control Head 2 + 2 4D
…keyée à travers un knob de phonème à 13 positions 2 + 2 + 1 5D
…si ce knob était une grid 3 × 3 à la place 2 + 2 + 2 6D

Six est le plafond pour une pose layer — sa propre grid (2 au maximum), son control (2 au maximum), et un knob (2 au maximum) — et quatre quand la chaîne est entièrement globale : sans control en jeu il n'y a pas de grid porteuse, et une layer globale plafonne à ses propres 2 plus un knob 2D. ORC fait respecter ce budget partout où un axe peut s'attacher — le sélecteur de Knob masque les candidats hors budget, un glisser refuse avec la raison, et Make Global refuse quand le résultat dépasserait 4D. Une layer ne prend qu'un seul knob, ce qui plafonne la chaîne.

L'Outliner affiche le nombre sur chaque ligne, et le survoler en détaille la somme :

5D — total des axes que cette layer keye (sa propre grid + son parent porteur + chaque extra knob).

Deux cas ne contribuent rien :

  • La face d'un control — elle est la grid du control, donc elle ne keye pas aussi à travers elle.
  • Une layer globale — il n'y a rien au-dessus d'elle. Un slider global affiche 1D.

Les drivers et les look-ats atteignent huit

Un driver ou un champ de look-at ajoute les dimensions de son propre widget par-dessus la même pile :

le widget lui-même (0–2)   +   le control (0–2)   +   la pose layer (0–2)   +   son knob (0–2)

Un pad driver 2D keyé à travers un control et une pose layer et le knob 2D de cette layer fait 8D. Rien ne vous en empêche ; rien ne vous prévient non plus.

Widget Ses propres dimensions
Checkbox 0
Slider, Combo Slider 1
Pad 2D (Continuous Grid) 2
Le joystick de look-at 2

Key domains

Un key domain est l'ensemble des positions à travers lesquelles quelque chose est keyé.

Les pose layers tiennent le leur de leur place dans l'arbre — c'est pour ça que déplacer une layer change son comportement. Les drivers et les look-ats choisissent le leur explicitement, avec les quatre mêmes options et les mêmes mots :

Domaine Une valeur par… À utiliser quand
Global Tout. Ce n'est pas keyé du tout. La valeur ne dépend jamais de la pose.
Control Snap du control Elle change avec le turnaround — perspective, raccourci.
Pose Layer Snap de la pose layer, la même à chaque pose du control Elle appartient à l'expression, pas à l'angle.
Control + Pose Layer Le produit des deux Elle varie réellement avec les deux.

Pose Layer est le seul domaine qu'une layer globale peut utiliser

Une layer rattachée à Globals n'a pas de dimension de control, donc Control et Control + Pose Layer n'ont rien contre quoi keyer. ORC grise ces options et le dit.

Les deux modes du look-at choisissent chacun leur propre domaine, parmi les quatre mêmes — voir Look-At.

Quand un domaine n'est pas disponible

ORC ne cache jamais une option qu'il ne peut pas offrir. Il la grise et met la marche à suivre dans l'infobulle :

Grisé Parce que
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."
Tout sauf Global, sur un checkbox driver "Checkbox drivers are Global only — pick another widget type to scope to a Control / Pose Layer."

Si un domaine devient temporairement indisponible — vous n'avez pas encore choisi le control — ORC se souvient de votre choix et le restaure dès que la dimension existe de nouveau, plutôt que de vous rétrograder silencieusement vers Global.

Adresses de snap

Chaque snap a un nom, et il est construit à partir des domaines ci-dessus, de gauche à droite : la position du control, puis celle de la layer, puis celle du knob.

Vous les verrez dans le log, dans les aperçus de presets, et dans la table Unroll :

Un segment par dimension, de gauche à droite — le snap du control, puis celui de la layer :

Adresse Se lit comme
R5C10 Une face de control à la ligne 5, colonne 10
UR0C4:P1LR1C2:P1RR2C0 Snap de control R0C4 · grid gauche de la page 1 en R1C2 · sa grid droite en R2C0
UR1C2:P2LR0C1 Snap de control R1C2 · grid gauche de la page 2
UBR1C2:P1LR0C0 Snap de control R1C2 sur la face back · grid gauche de la page 1 en R0C0
G:P1LR1C2 Une layer globale — aucun composant de control du tout
UR1C2:K1R0C3 La pose propre d'un knob — le control porteur en R1C2, le knob en R0C3
UR0C4:P1LR1C2:W3 La pose de la page 1, à la position 3 du knob de la layer

Les préfixes :

U Le snap du control porteur (son unit) — quel que soit le nom de ce control. Un control Torso keye avec U aussi. UB est sa face back.
G Aucun control du tout — une layer globale, keyée sans tête.
P1L / P1R, P2L Les grids gauche et droite de la page 1, celles de la page 2, et ainsi de suite — un schéma numéroté pour chaque page.
K1 Un knob qui autore ses propres poses — K plus son emplacement d'axe, puis son snap.
:W3 Position 3 du knob de la layer.

Le nom du control n'apparaît jamais dans une adresse — chaque layer appartient à exactement un control, donc U signifie toujours « mon control porteur », sans qu'un numéro soit nécessaire.

Pourquoi la lettre est U et pas C

U correspond à l'unit du control — le nom interne d'ORC pour un control. La lettre évidente serait C pour control, mais C est déjà prise : c'est la lettre de colonne à l'intérieur de chaque snap. CR0C4 mettrait deux significations différentes de C à cinq caractères d'écart, et une adresse existe pour être lue d'un coup d'œil — donc le control keye avec U.

Pourquoi le :W d'un knob 2D est un nombre plat

Un knob 2D adresse sa position comme un index unique — :W7 sur un knob 3 × 3 veut dire ligne 2, colonne 1 (ligne × colonnes + colonne) — plutôt qu'un snap R2C1. C'est délibéré : le rig composé stocke chaque position de knob comme un fichier d'état empilé dans la propre disposition de Toon Boom (stack/0.tbState, 1.tbState, …), et l'index plat est le nom de ce fichier. L'adresse reste alignée avec ce qu'elle désigne.

Vous n'avez jamais à taper une adresse. Mais quand un message, un aperçu de preset ou la table Unroll en nomme une, voici comment la lire.

Interpolation

Entre les snaps, ORC mélange. Avec Interpolation activée, la pose est le mélange pondéré des quatre snaps environnants, les poids sommant toujours à 1. Désactivez-la et le snap le plus proche l'emporte simplement.

C'est une bascule au runtime dans le rig fini, donc l'animateur choisit entre un control lisse et un control à paliers durs. Un snap non keyé n'est pas un trou — c'est une position qui se mélange depuis ses voisins.

C'est aussi la seule bascule globale. Chaque autre bascule intégrée existe pour la chose sur laquelle elle agit, et seulement quand cette chose existe : Mirror a besoin d'une pose layer appairée, Mirror All a besoin de plus d'une paire, et Front ↔ Back a besoin d'un control avec les deux faces — chaque control à deux faces composant son propre retournement. La question de l'interpolation — mélanger entre les snaps, ou passer par paliers ? — est posée une fois, pour tout le rig ; une case à cocher d'interpolation par layer ou par control multiplierait les widgets sans ajouter la moindre décision. Donc une seule case gouverne tout, et elle ne reste chez elle que sur un rig qui n'a rien de continu à mélanger — tout en drivers on/off, sans grid.

Ce que coûtent les dimensions

Chaque axe multiplie les poses disponibles, le temps que prend Compose, et la mémoire qu'il utilise.

Rig Poses adressables
Une layer 3 × 3, globale 9
…à l'intérieur d'un control 5 × 3 135
…plus un knob à 13 positions 1 755
…plus une face Front et Back 3 510

Vous n'êtes jamais obligé de toutes les keyer. Mais une dimension que vous ajoutez est un travail d'authoring que vous vous engagez à faire, et ORC vous le dira à mesure que les comptes grimpent :

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

Il prévient. Il ne bloque pas.

La seule chose qui bloque vraiment Compose

La dimensionnalité en elle-même n'arrête jamais un compose. Exactement un conflit structurel le fait :

Deux extra knobs qui écrivent le même nœud et le même canal ne peuvent pas s'additionner. Quand ça arrive, la ligne fautive de l'Outliner s'allume en rouge — nom, chip et icônes — et Compose refuse tant que vous ne réglez pas le problème.

Tout le reste n'est qu'un avertissement.

Voir aussi

  • Knobs — le troisième axe
  • Controls — le deuxième
  • Drivers — choisir un domaine explicitement
  • Compose — ce que devient l'adresse