[:arrow_left:](/HBtOe6opROO2deKL9wqT7w) To Modeling Dashboard
[:arrow_left:](/WQum2tYYSXGaBjnU2wMxzQ) To pirata Dashboard
# PROCESS MASTERS MODELING
###### tags: `Modeling` `Notice` `to-do` `Assets`
## INTRODUCTION
- Le but des scènes **Master** est de réunir l’ensemble des **variations** d’une **Asset Library** ainsi que les subassets qui constituent ces variations au sein d’une même scène.
- Cette scène une fois finie devra être splittée. Cette opération permettra d’extraire les **ELT Default** et **Assemblies** de la scène Master.
- Ces scènes "Masters Modeling" constituent l'espace de travail principal pour les retakes de modélisation.
- Dès qu’un asset sera mis à jour, la scène Master devra être updatée afin de répandre la modification de l’asset partout où il est utilisé.
--> Par exemple, si les bottes de Pirata sont updatées dans le subasset ou dans une variation de Pirata, on veut que cette modif se répercute partout où les bottes servent, donc sur les autres variations de Pirata.
## GENERER UNE SCENE MASTER
1. Ouvrez maya depuis **Shotgun Desktop**
- Allez chercher l'Asset Library que vous souhaitez traiter via le browser du **File Open**
- Sélectionnez la step **Modeling** puis la task **Master**

- Créez un nouveau fichier en cliquant sur le bouton **+ New File**
2. La scène Master qui s'ouvre est, pour l'instant, vide.
- Cliquez sur le bouton **Create Master** du shelf MM_AssetLibs dans Maya. 
Cette action aura pour effet de récupérer les infos castées dans SG et de builder la scène Master en suivant cette nomenclature:
:::info
- **AssetLib01_MDL_Master_Top**
- *Common_Grp*
- *Assemblies_Grp*
- AssetLib01_VariationA_MDL_Top
- BridgeModelingPreRig_000:Sub01_Variation_MDL_Top
- BridgeModelingPreRig_000:Sub02_Variation_MDL_Top
- AssetLib01_VariationB_MDL_Top
- BridgeModelingPreRig_000:Sub01_Variation_MDL_Top
- BridgeModelingPreRig_000:Sub03_Variation_MDL_Top
- *Elt_Default_Grp*
- Subasset01_Nom de variation_MDL_Top
- U_Name01_Grp
--> U_Name01_001_Msh
--> U_Name01_002_Msh
- Subasset02_Variation_MDL_Top
- Subasset03_Variation_MDL_Top
- *Trash_Grp*
- **Mastersets**
- *AssetLib01_VariationA_MDL_SplitSet*
- Sub01_Variation_MDL_SpliSet
- Sub02_Variation_MDL_SpliSet
- *AssetLib01_VariationB_MDL_SplitSet*
- Sub01_Variation_MDL_SpliSet
- Sub03_Variation_MDL_SpliSet
*Note: Les "U", "C", "R" ou "L" devant chaque nom d'asset signifient respectivement "Undefined", "Center", "Right", et "Left" pour indiquer la position du mesh dans la scène.*
:::
3. Avant de spliter quoique ce soit, il va falloir replacer tous les assets présents dans le topnode ELT Default **sur la grille, au centre du monde, avec un Center Pivot**.
--> De cette manière, on prépare le travail du rig qui aura besoin de ce placement pour poser les contrôleurs sur chaque asset.

- Après avoir replacé tous les ELTs, ne pas oublier de faire un **Freeze Transfom** + **Delete History** pour ne pas garder de refs edits dans la scene.
4. Terminer en faisant un SanityCheck ELT pour s'assurer que la scène est clean 
--> Plus de détails sur le Sanity Check dans "*Outils Master*"
5. Une fois ces modifications terminées, vous pourrez sauvegarder votre fichier en vue de le splitter.
:::warning
Important: Au moment du **File Save**, assurez vous que le champ **Name** est bien rempli avec le nom **Master**.

:::
## SPLIT MASTER SCENE "ELT DEFAULT":
La scène Master a passé le SanityCheck, elle peut donc maintenant être splitée:
1. Nous allons commencer par spliter tous les assets du groupe ELT pour qu'ils puissent ensuite être utilisés par les futurs Assemblies.
Pour ce faire, aller chercher le tool dans:
Shotgun/CRUDFILES Automation/**Split Master - ELT Default**

- Cette fenêtre s'affiche alors: on peut y voir les ELT présents dans la scène
EX: ici, CrabBark01Body01 et CrabBark01Oar01
- Sélectionner dans le menu déroulant la Task dans lequel on souhaite publisher l'asset: Sculpt, Topology, UV...
:::info
NOTE: Dans notre process, on splitera toujours soit en "**Sculpt**" soit en **Topology**".
- Pour éviter toute erreur, bien vérifier que la task précédant celle où l'on s'apprête à spliter soit bien en "approved". Sinon vous ne suiverez pas le pipe!
- Si la Task Sculpt est Approved, on peut passer directement au Split de Topology. En revanche, si ce n'est pas le cas, il faudra donc d'abord spliter en Sculpt, puis en Topology
- Par défaut, la case "Review" est cochée, ce qui permet de mettre à jour le statut SG.
- Cocher les assets à spliter ou "Select all" à gauche si vous souhaitez les faire tous.
- Cliquer sur "**Start Split Master Scene**"
:::
- Le split s'est lancé, et a permis de publisher l'asset sur Shotgun + lancer une turntable de l'asset sur la farm.
--> Bien attendre que la turntable soit terminée avant de passer à l'étape suivante (--> rendu en bleu sur la farm)
2. Changer **MANUELLEMENT** le statut de la version de l'asset de "Pending Review" en **Approved** et vérifier que cela ait bien envoyé un bridge sur la farm.
--> Nomenclature des bridges sur la farm : *NomAsset.BLD.CreatOutTask.CrudfilesBatch*
Même chose, bien attendre que le job passe en bleu sur la farm.
:::success
NOTE: Cette manipulation "manuelle" sur la version dans SG va permettre au daemon de passer automatiquement le statut du publish en Approved, validant alors la Task entière et permettant ainsi de passer à la Task suivante. Il faut garder en tête que ce cheminement sera ensuite totalement automatisé et que l'on ne fait cette manipulation à la main que **temporairement**, le temps que le pipe de review soit OK.
:::

3. Actualiser votre page SG, votre Bridge devrait maintenant apparaître dans vos publishs dans : page de l'asset > Tasks > BridgeModelingPreRig
Aussi visible dans les Publishs > Build > BridgeModelingPreRig

- Si vous en êtes au Split ELT en Task **Sculpt**, il va falloir rouvrir votre scène pour refaire le même process pour le Split Topology.
Si vous en êtes au Split ELT en Task **Topology**, vous pouvez passer à l'étape suivante.
## SPLIT MASTER SCENE "ASSEMBLY":
*Maintenant que les ELT default ont été correctement splittés, on s'occupe des Assemblies, qui sont donc constitués de nos Bridges générés précédemment, appelés en référence.*
1. Rouvrir la scène Master
2. Faire un **ASSETS Update**  Cette action va remettre à jour les ELT Default et charger les références des bridges les plus récents dans les Assemblies.
:::info
Comme les Bridges ont été générés à partir des ELT Default, ils doivent eux aussi être au centre du monde sur la grille.
--> Si ce n'est pas le cas, c'est que l'update n'a pas marché. Se référer aux erreurs du chapitre "Problèmes et Bug Connus".
:::
3. Checker que tout est OK au niveau des Assemblies. Si il y a un doute, vérifier dans le Ref Editor que les bonnes versions de Bridge sont utilisées, et que leur nomenclature est correcte.
**Note:** il arrive que certains assemblies fassent appel plusieurs fois à un même asset. Dans ce genre de cas, un bridge sera donc appelé plusieurs fois dans la scène master: ce sont les **instances**. Cette information de nombre est visible et modifiable dans l'Instance Count de l'ASB:

4. Repositionner les Références de l'Assembly afin de retrouver le staging souhaité, en ne manipulant que les **Topnodes** des Bridges, et pas les Bridges eux-mêmes.
:::info
Pour faciliter cette action, il est possible de prendre comme modèle un obj (exporté au préalable à partir d'une ancienne scène de l'asset) importé dans la scène. Il faudra en revanche bien penser ensuite à supprimer cet OBj ainsi que son namespace dans le NamespaceEditor pour ne pas laisser de résidus.
:::
Note: Le Split d'Assembly utilisera les valeurs des References Edits pour mémoriser les transforms dans la future scène Assembly.
Il ne faut donc **pas** refaire de Freeze Transform a cette étape car cela viendrait faire disparaître ces infos de placement dans la scène.
5. Checker que les **Sets de Selection** soient bien remplis, sinon faire un **LINKS Update** 
6. Faire un **SanityCheck Assembly** 
7. **Sauver** la scène via le **File Save**
8. Lancer le tool **Split Master -Assemblies**
- Sélectionner la Task : Assembly
- Sélectionner les Assemblies concernés
- **Start Split Master Scene**

9. Checker que les scenes d’Assembly ont bien été créées dans le File System en Work. Rouvrir les scènes afin de s'assurer que le placement est OK
Bravo vous avez fini le process!
(ง ͡ʘ ͜ʖ ͡ʘ)ง
## CORRIGER UNE SCENE MASTER:
Vous pensiez avoir fini de traiter un asset, mais vous apercevez qu'il doit finalement être corrigé:
Pas de souci, il faudra simplement penser à certaines astuces pour que la scène reste propre :)
1. Si vous avez été obligé de refaire un split ou un bridge, il est indispensable de faire cette update sur la scène master. Pour cela, il faudra donc supprimer les Références (= les bridges) dans le Reference Editor, avant de cliquer sur "**Asset Update**" pour récupérer les dernières mises à jour.
:::info
Cette action viendra inévitablement remettre les références au **centre du monde**. Pour éviter de perdre votre placement de refs, et ainsi gagner du temps, aller dans la barre de Shelf "MM_Modeling":
- Cliquer sur le 1er bouton, pour "copier" l'ensemble des refs edits de la scène.
- Remove les Refs du Reference Editor.
- Faire ensuite l'Asset update
- Cliquer sur le 2e bouton pour "coller" les refs Edits.
- Et voilà, vous avez retrouvé votre placement!
:::

2. Après un Asset Update, toujours faire un "**Link Update**" pour s'assurer que les sets de selection soient eux aussi bien à jour.
3. Refaire si besoin un Sanity Check, puis sauvez votre scène.
Et voilà, prêt pour un nouveau split!
## LES OUTILS MASTER:
###  MASTER Create
Cet outil va venir builder la scène Master. Une fois la structure de la scène complète, les subs et vars importées par l'outil, ce dernier va automatiquement ranger les ELT Default dans leur set respectif situés dans **Mastersets**. Puis il mettra en évidence les transforms communs ou uniques à l'aide de couleur dans l'outliner. Cette coloration permettra de suivre efficacement les ELT Default qui servent à plusieurs Assemblies.
###  ALL Update
Cet outil réuni les actions des boutons **SETS Update** et **ASSETS Update**. Il permet un reload automatique des **Sets** de sélection, des références appelée par les **Assemblies** et des **Elt_Default**.
###  SETS Update
Ce script supprime puis recrée l'ensemble des **SETS** de la scène en se basant sur la BKL Shotgun.
(Cf structure des sets dans **MASTER Create**)
###  ASSETS Update
Reload l'ensemble des **ASSETS** présents dans la scène en se basant sur le dernier publish Shotgun correspondant.
- Pour les **ELT Default**, l'outil regarde le path de la dernière task publishée de la step **Modeling**
- Pour les **Assemblies**, l'outil regarde le dernier publish de la task **BridgeModelingPreRig** et update les références en fonction.
###  LINKS Update
Ce script permet de ranger les **ELT Default** directement dans leur set de sélection respectif.
###  COMMON Colors
- Cet outil permet de colorer :
- En **VERT** les transforms des ELT Default qui sont utilisés dans plus d'une variation de l'Asset Library
- En **JAUNE** les transforms des ELT Default qui sont utilisés dans une seule variation de l'Asset Library
###  ORPHANS Colors
L'ensembles des transforms des assets importés via les outils master se voient attribuer un extra attribut **"source"**. Si cet attribut n'est pas trouvé ou qu'il est vide (par exemple, s'il s'agit d'un asset que l'on vient tout juste de modéliser dans le master) ces derniers seront colorés en **ROSE** dans l'outliner

###  BKL Update
Permet de mettre à jour les BKL Shotgun sans sortir de votre scène Master.
:::danger
Les graphistes n'ont pas le droit d'utiliser cet outil.
:::
###  OBJECTS Center
- Freeze transform la sélection (vous pouvez sélectionner plusieurs topnode d'ELT Default si vous le souhaitez)
- Center pivot to object center
- Center object to world
- Freeze transform
###  SANITY CHECKS
En cliquant sur ce bouton, une fenêtre vous proposant les fix automatiques possibles s'ouvrira. Pour fixer un check en rouge, cliquer sur "Fix it". Pour avoir plus de détails, cliquer sur la case du bug et aller dans le script Editor.
###  OPEN Logs
Ce bouton vous permet d'ouvrir directement le dossier des logs correspondant à votre scène Master.
## PROBLEMES EVENTUELS ET BUGS CONNUS:
La plupart des bugs auxquels nous sommes confrontés actuellement sur les Masters sont connus des TDs qui ont mis en place cet outil. Néanmoins, il est important de relever le moindre problème. Pour cela, rien de mieux qu'un log du script Editor pour cerner le pb avec précision ;)
En cas de fail de job de turntable sur la Farm : Essayer de le relancer en faisant un clic droit sur le rendu. Si le résultat ne change pas, aller dans cette fenêtre correspondant au log du job de rendu pour voir l'erreur. Un fail peut avoir plusieurs sources, dont la plupart sont connues et en cours de traitement.

**-Le SanityCheck bloque sur "Mesh History"**
Aller dans "Windows > General Editor > Hypergraph Connections"
Retirer la flèche de connection entre les Nodes, puis relancer le SanityCheck
**-Le CrudFileBatch (--> le Bridge) ne s’envoie pas sur la farm:**
Dans ce cas, ne pas hésiter à repasser le statut du Publish en Pending Review puis Approved, ce qui devrait relancer un job.
**-Le Create Master a importé une ou plusieurs variation(s) SHA var dans le Master.** Ce n’est pas normal, mais c’est arrivé de temps en temps. A priori cela ne pose pas de problème au process, il faudra simplement s’assurer à ne pas cocher cette variation au moment du split Assemblies (puisque ce genre de variation n’a pas besoin de scène Modeling)
**-Les Bridges ne se mettent pas à jour avec l’ASSET UPDATE:**
Cela peut vouloir dire que les Bridges dans la scène ne sont pas les bons: certains assets ont en effet un historique de Bridges déjà existants, et pas forcément avec la bonne nomenclature. Ces vieux bridges viennent, pour une raison inconnue, s’updater à la place des nouveaux Bridges créés par le publish. Ces anciens bridges sont faciles à reconnaître: leur nomenclature ne se termine pas par “BridgeModelingPreRig”, contrairement aux nouveaux. Pour accéder à cette page, aller sur la page SG de l’asset > “Tasks” > “BridgeModelingPreRig” > Publishes

On peut également repérer cette mauvaise nomenclature en allant checker le **Reference Editor** de la scène.
Si vous repérez ce genre de cas, faire appel à John pour qu’il clean niveau SG et file system. Suite à cette manip, l’ ASSET UPDATE devrait ensuite fonctionner.
**-Perte de Selection Sets après l’ASSET UPDATE:**
Il arrive que l’asset update viennent déconnecter certains sets de selection avec ce qu’ils sont censés contenir. Dans ce cas, refaire un “LINK” devrait suffire à les retrouver.
**-Message d’erreur au moment de faire un Split Assemblies** : *"This tool cannot split asset from this Task Template!"*
Commencer par vérifier que l'asset en question est bien un ASB. Si c'est ok, refaire un SanityCheck et cocher la case "upload SG folders" au moment du split Assembly. Cette action va permettre de refresh les dossiers SG de l'asset.
**-Les Bridges n’ont pas conservés toutes les Reférences Edits de positionnement dans l’assembly**: pb en cours de traitement