Fonctionnement des références externes de Maya
Par Narann le mardi, 6 octobre 2009, 21:13 - Infographie 3D - Boulot - Lien permanent
J'écris ce billet en vu d'un second sur le nouveau système d'Asset de Maya. :marioCours: En fait, je voulais faire un rappel sur le fonctionnement des références externes dans mon billet des Assets mais ce petit rappel c'est au fur et à mesure transformé en vrai cours et commençait à prendre beaucoup de place (dotclear, c'est fait pour faire des billet de blog, pas des tutos donc ça devenait assez "lourd" à gérer... :casseTeteMur: ).
Voici donc une petite explication sur le... fonctionnement des références externes de Maya! (Wouh! Wouh! Wouh!!) :laClasse:
Comprenez aussi que je n'ai aucune idée de comment les références externes sont géré dans les autres softs 3d.
Je trouve la gestion des références externes de Maya assez clair, car elles permettent, de par leur fonctionnement (vous allez voir), une certaine latitude qu'il me semble difficile d'avoir avec d'autres softs (l'effet "toolbox").
Cela dis je suis très intéressé (justement parce que je ne vois pas comment il pourrait en être mieux et autrement) par la gestion des ref externes sur les logiciels concurrent.
Je vous invite donc, si vous utilisez un autre logiciel, à laisser un commentaire qui m'expliquerai les différences par rapport à ce que je vais énoncer, merci d'avance! ;)
Le Reference Editor
C'est lui qui nous permet de gérer les références externes de nos scènes:
Le Reference Node
Quand vous importez une scène en référence externe dans Maya, celui ci "import la scène" (Les nodes sont donc "lockés" et obtienne le statut de "node référencé". Les connections restent cependant modifiables et cassables à volonté...). Maya créé également un node de type "reference" (qui se fini souvent par RN):
Quand votre référence est désactivé, les nodes de votre scène qui se retrouve "orphelin" (les nodes de courbe d'animation par exemple) s'y connecte:
Ce node est très important dans la gestion de references (il est d'ailleurs locké). Il contiendra une liste de toute les modifications effectué sur les attributs de vos objets en référence externe. Cette liste est appelé l'edit list et est accessible via le Reference Editor:
Petit Re-Rappel
Dans Maya, il y a deux façon de changer les valeurs des attributs:
- Soit en les modifiant directement (à la mains).
- Soit en les connectant à d'autres nodes.
Exemple concret
Quand vous importez un objet en référence externe et que vous posez une clef, Maya créé le node de clef d'animation (de type animCurveTL) et le connecte à l'attribut sur lequel vous avez posé la clef. Nous avons donc la représentation suivante:
Et votre edit list ressemblera à ça:
Vous sauvegardez votre scène, mais que ce passe t'il quand vous la réouvrez?
- La première scène est ouverte, tout les nodes qu'elle contient sont chargés (sauf bien sûr ceux en ref).
- Ensuite la scène en ref est importé.
- Puis pour finir, l'edit list est appliqué pour refaire les connections.
connectAttr "salle_des_mirroirs:pPlane1_translateX.output" "|salle_des_mirroirs:pPlane1.translateX"
Ce petit exemple vous aidera, je l'espère à mieux comprendre le fonctionnement de base des references externes (et vous montrera peut être aussi qu'il n'y a rien de magique comme j'ai souvent pu l'entendre).
Passons maintenant à la suite!
Utilisation avancé des edits lists
Si le fonctionnement des references externes est assez clair et relativement transparant (il pourrait l'être encore plus), sachez qu'il peut se révéler puissant combiné à ses deux commandes MEL:
referenceQuery referenceEdits
Par exemple:
referenceQuery -editStrings blogAssetRN
Permet de récupérer en MEL un array contenant chaque ligne de l'edit list.
On peut donc stocker ses edit list ce qui peut être pratique dans certains cas très précis de débug de scène.
Il est tout à fait possible et envisageable (ça m'a sauvé plus d'une fois):
- De sauvegarder le contenu de l'edit list dans un fichier texte (ce ne sont, je le rappel que des commandes MEL setAttr disconnectAttr etc...)
- De vider complètement l'edit list (votre perso redevient comme à son premier import en ref externe, neutre au milieu de la scène)
- De modifier le contenu du fichier texte à la main (à coup de search and replace)
- Puis réappliquer son contenu (c'est du MEL) à la scène, ce qui réappliquera exactement comme si ces commandes avait été directement dans l'edit list.
- A la fin de cette manip, un petit tour dans votre edit list et vous verrez que tout c'est bien appliqué sur votre référence.
Avant les Assets, on lockait et masquait les attributs pour éviter que des erreurs soit faite durant l'utilisation des setups de perso. Mais cette disposition était lourde car:
- D'une part le "setupeur" devait délocker et/ou réafficher les attributs lorsqu'il intervenait sur la scène.
- Puis d'autre part car il laissait un coefficient d'erreur humaine trop important (vu le nombre d'attribut).
Une des solutions était que la génération des blasts de validation soit précédé d'un script qui "clean" l'edit list de tout ce que l'animateur n'a pas été supposé modifier. Si l'animateur avait un problème sur son animation à la suite de ce clean c'est qu'il y avait des mauvaises connections quelques part.
On pouvait faire plus simple en faisant un script qui ne faisait qu'afficher les attributs qui ne devaient pas être modifié et qui l'ont été. C'est moins "direct-dans-ta-face-que-jte-pourri-ton-anim".
Le mieux restant d'après moi un message: "Votre scène vas faire un playblast foireux, voulez vous continuer?". En général ça fait tilt! :hehe:
Une fois de plus, ça dépend de la taille de l'équipe. Plus y à de monde, plus on à tout intérêt à être carré.
On peut voir plus loin et carrément créer un gestionnaire de référence "maison" qui, si l'infrastructure du projet est "standardisé" peut se révéler très puissant! (Et éviter les erreurs plus haut) :youplaBoum:
Bref, vous l'aurez compris, ces deux commandes sont LES outils de debug et création de référence externe! Si vous comptez entamer une prod avec une gestion qui peut s'avérer complexe des références externe vous serriez bien avisé d'apprendre à vous en servir pour éviter les gros problèmes. :redface:
En espérant que ce petit "résumé" vous aura aidé à comprendre un peu le système de référence de Maya.
Si vous avez des questions ou des suggestions, n'hésitez pas à laisser un commentaire. Le sujet étant très vaste, suivant vos remarques je pourrai ajouter ou approfondir quelques points.
A bientôt!
Dorian
Commentaires
Salut Dorian,
Merci pour ce petit topo sur le système de référence de Maya
perso je connaissais vaguement et avec des explications j'y vois un peu plus claire.
P.S: si jamais tu fais des billets sur le rendu ( pass, mental ray...) ou le compo ca m'intéresse
P.S 2: j'attends toujours ta scène du pendule
salut dorian
sympa comme tout ce petit topo
a+
tib
Merci. :sourit: