Aller au contenu

Compose

Tutoriel vidéo — bientôt disponible

Compose transforme tout ce que vous avez créé — pose layers et leurs keys, controls, knobs, drivers, constraints, visibility groups, look-ats — en un vrai node Master Controller dans votre scène Harmony, plus les fichiers dont ce node a besoin.

C'est la seule chose dans ORC qui écrit dans votre scène.

Le nom du MC

Tapez un nom dans MC Name. Vous n'avez pas besoin du suffixe :

Vous appuyez sur ORC fait
Enter, ou cliquez ailleurs Ajoute -MC si ce n'est pas déjà là. HeadHead-MC.
Enter à nouveau Clique sur Compose.

Le contrôle ignore la casse, donc un nom tapé head-mc est laissé exactement tel quel.

Il n'y a pas d'autre validation — pas de nettoyage de caractères, pas de contrôle d'unicité. Harmony décide du nom final du node, donc un nom en collision peut revenir modifié, et ORC rapporte le nom réellement obtenu.

Pourquoi Compose est désactivé

Le tooltip est toujours la raison, et toujours quelque chose sur quoi agir :

Tooltip Solution
Enter a name for the Master Controller first. Tapez un nom.
The "Eyebrows" pose layer has no keys yet. Stamp a snap with F6 or delete the empty layer. Keyez-la, ou supprimez-la.
3 layers are keyed but have no targets (…). Add what each one should move to its target list. Donnez-leur des targets. Un widget qui ne bouge rien n'est pas livrable.
Nothing to compose yet. Add poses, drivers, constraints, or look-ats — or set both Front and Back MC to bake a merged runtime. Il n'y a rien dans le rig.

Compose est activé quand le nom est rempli, qu'aucune layer n'est à moitié finie, et qu'au moins une de ces conditions est vraie :

  • au moins une pose key quelque part,
  • un Front et un Back MC sont tous les deux définis (vous les fusionnez),
  • zéro pose layer mais au moins un driver, une constraint ou un look-at activé — un rig qui n'est que de l'automation compose sans problème.

Les layers qui n'ont jamais besoin de keys — les faces d'un control, un knob, une grid importée — sont exemptées.

Deux choses qui l'arrêtent

Blockers — refusés d'office

Conflit Pourquoi ça ne peut pas marcher
Knob conflict Deux ou plusieurs extra knobs qui écrivent le même node et le même channel. Le runtime capture une base intacte par node et attribut, donc ces écritures ne peuvent pas s'additionner — la dernière gagnerait en silence.
Drawing conflict Un node READ échangé par deux ou plusieurs layers sibling. Un drawing swap est discret, donc il ne peut pas se blender, et rien ne classe les siblings entre eux.

Vous obtenez une ligne rouge nommant le conflit, et Compose ne démarre pas. La ligne fautive dans l'Outliner est elle aussi allumée en rouge.

Un drawing swap partagé le long d'une hiérarchie est acceptable — c'est voulu que la layer la plus profonde l'emporte.

Warnings — confirmer et continuer

Si quelque chose est simplement suspect, le bouton devient CONFIRM? pendant cinq secondes, avec la liste à côté. Laissez le délai s'écouler et il revient à Compose.

  • No pose data loaded
  • No Front or Back face: import an MC or author one — seulement quand il n'y a ni l'un ni l'autre. Front seul est 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

Réglage Ce qu'il décide
Save states / script to Où sont écrits les fichiers .tbState, le script runtime et les fichiers de données d'ORC. Par défaut, le dossier scripts de votre scène.
Connect MC to composite Quel Composite le nouveau MC rejoint. ORC présélectionne sa meilleure estimation ; la liste complète des composites de la scène est toujours disponible.
Comment l'estimation est faite

Le choix est dérivé du rig lui-même, pas de l'ordre de la liste.

D'abord ORC trouve le groupe principal du rig : chaque node de la target list vote pour tous ses groupes ancêtres, et le groupe le plus profond détenant une majorité des targets l'emporte. La profondeur est ce qui empêche un groupe de déformation de rafler le vote — il ne contient jamais que sa poignée de membres propres, donc la majorité tombe toujours sur le groupe du personnage à l'extérieur.

Dans ce groupe, le premier match l'emporte :

  1. Un composite qu'un MC existant alimente déjà — le plus de liens MC d'abord. S'il est à l'intérieur du groupe principal, il l'emporte d'office.
  2. Un composite dont le nom suit les conventions de master controller — master-controller, masters, controllers, ctrl, -MC
  3. Le composite principal du groupe — celui qui alimente son Multi-Port-Out.
  4. Aucun composite dans le groupe → celui que le node de groupe lui-même alimente à l'extérieur.

Rien ne correspond → le premier composite de la scène. Quel que soit le choix, ce n'est qu'une présélection — le combo liste toujours tous les composites de la scène.

Gardez le même dossier de sortie entre les composes

Le cache incrémental y vit. Réutiliser le dossier est ce qui rend un re-compose rapide.

Si aucun composite n'est choisi, le MC est créé dans Top et laissé non lié. Sinon il est créé dans le groupe parent de ce composite et placé juste au-dessus dans le Node View, pour que vous puissiez le retrouver.

Ce qui se passe

Composing

Quatre phases, toutes rapportées en direct :

Phase Ce qu'elle produit
Slicing state files… Les stacks de poses .tbState, une par layer/side/page, plus le manifeste. La ligne de détail nomme exactement où on en est : « Layer 'Eyebrows-L' — Pose 3 of 25 · Knob 2 of 13 ».
Constraint pre-wiring… Enregistre les colonnes d'origine de chaque constraint pour que son toggle puisse les restaurer.
Generating MC script… Le script runtime que le MC exécutera.
Assembling MC node in Harmony… Le node lui-même, ses attributs, son script d'UI et ses données, et les blobs propres d'ORC.

Le journal Recent activity en dessous garde un enregistrement horodaté, warnings compris.

Un seul Ctrl+Z annule un Compose

Tout l'assemblage tourne dans une seule étape d'undo Harmony nommée ORC Compose.

La phase de slicing écrit bien des colonnes — c'est comme ça qu'elle lit vos poses — mais ces écritures sont transitoires, jetées, et votre pose est restaurée ensuite, que Compose réussisse, échoue ou soit annulé.

Annuler

Cancel est une confirmation en deux clics : le premier clic l'arme pour quatre secondes (CONFIRM? (4s)), le second annule. Le de la fenêtre se comporte pareil — un Compose en cours ne se ferme jamais tout simplement. Enter ne déclenche jamais Cancel, pour qu'une frappe réflexe ne puisse pas interrompre un MC à moitié construit.

L'annulation est coopérative : elle s'arrête à la prochaine limite sûre, jamais en plein appel, donc vous verrez « Will stop after the current Harmony call returns… ».

Ce qu'une annulation laisse derrière elle :

  • Annuler pendant le slicing : les fichiers .tbState déjà écrits restent, et le cache est sauvegardé pour que le travail compte pour le prochain run. Aucun node MC n'est créé.
  • Annuler après le début de l'assemblage : le node existe. Il n'y a pas de transaction sur tout le compose — Ctrl+Z sur l'étape ORC Compose est le chemin retour.
  • Dans les deux cas, votre pose est restaurée.

Comment ça se termine

Résultat Ce que ça signifie
Compose complete — Top/robin-head-MC | 12 state stack(s), 2 constraint(s) Terminé. Le Node View se déplace vers le nouveau node et le sélectionne.
Compose finished with 3 warning(s) — see the log Le MC existe et fonctionne, mais une étape non fatale a eu un problème. Lisez le journal.
Compose failed — no state files produced Rien n'était découpable.
Compose failed — script generation error
Compose failed — MC assembly error: …

Ce qui atterrit sur disque

Dans le dossier de sortie que vous avez choisi :

Fichier Ce que c'est
<Stack>.tbState, ou <Stack>/0.tbState, 1.tbState Les stacks de poses. Une layer avec un knob obtient un dossier, un fichier par position de knob — la mise en page native de Toon Boom.
<folder>_compose_state.json Le manifeste runtime.
<name>_orc.js Le script runtime généré.
orc_pose_data.json Toute la configuration de votre rig — la source pour le re-edit et pour le Widget Editor autonome.
orc_session_state.json L'état de l'UI d'authoring, pour que la réouverture restaure votre espace de travail.
.orc_cache/snaps.json Le cache de compose incrémental. Ne fait pas partie du rig ; peut être supprimé sans risque.

Les noms de stacks sont dérivés des noms de vos layers — Eyebrows et Eyebrow deviennent tous les deux Eyebrow, les sides ajoutent L/R, les stacks de back ajoutent Back, les pages ajoutent leur numéro.

Ce qui atterrit sur le node

Au-delà du script runtime et de ses données, ORC écrit trois de ses propres blobs sur le node MC : vos données de pose, votre état de session et le manifeste. Ils sont intégrés inline seulement quand chacun est assez petit ; tout ce qui est plus volumineux reste sur disque, parce qu'intégrer des mégaoctets de texte dans un attribut Harmony fait planter son moteur de script à la lecture.

Un petit attribut pointeur enregistre le chemin relatif à la scène du dossier de sortie, ce qui permet au re-edit et à unroll de retrouver le reste.

Gardez le dossier de sortie avec la scène

Le MC lit ses fichiers d'état depuis le disque au runtime. Déplacez la scène sans eux et le rig n'a plus de poses à charger. Le chemin est stocké relatif à la scène, donc déplacer la paire ensemble est sans danger.

Re-composer

Composer à nouveau sur le même rig est normal et attendu — c'est comme ça qu'on itère.

Parce qu'ORC stocke des références de frame plutôt que des poses figées, vous pouvez retourner à la frame 861, corriger le sourcil, et re-composer : le changement est pris en compte. Rien n'a besoin d'être re-keyé.

Le cache incrémental fait qu'un re-compose ne re-découpe que ce qui a réellement changé, ce qui explique pourquoi garder le même dossier de sortie compte.

Voir aussi