mardi 25 octobre 2016

Marilla api update

Petites mises à jour du module gueguetags:
https://github.com/col-one/marilla



Désormais il est possible d'ajouter aux Guerilla tags par défaut les parents des meshs sélectionnés et de choisir la profondeur.
GuegueTags prend comme argument par défaut grp=0, sa valeur précise la profondeur.
-1 infinit
0 pas de parents
1 premier parent
2 premier et second parents
3 premier, second et troisième parent
....

vendredi 21 octobre 2016

Marilla : Alembic Tags Workflow pour Maya / Guerilla Render





Il existe déjà une passerelle maya / guérilla développée par les messieurs de Guerilla, elle fonctionne très bien mais elle est très peu flexible et permet pas d'avoir un workflow de production d'Anim. Heureusement l'alembic est là et le système de référence de guérilla fonctionne très bien.


En utilisant l'outil Marilla nous allons pouvoir mettre en place un workflow de référence entre Maya et Guérilla. Comme celui-là :


   

    L'utilisation des tags a beaucoup d'avantages, cela permet de ne plus être dependant d'objets, de meshs, de fichiers ... mais simplement d'un tag. Comme dans le graph ci-dessus la même série de tags va être utiliser pour shader les alembic du modeling pour le lookdev et les alembics de l'Anim pour le rendu final. Nous utilisons plus des objects mais des etiquettes. Là où dans un workflow classique il aurait fallu réassigner les matériaux aux alembics d'Anim. Un des autres avantages c'est l'utilisation de tags transverses, comme par exemple faire des tags "peaux", "métal", "mate" ou "shiny" ...



 Dans guérilla les préfixes des références peuvent être une manière de donner un espace à nos tags par exemple:


Objet1.abc:

    mesh:
        tags:
            -tete
            -corps
            -peau
            -pied

Objet2.abc:

    mesh:
        tags:
            -tete
            -corps
            -peau
            -pied



    Lorsque l'on importe une référence alembic dans guérilla il propose de le préfixer, par défaut par le nom de du fichier, ici nos nodes auront comme nom Objet1: mesh et Objet2: mesh.

Si on importe des Renders Graph différents mais qu'ils possèdent des tags de mêmes noms il va y avoir conflit, c'est là qu'interviennent les préfixes. 
Dans les proprietes du Render Graph il y a un parametre qui s'appel 'apply on': 'tags' et dans le champs text en dessous il faut preciser le prefix 'Object1:' pour le Render Graph de l'objet 1 et 'Object2:' pour le Render Graph de l'object 2. Ainsi les tags du même nom s'appliqueront bien dans leurs espaces respectifs.
préfixe, attention au :
On peut aussi préciser des tags à la place d'un préfixe, le Render Graph s'appliquera que sur les objets qui possèdent le tag en commun. ex:

Objet1.abc:
    mesh:
        tags:
            -toto
            -tete
            -corps
            -peau
            -pied

Objet2.abc:
    mesh:
        tags:
            -tata
            -tete
            -corps
            -peau
            -pied

Ici pour le Render Graph Objet1 il faudra préciser "Toto" et pour celui d'Objet2 il faudra préciser "Tata"




tag

Encore un autre avantage des tags c'est qu'on peut les combiner et faire des opérations boolean dessus. Un objet qui possède ce genre de combinaison :





    Nous remarquons les signes plus et moins. Dans ce cas l'objet sera trouvé par tous les tags "foot, Head, Tata, Toto" sauf "novisible".
Très utiles pour les retake et tweak de fin de RenderGraph.



Voilà je vous ai presente un workflow et survolle l'utilisation des tags.
Maintenant nous allons voir l'outil Marilla qui permettra d'optimiser l'utilisation des tags de Maya vers guérilla.





Install:

Telecharger le repo Marilla sur github:
https://github.com/col-one/marilla

Placer le dossier marilla dans un répertorie qui sera source par Maya, PYTHONPATH, MAYA_SCRIPTS_PATH...


Dans le dossier marilla nous pouvons trouver un fichier userSetup.py il faut ajouter les lignes de codes presentent dedans a votre propre fichier userSetup.py si nous en avons pas nous pouvons directement copier le userSetup.py dans le bon dossier, par default cela sera:
  • Windows: :\Documents and Settings\\My Documents\maya\\scripts
  • Mac OS X: ~/Library/Preferences/Autodesk/maya//scripts.
  • Linux: ~/maya//scripts.

Le userSetup.py permet d’exécuter du code lors de l'ouverture de maya, ici ca permettra d'ajouter un menu 'marilla' a la main window.

Si tout va bien nous devrions avoir ca:



    Du cote Guerilla, il va falloir copier un fichier lua dans un dossier UserPlugins. Dans le dossier marilla / guerilla nous copions le fichier openPort.lua et le collons dans un dossier UserPlugins. Si nous n'avons pas définit de UserPlugins dans le fichier guerilla.conf nous pouvons le coller dans le dossier plugins de l'install de Guerilla.

    Toutes les fonctionnalités se trouve dans maya. 

Auto Tags, nous sélectionnons l'ensemble de nos géométries (mesh) ou nos cameras et l'exécutons, cela va taguer les transform de nos mesh avec son nom et son top parent. 

Remove All Tags, permet de supprimer tout les tags d'une sélection de mesh.

Add / Remove Tags, permet de venir ajouter des tags custom, comme on a vu plus haut les fameux tags transverses. Il faut rentrer le nom du tag dans le champs text et faire Add ou Remove. Il y a la possibilité d'ajouter ou supprimer plusieurs tags a la fois en séparant les noms par une simple virgule, 'metal,#cccccc,blured...'

Export, permet d'exporter la sélection en alembic avec les tags Guerilla et un ensemble de presets :
    -ogawa
    -world
    -uvs
    -faces groups
Attention pour avoir un bon export il faut sélectionner que des transforms si ils sont dans un group il faudra sélectionner le group. 
Dans le popup nous préciserons nos paramètres d'export. Range Mode, PreRoll... 
Et si nous checkons 'Export to guerilla' cela enverra directement notre alembic dans un Guerilla préalablement ouvert. 


Et pour finir nous avons a disposition une petite API pour les gens qui souhaite ajouter ces fonctionnalités a leur propres pipe / outils ... l'help est dispo en depuis le menu marilla dans maya.





La partie Guerilla est très succincte et mériterai une amélioration comme pouvoir proposer l'export dans un nouveau fichier Guerilla, ou encore pouvoir remplacer la référence si elle existe déjà dans la scène Guerilla...