- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette partie on va voir comment automatiser la création d'une scène par défaut avec quelqueslignes de Python que l'on aura converties à partir des manipulations que l'on va faire dans leviewport. Donc je vais commencer par créer un cube, on va ensuite scaler ce cube donc je vais
00:00:14 :appuyer sur R, faire un scale, on va essayer de faire un scale à peu près de 5 ou 10 donc làon est à 8 donc après bien entendu dans le code on pourra modifier ces valeurs. Je vais ensuite le
00:00:24 :déplacer donc on va essayer en fait de le déplacer sur la base de la grille donc là encore je lefais à peu près à l'oeil et on utilisera d'autres valeurs à l'intérieur du script mais pour l'instantce qu'on veut c'est juste avoir l'output des différentes commandes que l'on effectue. Je
00:00:38 :vais ensuite créer un plane donc je vais faire un polyplane ici, on va faire un scale puisque pourl'instant il n'est pas très grand donc je rappuie sur R, je fais un scale à peu près la taille dela grille donc là c'est 23.8 donc on fera un scale de 24 et on aimerait bien également enlever les
00:00:53 :subdivisions parce que là on a 10 subdivisions donc pour ça je vais aller dans le attribute editor etdans le polyplane ici on va changer les subdivisions donc on va mettre 1 en width et 1 en height et làvous voyez qu'on a maintenant toutes les commandes qu'on peut utiliser pour recréer cette scène
00:01:09 :avec Python. Donc je vais prendre tout ça, je vais le mettre directement avec un copier-coller ici eton va convertir les lignes une à une. On va enlever les results donc ça en fait le result c'est le
00:01:19 :résultat de certaines actions que vous faites par exemple quand on crée un polycube il va nousretourner le nom du cube pareil avec le polyplane donc ça vous pouvez les enlever on n'en a pasbesoin c'est juste pour de l'affichage pour nous indiquer en fait le nom des objets qu'on a créé
00:01:31 :et on va convertir tout ça. Donc comme je vous disais il y a beaucoup de choses par défaut qu'onpeut enlever. Déjà le select je n'en ai pas besoin là je ne sais pas d'où il vient mais je devais
00:01:40 :avoir peut-être un cube au préalable dans ma scène donc je n'en ai pas besoin. Le select c'estvraiment quand vous sélectionnez des objets vous voyez quand je sélectionne ça ici j'ai le selectqui apparaît donc je vais supprimer déjà ces objets. Le select donc je ne sais pas d'où il
00:01:52 :vient mais j'en ai pas besoin moi je veux commencer au polycube. Le polycube on a vu qu'on pouvaitenlever tous ces paramètres ici puisque par défaut on va avoir une largeur une hauteur et uneprofondeur de 1 et là vous allez voir qu'il y a des choix qu'il faut commencer à faire. J'enlève
00:02:07 :tous les paramètres et je vais pouvoir faire le scale ou alors on pourrait directement spécifierici la largeur du cube. Donc on pourrait dire w égale 10, d égale 10 et h égale 10. On peut le
00:02:18 :faire ici mais moi je vais préférer convertir pour l'instant exactement comme je l'ai fait à la mainces lignes de code. Donc on ne va rien mettre ici dans le polycube je vais juste exécuter cette ligne
00:02:26 :pour vous montrer ce que ça fait. Alors là bien entendu moi j'avais déjà fait un import Maya.cmdsà ZMC si vous ne l'avez pas fait, faites le une fois, exécutez la ligne de code pour que vousayez accès à MC et ensuite vous pourrez exécuter uniquement ces lignes ici. Donc là avec cette
00:02:40 :ligne de code on crée un cube de 1 par 1 par 1 et ensuite on va faire un scale. Donc je vais fairemc.scale on met des parenthèses et là vous voyez qu'on a un paramètre on ne sait pas trop ce que
00:02:50 :c'est R donc j'imagine que ça veut dire relative donc on va aller voir en fait cette commande. Donclà vous sélectionnez la commande vous allez dans help, help unselected command et on va retournervoir l'aide de cette commande. Donc là vous voyez qu'on a pas mal de choses, je vais grossir un
00:03:03 :petit peu la page pour qu'on y voit quelque chose et je vais chercher le R. Alors vous voyez quedans les R on a pas mal de choses on a reflection, reflection about et ici on a les noms au complet.
00:03:11 :Pour voir les short names on va cliquer sur le premier par exemple ici reflection donc vousvoyez que ce n'est pas celui ci puisque là le nom court en fait c'est RFL. En fait R ça correspond
00:03:21 :à relative. Relative il s'attend à avoir un booléen. Un booléen qu'est ce que c'est ? C'esttrue ou false donc 1 ou 0, vrai ou faux. C'est quelque chose de très utilisé en informatique et
00:03:32 :vous voyez qu'après ce flag en fait on n'a rien on a juste des valeurs ici qui sont spécifiéesqui sont les valeurs du scale. Alors en MEL quand on veut spécifier qu'un booléen est vrai on n'est
00:03:41 :pas obligé de mettre à l'après en fait 1 ou 0 pour le spécifier on peut juste mettre le flaget MEL comprendrait que ce flag est donc vrai que c'est un booléen vrai. Avec Python on ne peut
00:03:51 :pas juste mettre ce paramètre comme ça donc si on voulait spécifier qu'on veut ce relative quiest égal à vrai il faudrait mettre R égale true. Le problème c'est que quand on a un paramètre ici
00:04:02 :on ne peut pas le mettre directement au début quand on a des valeurs par la suite il faut lesmettre en premier donc en fait on va enlever ce R égale true on va mettre déjà les trois valeursque l'on souhaite spécifier pour le scale et ensuite si on voulait spécifier relative égal
00:04:15 :à true et bien on le mettrait tout à la fin. Et là j'enlève également le point virgule qui nesert à rien en Python. Là les trois valeurs sont séparées par un espace moi il faut que je mette
00:04:24 :une virgule entre les différentes valeurs donc on va mettre une virgule et à la place de 8.48etc je vais mettre 10 tout simplement donc on met 10,10,10 et si on veut mettre R égale à true jecrois que par défaut cette valeur relative est égale à true et que je n'ai même pas besoin de
00:04:39 :la mettre. Si jamais vous n'êtes pas sûr donc de comment faire ce genre d'opération là vous voyezque ce n'est pas forcément évident qu'on ne peut pas mettre le R en premier et bien je vous conseillevraiment d'aller voir l'aide donc si je refais help and selected command vous allez voir que
00:04:53 :à la fin tout en bas ici vous voyez qu'on a un scale avec ces trois valeurs séparées par unevirgule et que dans le cas d'autres choses à la suite donc avec le pivot par exemple ou l'absoluteet bien ces paramètres sont mis après les valeurs donc après ces trois valeurs ici après le nom de
00:05:07 :l'objet que l'on souhaite modifier et ensuite on a donc ces attributs. Dans notre cas on n'a pasbesoin de spécifier quel objet on souhaite modifier puisque après avoir créé le cube il serasélectionné et donc si je fais un mc.scale avec un objet sélectionné c'est sur cet objet que ce
00:05:21 :scale va être effectué. Si je voulais être un peu plus explicite je pourrais spécifier le nom ducube mais ce n'est pas obligatoire ici. Ensuite on va faire le move vous voyez que là encore on a
00:05:30 :le R et donc ça va être le même principe je peux faire mc.move mettre les parenthèses enleverle R et tout simplement mettre ici 0,5,0 enlever le point virgule et fermer la parenthèse et çaça va déplacer mon cube de cinq unités en Y donc là je vais afficher de nouveau la grille pour
00:05:49 :qu'on y voit quelque chose donc là on a juste fait le move on n'a pas fait le scale avant. Leselect-scale ici en fait c'est quand on désélectionne tout dans notre scène vous allez voirqu'ici on a cette ligne qui est exécutée donc ça également dans notre script on n'en a pas besoin
00:06:02 :on n'a pas besoin de manipuler la sélection on veut juste créer, scaler et déplacer des objetsdonc je vais l'enlever et on va refaire notre polyplane donc on va faire mc.polyplane là vous
00:06:12 :voyez que directement dans les paramètres on a SX et SY qui semblent correspondre aux subdivisionsen X et en Y donc on pourrait les modifier directement ici pour qu'elles soient initialiséesà 1. Moi je vais quand même mettre ici juste les parenthèses pour qu'on ait bien les dix subdivisions
00:06:27 :qui soient effectuées et comme ça ça va nous permettre d'utiliser le set-attribute. Je vaisrefaire pareil avec le scale j'enlève tout ça ici là à la place de tous ces nombres je lemettre 3 x 24 donc on va mettre 24,24,24 et là ici on a le set-attribute donc mc.set-attribute
00:06:43 :on met tout ça entre parenthèses là on a le nom de l'attribut qu'on souhaite modifier doncpolyplane.subdivision-width ensuite on met une virgule et on dit la valeur qu'on souhaite assigner à cet
00:06:55 :attribut et on fait pareil avec le subdivision-height ici donc comme je vous dis on aurait pu le fairedirectement à la création du plane mais je voulais vous montrer le set-attribute qui est une deslignes de code qu'on utilise le plus souvent à l'intérieur de Maya. Donc là on a quelque chose
00:07:09 :qui semble assez bien on va le tester on a toutes les lignes de code à la suite alors on peut essayerde tout tester d'un coup et voir si on n'a pas d'erreur. Je sélectionne tout, je fais ctrl-entrée
00:07:18 :et là on a bien notre scène qui est correctement créée. Si jamais vous avez des erreurs de syntaxesi par exemple j'ai oublié une virgule ici et bien vous allez avoir l'erreur ici qui va être affichéedonc si je fais ctrl-entrée vous voyez qu'on a marqué ici invalid syntaxe. Malheureusement on n'a
00:07:33 :pas le nom de la ligne quand on exécute notre script directement comme ça depuis Maya donc làc'est un peu la chasse au trésor il faut aller relire vos lignes de code pour voir où est-ce quevous avez fait une faute donc là dans ce cas-ci c'était la virgule qui manquait. Donc ça ça marche
00:07:45 :c'est bien on a notre cube qui est créé, notre plane, tout fonctionne correctement je peuxdésafficher la grille ici et ça me permet comme ça quand je commence avec mon logiciel d'avoirune scène par défaut qui est créée. Maintenant vous allez voir qu'on a un petit problème actuellement
00:07:59 :c'est qu'on utilise directement ici dans la chaîne de caractère le nom du plane donc ça marche sion n'a aucun objet qui est créé par défaut mais si je réexécute ce code une seconde fois vous voyezque notre deuxième plane qui est créé cette fois-ci a bien les dix subdivisions en x et en y donc ça
00:08:14 :c'est vraiment parce qu'on met le nom ici directement dans la chaîne de caractère donc ça ne marche paspour le deuxième polyplane puisqu'il ne s'appelle pas polyplane 1 il s'appelle polyplane 2 donc çac'est assez problématique heureusement on va pouvoir le modifier et avoir quelque chose d'unpeu plus dynamique qui va nous permettre peu importe qu'on ait des objets ou non déjà de créer
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.