Aperçu
Le Set Metadata écrit une paire Field Name → Valuedans le container metadata de l'image qui passe. Le champ peut être une chaîne, un nombre, ou tout type sérialisable.
Ces metadata ne modifient pas l'image visible, mais sont accessibles par expressions Fusion ou Lua pour conditionner des comportements en aval (ex. ajuster un Color Corrector selon une scene tag, déclencher un Saver alternatif selon ISO, etc.).
Où trouver ce node
- Effects Library :
Tools > Metadata > Set Metadata - Ajout rapide : clic droit dans le Node Editor →
Add Tool > Metadata > Set Metadata
La metadata dans Fusion
Chaque image qui circule dans Fusion porte un dictionnaire metadata (clé → valeur). Les Loaders / MediaIns peuplent automatiquement certains champs (TimeCode, Filename, FrameRate, etc.) selon le format source.
- Lecture
- Via expressions :
Image.Metadata.MyField. Permet de driver une propriété d' un autre node. - Persistance en sortie
- Le Saver / MediaOut écrit la metadata dans le fichier de sortie (selon le format : EXR la conserve native, MP4 seulement certains champs standard).
- Transmission entre nodes
- La metadata est passée par défaut. Les nodes la transmettent sans modification (à part Set/Copy Metadata qui la modifient explicitement).
Inputs
- Input (orange) - image 2D à enrichir.
Configuration
Tag de scène pour pipeline :
MediaIn → Set Metadata (SceneID = "SC042")
→ Color Corrector (expression conditionnelle sur SceneID)
→ MediaOut
Annotation pour debug :
Renderer 3D → Set Metadata (RenderTime = Time())
→ Set Metadata (Pass = "BeautyV2")
→ Saver (EXR avec metadata)
Marquage qualité par plan :
MediaIn → Set Metadata (QualityCheck = "approved")
→ MediaOut
Cascade de Set Metadata pour multiples champs :
MediaIn → Set Metadata (Project = "Trailer")
→ Set Metadata (Episode = "01")
→ Set Metadata (Shot = "0042")
→ SaverOnglet Controls
- Field Name (défaut : vide)
- Clé de la metadata (chaîne arbitraire). Conventions courantes : CamelCase ou snake_case. Éviter espaces et caractères spéciaux pour éviter ambiguïté avec les expressions.
- Field Value (défaut : vide)
- Valeur associée. Peut être texte, nombre, ou expression (préfixe
=pour évaluer dynamiquement). - Set Mode (défaut : Replace)
- Replace : écrase la valeur existante. Append : concatène à la valeur existante (utile pour list-like). Skip if Exists: ne modifie que si le champ n'existe pas.
Champs courants
- TimeCode
- Code temporel SMPTE (HH:MM:SS:FF). Souvent rempli par MediaIn, peut être surchargé pour conform.
- Filename
- Nom du fichier source. Utile pour identifier le plan en aval (Saver template basé sur ce champ).
- FrameRate
- Frame rate effectif. Les operations de retime peuvent vouloir écraser ce champ.
- Comments / Description
- Champs de texte libre, pour annotations humaines.
Cas d'usage
- Tagging shot pour pipeline - ajouter SceneID, ShotID, Episode au flux pour automation Saver template (
{Episode}_{Shot}_v{Version}.exr). - Marquage de pass de render 3D - Beauty / Diffuse / Specular passes → chacun avec metadata identifiant la passe pour conform automatique en compositing.
- Annotation debug - ajouter Time, Process, Operator pour savoir comment et quand le frame a été rendu.
- Override de TimeCode - corriger un TC incorrect du fichier source sans toucher au matériel original.
- Switch conditionnel par metadata- Color Corrector dont les valeurs dépendent d'un metadata field via expression => pipeline data-driven.
- Cataloging via Saver EXR - EXR conserve la metadata. Outils tiers (Nuke, RV, Shotgun) peuvent lire ces tags pour tracking.
Astuces
- Convention de nommage - se choisir un préfixe maison (ex.
CA_*pour Creator Academy) pour isoler ses champs custom des standards Fusion. Évite collisions. - Plusieurs Set Metadata en cascade - pour ajouter plusieurs champs, chaîner les nodes (un par champ). Lecture facile et bypass possible un par un.
- Tester avec une expression simple - sur un Text+ Styled Text :
=Image.Metadata.MyFieldaffiche le champ pour vérification visuelle. - Skip if Exists pour defaults - ne pas écraser un champ existant quand on veut juste fournir une valeur par défaut au cas où il manquerait.
- Output format EXR pour persistance - le metadata custom est conservé en EXR, partiellement en TIFF, généralement perdu en MP4/MOV (sauf champs standard).
- Copy Metadata pour transférer- pour transférer la metadata d'un flux à un autre (ex. après une compo qui démarre d'un Background pur), utiliser le node Copy Metadata, pas Set Metadata.
- Pour scripting avancé, la metadata peut être lue/écrite via console Lua :
img.Metadata.MyField = "value".
