Introduction inutile donc nécessaire

Imaginons que les scènes des départements de votre studio soient sous Windows.

Si votre lecteur réseau est P:/ (fichtre, que c’est original), les chemins auront la forme :

P:/usbolossmurica/layout/layout_v142.mb
P:/usbolossmurica/anim/anim_v032_realalacon.mb
P:/usbolossmurica/rendu/rendu_v142_valid_retake_josef_pala_aujourdui (copy 1).mb

Des fichiers de prod quoi ! :seSentCon:

Comme vous êtes un vrai bonhomme·e, vous êtes sous Linux, mais il arrive, malheureusement, que vous ayez à lever la tête de votre code, parfait et sublime est-il nécessaire de le préciser, dont vous avez la bonté de faire bénéficier celui qui vous emploi, pour mettre votre nez dans cette matière fécale si particulière à notre industrie que sont les scènes de production.

Cela faisant vous devez, n’ayons pas peur des mots, ouvrir des scènes de graphistes.

Aussi surprenant que cela puisse paraître, Maya est un logiciel fait par des gens comme vous moi, des gens humbles, des petits cœurs qui souffrent quand ils doivent ouvrir des scènes venant de Windows.

Alors je sais, certains aiment Windows, je ne juge pas ; après tout, il m’arrive aussi d’aller au McDonald (En revanche, il tombe sous le sens que les pines-d’huîtres sous Mac peuvent crever).

Fin de l’aparté. :IFuckTheWorld:

Vous pouvez lire à partir d’ici

Je disais donc : Maya propose une commande sur mesure ; dirmap.

Le principe est de rediriger les répertoires de votre scène Maya vers d’autres répertoires.

Si votre point de montage de production sous Linux est /prod/, faites ceci avant d’ouvrir vos scènes :

import maya.cmds as mc
mc.dirmap(enable=True)
mc.dirmap(mapDirectory=("P:/", "/prod/"))

Comme vous le devinez, ceci va transformer P:/ par /prod/ dans tous les chemins trouvés par Maya. C’est comme un seurchaindriplèsse automatique. :aupoil:

Par défaut, dirmap n’est pas activé, c’est la raison de la présence de l’appel :

mc.dirmap(enable=True)

Cette activation n’est pas conservée entre les sessions. Il faut donc l’activer et le configurer à chaque fois que vous en aurez besoin (e.g. En passant par userSetup.[mel/py]).

Dès lors, vous pouvez ouvrir un fichier avec des références (scène, texture…) au format Windows et vous remarquerez que tout fonctionne de façon transparente. :banaeyouhou:

Vous pouvez listez les mappings actuels en utilisant l’argument getAllMappings :

mc.dirmap(getAllMappings=True)
# Result: [u'P:', u'/prod'] # 

Si vos scripts ont besoin de manipuler des chemins en prenant en compte le dirmap vous pouvez utiliser l’argument convertDirectory :

mc.dirmap(convertDirectory="P:/machin/bidule")
# Result: /prod/machin/bidule #

Vous pouvez obtenir le mapping défini depuis son « point d’entrée » grâce à getMappedDirectory :

mc.dirmap(getMappedDirectory="P:")
# Result: /prod # 

Notez que je n’ai pas mis le "/" à la fin. J’ai utilisé la valeur retournée par l’argument getAllMappings expliqué plus haut. :zinzin:

Pour supprimer un mapping, on utilise l’argument unmapDirectory :

mc.dirmap(unmapDirectory="P:")

Arrive ici, vous ne devriez plus avoir de point de montage. :petrus:

Vous pouvez aussi monter plusieurs points (e.g. Un pour les Alembic, un pour les textures, un pour…) :

mc.dirmap(mapDirectory=("P:/toto/texture", "/un/point/de/montage"))
mc.dirmap(mapDirectory=("P:/toto/abc", "/autre/point/de/montage"))

Ce qui nous donne :

mc.dirmap(convertDirectory="P:/toto/texture/foo/bar.tex")
# Result: /un/point/de/montage/foo/bar.tex # 
mc.dirmap(convertDirectory="P:/toto/abc/anim/foo.abc")
# Result: /autre/point/de/montage/anim/foo.abc # 

Très pratique pour monter une ferme de calcul ou travailler avec un autre studio. :jdicajdirien:

Je pense que vous avez compris le principe. :mayaProf:

J’espère que cette astuce vous aura redonné le goût de vivre. Je vous invite à retirer cette corde, descendre de votre chaise, composer le 09 72 39 40 50 puis commencez à utiliser cette commande (Si vous êtes descendu avant de retirer la corde, composez directement le 15).