- 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 la partie précédente on a vu qu'on ne pouvait pas se fier ici au nom de notre polyplanepuisque quand on a plusieurs objets dans la scène dont un qui s'appelle déjà polyplane et bien çava cibler ce polyplane en particulier et non pas celui que l'on vient de créer. Donc ce qu'on va
00:00:13 :pouvoir faire heureusement c'est récupérer le nom du plane qu'on vient de créer et l'insérer ici àl'intérieur de notre chaîne de caractère. Vous avez remarqué peut-être déjà on l'a vu dans
00:00:23 :une partie précédente quand on exécute quelque chose ici que parfois on a ce result qui apparaît.Donc ça en fait ça veut dire que la ligne de code qu'on vient d'exécuter elle nous a retournéquelque chose et ce quelque chose qu'elle me retourne je peux le récupérer dans ce qu'on
00:00:36 :appelle une variable. Donc une variable ça peut avoir n'importe quel nom donc là je vais l'appelertout simplement plane. Il y a quelques règles à suivre quand même si par exemple vous commencez
00:00:44 :par un nombre ça ne va pas fonctionner donc si je mets 3 test ici ça ne fonctionne pas. Vous nepouvez pas non plus mettre d'espace donc si je mets plane object comme ça avec un espace ça nefonctionne pas non plus. Vous ne pouvez pas non plus mettre des symboles comme par exemple un
00:00:58 :dollar ou un pourcentage donc il faut rester assez neutre je dirais. Et donc sinon tout lereste c'est pas mal autorisé donc si vous voulez mettre des espaces généralement on met un tiré dubas. Le tiré du milieu lui n'est pas valide donc si par exemple je voulais l'appeler plane object
00:01:12 :je mettrais plane object comme ceci. Au niveau de la nomenclature on conseille de mettre touten minuscule séparé par des tirés du bas. Des fois vous verrez des gens utiliser cette syntaxe
00:01:21 :à la place c'est possible ça ne causera pas d'erreur mais par convention en fait si vousvoulez les noms des variables on va les mettre tout en minuscule et séparer par des tirés du baspour les espaces. Dans mon cas je vais juste l'appeler plane. Il faut faire également assez
00:01:35 :attention de ne pas utiliser des noms qui sont déjà réservés par d'autres choses. Par exemple lafonction print si on met print ici ça va causer problème parce que la fonction print elle existedéjà et elle nous permet d'afficher du texte donc forcément si on fait une variable qui s'appelle
00:01:48 :print ça va créer des problèmes. Pareil si on faisait une variable qui s'appelle mc si on ditmc égale à 5 si je fais ça ici et qu'après j'essaie de faire mc.polycube on va avoir une
00:01:58 :erreur puisque le mc ici maintenant il est égal à 5. Il n'est plus égal au module que l'on avaitimporté. Donc faites bien attention quand même avec le nom que vous donnez à vos variables.
00:02:07 :Généralement si vous voyez que le nom devient bleu ce n'est pas une très bonne idée. Si vousfaites par exemple polycube ici vous voyez que on a le nom qui devient bleu puisque c'est unefonction réservée par Maya. Donc il y a pas mal de noms comme ça de choses qui sont réservées
00:02:20 :forcément vous ne pouvez pas tous les connaître au début. Je vous dirais juste donc d'essayerd'être le plus explicite possible et de faire attention de ne pas écraser des choses que vousavez déjà à l'intérieur de votre script comme par exemple ici le module mc que l'on utilise pour
00:02:33 :effectuer des commandes avec Maya. Donc moi je vais tout simplement l'appeler plain ici et ceque ça va faire donc quand on exécute cette ligne c'est que cette fois ci je vais pouvoir récupéreralors là on a notre module qui ne marche pas donc il faut bien réexécuter cette ligne ici ça me
00:02:44 :permet de vous montrer le genre d'erreur que l'on peut avoir. Donc je réexécute cette ligne pourbien remettre dans la mémoire de Maya que mc ici ce n'est plus le nombre 5 mais bien le modulemayacommands. Donc maintenant si je réexécute cette ligne vous voyez qu'on n'a plus le result
00:02:58 :qui est affiché puisqu'on a récupéré en fait ce result dans cette variable plain et si je veuxafficher ce qu'elle contient donc je peux faire un print, print plain pour afficher ce que çacontient ou plus rapidement si vous n'avez pas envie à chaque fois de taper print plain ou
00:03:11 :print quelque chose on peut faire comme je vous avais montré dans une partie précédente c'està dire sélectionner ce que vous voulez afficher, faire ctrl entrée et ça va faire le même résultatque si on faisait un print. Donc là on retrouve bien notre result avec ce que nous retourne la
00:03:24 :fonction polyplain et ce que ça nous retourne dans ce cas ci c'est une liste. Donc une liste quicontient deux éléments le premier élément qui nous est retourné c'est l'anneau d'ici et ledeuxième c'est l'anneau de polyplain qui contient certains attributs donc si on va dans le attributeeditor c'est cette note polyplain qui nous permet par exemple de changer le subdivision width et
00:03:43 :le subdivision height donc c'est ça qui nous intéresse nous dans notre cas pour le subdivisionon veut récupérer ce deuxième élément dans la liste. Donc comment on va faire pour récupérer ce
00:03:51 :deuxième élément on va mettre tout simplement des crochets et nous cet élément où est-ce qu'onveut l'insérer on veut l'insérer ici à la place du polyplain 1 parce qu'on veut changer le subdivisionwidth sur cet objet qu'on vient de créer. Alors pour ça on va utiliser les f-string donc ça c'est
00:04:05 :vraiment une nouveauté de Python 3 vous n'avez pas la possibilité d'utiliser les f-string avecPython 2 donc si vous utilisez Python 2 il faudra utiliser d'autres méthodes comme la méthodeformat ou concaténer avec des plus donc je ne m'étends pas là dessus si vous voulez voir ladifférence entre les f-string et donc la façon de concaténer des chaînes de caractère ensemble
00:04:24 :je vous réfère à la partie dans cette formation qui répertorie les différences entre Python 2et Python 3. Donc avec les f-string on va pouvoir insérer des éléments à l'intérieur de notre chaîne
00:04:34 :de caractère donc pour faire un f-string il suffit de mettre un f devant la chaîne de caractère età l'intérieur de cette chaîne de caractère on va mettre des accolades et à l'intérieur desaccolades on va pouvoir mettre une variable donc dans ce cas ci je vais mettre la variable plain
00:04:47 :sauf que pour l'instant plain ça contient une liste donc ça contient ces deux éléments icidonc pour vous montrer ce que ça fait si j'exécute juste cette ligne de code je sélectionne doncjuste le f-string je n'oublie pas de sélectionner le f j'appuie sur ctrl entrée pour exécuter là
00:05:01 :vous voyez que ça a tout simplement mis bout à bout donc la liste qu'on avait avec .subdivisionwidthdonc ça a inséré ce qu'on avait dans notre variable plain à l'intérieur des accoladespuisqu'on a spécifié ici qu'on voulait utiliser cette variable. Ce qu'on peut faire c'est aller
00:05:16 :récupérer directement ici à l'intérieur des accolades le deuxième élément de la liste puisquelà ici en fait on peut exécuter à l'intérieur des accolades du code Python. Si je voulais par
00:05:24 :exemple je pourrais faire une multiplication pour multiplier cette liste ou faire des opérationscomme récupérer dans ce cas ci ce qui nous intéresse c'est à dire le deuxième élément decette liste. Donc pour ça on va mettre des crochets et dans les listes on commence à compter avec
00:05:36 :l'indice 0. Donc si je veux récupérer le premier élément ce premier élément ici il faudrait queje mette 0 à l'intérieur des crochets. Moi ce que je veux c'est récupérer le deuxième élément donc
00:05:45 :je vais mettre 1 et ça va correspondre en fait à cet élément ici qui est une chaîne de caractèredonc en fait ce qu'on va faire ici c'est tout simplement prendre cette chaîne de caractèreet l'insérer à la place des accolades et de plain crochet 1. Donc en fait ça va nous donner ça
00:05:57 :c'est vraiment la logique de Python il va regarder en fait à quoi correspond plain il va dire plainça correspond à la liste qui contient ces deux éléments et là on me dit de récupérer l'élémentnuméro 1 donc je récupère cette chaîne de caractère et je la mets ici. Et donc là l'intérêt c'est
00:06:12 :qu'on a quelque chose de dynamique. Je vais remplacer également notre deuxième instanceici donc je fais un copier-coller et donc cette fois ci on a notre plain qui est récupéré doncsi on recrée un plain on aura polyplain 3, si je recrée un plain polyplain 4 etc et cette chaîne
00:06:26 :de caractère va être insérée ici. Donc là je peux réexécuter tout mon script et là on a quelquechose d'un peu plus grand puisqu'on avait des grilles ici qui faisaient 15 sur 1. Donc je vais
00:06:36 :supprimer tout ça et recommencer je vais afficher ma grille ici. Donc je sélectionne tout, j'exécuteet là vous voyez qu'on a bien donc les subdivisions qui ont correctement été appliquées donc une seulesubdivision en x et en y et si je réexécute tout le script et bien vous voyez que sur notre
00:06:51 :pplain 2 donc le polyplain 2 là aussi on a une seule subdivision. Notre script fonctionnecorrectement on a réussi à avoir quelque chose de dynamique que l'on a inséré directementdans le set attribute. Donc ça c'est vraiment quelque chose que vous allez faire très très
00:07:05 :très souvent. Vous allez récupérer le résultat qui vous est retourné lorsque vous effectuez uneopération donc ce qu'on retourne dans le result et vous allez voir que très souvent en fait on vadevoir récupérer une seule partie de cette information. Alors ça dépend ce n'est pas
00:07:19 :toujours le cas ne pensez pas en fait qu'il faut toujours mettre crochet 1 ici puisqu'il y acertains types d'objets quand vous les créez qui ne vont retourner qu'un élément. Si je vais dans
00:07:26 :create et que je crée un locator par exemple vous voyez que le résultat qu'on a ici c'estjuste locator 1. Donc si je fais en python mc.space locator pour créer un locator que je
00:07:37 :récupère dans une variable que je vais appeler lock et que je fais un print de lock vous allezvoir que cette fois ci on a alors dans ce cas ci en fait on a une liste qui contient un seulélément. Donc on a quand même une liste mais il n'y a qu'un seul élément dedans donc si on
00:07:50 :voulait récupérer cet élément on devrait mettre crochet 0 ici mais il y a certains éléments sije me trompe pas c'est plutôt dans le rig si je crée un rig comme ceci donc juste un joinet que j'appuie sur entrée en fait on va prendre cette fonction mc.join on va faire donc mc.join
00:08:05 :pour créer un joint et vous voyez que là on a joint 3 et si je le récupère dans une variableil me semble donc là je vais pas mettre le même nom bien sûr faites attention au nom que vousutilisez ça me permet de le répéter donc j'exécute cette ligne ici et si j'affiche j vous voyez que
00:08:19 :là cette fois ci on a bien un seul élément donc c'est même pas une liste c'est vraimentdirectement une chaîne de caractère si vous souhaitez vous en assurer vous pouvez utiliserla fonction type qui permet d'afficher le type des variables que vous avez donc si je fais printtype de j vous voyez que là on a une classe str donc string qui correspond à une chaîne de
00:08:36 :caractère par contre si je fais un print du type de lock là vous allez voir que cette fois ci on abien une liste donc comme je vous dis il faut pas penser que vraiment on a toujours besoin demettre crochet 1 ça va vraiment dépendre des cas de figure vous voyez que pour le locator dans ce
00:08:49 :cas ci il faudrait mettre crochet 0 pour les joints et bien on n'a même pas besoin de mettrecrochet 0 parce qu'on a directement une string donc une chaîne de caractère qui correspond au nomde l'objet donc c'est très important de comprendre quel type d'objet ça vous retourne de comprendre
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.