[:arrow_left:](/WQum2tYYSXGaBjnU2wMxzQ) To Pirata Dashboard
[:arrow_left:](/anfuuyVnRvyVcwMSOGla-A?both) To set dress dashboard
# PROCESS SET DRESS LEVEL
###### tags:`Set Dress` `Notice` `Level`
## Introduction
- Sur le projet Pirata, les Sets/Décors sont réalisés dans une entité Shotgun appelée "***Levels***". Ils se distinguent ainsi de l'entité "***Assets***" regroupant les "*ELTS*" et "*Assemblies*".
- La **nomenclature** des *Levels* suivra la même logique que les *Assets* : respect du ***CamelCase*** dans le nom, suivi d'un **padding de 2** + un **Variation Name**.
--> ex : `BigOceanSet01_Classic`
--> ex : `CoucisIslandSet01_Party`
- Les *Assets* utilisés dans les *Levels* sont linkés dans la colonne "Assets" de Shotgun. Ils sont importés en **reférence**, via un bridge appelé "**OutBuildPackage**".
:::info
:blue_book: **OutBuildPackage**
Fichier au format "*.ma*" regroupant tous les *Bridges* (ou "OutBuilds") d'un Asset, et permettant de switcher selon les besoins de la scène entre les proxies *Render*, *AnimHigh*, *AnimLow* et *Cache*.
Les "OutBuildPackages" sont désignés plus simplement par le sigle "OBP" et suivront tous la nomenclature:
---> "*OutBuildPackage001:NomAsset01_VariationName_BLD_Top*"
:::
## Créer l'entrée Shotgun d'un *Level*
(pour le Sup de département ou la prod)
- Cliquer sur l'onglet "Add Level" dans l'entité Level:

- Remplir les champs suivants :
- LEVEL NAME: à déterminer avec l'assistant real
- DESCRIPTION : éventuelles informations de BKL
- TASK TEMPLATE : toujours "3D LEVEL - PLACEMENT"
- TYPE : SetDress
- EPISODE : à indiquer si vous avez cette info

- Après avoir cliqué sur **Create Level**, il faudra venir faire un clic droit sur l'entrée SG ainsi générée pour accéder à l'action "Create Folders". Cette action aura pour effet de créer les dossiers du *Level* dans le FileSystem du projet.
## Générer une scène de *Level*
- Ouvrir votre scène Maya via Shotgun -> File Open:
Si le *Level* vous a déjà été assigné par votre superviseur, il apparaîtra dans l'onglet "**My Tasks**".
Sinon cliquez sur "**Levels**" -> nom du Décor -> Staging -> Placement -> NEW FILE

- Une fois votre scène générée, cliquez sur le bouton "Create Master" présent dans la barre de Shelfs "MM-Levels" pour builder la scène de *Level*.

:::success
Note : L'outil "Create Level" va aller chercher les différents *assets* répertoriés dans le champ "**Assets**" du décor dans l'entité Shotgun **LEVELS**.
Il importe en référence tous les assets ayant un "**OutBuildPackage**" existant.
:::
## Réalisation du *Set Dress*
**1)** **CHECK GLOBAL DE LA SCENE**:
- Une fois la scène buildée, commencez par vérifier que tous les assets se soient bien loadés en référence avec la bonne nomenclature.
- Comparer avec le casting SG pour voir s'il vous manque quelque chose.
:::info
Note : Si certains assets ne se sont pas importés, il peut y avoir plusieurs explications à cela:
- L'**OutBuildPackage** n'a pas été sorti : Voir avec votre superviseur pour faire la demande au rig afin que l'OPB soit relancé sur la farm.
- L'**Asset** n'a pas encore été traité dans tous les départements : il est peut-être toujours en cours de traitement au MDL ou TXT...
Dans tous les cas, toujours renseigner ces détails dans le champ "Description" du Level dans Shotgun pour conserver l'info.
:::
**2)** **IMPORT DE LA REFERENCE VISUELLE:**
- Si le décor que vous vous apprétez à construire est une réut de la saison 1, il est probable qu'une ancienne scène soit présente dans le filesystem. Vous pourrez donc charger cette ancienne version du décor, en guise de référence visuelle.
Ces anciennes scènes ont été backup dans:
*L:\Millimages\PirataEtCapitano\PirataEtCapitano02\ProjectFiles\assets\**NomDuDécor01**\STG\work\maya
- Importez cette scène en passant par File> Create Reference > Options
Cochez la 2e option "Use selected namespace..." et entrez "**RefTrash**". La ref va ainsi s'importer avec ce nom comme TopNode, ce qui facilitera sa suppression par la suite.

**3) DUPLIQUER LES REFS:**
- Actuellement, le "*Create Level*" n'importera qu'une seule fois chaque référence, le principe d'Instance n'étant actuellement pas fonctionnel.
- Pour multiplier le nombre d'assets au nb souhaité, il sera pour l'instant nécessaire de faire un "**Duplicate ref**" via le *Reference Editor*.
**4) AJOUTER DES REFS VIA LE LOADER:**
- Il arrivera souvent qu'en réalisant le SetDress, vous vous rendiez compte que certains assets manquent à l'appel et ce, même dans le casting SG.
Si tel est le cas, commencez par repérer de quel asset il s'agit en s'aidant de SG ou en demandant à votre Sup. Une fois validé, vous pouvez ajouter cet asset à la liste de la colonne Assets du Level sur lequel vous travaillez.

- Ensuite, vous pouvez retourner dans votre scène maya et importer ce nouvel asset via **Shotgun > Load**
--> Dans le champ "**Assets**" seuls les assets castés dans SG pour le décor sur lequel vous êtes en train de travailler seront visibles.
--> Dans "**All Assets**", en revanche, il sera possible d'accéder à l'intégralité des assets de la base de données.
- Pour importer l'asset, il suffira de double cliquer sur l'OutbuilPackage proposé dans la fenêtre de droite:

**5) PLACEMENT DES REFS:**
- Maintenant que vous avez tout ce qu'il vous faut, vous pouvez passer au placement de vos refs dans la scène. Vous pouvez pour cela utiliser les **rigs worlds** de chaque asset pour les scale/rotate/translate.
- Ne **surtout pas placer de** **clés** sur les contrôleurs !!
- Pour se coller plus facilement à la ref visuelle, il est possible d'utiliser le "**Match Transformations**":
- Sélectionner l'enfant, puis le parent
- Modify > Match Transformations > Match All Transforms
Le contrôleur de la nouvelle ref s'est snappé sur celui de l'ancienne ref.

**6) Sauvegarde de la scène de Level:**
- Une fois votre placement terminé, vous pouvez sauver votre scène via Shotgun > File Save
- Laisser le champs "Name" vide + laisser en .Ma
- Cliquer sur "Save"
:::info
NOTE: Les scènes de Levels viendront se sauver dans la Task "**Placement**" de la Step **Staging** dans Shotgun.
A l'heure actuelle, il existe une seconde Task, appelée "Shading" qui n'est pas encore exploitée mais devrait avoir pour objectif de checker les texturings du Level.

:::
## Conformation du *Level*
Après avoir sauvé votre scène de LVL, il va falloir conformer la scène afin que celle ci puisse être utilisée dans des shots.
L'idée sera ici de conformer la hierarchie et les namespaces des références de la scène.
- Pour cela, utilisez le tool "**Conform Level Scene**" présent dans la Shelf Barre des Levels. Celui-ci va non seulement hierarchiser correctement la scène (groupes et topnodes), mais aussi supprimer le RefTrash et renommer les namespaces de chaque OBP.

Après utilisation du tool, on obtient donc ceci:

- (FACULTATIF) Si votre scène a été créée il y a un certain temps, il est préférable de s'assurer que tous les OBP de la scène soient à jour avant de publier votre LVL. Pour cela, passez par l'outil "**Update Level Assets**" qui va updater chaque OBP tout en conservant les refs edits.

- Après avoir conformé et updaté la scène, allez dans Shotgun > Publish pour accéder à cette fenêtre:

Commencez par prendre une capture d'écran du Level qui servira de **Thumbnail** au publish.
Cliquez ensuite sur "**Validate**" pour lancer le SanityCheck.
Si celui-ci indique "All checks passed" en bas de la fenêtre, c'est que la scène peut être publishée.
Cliquez alors sur le bouton "**Publish**"
Si certains checks ne sont pas valides (message en rouge), en parler avec votre sup pour fixer le problème.
:::info
Remarque: Si le Validate vous indique par exemple qu'une ref non présente dans la scène n'est pas loadée, il peut s'agir d'une "ref fantôme", c'est à dire d'un asset qui aurait été loadé ultérieurement mais que vous avez finalement deloadé car inutile, et qui aurait tout de meme laissé des traces. Dans ce genre de cas, voir le tool "**Remove Ghost References**" à la fin de ce doc dans "OUTILS A VOTRE DISPOSITION"
:::
## Check du Bridge de Level:
Après avoir publishé votre LEVEL, vous pouvez générer un bridge, qui sera LA version utilisable par les autres departements à l'avenir. Pour ce faire, passez le statut de la Task "**BridgeStaging**" de la step Build en "**Approved**".
Cette action va automatiquement envoyer le job de rendu sur la farm pour créer un fichier "BridgeStaging", qui va lui-même lancer un **OutbuilPackage** de votre Level.
Ces bridges sont alors trouvables ici:

Il sera ensuite important d'ouvrir le bridge afin de s'assurer que tout est OK. Pour cela, il vous faudra utiliser le tool "**Switch Proxy**", permettant de faire basculer chaque ref d'une version à l'autre (animhigh, render etc)
Deux points sont importants à vérifier:
- Le **Placement** des refs: doit être identique d'une version à l'autre. Si ce n'est pas le cas, prévenir le département rigging pour ressortir les OBP
- Le **Texturing** des refs: Après avoir basculé toutes les refs en "render", vous pouvez faire un test rendu via la "Redshift render view" pour voir si tous les assets sont texturés: Si un asset sort en gris, prévenir le département Shading/Texturing
:::warning
WARNING: Les **BridgesStaging** et **OutbuildPackages** des Levels ont l'avantage de ne pas avoir de noeuds Redshift à l'intérieur. Ces noeuds peuvent revenir par un simple ctrl+S, donc: ATTENTION à ne pas faire de sauvegarde sur les bridges!! S'il y a besoin de modifier quoi que ce soit, retourner dans la scène PLacement, et ressortir un bridge.
:::
## Outils à votre disposition

- "**Update Level Assets**":
- Il permet de mettre à jour tout en conservant les *edits* de référence. Autrement dit, les coordonnées de placement de l'asset seront conservées, permettant à celui-ci de ne pas retourner au centre du monde après mise à jour.
- Il permet également de garder le bon proxy chargé après mise à jour.
- :spiral_note_pad: Par exemple : si l'asset était chargé en `"AnimHigh"`, il restera dans cette état après mise à jour, évitant ainsi des pertes de placement sur les rig additionnels présents dans certaines versions.
- Cet outil permet d'éviter l'utilisation "Scene Breakdown" qui ne fonctionne pas avec les *Levels*.
- "**Replace Asset Variations**":
- Il prend en compte les informations de Shotgun pour savoir quels assets doivent être présents et dans quelle quantité.
- Il remplace des assets placés dans la scène, par leur variation de *shading* indiquée dans Shotgun. L'outil prend alors comme référence le *field* `"instance count"` pour savoir combien de références doivent être remplacées.
- "**Conform Level Scene**":
- Cf. explication ci-dessus.
- Permet de conformer la scène de *Level* avant publish.
- "**Switch Proxy**":
- Il permet de *switcher* de *proxy* (cache, animhigh, animlow, render) pour un ou plusieurs assets.
- Il permet aussi de savoir si les assets présents dans la scène sont à jour.

- "**Fix Namespaces**" :
- Il permet de conformer les *namespaces* qui ne sont pas bien attribués.
- Les *namespaces* attribués sur les *reference nodes* sont déplacés sur le fichier de référence (*Reference Editor*) et permet d'éviter d'engendrer d'autres problèmes.
- "**Remove Ghost References**" :
- Il permet de supprimer les *proxy managers* qui n'ont aucun *proxy* de chargé. Il supprime également ces *proxies* qui ne sont pas chargés.
- Ce cas peut apparaitre lorsque l'utilisateur pense supprimer une référence, mais ne supprime en réalité qu'un des *proxy*.
- :spiral_note_pad: Par exemple : l'utilisateur veut supprimer la référence de l'asset `Ark01_Classic` en passant par le *Reference Editor* en en cliquant sur *Remove Reference*. Ce qu'il ne voit pas, c'est qu'il vient seulement de supprimer `Ark01_Classic_BLD_TopOutBuildCache` en laissant dans la scène `Ark01_Classic_BLD_TopOutBuildAnimLow`, `Ark01_Classic_BLD_TopOutBuildHigh` et `Ark01_Classic_BLD_TopOutBuildRender`.
- Un outil est à prévoir pour réaliser cette suppression proprement.
- "**Shotgun Scene Breakdown**":
- Informe sur la version de chaque asset du Level. En vert s'il est en last version, en rouge si ce n'est pas le cas.
- :warning: Ne pas utiliser la fonctionnalité de mise à jour de cet outil. En effet, vous allez perdre les *edits* de référence suite à la mise à jour. Il faut utiliser à la place l'outil "**Update Level Assets**" (cf. plus haut). :warning:
