Alors? "cey bi1 le piton"?

Dans un premier temps, je n'ai fait que quelques scripts pour "parser" les références externes des fichiers .ma (ascii). Il s'agissait, pour 95% du code, de manipulations de strings. Je n'utilisai donc aucune commande spécifique à Maya.
J'ai ensuite décidé de re-coder en Python un petit script MEL de ma toolbox et le résultat n'est pas glorieux...
En effet, à l'utilisation (dans Maya), je trouve la syntaxe du Python relativement lourdingue comparé au MEL (qui, pour des opérations de base, est très bien pensé). En Python, il faut appeler le module (normal en fait...):

import maya.cmds

Pour créer une polysphere Il faudra donc exécuter ça:

maya.cmds.polySphere(sx=10, sy=15, r=20)

On peut toujours faire un abréviation comme ça:

import maya.cmds as cmd

Et la commande devient:

cmds.polySphere(sx=10, sy=15, r=20)

Certains me diront que rien ne les choques et que "c'est du Python". Et bien oui, ça en est. Mais, quand on écrit un script MEL, on utilise une quantité énorme de commandes et la redondance est un peu dérangeante. On peut toujours faire un import dans le "top-level-namespace":

from maya.cmds import *

Mais c'est une méthode de porc dangereuse et qu'il n'est pas très subtile d'utiliser.
Toujours est-il que si il n'y avais que ça ça ne serait pas encore trop gênant (tout les script python fonctionnant de la sorte). Mais le passage des arguments est lui aussi bien moins rapide à la frappe que le MEL.

Exemple MEL (avec abréviations):

polySphere -sx 10 -sy 15 -r 20;

Exemple Python (toujours avec abréviations):

cmds.polySphere(sx=10, sy=15, r=20)

En clavier azerty les égales et les virgules ne sont pas faciles à atteindre et rendent la frappe moins fluide, de même qu'il est facile de passer à la ligne pour éviter d'avoir des dizaines d'argument à la suite en MEL, c'est impossible en Python. Je n'ai jamais essayé de coder une interface Maya en Python mais rien que d'y penser ça me fait peur.

Cela dis, une personne maîtrisant le Python et n'ayant aucune (ou peux) de connaissance en MEL préférera utiliser la syntaxe de sont langage de prédilection. En ce qui me concerne mon "background" de "mèleu" m'incite à préférer la voie la plus courte. :)

Python solo, c'est pas du gateau!

Arf c'est bon ça! :D

Donc oui, la syntaxe n'est pas l'attrait principal du Python (En général si... Mais là... Non...), au contraire. Alors qu'est ce qui fait que c'est tellement génial?

Et bien tout le reste! En effet, la manipulation de string (la première chose que j'ai commencé à faire) est monstrueuse! Le module de math est aussi très complet. Ce n'est pas pour rien qu'Autodesk à choisir de ne pas implémenté au Python les commandes MEL relatives au string, au maths et quelques autres qui deviennent inutiles au vues des possibilités offertes par les modules intégrés.

Ainsi, utiliser le Python "pour faire du MEL" est ridicule (m'est d'avis) mais l'utiliser en tant "qu'environnement d'outils" se révèle beaucoup plus judicieux. La vraix question deviens alors: "Ai-je besoin des outils (modules) que m'offre le Python?".

Si la réponse est non, alors écrivez votre script en MEL, vous gagnerez du temps (encore faut il savoir manipuler les deux langages pour avoir le choix),

Next?

Quoi d'autre, le Python nous cache t-il donc?

Pleins de bonnes choses croyez moi. Je n'ai pas encore pu tout voir mais certaines possibilités ont l'aire plus qu'intéressante. On peut utiliser les commandes de l'API Maya pour créer ses propres nodes (j'en parlerai dans un autre post). Il semblerai également qu'il soit possible (du coups) d'utiliser l'API Maya à l'extérieur de Maya (afin de créer des sortes de script standalone).

J'ai tenté d'utiliser le module sqlite3 (qui permet de faire de la gestion de base de donnée) mais en vain (il doit y avoir un truc). Imaginez les possibilités: Avoir accès à une BDD directement depuis Maya (Pour avoir par exemple, les bornes de votre scène ou toutes les informations du plan sur lequel vous travaillez)...

Bref, j'ai encore beaucoup de choses à voir de ce coté là. =)

EDIT 2011-11-07: Je viens de découvrir qu'il existe un livre pour apprendre a scripter en Python dans Maya: Maya Python for Games and Film: A Complete Reference for the Maya Python Api. Dispo le 27 Décembre 2011, soit dans quelques jours. :)