Bernard Engine · Doc

Workflows, états et modèles

Un workflow est le graphe des tâches d'un élément (un plan, un asset) : chaque tâche attend celles qui la précèdent. Cette page explique comment une tâche change d'état, comment construire et modifier un workflow, et comment une modification se propage aux éléments déjà créés. La vue qui l'affiche est décrite dans Vue nodale.

Modèles et références

Un studio ne construit pas chaque plan à la main. Il définit des modèles (un modèle de plan, un modèle d'asset, un modèle de projet…) qui portent la structure, les propriétés, le workflow et les fichiers. Chaque objet créé à partir d'un modèle en est une référence : il reçoit une copie de tout ce que porte le modèle, et reste relié à lui.

Les états d'une tâche

Une tâche a un des sept états suivants.

État Sens
Waiting la tâche attend que ce qui la précède soit terminé
Ready elle peut démarrer
WIP quelqu'un travaille dessus (ou, pour une tâche script, elle s'exécute)
Pause le travail est interrompu
Done terminée
Aborted annulée : la tâche est ignorée, comme si elle n'existait pas
Failed échec d'une tâche script

Tous les types de tâche n'ont pas tous les états :

Type de tâche Pour qui États possibles
Task le travail d'un artiste (temps passé, estimations, instructions) tous sauf Failed
Task Validation un point d'arrêt « go / no go » : un lead ou un superviseur valide tous sauf Failed
Task Script un travail fait par un poste, sans personne tous sauf Pause

Un compound n'a pas d'état que l'on choisit : son état est calculé (voir plus bas). Le workflow a une porte d'entrée (Input) et une porte de sortie (Output), créées avec lui.

Qui décide. Le serveur calcule l'état de chaque tâche, l'état résultant, la progression et le temps passé. Les règles liées à votre rôle (droits, assignation, corrections) sont vérifiées par l'application avant d'envoyer la demande. Si le serveur refuse une demande, l'affichage revient à l'état précédent.

Comment une tâche devient Ready

Vous n'avez pas à passer les tâches en Ready à la main : Bernard le fait en suivant les liens du workflow.

Approbations et retakes

Une correction (retake) est une note de type correction posée sur une tâche, depuis Add Correction or Note (clic droit sur la tâche) ou depuis une revue.

Voir aussi Notes.

Pause, WIP et temps passé

État résultant, tâche en cours et progression

Changer l'état d'une tâche : ce qui peut vous bloquer

Vous changez l'état dans l'onglet Properties, dans le tableur, dans l'onglet Instructions (boutons WIP et Done), ou par un clic droit sur une sélection de tâches. Bernard affiche State Error (refus) ou State Warning avec « Do you want to continue anyway ? » dans les cas suivants.

Situation Message
tâche de modèle : seulement Waiting ou Aborted « Warning You can't change the state on Model or Template »
vous n'êtes pas assigné et n'avez pas le droit Can modify the state of tasks assigned to others (override assignees) « Warning you can't change this state because you are not assigned to the task »
Aborted sans le droit Can manually abort tasks « Warning You can't change the state to 'aborted' because your role does not allow it »
WIP sur la tâche d'un autre autorisé seulement s'il n'y a qu'un assigné et qu'il est en ligne
Done avec une correction active « Warning: you can't change the state to Done because there is still active correction »
Done avec une checklist incomplète « Warning: you can't change the state to Done because at least one of the checklist element is not checked: » et la liste ; un administrateur peut passer outre après confirmation
état d'un script en cours « Please wait Script until Script finished for change State »

Le serveur refuse aussi un état que le graphe ne permet pas (par exemple Done alors qu'une tâche précédente n'est pas terminée). Les droits sont réglés dans Rôles, droits et assignation.

Les tâches script

Une tâche Task Script est exécutée par un poste, sans intervention humaine. Ses propriétés : Command (la commande, une expression), Launch On (le poste), Task Priority, Log et Files.

Un script est un exemple d'automatisation propre au studio : Bernard ne livre pas de commande toute prête. Voir Scripts et API.

Actions, déclencheurs et événements

Une action (Action) est une commande que l'on lance sur des objets. Un déclencheur (Trigger) la lance quand une propriété change. Un événement (Event) la lance à une date.

Actions. Une action a une commande (une expression), une icône, un département (pour la ranger dans les menus), Read Access (qui la voit), Show Action Log et Start Up (lancée au démarrage de Bernard). Pour l'utiliser :

  1. Assignez-la à des objets : onglet Actions, bouton Assign actions (sur un modèle, elle vaut pour ses références). Il faut les droits Can assign actions et Can remove assigned actions.
  2. Lancez-la : clic droit sur la sélection (sous-menus par département) ou boutons de l'onglet Actions.
  3. Suivez-la dans la vue Action Log : « Running », « Success », « Failed ».

Trois actions s'exécutent en même temps au plus (Local Settings › Max Simultaneous Action). Une action réussit si elle n'écrit rien sur sa sortie d'erreur ; le code de sortie n'est pas regardé.

Déclencheurs. Réservé aux rôles qui ont le droit Can edit event triggers.

  1. Clic droit sur la propriété à surveiller › Edit Trigger. La fenêtre Triggers Edition on '…' s'ouvre.
  2. Create New Trigger, puis Add Condition : =, !=, >, >=, <, <= (dates et nombres), Changed, Contains (textes et listes).
  3. Choisissez l'action à lancer.

Plusieurs conditions fonctionnent en « OU » : la première remplie lance l'action. Une propriété qui a un déclencheur s'affiche en rouge. Sur un modèle, le déclencheur est recopié sur les références. Les propriétés surveillables sont les textes, dates, nombres, durées, booléens, listes, ainsi que l'état et la version.

Événements. Un événement lance une action à une date : Launch At, Launch For (des utilisateurs ou des rôles), Is Active, Launch Action, et Loop (Never, Every Day, Every Week, Every Hour).

Créer un workflow

Réservé aux administrateurs et aux rôles qui ont accès aux réglages de projet (Has access to projects settings).

Un workflow se construit sur un modèle d'élément : tous les éléments créés ensuite avec ce modèle l'auront.

  1. Dans la Tree View, ouvrez les Project Settings du projet (voir Project Settings).
  2. Clic droit sur Project Item Model › Create › Project Item Model. Donnez-lui un nom (par exemple « Shot », « Character ») et cliquez sur Create.
  3. Affichez la Vue nodale : un nœud Input et un nœud Output vides, avec la couleur des modèles.
  4. Dans le panneau Propriétés, réglez le nom, la couleur, l'icône et les estimations du modèle. Pour ajouter des propriétés, clic droit sur le modèle › Assign › Property.
  5. Cliquez sur le bouton Edit Workflow. La bordure change de couleur et les boutons Save et Cancel apparaissent.
  6. Créez les tâches : clic droit dans le fond de la vue › Create › Task (travail), Task Validation ou Task Script, ou la touche Tab sous le curseur. Les sous-menus Task Templates, Task Validation Templates et Task Script Templates proposent des tâches déjà préparées (département, rôle…).
  7. Reliez les tâches : tirez d'un port de sortie (à droite) vers un port d'entrée (à gauche). Pour insérer une tâche au milieu d'un lien, déposez-la dessus. Les boucles sont refusées.
  8. Sur chaque tâche, vous pouvez déjà régler le département, le rôle attendu (Assign To), les estimations et les instructions : les éléments créés les recevront.
  9. Cliquez sur Save.

Ensuite, créez un élément avec ce modèle : il reçoit le workflow. Pour qu'une tâche ou un workflow d'un élément soit réutilisable, clic droit sur la tâche › Copy To Template (confirmation demandée) l'ajoute aux modèles de tâches.

Les compounds

Un compound regroupe les tâches d'une grande étape (Layout, Animation, Compositing…) : c'est un simple regroupement, les liens vont toujours de tâche à tâche, à travers ses bords. Il a un nom, un département et une couleur.

Créer un compound (en édition) :

Une fois créé :

Limites : un compound ne peut pas contenir un autre compound, et la création depuis la sélection est refusée si la sélection contient déjà un compound ou une tâche déjà rangée dans un compound.

Modifier un workflow et propager le changement

Le workflow d'un élément est une copie du workflow de son modèle. Pour le modifier :

  1. Placez-vous sur le workflow d'un modèle, ou d'un élément : dans ce cas, Bernard prévient que tous les éléments du même modèle seront modifiés en même temps (« Warning, all '…' will be modified at the same time »).
  2. Cliquez sur Edit Workflow, faites vos changements, puis Save. Pour tout abandonner, Cancel.

Si quelqu'un d'autre édite déjà ce workflow, Bernard le signale et demande si vous voulez continuer.

La propagation. À l'enregistrement, Bernard applique le changement au modèle et à toutes ses références : création, modification et suppression des tâches et des liens, par lots. La fenêtre Workflow Propagation montre la progression, le débit et le temps restant, et propose Pause after current batch. Il est déconseillé de l'interrompre : les références non traitées restent en retard sur le modèle, et seul l'utilisateur qui a lancé la mise à jour peut la reprendre, au prochain démarrage de Bernard.

Ajouter une tâche à un workflow déjà en production. Une tâche ajoutée devant du travail terminé ferait repasser les éléments en arrière. Bernard choisit donc l'état de la nouvelle tâche pour chaque élément :

La fenêtre indique « Aborted on N reference(s) (work already started after it) » et « Waiting on N reference(s) ». Un élément terminé reste donc terminé. Pour activer la tâche sur un élément précis, passez-la de Aborted à Waiting sur cet élément (ou sur plusieurs en les sélectionnant ensemble).

Supprimer une tâche ou un compound du modèle le supprime des références ; les tâches suivantes sont réévaluées.

Propager une valeur. Après avoir modifié une propriété sur un modèle, clic droit sur la propriété › Set this value on all references applique la valeur à toutes les références (réservé aux rôles qui ont Can propagate property values to all child references). Bernard annonce le nombre d'éléments touchés et demande confirmation.

Templates de projet

Un template de projet (Project Template) est un projet-patron : créer un projet depuis un template copie sa structure, ses réglages, ses modèles et ses workflows, mais pas ses éléments de production (ni leurs fichiers).

Sans template, le projet est créé à partir du modèle de projet par défaut.

Les instructions

Une instruction est une consigne affichée sur une tâche : une ligne de texte, éventuellement à cocher, avec des images ou des GIF animés. Les instructions orientent l'artiste, et servent de liste de contrôle à celui qui valide.

Créer ou modifier des instructions (rôles qui ont le droit de créer ou supprimer des instructions, et administrateurs) :

  1. Sélectionnez la tâche (sur le modèle du workflow pour que tous les éléments les reçoivent).
  2. Dans l'onglet Instructions, ouvrez le menu du bouton d'édition (Edition Mode) : Edit modifie les instructions de cette tâche, Edit Model celles du modèle.
  3. Pour chaque instruction, écrivez le texte (« Write Instruction ... »), activez Is Checkable si elle doit être cochée, et glissez-déposez une image ou un GIF si besoin. Les flèches Move Up et Move Down changent l'ordre.
  4. Validez avec le bouton OK.

Les boutons de copie permettent de Copy Instructions, Copy Text et Paste Instructions ; un clic droit propose Clear All Instructions. Add Correction crée une correction depuis l'onglet.

Sur une tâche de validation, le lead peut marquer chaque instruction comme correcte ou non, puis ajouter une correction : elle est rattachée à une tâche précédente ou à tout le compound, avec une catégorie de correction (voir Catégories), et notifie les rôles prévus par cette catégorie.

Une tâche peut exiger que toutes ses instructions soient cochées avant de passer Done (voir Changer l'état). Pour créer beaucoup d'instructions d'un coup, voir Instructions From Table dans Instructions.