---
# System prepended metadata

title: '**Wiki** : Utilisation des Master Scènes d''Asset Library'
tags: [Assets, Master, Modeling, Split, TD]

---

[:arrow_left:](/HBtOe6opROO2deKL9wqT7w)to Modeling Dashboard
[:arrow_left:](/FQqugZ49RLOLDOdm0Z1GlQ?both)to TD dashboard
[:arrow_left:](/WQum2tYYSXGaBjnU2wMxzQ)to Pirata Dashboard

# **Wiki** : Utilisation des Master Scènes d'Asset Library
###### tags: `Assets` `Modeling` `TD` `Master` `Split`

:::success
Process et documentation mis à jour le 22/12/2020 par Nicolas Dorey
:::

# INTRODUCTION 

## Rappel sur la structure des assets
- Une **Asset Library** peut être composé d'un ou plusieurs ELT Default et Assemblies ou uniquement d'Assembly. Une Asset Library ne peut pas être composé uniquement d'ELT Default.
- Un **ELT Default** ne peut pas avoir d'enfant et doit lui même être l'enfant d'une Asset Library et/ou d'un ou plusieurs Assemblies.
- Un **Assembly** peut être composé d'ELT Default et/ou d'Assembly et doit être l'enfant d'une Asset Library.
- Si ces critères ne sont pas respectés au niveau de la construction des assets sShotgun, vous aurez des comportements non souhaités au niveau des outils. 
- Si vous rencontrez le moindre soucis avec vos outils, veillez à ce que les Assets soient bien conformes au niveau de Shotgun. Si l'asset vous semble conforme et que les outils ne se comportent pas selon les attentes, n'hésitez pas à nous adresser un **[Ticket](https://millimages2.shotgunstudio.com/page/7471?layout=Tickets)**.

## Pourquoi le système de Master/Split ?
- 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 Master sont votre espace de travail principal pour les retakes d'éléments en relation avec une Asset Library. Seul les assets situés dans le groupe **Elt_Default_Grp** peuvent être modifier au niveau topologie, nomenclature, hiérarchie etc. Les éléments situés dans le groupe **Assemblies_Grp** sont des références et ne peuvent recevoir que des modifcation de transform (translate, rotate, scale).
- 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 (voir même les scènes relatives à un autre perso qui aurait les mêmes bottes, si Capitano devait porter les bottes de Pirata, il devra être mis à jour également).
- Détail important qui peut porter à confusion: Le task template des variations peut être ELT Default ou Assemblies. Les subassets sont nécessairement des ELT Default.

# GENERER UNE SCENE MASTER

- Ouvrez maya depuis **Shotgun Desktop** dans l'environnement DevSandBox
- Allez chercher l'Asset Library que vous souhaitez via le browser du **File Open**
- Sélectionnez la step **Modeling** puis la task **Master**
![](https://i.imgur.com/Nv1d8W7.png)
- Créez un nouveau ficher en cliquant sur le bouton **+ New File**
- Ensuite cliquez sur le bouton **Create Master** du shelf MM_AssetLibs dans Maya
- Vous pouvez désormais modifier le fichier à votre guise. Vous trouverez plusieurs outils à votre disposition dans le shelf MM_AssetLibs. Ils vous aideront à travailler dans vos scènes master:
- Il va d'abord falloir centrer et snaper sur la grille les assets du topnode ELT Default. Pour cela, selectionner le topnode de chaque asset, le placer
- Une fois vos modifications terminées, vous pourrez sauvegarder votre fichier en vue de le splitter. 
- Si l'ensemble des ELT Default de votre Asset Library ont déjà été publishés en Modeling, vous pourrez directement cliquer sur le bouton **Create Master**, centrer sur la grille vos ELT Default, splitter vos ELT Default, cliquer sur le bouton **UPDATE Assets**, mettre en place les référence dans les topnode d'Assemblies puis splitter ces Assemblies. En vous assurant bien entendu de la validité du Sanity Check avant chaque split (cf Chapitre SPLIT MASTER SCENE)
:::warning
Lorsque vous ferez un **File Save**, assurez vous que le champ **Name** est bien rempli avec le nom **Master**
![](https://i.imgur.com/pSxTHhd.png)
:::

# PRESENTATION DU SHELF MM_AssetLibs : 

### ![](https://i.imgur.com/3M7uwQh.png) MASTER Create
Cet outil doit être utilisé depuis une scène vierge. En cliquant sur ce bouton, vous allez pouvoir builder votre scène Master dont voici la structure : 
:::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*
        - Sub01_Variation_MDL_Top
        - Sub02_Variation_MDL_Top
        - Sub03_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
:::
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.
Le bouton **MASTER Create** réuni les actions **SETS Update**, **ASSETS Update**, **LINK Update** et **COMMON Colors**.

:::danger
Attention : Veillez à bien vider votre **Trash_Grp** avant de réaliser les splits ! (s'il n'est pas vide, il peut faire planter les splits)
:::

### ![](https://i.imgur.com/6bubF1X.png) 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**.


### ![](https://i.imgur.com/qd9K2wS.png) 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**)

### ![](https://i.imgur.com/b8IVaSD.png) 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** sur Shotgun et le compare avec l'attribut *"source"* trouvé sur les transforms. S'il est différent, le script supprimera les transforms dont la source est obsolete afin d'importer la nouvelle version.
- Pour les **Assemblies**, l'outil regarde le chemin de la référence et le compare avec le dernier publish de la task **BridgeModelingPreRig**. Si ces chemins sont différents, il y aura un update de la référence.

### ![](https://i.imgur.com/rsaItpp.png) LINKS Update
Ce script permet de ranger les **ELT Default** directement dans leur set de sélection respectif. 
- Vous remarquerez que seul le contenu se trouvant sous les topnode est rangé dans les sets. 
- Si vous devez ranger manuellement des éléments de votre scène, veillez à ne pas mettre les topnodes dans les sets et à respecter la hiérarchie des assets.

### ![](https://i.imgur.com/PowHZFX.png) 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 ulilisés dans une seule variation de l'Asset Library
- Ces informations de couleurs seront conservées lors du split et donc présentent dans les scènes des assets.
- Attention: l'outil ne permet pas d'identifier si l'un des ELT Default est utilisé dans une autre Asset Library. Il se peut qu'un ELT Default soit identifié comme étant utiliser par une seule des variations de l'Asset Library mais qu'il soit également utilisé dans une autre Asset Library


### ![](https://i.imgur.com/S8cAJmW.png) 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, ces derniers seront colorés en **ROSE** dans l'outliner 
![](https://i.imgur.com/0AmB9NX.png)
:::warning
Les assets créés et modélisés dans la scène de MASTER n'auront pas d'attribut **"source"**. Les nodes colorés en rose risquent de présenter des soucis lors de l'utilisation des outils Master. Ils pourraient ne pas être traités ou supprimés accidentellement.
:::

### ![](https://i.imgur.com/3Y6hfDC.png) BKL Update 
:::warning
TODO: Non fonctionnel suite à l'update permettant l'utilisation d'Assembly d'Asssembly! Le tool n'ayant pas servi jusqu'ici, il ne sera mis à jour que si nécessaire.
:::
:::danger
Les graphistes n'ont pas le droit d'utiliser cet outil.
:::
Permet de mettre à jour les BKL Shotgun sans sortir de votre scène Master. 
- Si vous avez ajouté et/ou supprimé des sets d'ELT Default et/ou d'Assemblies, l'outil vous permettra de mettre à jour la BKL de votre AssetLibrary et/ou de ses Assemblies.
- En cliquant sur ce bouton, si une différence existe entre vos sets et la BKL shotgun, une interface s'ouvrira. Cette fenêtre vous présentera l'ensemble des différences détectées. Vous aurez la possibilité d'accepter ou rejeter ces différences afin de mettre à jour ou non les BKL.
- Attention: l'outil permet la création de nouveau ELT Default et Assemblies sous réserve que leur AssetLibrary respective existe déjà (l'outil ne peut pas créer d'AssetLibrary, uniquement des Assets).

### ![](https://i.imgur.com/FfBAhcI.png) OBJECTS Center
:::warning
TODO: Non conforme au attente
:::
Avant de splitter les ELT Default, il est nécessaire de bien les placer au centre du monde. Cet outil réalise les actions suivantes:
- 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

La majorité des ELT Default devra passer à travers ce script. Si vous ne centrez pas vos objets et qu'une autre AssetLibrary utilise un même subasset, sa position sera dépendante de la position de l'AssetLibrary depuis laquelle il a été splitté.
Pour remettre vos objets en position, vous devrez attendre d'avoir les publish **"BridgeModelingPreRig"** des ELT Default sous les groupes d'Assemblies.
Attention : dans certains cas, nous ne voudrons pas centrer le pivot au centre de l'objet. Par exemple pour une porte, le pivot devra se situer au niveau des gonds. Ces infos vous seront normalement indiquées par Shotgun ou votre supérieur.

### ![](https://i.imgur.com/RUJkZzd.png) CHECKS
En cliquant sur ce  bouton, le **validate AssetLibrary** va se lancer et une fenêtre vous proposant les fix automatique possibles s'ouvrira. Cela revient à faire un validate via le menu Shotgun puis cliquer sur "correct modeling"

### ![](https://i.imgur.com/jzpDwdG.png) OPEN Logs
Ce bouton vous permet d'ouvrir directement le dossier des logs correspondant à votre scène Master.
- Selon les actions que vous réaliserez, les logs seront enregistrés dans différents fichiers.
- Le nom de ces fichiers est relatif à l'action réalisée.
- Il est recommandé d'ouvrir ces Logs depuis Visual Studio Code pour plus de visibilité
![](https://i.imgur.com/Edv63rA.png)
- Une fois le log ouvert avec Visual Code vous pouvez faire une recherche **CTRL F** par mot clef. N'hésitez pas à rechercher les erreurs et les warning pour vous aider à comprendre les dysfonctionnements que vous rencontrez.
![](https://i.imgur.com/sO4FJsW.png)
- Ces logs commencent systématiquement par **[CRUDFILES] START "*Action*"** et se termine par **[CRUDFILES] END EXECUTION OF PLUGIN - "*Action*"**

### ![](https://i.imgur.com/RWhmQzZ.png) INFOS
Vous redirige vers cette page. Si la doc ne peut répondre à une question/problématique particulière, faite remonter l'info pour que la doc soit mise a jour

# SPLIT MASTER SCENE
Une fois que vous pensez avoir terminé votre scène Master, assurez-vous qu'elle réponde aux exigences du pipe en vérifiant que votre scène passe l'ensemble des checks depuis le bouton Checks dans le shelf MM_AssetLib. Si vous passez l'intégralité des checks, vous pouvez splitez votre scène. Vous trouverez les informations relatives au split ici :

[Split Master Scene Tutorial](https://hackmd.io/UFv0lPrXTfWh7_q9Y3pnLg)

# POUR ALLER PLUS LOIN

## Les launchers du shelf MM_AssetLibs

![](https://i.imgur.com/3M7uwQh.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_create_assetLibrary_master.py```
![](https://i.imgur.com/6bubF1X.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_update_assetLibrary_master_all.py```
![](https://i.imgur.com/qd9K2wS.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_update_assetLibrary_master_sets.py```
![](https://i.imgur.com/b8IVaSD.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_update_assetLibrary_master_assets.py```
![](https://i.imgur.com/rsaItpp.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_update_assetLibrary_links_sets.py```
![](https://i.imgur.com/PowHZFX.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_detect_assetLibrary_common.py```
![](https://i.imgur.com/S8cAJmW.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_detect_assetLibrary_orphans.py```
![](https://i.imgur.com/3Y6hfDC.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_update_assetLibrary_bkl.py```
![](https://i.imgur.com/FfBAhcI.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_detect_assetLibrary_center_objects.py```
![](https://i.imgur.com/RUJkZzd.png) ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\launchers\launch_modeling_checker.py```

## Les hooks
Les hooks sont des surcharges des routines du Crudfiles (open_routine.py et create_routine.py). Vous trouverez les informations de surchage, le nom des plugins, les connexions entre plugins et les paramètres par défaut ici:
```C:\Shotgun\tk-config-millimages\env\includes\settings_pirataetcapitano02\tk-multi-crudfiles\default.yml```

### Create Master Scene
Lien : ```C:\Shotgun\tk-framework-millimages\hooks\tk_multi_crudfiles\create_master_scene.py```
Ce plugin est lancé par le launcher caché derrière le bouton **MASTER Create** du shelf MM_AssetLibs.

## Les outils Master dans le Framework

### Update Master Scene
Vous trouverez dans ce script l'ensemble des outils partagés entre les différents plugins Master
Lien : ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\update_assetLibrary_master.py```
**TODO** : 
- Utiliser les outils Shotgun pour mettre à jour les réf, aujourd'hui fait via le ref editor de Maya
- Intégrer l'autoplacement utilisé par le [**tool de création d'update**](https://hackmd.io/qVvpQWXMRwas9C78kbrE3g?edit):

### Update Master Scene BKL
Lien : ```C:\Shotgun\tk-framework-millimages\python\millimages\maya\tools\PirataEtCapitano\common\update_assetLibrary_master_bkl.py```
Outil permettant la mise à jour de BKL depuis les scènes Master en ce basant sur les différences entre les sets de sélection dans Mastersets et la BKL Shotgun. Non fonctionnel suite à la mise à jour permettant la prise en compte d'Assembly d'Assembly.

