Transkripte
1. Einführung!: Willkommen, um für Maya zu kämpfen. In dieser künstlerfreundlichen Einführung in die Programmierung werde
ich Sie durch Ihre erste Bisslinie auf dem ganzen Weg zu Gewalt-Benutzeroberflächen führen. Sie lernen Fähigkeiten, um Ihnen zu helfen, zu arbeiten, zu
fördern und Mehrwert für Sie auf dem Arbeitsmarkt zu schaffen. Unter Global Elite arbeitet
Pipeline Developer an Filmen wie Guardians of the Galaxy, Spider Man und Cloudy mit der Chance auf
Fleischbällchen . Ich sprach selbst, als ich ein Künstler war, und jetzt meine Werkzeuge, die sie von Hunderten von Künstlern jeden Tag verwendet. Ich werde Ihnen mit der staatlichen Methodik beibringen, mit der ich Python gelernt habe, wirklich
coole Projekte zu erstellen , die ich mir sofort machen könnte. Lernen Sie, die Erstellung von Geometrie zu
programmieren, Animationswerkzeuge zu erstellen, größere Kontrolle, eine Bibliothek und einen Lichtmanager zu erstellen, während Sie lernen, dass die Grundlagen meiner Projekte
aufgeteilte Komplexität sind , so dass Sie in unabhängig von Ihrem Erfahrungsniveau. Egal, ob Sie ein Anfänger oder ein Fortgeschrittener sind, die ihre Fähigkeiten verbessern möchten, sollten
Punktzahl für jeden Wert bieten. Programmieren, besonders mit Python, ist eine immer wertvollere Fähigkeit, und ich glaube, mit meinem Kurs kann
jeder lernen
2. Übersicht über die Kursmaterialien: in diesem Projekt
haben wir gelernt, einen Lichtmanager zu schaffen, um die Lichter zu verwalten und gesehen werden. Wir werden lernen, wie man es mit meinen A you Elemente kombiniert, so dass wir es von
der Maya du docken und abdocken können . Ich Darüber hinaus werden
wir in der Lage sein, zu kontrollieren. Darüber hinaus lernen
wir, wie Sie unsere Lichter von der U I aktivieren und deaktivieren. Solo sie, löschen Sie sie und wir werden es auch anschließen, um die Intensität des Lichts sowie die
Farbe aus den Lichtern zu steuern . In diesem Projekt
haben wir gelernt, Pi Mel als objektorientierte Alternative zur Maya Commands Library zu verwenden. Wir lernten einige etwas fortgeschrittenere Python-Funktionalität, wie anonyme Funktionen, mit Partial und Lambda sowie mit der Logger-Bibliothek in Python. Wir werden auch lernen, Teile der offenen Maya zu verwenden, ein p I zwischen sind niedlich Sie Elemente und unsere Maya-Befehle Sie Elemente zu interagieren. Dies wird etwas fortgeschrittener sein als unsere vorherigen Projekte, aber ich werde es bei jedem Schritt aufschlüsseln, so dass es immer noch leicht zu folgen ist. Lassen Sie uns damit beginnen Lassen Sie uns damit beginnen
3. Den Drehbuchbearbeitung verwenden: Wenn Sie diesen Kurs nehmen, nehme
ich an, Sie sind mit Maya und seinem Benutzer und Gesicht etwas vertraut. Sie jedoch Möglicherweise sindSiemit dem Skript-Editor
jedochnicht vertraut. Sie können auf drei Arten darauf zugreifen. Sie kennen Windows General Editors Skript-Editor
, der es in einem separaten Fenster öffnet. Sie können das Gleiche tun, indem Sie hier auf die Shortcut-Schaltfläche klicken. , können
Sie darüber hinaus Wenn Sie mehrere wenige Ports haben, können
Sie darüber hinauseinen von ihnen in den Skript-Editor konvertieren, indem Sie den Bedienfeld-Skript-Editor aufrufen
, der den Ansichtsport in einen Skript-Editor ändert. Der Skript-Editor ist in zwei Teile unterteilt. Ist das Ausgabefenster, das alles darstellt, was Sie in Maya tun? Zum Beispiel, wenn ich auf dieses Modell klicken, können
Sie sehen, dass es sagt Select menschlichen Körper. Und wenn ich auf die Brille klicken würde, würde
es dasselbe für die unten stehende Brille tun. Das ist das Eingabefenster dort. Zwei Türme sind standardmäßig, es gibt Mel und Python. Dies sind die beiden Sprachen. De Maya unterstützt eine Skripterstellung. Sie können weitere Registerkarten erstellen und eine Sprache auswählen, indem Sie auf das kleine Plus-Symbol klicken. Darüber hinaus können
Sie hier unten in der Eingabe in der Eingabezeile Code eingeben und eine Sprache auswählen,
indem Sie auf das Wort Mellor python klicken, um einen beliebigen Code auszuführen. Sie kochen den Doppelpfeil hier, und wenn Sie es satt haben, die Ausgabe hier zu sehen, können
Sie auf den Löschknopf hier klicken, und es wird den Verlauf löschen. Im nächsten Video werde
ich darüber nachgehen, wie Sie Ihr erstes sehr einfaches Python Programm in Maya erstellen können.
4. Hallo Welt: Ich denke, es wird ein sehr, sehr kurzes Video sein, denn wir werden unser allererstes Python Programm im
Maya-Skript-Editor erstellen , die Python-Registerkarte
auswählen und print eingeben, gefolgt von Leerzeichen. Hallo. Mein Name ist und in Ihren eigenen Namen gesetzt. Mein Name ist durch jemanden, der endlich durchgemacht hat, um es zu laufen. Wir werden hier oben auf die Doppelstunden klicken. Wenn Sie darauf klicken, sehen
Sie die Mayer-Berichte zurück. Hallo. Mein Name ist durchgekommen. Herzlichen Glückwunsch. Sie haben gerade Ihr allererstes von Tom Programm geschrieben, das von hier weiter geht. Wir werden
natürlich natürlich viel mehr Bösewichte Programme machen,
aber ich dachte, ich würde Ihnen zeigen, wie einfach Python tatsächlich sein kann.
5. Hallo Cube: Eine Hello World in 3D: Einen Abdruck meines Namens zu bekommen, ist nicht so aufregend. Lassen Sie uns also etwas damit erstellen, um einen Spaziergang zu machen, der diesen Text loswird. Dann müssen wir Python wissen lassen, wie man sich zusammenzieht. Bewundern. Also müssen wir die Maya-Befehls-Bibliothek bekommen. Wir tun dies durch Eingabe von Maya Import C M. D. S C. MDs ist kurz für Befehle. Als nächstes möchten wir einen Würfel erstellen. Also sagen wir Befehle Punkt Polly Cube und geben ihm Währungen. Ich werde es erklären. Sagten aus der Befehls-Bibliothek, holen Sie den Poly Cube Befehl und führen Sie ihn aus, indem Eltern sehen waren ihm zu sagen,
es auszuführen . Also, jetzt lasst uns auf die Doppelpfeile klicken und sehen, was passiert. Und siehe, Maya erschafft uns einen Seelachs. Immer noch kein super aufregendes. In unserem nächsten Video werde
ich Ihnen zeigen, wie Sie das nehmen und automatisch für die Animation profitieren.
6. Projekt 1: Erstellen eines Würfels: Weg haben einen Würfel. Das ist nicht so aufregend. Was ich mit diesem Würfel machen möchte, möchte ich unter einem Kreis-Controller Eltern haben, damit ich ihn als
Animationsstütze verwenden kann . Aber wir haben ein Problem. Wir haben diesen Würfel erschaffen und meinen Ruf einen Peaky. Aber erinnern Sie sich, wenn wir diesen Befehl erneut aufrufen, wird
es Peak erzeugen. Du auch. Also wissen wir nicht wirklich, dass der Name des Objekts von mir erschaffen wird. Das ist eigentlich nicht wahr. Was durch ein tut, ist, wenn wir diesen Befehl nennen, es gibt uns den Namen von der Kuba geschaffen zurück. Und wir können dies in etwas speichern, das Python eine Variable aufruft. Ich zeige Ihnen jetzt ein Beispiel. Also, wenn ich sage, cube ist gleich Befehl. Also Polly Cube, lass mich diese alten Würfel schnell loswerden. Und wenn sie es jetzt ausführen, führe ich Dinge aus, indem ich sie auswähle und die Kontrolle treffe. Geben Sie, Übrigens, wenn ich es jetzt ausgeführt hätte, bekomme ich einen Würfel. Und wenn ich Print Cube sehe, können
Sie sehen, dass der Würfel gleich etwas ist. Nirgendwo sagt uns, dass der Würfel gleich P Q eins und Polly Cube eins ist. Das ist irgendwie seltsam. Der Grund ist hochgradig. Eins ist der Name des Cubes und des Public Cubes. Einer ist ein Name aus dem Maya-Knoten, der den Cube erstellt hat. Sie können sehen, dass, wenn ich das wieder laufen, die NASCAR P halten zu und Polly Cube, auch. Dies bedeutet, dass jedes Mal, wenn Sie es ausführen, Kuba gleich dem tatsächlichen Namen des Objekts ist. Aber wir wollen den Konstruktor nicht wirklich. Wir wollen nur den eigentlichen Würfel selbst. Nehmen wir also an, Würfel Form ist gleich Würfel Null. Lassen Sie mich erklären, was hier los ist. Cube ist gleich zwei Strings. Eine Zeichenfolge ist ein Wort oder Satz. Sie können sagen, dass es sich um eine Zeichenfolge handelt, weil es sich in Anführungszeichen befindet. Hörst du? bedeutet nur, dass es eine Unicode-Zeichenfolge ist, und es ist etwas, das Maya tut, das wir ignorieren können. Also für alle Absichten und Zwecke ist
er ein zwei Saiten in eckigen Klammern. Quadratische Klammern bedeutet, dass es sich um eine Listenliste handelt, ein Objekt, das andere Objekte enthalten kann. In diesem Fall, der zwei Strings enthält, können
wir auf die Liste zugreifen und ein bestimmtes Element erhalten, indem wir die eckigen Klammern verwenden. Also sagen wir Würfel und in den eckigen Klammern und dann geben wir die Zahl Null. Und wenn wir das ausführen, können
Sie sehen, dass es
auch P Cube entspricht , was das erste Element ist. Halten Sie fest. Ich sagte Null. Ich habe keins gesagt. Und das liegt daran, dass Computer anfangen, eine Null zu zählen. Wenn ich also null sage, sage
ich eigentlich: Gib mir das erste Objekt. Wenn ich sagen sollte, ob ich nur eine war und ich das erneut ausführe, gibt
es mir jetzt das zweite Objekt, weil sie in Computern von Null beginnen. Sie fangen nicht von einem an. Wenn ich also eins sage, bin
ich gemein, dass es irgendwie verwirrend ist, aber du musst es benutzen. Also, was ich sage, ist, gib mir das erste Objekt und lass es uns der Würfelform zuweisen. Also, wenn ich jetzt Würfelform neu drucken und das könnte dies tun, wird
es sagen, P cubed, zu dem, wenn Sie sich erinnern, das erste Objekt aus der Liste
war. Ruf Cube an. Nein, wir können dasselbe mit einem Kreis machen. Also sagen wir Kreis. Es ist gleich Kommando. Starten Sie Kreis drucken Kreis, so dass Sie sehen können, dass wir den Kreis wieder erstellen. Erinnern Sie sich an den Kreisbefehl aus der Befehls-Bibliothek und wir signierten, was auch immer Meyer gibt uns zurück zu der Kreisvariablen. Und dann drucken wir die Kreisvariable, die uns eine Liste von zwei anderen Strings gibt. Der erste ist ein Kreisknoten, den Sie dort sehen können. Und das zweite ist wieder ein Konstruktionsobjekt. Circle ist eine Liste. Ich kann Ihnen dies zeigen, indem ich den Typ Kreis sage und Sie können sehen, Typ ist Liste. Wenn ich das erste Objekt im Kreis bekommen möchte, mache
ich Kreis Null, was mir Nervenkreis eins gibt. Und wenn ich so etwas mache, gibt
es mir Unicode. Unicode ist ein String-Typ. Also für alle Absichten und Zwecke, nennen
wir es einfach eine Zeichenfolge. Mein Amex alle Strings Unicode, weil es so unter der Haube umgeht. Aber darum musst du dir keine Sorgen machen. Also, jetzt werden wir Kreisform gleich Kreis Null bekommen. So haben wir jetzt den Würfel in der Kreisform geformt. Nun, wir müssen es tun, ist ein Elternteil unter dem anderen, also werde ich den Elternbefehl verwenden. Aber wenn ich den Elternbefehl verwende, gibt
es uns einen Fehler. Wenn ich es leite. Es sagt nicht genug Objekte von Werten. Also erwartet das übergeordnete, komm schon, tatsächlich Variablen. Das erste ist das Kind. In diesem Fall muss
ich sagen, Würfelform. Die zweite sind die Eltern. Ich werde sagen, Kreisform. Und wir setzen das in die Klammern, weil wir den Eltern sagen, wie sie laufen sollen. Habe gesagt, das unter das zu setzen. Also, um es zu laufen. Hoppla. Ich habe eigentlich nie Kreisform zugewiesen. Lassen Sie mich das noch einmal ausführen und dann lassen Sie mich das noch einmal ausführen und Sie können sehen, dass der Würfel jetzt
unter dem Kreis ist . Das ist großartig, weil das bedeutet, dass ich den Kreis auf dem Cube bewegt sich damit bewegen kann. Aber es gibt ein Problem. Wenn ich den Würfel verschiebe, kann
er sich immer noch ohne den Kreis bewegen. Und das will ich nicht. Also, was wir tun werden, ist, dass wir die Cubes Attribute sperren, damit wir in die
Kanalbox gehen und mich die Geschichte hier klären lassen, indem wir auf die Solo-Racer-Icons klicken. Ich kann Ihnen zeigen, was ich Ihnen zeigen werde. Also werden wir mit der rechten Maustaste auf übersetzen X klicken und ich werde sagen Sperre ausgewählt. Nun, das hat uns genau gesagt, was es getan hat, außer es sagt uns in Mel, was nicht so nützlich ist, aber wir können es immer noch vom Ausgangspunkt verwenden. Also wissen wir, dass es das Set auf ihren Befehl verwendet hat. Also sagten wir Befehle, die gerade bei ihr gesagt haben, Wir wissen, dass es auch P Cube verwendet. Das T X, das kurz für Translate X ist, wie Sie dort sehen können. Und wir wissen, dass das Schloss wahr ist. Also sagen wir, Sperre ist wahr. Sehen? Also hat Maya uns erzählt, wie es in Mel läuft, und es ist wirklich einfach, es in Python zu konvertieren. Also, wenn ich dies ausführen Aber lasst uns TX zu t ändern, warum Sie sehen können, dass ein gesperrt die übersetzen Warum Kanal? Aber festhalten. Wir haben all diese Arbeit durchgemacht, so dass wir den Cube nie mit seinem
tatsächlichen Namen nennen müssten . Und du hast recht. Also lasst uns das loswerden wir sagen, dass wir wissen, dass der Würfelname in
Würfelform gespeichert wird . Sie können Zeichenfolgen zusammen mit dem Pluszeichen hinzufügen. Also sagen wir Würfel Form plus Ente T y und was das uns geben wird, wenn ich dieses Gut laufen, geben Sie uns p gewürfelt zu don t y genau wie hier oben Dies ist, weil Strings
zusammen mit dem Plus-Symbol hinzugefügt werden können . Aber ich will nicht einfach tun, warum ich all die Übersetzungen wollte. Also sagen wir übersetzen. Und dann lassen Sie uns das laufen und ich habe alle drei Übersetzungen gesperrt. Nein, lassen Sie uns das kopieren und das ändern, um zu drehen, und das nur skalieren und lassen Sie uns diese beiden
Linien laufen , die wir gerade gemacht haben. Jetzt sind alle Attribute gesperrt, damit ich den Würfel verschieben kann. Ich kann es skalieren ein Symbol gedreht, aber ich kann drehen, bewegen und skalieren Kreis. Also jetzt lasst uns das alles wieder gemeinsam durchlaufen. Lassen Sie mich eine neue Szenendatei erstellen, die Sie gesehen haben, und ich werde die Doppelpfeile verwenden, um alles auszuführen. Und obwohl das wirklich schnell war, so dass wir den Würfel haben, können
wir den Würfel bewegen, der gedreht wird, und wir können ihn nicht im Umriss skalieren. Äh, der Würfel ist unter dem Kreis, also können wir wer? Der Kreis dreht den Kreis und skaliert ihn, und die Warteschlange folgt entlang. Aber Sie bemerken, dass, als wir dies getan haben, die Kuba ausgewählt wäre es nicht schön, einfach die Kirsche auf die Spitze zu setzen, so dass wir
tatsächlich direkt den Würfel auswählen können . Oh, tut mir leid. Ich meine, wählen Sie
direkt den Kreis aus. Also sagten wir Befehle Vertrauen. Wählen Sie aus, weil wir den Auswahlbefehl aufrufen, und wir sagen ihm, dass eine Kreisform ausgewählt werden soll. Also jetzt, wenn wir es durch Klicken auf den Doppelpfeil ausführen, wählt
es eine Kreisform, und ich könnte es verschieben, drehen und skalieren. In ein paar Minuten wir gegangen und haben ein Skript erstellt. Sie erstellen einen Würfel, erstellen einen Kreis gut, Eltern, den Würfel unter dem Kreis, und dann sperren wir alle Würfel Übersetzungswerte, so dass wir darauf zugeben können. Und schließlich, real wählen Sie einen Kreis. Herzlichen Glückwunsch. Du hast gerade dein erstes echtes Python-Programm in meinem, äh
7. Variablen und Arten: noch ein Bier Kampf in Python ein bisschen. Ich möchte einige Kernkonzepte vorstellen. Im ersten Herbst sehen
Sie das print-Schlüsselwort. Sie werden alles danach in diesem Fall drucken, die Zeichenfolge Hello World Saiten Luft durch ihre Anführungszeichen bezeichnet. Alles in einfachen oder doppelten Anführungszeichen des Strings. Also, wenn ich sage drucken Typ hallo Welt, können
Sie sehen, dass der Typ der Zeichenfolge. Während ich tippe, werden
Sie sehen, Kuchen Charme gibt mir automatische Vervollständigung, um mir helfen, Foster zu tippen. Wenn ich also den Drucktyp 22 sage, können Sie sehen, dass der Typ von 22 ganzzahligen Ganzzahlen die ganzen Zahlen. Aber wenn ich eine 22.1 sage, ist es jetzt flott, weil alles mit dem Dezimalzeichen schwebt. Andere Arten sind falsch, was eine Boule und wahr ist, die auch Boule Boule ist. Eine Abkürzung für Anlagebarren, sie können entweder wahr oder falsch sein. Schließlich ist
das Gesetz einfacher Typ keine. Keine bedeutet, dass nichts zugewiesen ist. Es ist ein Nonnen-Typ. Wir haben Variable eingeführt, damit ich sagen kann, dass Essen gleich hallo ist. Wenn ich print sage, wird
Foo hallo drucken, weil hallo Fu zugewiesen wird und wir drucken Fu, das den Wert von hallo nach den einfachen Typen ausdruckt. Wir haben jetzt komplexe Typen, also kann ich sagen, meine Liste ist gleich Hallo 22 und falsche Listen werden durch die eckigen Klammern
bezeichnet und sie können grundsätzlich jedes andere Objekt in ihnen enthalten , in diesem Fall eine Zeichenfolge, ein Inter und ein Anlagebarren. Wenn ich also sagen würde, drucken Sie meine Liste aus, erhalten Sie eine Liste, die die Zeichenfolge der Inter während des Boolean enthält, die ich ihm gegeben
habe, ich liste auf und enthalte andere Variablen, die ich sagen kann, Fu ist gleich wahr und wenn ich dies
am Ende hinzufüge , wenn ich kann richtig eingeben, können
Sie sehen, dass er jetzt den Wert von Fu enthält. Ich kann Objekte in einer Liste ändern, indem ich sage, dass mein Listenpunkt anhängt und ich kann mich verabschieden. Und wenn ich meine Liste ausdrucke, kannst
du nicht, dass sie jetzt das Wort „Abschied“ enthält. Ich kann auf Objekte in einer Liste zugreifen, indem ich eckige Klammern zur Liste gebe und eine Zahl gebe. Also, wenn ich sage, die Nummer zwei, die ich weiß, wird falsch. Wenn ich denke, die Nummer eins, die ich 20 bekomme, um zu wissen, warum das die Nummer eins sein sollte. Hallo, stimmt's? Weil es das erste Objekt ist. Nein, in Python und anderen Computersprachen beginnen
sie mit der Zahl Null zu zählen. Also gehen Sie 0123 Also, wenn wir die Nummer eins sagen, wir eigentlich nicht das zweite Objekt gemeint, das ist 22. In ähnlicher Weise können
wir Dinge innerhalb einer Liste neu zuweisen, damit wir sagen können, dass meine Listennummer Null gleich ist, wie ich es nicht
weiß . Sagen wir, Spam genug. Du druckst meine Liste aus. Sie können das in einer Art sehen. Hallo. Es ist ein Spam. Es ist, lasst uns das klären. Nein, es gibt verschiedene Arten von Listen. Wir haben eine einfache Liste mit eckigen Klammern. Wir haben eine komplexere Listen, die die beiden Menschen, die mit runden Klammern oder Klammern gemacht hat, so können wir das gleiche tun. Fu bam 22. Falsch, Wahr. Genau wie ein Smattering von Werten. Also sagen wir, drucken meine zu ziehen und tippen, um ein mein zu ziehen ziehen. Sie können sehen, dass wir die bekommen, um zurückzuziehen, und es ist in der Tat von Typ zu ziehen, was macht eine anders als eine Liste zu ziehen. Nun, ich kann nicht tun, um Punkt nach oben zu ziehen, weil zwei Pools kein Attribut haben. Ein Stift und ein Symbol haben alle Insider neu zugewiesen, die gezogen werden sollen, da die zu ziehen keine
Elementzuweisung unterstützt . In ähnlicher Weise haben
wir ein Objekt, das eine Menge genannt wird. Es ist auch etwas Besonderes, dass es Duplikate desselben Tales kontaktiert. Sagen wir, ich habe Fu. Lassen Sie uns den Spam auch zu wenig ändern. Also, wenn ich meine drucken zu ziehen, Sie werden sehen, dass es, auch, für dort Lebensmittel 22 von False in. Wahr. Wenn ich den Spannungssatz mit der Set-Funktion konvertiere, können
Sie sehen, dass ein Geruch gesetzt ist, der falsch ist. Echte Lebensmittel und 22 Sets haben keine Bestellung, aber sie sind auch einzigartig, so dass Sie mehrere Lebensmittel kontaktieren und Sie können nicht von mehreren 20 Zweien, zum Beispiel. Schließlich haben
wir einen anderen Sammlungstyp namens Wörterbuch. Ein Wörterbuch ist so ähnlich wie das, was man auf Englisch erwarten würde. Sie haben
zum Beispiel eine Definition von Python, zum Beispiel eine Definition von Python, und Sie würden sagen, dass es ah ist, Programmiersprache außer so dass Sie Grundsätzlich würden Sie einen Schlüssel und einen Wert haben. Also lasst uns unseren ersten Sieg definieren. Wir sagen, mein dicked ist gleich, und Sie geben ihm geschweifte Klammern für Wörterbuch Sie sagen Name in Anführungszeichen und dies wird der Schlüssel Doppelpunkt und ihre Klammern sein. Wir sagen, gefahren. Wir geben es ein Komma und Sie werden sagen, Roll und wieder Doppelpunkt und speichern Pipeline TD wieder. Sie haben den Schlüssel, den Wert einen anderen Schlüssel, einen anderen Wert. Und wie Listen können
Wörterbücher Variablentypen enthalten. Also wieder haben wir eine ganze Zahl anstelle von nur Strings. Und wir können speichern drucken meine Süchtigen Also etwas, das Sie wissen, Wörterbücher wie Sets sind nicht wie Sets sortiert, die sie nicht teilen können. Sie können nicht mehr als das gleiche Ah kee haben Also wie, ein Satz könnte nicht den gleichen Wert mehrere Male haben. Sucht kann nicht den gleichen Schlüssel mehrfach haben. Ich kann nur einen Namen haben, eineRolle in
einem Alter, um auf das Wörterbuch zuzugreifen. Ich kann nur einen Namen haben, eine Sie benutzen es wie eine Liste. Aber anstatt eine Nummer zu geben, gebe
ich den Schlüssel, auf den ich zugreifen möchte. Also, wenn ein Zugriffsname. Also fragte ich ihren Namen und ich bekomme den Namen und den Wert von durch. Wenn ich das ändern will, kann
ich sagen, mein Name ist Cartman. Wenn ich mein Dick-Nein ausdrucke, heiße ich Cartman. Also Wörterbücher ähnlicher Listen. Aber wenn sie Zahlen als Indizes haben, haben
sie Wörter. Dies vervollständigt einen kurzen Blick auf einige grundlegende Python-Konzepte, die wir brauchen, um
die Straße weiter zu gehen .
8. Übersicht über die Programmiersprachen von Mayas und Bibliotheken: tragen jetzt gehen über alle Programmiersprachen und AP Augen innerhalb von Maya gehen, meine hat zu einem P i Bibliotheken. Die erste ist eine Befehlsbibliothek oder C M. D. S kurz. Es besteht aus Bissgrößen-Befehlen, die Künstler verwenden können, um zusammenzufassen, um größere Anwendungen und Werkzeuge zu erstellen. Die andere Bibliothek innerhalb von Maya heißt Open Maya a P I. Dies gibt technischen Entwicklern tief zugegriffen Jeremiahs interne Architektur, aber es kommt auf Kosten der Komplexität, und es ist nicht sehr geeignet für Künstler, schnell zu verwenden. Aber der Rest dieses Kurses wird sich hauptsächlich auf die Commands Library konzentrieren. Meine hat vier Programmiersprachen. Der erste ist Mel. Mel ist eine Maya spezifische Sprache, die für Künstler einfach sein soll, zu holen, und es kann nur die Befehle Bibliothek Melas verwenden, eine interaktive Sprache, die schwächen. Geben Sie es ein und sehen Sie die Ergebnisse in Echtzeit. Dies ist ein Plakat Mayas andere primäre Sprache, C plus plus, das verwendet wurde, um meine selbst zu schaffen. C plus plus ist eine komplexere Sprache, und es kann nur auf Sie zugreifen, öffnen Sie mein A p I. Darüber hinaus muss
C ++ im Voraus kompiliert werden,
was bedeutet, dass es nur verteilt werden kann. Es ist Plug Ins und kann nicht in Echtzeit entwickelt werden. Wie C ++ hat
Maya eine andere Sprache namens C Sharp C. Sharp Unterstützung in Maya ist auf Windows beschränkt, und es hat die gleichen Vorbehalte. A C plus plus es muss kompiliert werden und kann nur auf die offene meine A P I zugreifen. Auf der Kehrseite ist
C Sharp ziemlich viel einfacher zu bedienen als C plus plus, und es ist sehr beliebt in der Gaming-Community. Schließlich, die verlorene Programmiersprache und Maya. Und der Schwerpunkt dieses Kurses ist Python. Python befindet sich in einer eindeutigen Position, da es sowohl auf die Open my A P I als auch auf die
Commands Bibliothek zugreifen kann . Es ist die einzige Sprache im Inneren bewundern, die in der Lage ist, dies zu tun. Im Gegensatz zu Mel wird
Python auch von Programmierern außerhalb von Maya verwendet. Ähnlich wie C plus und C Sharp Fight on ist in der Programmier-Community sehr beliebt. Google hat es für seine maschinellen Lerntechnologien ausgewählt. Dropbox nutzt es ausgiebig und Wissenschaftler nutzen es für wissenschaftliche Forschung. Was das bedeutet, ist, dass Python eine sehr Voss-Community mit vielen Bibliotheken hat, die wir für die Verwendung innerhalb von Maya für Werkzeuge
nutzen können . Darüber hinaus bedeutet
dies, dass es eine Menge von Ressourcen ist für Tortenzeit. Die Gründe für Pythons Popularität ist, weil es eine intuitive Sprache ist, während es viele erweiterte Funktionen bietet, die sowohl C plus plus als auch C scharf haben. Dies geht auf Kosten der Leistung. Python befindet sich in der Mitte der Straße. Es ist viel einfacher zu bedienen und C plus und C scharf, aber es kann viel langsamer sein. Normalerweise ist
dies ein Komma wert, weil Python-Code ziemlich einfach zu schreiben ist, und oft brauchen Sie nicht die Geschwindigkeit, die C plus ein C scharfes Angebot. Insider Maya. Es gibt tatsächlich vier AP-I-Bibliotheken, die Python von der ersten der
Commands Library verwenden kann . Dies wurde ursprünglich für Mel entwickelt, aber wir können es auch innerhalb von Python verwenden. Die Befehle Lavery sind ziemlich Leistung, aber aufgrund seines Erbes, als für Mel erstellt wurde, können
einige der Syntax und Verwendung es ziemlich ausführlich machen, in Python zu verwenden. Das ist nicht ideal, aber es ist auch kein Deal Breaker. Die andere eine PR, die ich bereits erwähnt habe, ist die offene Maya, ein P I. Es gibt tatsächlich zwei Versionen dieses offenen Maya eins und öffne mein A, um My A zu öffnen wurde ursprünglich für C plus plus und wieder,
wie Befehle entworfen . Es ist nicht völlig platonisch. Dies bedeutet, dass Sie oft Dinge eingeben werden, die in Python keinen Sinn ergeben, aber in einer C plus Welt in Reaktion auf diese Autodesk offen gemacht haben
Maya zu offen My A two ist ein wenig platonischer und einfacher in einer Tortenzeit zu verwenden. Leider hat
es noch nicht Feature abgeschlossen, so dass Sie immer noch offene Maya ein verwenden müssen. In einigen Fällen die Lost A p I die Python verwenden kann. Insider Maya ist ein Hybrid-AP, den ich von Loom erstellt habe. Ein Pitcher namens Time L Primal wurde von Grund auf zurückgetreten, um eine sehr
python-ähnliche Schnittstelle innerhalb von Python bereitzustellen . Es tut dies, indem Sie die Commands Library und die Open Maya AP I in eine Schnittstelle , die wir verwenden können. Primal ist eine Freude zu verwenden, weil es den Code, den wir schreiben müssen, reduzieren kann und
es viel einfacher macht , mit Objekten innerhalb von Maya zu interagieren. Diese Flexibilität kommt zu einem Preis pi Millikan oft langsamer als männliche und die offene meine i p I. Darüber hinaus einige Studios erlauben nicht primal wegen der Geschwindigkeit Bedenken und wegen einiger Stabilität Bedenken. Im Allgemeinen, wenn Sie Streifen schreiben, Tortenmühle ist ganz in Ordnung zu verwenden. Aber für diesen Kurs werde ich mich hauptsächlich auf die Befehls-Bibliothek konzentrieren, weil es
wichtiger ist zu lernen. Wir werden ein Projekt haben, das sowohl das offene Maya FBI kurz als auch ein Za Pi Metall verwenden wird , ein p I für das gesamte Projekt. mit Lassen Sie uns weitermitunseren nächsten Projekten fortfahren.
9. Nodos in Maya: Wenn wir Objekte im Inneren beeinflussen müssen, wird
eine Maya in erster Linie die Attribute dieser Objekte beeinflussen. Diese Attribute werden oft durch den Objektnamen,
gefolgt von einem Punkt und dann schließlich durch den Attributnamen selbst bezeichnet . Jedes Objekt in Maya ist eigentlich ein Knoten. Sie können dies innerhalb des Notiz-Editors anzeigen, aber ich werde Ihnen ein vereinfachtes Diagramm zeigen. Jeder Knoten verfügt über mehrere Attribute, um ihn wieder zu verbinden. Wir können auf diese Attribute in unseren Skripten zugreifen, indem Sie den Objektnamen dot und den Attributnamen verwenden. Aber auf dem Knoten erscheinen die Objekte, die als Plugs bezeichnet werden. Plugs können Wert auf sie gesetzt haben, und das ist, was wir oft mit Skript tun. Wir können sie auch Schlüssel, aber wir können auch Verbindungen zwischen einem Knoten,
Stecker und einem anderen erstellen . So interagieren die meisten, wenn nicht alle Objekte innerhalb der Maya miteinander. Es ist auch, wie wird in erster Linie mit Objekten innerhalb einer Maya interagieren. Indem Sie diese Werte ändern, verwenden Sie unsere Skripte
10. Python 2 vs Python 3: in diesem Video werden
wir über die zwei verschiedenen Python Versionen im Wild gehen. Die beiden aktuellen Versionen von Python, Our Fight on 2.7 und Python 3.5 Python 2.7 ist die neueste in der Python zu Siri und Python 3.5 ist die neueste Version in der Python drei. Siris Fight on two wird keine aktive Entwicklung außerhalb einfacher Sicherheitskorrekturen mehr sehen und wird in den nächsten Jahren ein Ende des Lebens erhalten. Die Python Foundation hat beschlossen, dass Python drei ein Weg nach vorne ist. Nein, warum gibt es verschiedene Versionen von Python? Nun, das liegt daran, dass Python zu und Python drei wie viele brechende Änderungen zwischen ihnen sind. Dies bedeutet, dass Python zu Code nicht garantiert unter Python drei ausgeführt wird. Darüber hinaus hat
Python drei viele neue Funktionen, die von Python nicht verwendet werden können. Dies bedeutet, dass,
obwohl die Sprache zwischen Python und Python drei sehr ähnlich ist und Sie in den meisten Fällen nicht einmal den Unterschied erkennen können, es bedeutet, dass Python zu und Python drei nicht garantiert
miteinander kompatibel sind . Meine ursprünglich mit Python in meiner 8.5 mit Python Version 2.4 gestartet Punkt drei in My A 2000 und neun, das Upgrade der Python-Version 22.5 und Maya 2011. Sie wurden erneut auf 2.6 aufgerüstet. Schließlich haben sie
in meinem 2014 Python aktualisiert, um auf 2.7 zu kämpfen. Dies ist die neueste Version von Patan in der Python zu Siri und wird wahrscheinlich die
Lost sein . Die visuelle Effektbranche hat sich entschieden, Python 2.7 so lange wie möglich zu halten. Dies liegt an erheblichen Investitionen in das Python-to-Ökosystem, das schwer auf Python drei zu portieren wäre. Die VFX-Plattform hat entschieden, dass Bite on 2.7 eine Version von Python ist, die alle Software verwenden
sollte. Deshalb, wenn wir für Maya entwickeln, verwenden
wir Python 2.7
11. So speicherst deiner Skripte: -Video. Ich werde darüber gehen, wie man das Skript speichert und dann langsam oder zurücklehnen, damit wir zum
Dateisicher-Skript gehen . Dies bringt den Dokument-Browser, die Dokumente an verschiedenen Orten auf verschiedenen Betriebssystemen vor
Windows zerstört . Es steht unter Dokumenten. Maya, du, meine Abneigung und Drehbücher. Wenn Sie Mac OS oder Lennix verwenden, werde
ich sicherstellen, dass sie im Video erwähnt haben. Ich werde das Skript als Objekt umbenennen speichern, er Beispiel dot pie und drücken Sie eine andere speichern. Speichern Sie das Skript. Ich kann das loswerden. Jetzt, da das Skript weg ist, kann
ich sagen Datei, Abstimmungsskript, Finden Sie es wieder und es in die aktuelle Registerkarte geladen. Alternativ kann
ich das Dateiquellskript sagen, und es lädt es irgendwie ein. Was ich tun werde, ist, dass sie es sofort ausführen. Dies ist ein Ideal, weil, wie Sie sehen können, es alle Namen meiner Objekte geändert hat. Und es wollte das nicht In unserem nächsten Video werde
ich überlegen, wie wir unser Skript in Funktionen komponieren können, die nicht sofort ausgeführt werden,
sondern für uns leicht anrufen können. Eine letzte Möglichkeit, ein Skript aufzurufen, besteht darin, dass es in einem Skript-Verzeichnis gespeichert ist, Sie können sagen, import object rename er Beispiel, und was es tun wird, wird das importieren, genau wie die Maya-Befehlsbibliothek reimportiert, und jetzt Das Skript wurde in Maya importiert. Aber leider führt
Importieren auch ein Skript aus,
was dazu führt, dass es erneut ausgeführt wird. In unseren nächsten Videos werden
wir darüber nachgehen, wie man es komponiert und Funktionen, die nur ausgeführt werden, wenn sie aufgerufen werden.
12. Projekt 2: Der Objektumriss: durch dieses Projekt wird lernen, wie man eine Controller-Bibliothek mit niedlich zu erstellen. Unsere Controller-Bibliothek wird flexibel sein und Thumbnails unterstützen. Wir können jedes der Objekte importieren, die wir speichern, und wir können auch alle neuen Objekte erstellen, die wir wollen. In diesem Fall werde
ich das als Test sagen, und wenn ich auf Speichern klicke, werden
Sie sehen, dass es innerhalb unseres Fensters erscheint. Wir haben gelernt, wie man Daten als Jason und Dateien speichert und sie wieder in Are You? Ich Wir werden mit niedlichen von pi-Seite zur Verfügung gestellt innerhalb meiner 2017 und Tortenseite. In früheren Versionen von Maya, werden
wir über die Unterschiede zwischen niedlichen vier und niedlichen fünf gehen, sowie die Unterschiede zwischen Kuchen süß und Kuchen Seite und Kuchen, Nette fünf und Kuchen Seite, auch. Ich werde auch über eine beliebte süße Bibliothek gehen, die von Disney,
WETA,
Sony Imageworks und mehr verwendet WETA, wird. Es wird uns helfen, Code zu schreiben, der sowohl in Maya 2017 als auch in früheren
Versionen von Maya verwendet werden kann . Im nächsten Video werde
ich eine kurze Einführung in niedlich auf machen. Die verschiedenen Versionen sind niedlich im Inneren der verschiedenen Versionen von Maya
13. Hilfe finden: Bevor wir weitermachen, möchte
ich Ihnen zeigen, wie Sie Informationen zu jedem der Maya-Befehle erhalten können. Innerhalb von Maya können
Sie zum Hilfe-Menü
gehen, zu meinen Scripting-Referenzen gehen und auf die Python Befehlsreferenz klicken. Dadurch wird die Autodesk-Dokumentation geöffnet, und alle einzelnen Befehle werden aufgelistet, die Maya zu bieten hat. Ich möchte den übergeordneten Befehl betrachten, und hier kann ich sehen, dass der Elternbefehl zwei Objekte das Kind und das Elternteil
und eine andere Reihe von Parametern nimmt , die nach unten scrollen. Wir können jeden der Parameter mit diesem langen Namen und einem kurzen Namen sowie einem Typ sehen. Es rollt noch weiter herunter. Wir beschränkten dokumentierte Beispiele, wie man es wieder in Maya benutzt. Wir können auch Hilfe innerhalb des Skripteditors finden. Zum Beispiel, wenn ich Hilfe zum übergeordneten Befehl möchte, kann
ich es mit der rechten Maustaste auswählen und zu schnell gehen. Hilfe. Dies listet alle Flags mit den kurzen Namen und den langen Namen auf. Traditionell kann
ich auch die automatische Vervollständigung aktivieren. Ich kann zu diesem Menü gehen und ich kann kommen bei Fertigstellung und zeigen Tooltip-Hilfe aktivieren. Jetzt, wenn ich tippe, werden
wir versuchen, automatisch für mich zu vervollständigen. Und wenn ich in einem Befehl bin, wird
es alle Flags auflisten, die es braucht. Persönlich mag
ich dies zu deaktivieren, weil es innerhalb von Maya ziemlich beschäftigt werden kann, obwohl ich es in einem Kuchencharme aktiviert lasse. Wenn Sie jemals die Dokumentation online geschlagen haben, kann eine große Hilfe sein. Mein hat geholfen. Features sind nur auf die Maya-Bibliotheken beschränkt, aber Sie müssen oft Informationen über Python selbst nachschlagen. Die Python Dot Org-Website hat eine großartige Dokumentation über alles in Python, zum Beispiel ist
dies die Seite und alle Variablentypen. Sie können auch auf die Hilfe innerhalb meiner zum Beispiel zugreifen, wenn ich Hilfe ausführe und ihm ein Objekt gebe, wird
es alle Informationen über diesen Objekttyp ausdrucken. In diesem Fall suche
ich in der Hilfedokumentation nach einer Liste. Manchmal haben Sie bereits ein Objekt definiert, und Sie möchten nachschlagen, was Sie mit diesem Objekt tun können. In diesem Fall können
Sie den Befehl de IR verwenden. Der Befehl D I R wird Ihnen eine Liste aller Objekte und Attribute geben, die dem Objekt zugeordnet sind
, um es zu geben. in diesem Fall sehen, Wer kannin diesem Fall sehen,dass das Listenobjekt, das der Variablen A zugewiesen ist, alle diese Funktionen ? Wenn es und wir sehen können, dass wir es anhängen können, können
wir es zählen, Index
einfügen, etcetera. Beide Funktionen sind sehr praktisch, da Sie Informationen im laufenden Betrieb nachschlagen können, während Sie ein Skript schreiben.
14. Die Liste: um unseren Kurs zu beginnen, müssen
wir eine Liste der Elemente erhalten, die in meiner Szene operieren werden. Ich muss Ketten verbinden. Ein Kubaner, eine Gruppe, aber du könntest alles haben, was du willst. Zuallererst müssen
wir die Maya-Befehls-Bibliothek wieder abrufen. Wer sagen wird, von Maya-Importgemeinden innerhalb der Befehls-Bibliothek ist eine Listenfunktion. Wenn wir das ausführen und ich das Outfit ausdrucken werde, können
Sie sehen, dass es uns eine Liste aller Objekte in der Szene gibt. Am Ende können
Sie die Objekte sehen, von denen wir reden, aber wir bekommen auch eine Reihe von Objekten, die mir eigentlich egal sind. Das sind versteckte Objekte im Inneren von Meyer. Was wir also tun können, ist das ls Objekt zu füllen, um nur die Auswahl zu verwenden, die wir wollen. Lassen Sie uns also die Dokumentation für den Befehl L s nachschlagen. Wenn Sie darauf doppelklicken und dann mit der rechten Maustaste klicken, können
Sie auswählen. Komm schon, Documentation. Dadurch wird der Browser für den Befehl L S geöffnet. Hier unten können
Sie den Selektionsparameter sehen, und wenn ich anklicke, wird
es uns zur Dokumentation für den Selektionsparameter bringen. Sie können sehen, dass der lange Name Auswahl ist und der Kurzname SL ist. Es ist vom Typ Boolean, was bedeutet, dass es entweder wahr oder falsch sein könnte. Und wenn es wahr ist, werden Objekte aufgelistet, die aktuell ausgewählt sind. Also zurück in Maya jetzt geben wir dem Befehl L s den Auswahlparameter. Also sagen wir, Auswahl ist gleich wahr. Und jetzt können Sie sehen, dass es nur das Objekt auflistet, das ich in diesem Fall Joint eins ausgewählt habe. Also lassen Sie uns dies innerhalb einer Variablen speichern. Sie werden sagen, die Auswahl ist gleich Befehl. Zarrella Auswahl ist gleich wahr. Aber was ist, wenn wir nichts ausgewählt haben? Wenn ich jetzt ausdrucke Auswahl ohne etwas ausgewählt, Sie können sehen, dass wir nur eine leere Liste bekommen, weil nichts ausgewählt ist. Und wenn ich es mit etwas Ausgewähltem wiederhole, bekommen
wir dieses Objekt zurück. Wenn wir nichts ausgewählt haben, möchte
ich etwas anderes machen. So werden wir auf die s Aussage im nächsten Video vorgestellt
15. Wenn die Anweisungen: in diesem Video erfahren
wir mehr über die if-Anweisung, die if-Anweisung. Sagen wir einfach, dass, wenn etwas wahr ist, etwas anderes
tun und die Syntax ziemlich einfach ist. Wir sagen, ist, wenn die Aussage wahr ist, nur dann wird dies wiederholen und Sie können sehen, dass die Dinge, die wir unsere eingerückt in
Python tun werden , dies ein Bereich genannt wird. Der Umfang dieser Logik ist dies. Wenn Anweisung, alles unter der sicheren Anweisung, die eingerückt ist, wird nur ausgeführt. Wenn diese if-Anweisung wahr ist und wenn sie nicht eingerückt ist, dann wird sie unabhängig von ausgeführt. Ob dies, wenn Aussage wahr ist, Also zurück in Mayer, schreiben
wir unsere if-Anweisung. Also sagen wir, wenn die verliehene Auswahl gleich Null ist, erhalten
wir eine neue Auswahl. uns zuerst Schauen
wiruns zuerstdas doppelte gleiche Symbol an, das wir verwendet haben. Das einzelne Gleichheitssymbol bedeutet, dass wir etwas zuweisen. Das doppelte Gleichheitssymbol bedeutet, dass wir etwas im Wert vergleichen. Also werden wir sagen, wenn die Länge der Auswahl Null ist, dann lassen Sie uns eine neue Auswahl bekommen. Also sagen wir Befehl sortieren, ich werde zwei Parameter verwenden, die ich in
Kürze einführen werde . Ich werde sagen, Dag ist wahr und lang gleich. Wahr. Wenn Sie zur Dokumentation zurückkehren und sich lange ansehen, können
Sie sehen, dass es einen booleschen Wert benötigt, und Sie können sehen, dass, wenn es wahr ist, vollständige Potnamen für Dag-Objekte zurückgibt. - Nein. Warum mache ich das? Zurück in Maya,
gibst du zu, dass ich Joint eins habe und vier beigetreten bin. Aber unter Joint One habe ich auch noch eine gemeinsame vier Art wie eine Arbeit, wenn du zu John musst. Und wenn du „Hey John „sagst, versichert
keiner von ihnen, in welchen man reagieren sollte. Maya, Wenn ich sagen sollte, dass er vier beigetreten, beide gemeinsamen Vieren versuchen und reagieren, und es wird einen Fehler verursachen. Der lange Parameter bedeutet, dass wir die vollen Töpfe zu dem Objekt bekommen, so dass wir vier verbunden werden
und wissen, dass es sich um ein Kind-Joint handelt. Wo ist dieser Joint? Vier hat kein Elternteil. Sehen wir uns nun den Dag-Parameter zurück in der Dokumentation an. Wir können bis zu Dag scrollen und Sie können sehen, dass es tatsächlich Dag Objekte genannt wird. Aber ich habe eine kurze Form gag diese Liste Dag Objekte verwendet, wenn irgendein Typ, was das bedeutet, ist, dass wir nur Objekte erhalten, die im Umriss
er und keine der versteckten Objekte innerhalb von Maya aufgelistet sind . Also, wenn ich jetzt die Auswahl danach drucken, wenn Aussage bemerkte ich, dass meine Druckaussage außerhalb der if-Anweisung ist, das heißt dort, ob oder nicht, wenn gerade Männer läuft dieser Druck wird noch heute Abend laufen. Wenn ich das ausführe, können
Sie sehen, dass es nur die Auswahl verwendet, die ich habe, weil ich mehr als ein Objekt ausgewählt habe. Diese Aussage ist falsch. Wenn ich nichts auswähle und jetzt laufe, können
Sie sehen, dass es jedes Objekt in der Gliederung aufgeführt ist. Äh, das liegt daran, wenn die Anweisung falsch ist und nicht ausgeführt wird, liegt
dies daran, dass die if-Anweisung wahr ist. Die linke Seite der Auswahl ist Null. Daher erhalten
wir die neue Auswahl, die alles in der Gliederung auflistet. Sie können aber sehen, dass die Reihenfolge der Liste für uns nicht besonders nützlich ist. Das Problem ist, dass, wenn wir umbenannt vier beigetreten, aber es hat den vollen Teil, der ein beigetreten vier hat. Das ist in Ordnung. Aber wenn wir Joint eins umbenennen. Die Haltung schloss sich vier an. Jetzt ändert sich. Dies bedeutet, dass wir nicht mehr finden können gemeinsame für. Deshalb müssen
wir es zuerst mit den Kindern und den Eltern am Ende sortieren. Zurück in Maya, was ich tun werde, ist, dass ich die Auswahl sortieren werde. Also vor dieser Druckanweisung werde
ich sagen, dass die Auswahl nicht sortiert wird, weil die Auswahl Liste ist und eine Sortiermethode hat. Wenn ich jetzt die Auswahl ausdrucke, können
Sie sehen, dass es die Liste tatsächlich sortiert ist, aber das ist sie alphabetisch sortiert. Das ist das Standardverhalten für die Sortierung. Das ist für uns nicht nützlich. Stattdessen müssen
wir Sort mitteilen, dass die linke Seite der Objekte verwendet wird. Dies liegt daran, dass die Kinder einen längeren vollständigen Namen haben werden als die Eltern, weil je tiefer unten, zum Beispiel Joint Vier Joint One in seinem Teil enthalten wird, Joint One nichts haben wird, weil es die oberste ist Objekt, so dass wir die Auswahl nicht sortieren zu verwenden. Die Länge ist der Schlüssel zum Sortieren, also sagen wir, Schlüssel ist gleich zu verleihen. Und jetzt, wenn Sie dies ausführen, können
Sie sehen, dass Objekte von kürzesten bis längsten wieder sortiert. Das ist nicht das, was wir wollten. Wir wollten das Gegenteil. Wir können Sort auch anweisen, es umzukehren. Also sagen wir umgekehrte gleich wahr. Und jetzt, wenn Sie es ausführen, können
Sie sehen, dass die längsten Objekte am Ende und die kürzesten Objekte am
anderen Ende sind . Das bedeutet, dass die Kinder zuerst und dann auf die Eltern gehandelt werden, wodurch die Teile der Kinder nicht beeinträchtigt werden. Im nächsten Video gehen
wir über vier Schleifen und wie wir alle Elemente in der Liste durchlaufen und
etwas mit ihnen machen können .
16. für Schleifen: in diesem Video wird in die vier Schleife eingeführt werden. Die vier Schleife sagt daher, Punkt in meiner Liste. Tun Sie noch einmal etwas mit diesem Artikel. Sie können sehen, dass die Logik eingerückt ist. Dies bedeutet, dass es nur im Bereich der vier Schleife ausgeführt wird. Alles außerhalb der Schleife ist uneingerückt, weil sie außerhalb der vier Schleife laufen. Die Syntax der vier Schleife sagt vier Element, wobei Element der Name für temporäre Variable ist und Element alles aufgerufen werden könnte, was Sie in meiner Liste wollen, wo meine Liste eine Liste ist, die Sie durchsehen
möchten Wir werden etwas mit diesem Element tun Nein, zurück in Maya werden wir tun, ist, dass wir nur durch jedes Element in unserer
Auswahl gehen und den kurzen Namen für diesen Artikel finden. Also werden Sie sagen, vier werden J kurz für Objekt in der Auswahl sein, was die Liste ist, die wir haben. Alle Objekte sind ausgewählte Objekte. Wir werden den Druck speichern O B J. Genug. Ich leite das hier. Sie können sehen, dass es unsere Namen ausdruckt. Die Namen sind an der Spitze ziemlich lang. Sie haben dieses Rohrsymbol, um zu zeigen, dass sie dieses Rohrsymbol haben, um den Teil des
Objekts anzuzeigen . Was wir wollen, ist, die Saite aufzuteilen. Warum das Pfeifensymbol? Glücklicherweise ist
O B J ein String-Objekt, so können wir sagen, drucken O. B. J nicht geteilt, und der Split-Vorgang funktioniert standardmäßig auf Leerzeichen. Aber wir müssen ihm sagen, dass er stattdessen auf dem Pfeifen-Symbol arbeiten soll. Also geben wir ihm das Pipe-Symbol, Insider-Anführungszeichen, und wir führen das aus. Jetzt können Sie sehen, dass jedes Objekt jetzt Liste von jedem Wort ist, das durch das Pipe-Symbol aufgeteilt wird. Aber wir wollen nicht jedes einzelne Wort. Wir wollen nur das Verlustwort. Da es sich um eine Liste handelt, wissen wir bereits, wie man auf Objekte zugreift, verwenden
wir die eckigen Klammern und geben ihm eine Zahl. Aber das Problem ist, dass jede dieser Listen eine variable Länge hat. Einige von ihnen sind nur ein Objekt lang und einige von vier Objekten lang. Glücklicherweise lässt
Python uns rückwärts durch eine Liste iterieren, eine Quelle Wenn Sie
also minus eins angegeben haben, bedeutet
dies, dass wir das sehr verlorene Objekt innerhalb der Liste nehmen werden. Wenn du das jetzt
läufst, kannst du sehen, dass wir nur ein Wort haben. Und das Wort ist das Verlustwort innerhalb der Liste. Wir werden dies nehmen und wir werden es dem variablen Kurznamen im nächsten Video zuweisen. Wir werden über die Spülung dieser vier Schleife suchen, indem wir diese Objekte nach ihrem
Typ umbenennen .
17. Während der Schleifen: Ich möchte hier eine Pause machen und über eine andere Art von Schleife mit Wild Loop sprechen. Die while-Schleife ist der if-Anweisung und der for-Schleife kombiniert sehr ähnlich. Was es tut, ist, dass es sagt, wenn diese Aussage wahr ist, halten Sie diese Aktion, bis die Anweisung nicht mehr wahr ist. Darüber hinaus können
Sie die while-Schleife oder sogar eine Vier-Schleife durch Sache Break sagt Kampf weiter aus der Schleife zu brechen, die sich derzeit in befindet. Warum schleift ein leistungsfähiges für, wenn wir nicht wissen, wie lange in Aktion laufen sollte. Aber wir wissen, wann wir aufhören wollten, werden
wir später im Kurs die While-Schleifen abdecken. Aber ich dachte, es wäre nützlich, es jetzt zu erwähnen, damit Sie sich dessen bewusst sind. Wenn Sie sie in einer der Dokumentationen sehen
18. Objektarten finden: in diesem Video werden
wir versuchen, die Objekttypen von jedem der Elemente in unserer Liste zu erhalten. Wir beginnen, indem wir sagen, Druckbefehle Objekttyp des Objekts in dieser Liste. Und wenn wir dies mit diesem Würfel ausführen ausgewählt, wird
es uns wieder Transformation geben. Jetzt fragen Sie vielleicht, warum ist es eine Transformation, wenn es eindeutig ein Netzobjekt ist? Nun, in der Kontur er, wenn wir mit der rechten Maustaste in, sagen Formen, können
Sie sehen, dass jede Form tatsächlich eine Transformation und eine Form ist. Dies ist nur eine Maya repräsentieren ihre Objekte. Also lasst uns die Formen vorerst loswerden. Und wir müssen tatsächlich die Kinder von der Transformation finden und dann den Objekttyp von den Children
abholen . Also lasst uns das klären und die Kinder holen. Wir können dies mit einem Befehl tun, coolsten Verwandten, und lassen Sie uns diese innerhalb der Variablen namens Children innerhalb der Liste Verwandten speichern. Geben wir ihm das Objekt, für das wir die Verwandten bekommen wollen. Dann lassen Sie uns sagen, dass wir nur die Kinder wollen. Lassen Sie uns auch sagen, dass wir den vollen Topf für jedes der Kinder wollen. Wenn ich das jetzt durchführe und ich Kinder ausdrucken lasse, damit wir sehen können, was wir bekommen. Ich leite das hier. Jetzt können Sie sehen, dass diese Schattierungsgruppe, die ausgewählt ist, keine untergeordneten Elemente
aufweist. Aber wenn ich P Q
One wähle , können
Sie sehen, dass wirklich die P Cube Form eins statt. Wenn ich diese leere Gruppe wähle, können
Sie sehen, dass
wir anstelle der Liste das Nonnenobjekt erhalten. Das ist irgendwie ärgerlich in Maya, denn obwohl der Befehl Liste sagt, wenn es nichts hat, um uns zurückzugeben, gibt
es uns keine. Dies bedeutet, dass all unser Code überprüfen müsste, ob es keine oder eine Liste ist, aber wir können einen einfachen Trick machen. Am Ende dieses Befehls können
Sie einfach oder und in eckige Klammern eingeben. Was wir sagen, ist, dass, wenn Liste Verwandte leer oder keine ist, dann machen wir es einfach eine leere Liste, die durch die beiden eckigen Klammern bezeichnet wird. Egal, was wir tun, wir sind immer sicher, dass Kinder von der Objekttypliste sein werden. Lassen Sie uns also den Druck Children loswerden und den Objekttyp vom Kind abholen. Das Problem ist, Sie den Objekttyp des Kindes nur abrufen möchten, wenn es das einzige Kind unter dem übergeordneten Element ist.
Daher verwenden wir eine if-Anweisung. Wir werden sehen, ob die Leihgabe aus der Kinderliste erneut gleich eins ist. Beachten Sie, dass verwendet wurden, um Symbole zu vergleichen, anstatt ein gleiches Symbol zuzuweisen, wir erhalten das Kind aus der Liste der Kinder. Ich bekomme das erste Kind, das hoffentlich auch nur das einzige Kind sein wird, indem ich nochmals Null sage. Erinnere dich an die Liste. Beginnen Sie mit dem Zählen von Null statt eins, und wir werden sagen, Theo BJ Typ Variable ist gleich Befehlen. Objekttyp aus dem untergeordneten Objekt. Andernfalls werden
wir sagen, dass LBJ-Typ gleich Befehlen ist ein Objekttyp aus dem übergeordneten in diesem Fall, O B J. Hier können
Sie die else-Anweisung sehen. Die else -Anweisung wird ausgeführt, wenn die if-Anweisung nicht wahr ist. Wenn also die Länge der Kinder kleiner oder mehr als eins ist, führen
wir diese Anweisung stattdessen hier aus. Aber wenn die Länge der Kinder eins ist, führen
wir das aus. Dies ermöglicht es uns, Bedingungen für die Ausführung des Codes auf der Grundlage von Werten zur Laufzeit einzurichten. Nun, da wir den Objekttyp haben. Wir können es ausdrucken und sehen, dass, wenn ich den Würfel auswähle, ich Mesh bekommen werde. Und wenn ich das Gelenk auswähle, werde ich Joint bekommen. Und wenn ich wähle, wird
die leere Gruppe transformieren, weil das ist, was es ist. Im nächsten Video werden
wir gehen, wo komplexere if-Anweisungen den Objekttyp verwenden, um zu bestimmen, was die Objekte umbenannt werden sollen.
19. Fans, Elif und Else: -Weg haben den Objekttyp. Lassen Sie uns herausfinden, was unser Suffolk sein sollte, damit wir ein paar if-Anweisungen verwenden können, um dies herauszufinden. Also können wir sagen, wenn OVI J Type wieder gleich mesh ist, beachten Sie das doppelte Gleichheitssymbol anstelle des einzelnen. Nun sagen, Suffix ist gleich Geo. Andernfalls, wenn der Objekttyp gleich dem Joint ist, , sagen Sie,dass das Suffix gleich dem Joint ist. Dies ist das LF-Schlüsselwort wie das Schlüsselwort else. Es wird nur ausgeführt, wenn die if-Anweisung falsch ist. Aber im Gegensatz zur else-Anweisung, bietet
es eine weitere Anweisung zu überprüfen. In diesem Fallsagen
wir, sagen
wir, wenn der Objekttyp Gitter ist, dann wird der Suffolk Geo sein. Wenn der Objekttyp nicht MASH ist, werden
wir die nächste Überprüfung durchführen, um zu überprüfen, ob der Objekttyp ein Joint ist. Wenn es nicht gemeint ist, dann fahren wir weiter die Kette runter. If und l Aussagen. Im Anschluss an diese haben wir eine andere LF und Sie speichern Objekttyp ist gleich Kamera. Ich möchte eigentlich nichts tun, wenn es eine Kamera ist, also kann ich sagen, drucken überspringt Kamera und ich kann sehen, dass es weitergeht, was wir mit continue machen, ist, dass wir der Vier-Schleife
sagen zum nächsten Element weiterzufahren und keine der anderen Logik in diese vier. Suchen Sie nach dem aktuellen Element. Als nächstes haben
wir die else-Anweisung, die nur ausgeführt wird, wenn alle anderen Aussagen in diesem, wenn LF und Elstree fallen, sagen
wir. Wenn keine dieser anderen Aussagen wahr ist, ist
der Suffolk gleich Gruppe. Schließlich sagen
wir, dass der neue Name gleich dem Kurznamen plus Unterstrich plus Suffix ist, weil sowohl Kurzname als auch Suffolk unsere Strings, wir können sie mit dem Plus-Operator hinzufügen, und dies wird eine Zeichenfolge erstellen, die ihnen. Wenn ich sage, drucken Sie Ihren Namen und führen Sie es, wir können sehen, dass die P Cubed One wird in peaky one g R P umbenannt werden weil es eine Gruppe ist. Aber wenn ich mit peaky, gewann die repräsentiert ein Kubaner hier und dann laufen diese, können
wir sehen, dass es in Geo umbenannt werden. Nun lassen Sie uns die eigentliche Umbenennung recon sagen Befehl sind umbenennen und wir geben ihm den alten Namen in diesem Fall geben Ihnen den vollen Park
, der von O.
B.
J.dargestellt wird B. J. und wir geben ihm den neuen Namen das ist Retreat gerade konstruiert. Also, wenn ich das jetzt ausführe, können
Sie sehen, dass der PQ in einen peaky einen Unterstrich umbenannt wurde Geo Und wenn ich d ausgewählt habe und mich es rückgängig machen
lassen Und jetzt, wenn ich es ausführe, können
Sie sehen, dass der Peaky hat das Suffix Jedes Gelenk hat auch das Suffix überhaupt Gruppen haben auch die richtigen Suffolk, aber wie gesagt, keine der Kameras wurden auf diesem betroffen ist genau das, was wir wollten.
20. PyCharm einrichten: Sache wird ein kleines Video sein, wie man Kuchen Charme installiert und es richtig für
Ihr System eingerichtet . Auf der Pfeife Charme Edie Website. Klicken Sie auf Download und wählen Sie Ihre Plattform aus. Ich bin auf Windows und wir werden nur die Windows-Version herunterladen. Sobald sein Kinderwagen geöffnet ist, klicken Sie auf. als Nächstes das Verzeichnis aus, Wählen Sieals Nächstes das Verzeichnis aus,in dem es sich befinden soll. Der Standardwert sollte in Ordnung sein. Der Sex-Teil ist der Wichtige. Ich werde Sie bitten, Ihre Python-Version zu wählen. Stellen Sie sicher, dass Fight auf 2.7 und nicht Python 3.5 installiert ist. Meine Verwendungen beißen auf 2.7, daher ist es wichtig, dass wir mit ihm synchron bleiben. Sobald estan einfach auf Weiter klicken und dann einfach mit dem Rest des Installers fortfahren wird eine Weile
dauern, um zu installieren. Und wenn es fertig ist, sollten
Sie Kuchen Charme bereit zu gehen haben. In diesem Video werde
ich darüber gehen, wie ich mich für Maya einzurichten Charme et. Wenn Sie einen anderen Editor verwenden, werde
ich die gängigen Editoren in einem anderen Video und wie Sie sie mit Maya einrichten. Aber für jetzt, konzentrieren
wir uns auf Tortendiagramm. Zuallererst müssen
wir den Python Interpreter einrichten. Wenn Sie zu konfigurieren und Einstellungen gehen oder wenn Sie bereits Code geöffnet haben, können
Sie zu den Dateieinstellungen wechseln. Wir öffnen das Fenster mit den Standardeinstellungen. Wenn Sie auf der linken Seite zu Project Interpreter gehen, wird dieses Panel mit einem Dropdown-Menü geöffnet, in dem Sie verschiedene
Python-Versionen auswählen können . Nun, wir wollen, ist stattdessen die Maya Python Version verwenden. Also werden wir auf dieses kleine Zahnradsymbol klicken und sagen, Lokale
hinzufügen. Wir müssen dahin navigieren, wo Maya unter Windows installiert ist. Dies befindet sich auf Ihrem C-Laufwerk. Was auch immer Sie Ihre Windows unter Programmdateien installiert haben. Autodesk, meine 2017 gewesen und es wird ein Objekt Aufruf Maya Pie unter Mac OS und Linux Axis wird an
verschiedenen Orten sein , die auf dem Video gezeigt werden. Wenn Sie nach unten scrollen, finden
Sie den Maya-Kuchen und Sie können ihn auswählen, und dies wird Kuchen Charme sagen, meine eine fromme It's Python Version zu verwenden. stattdessen Gehen Siestattdessenzurück zum Zahnradsymbol und klicken Sie auf Mawr. Klicken Sie auf den Maya Pie, den wir gerade hinzugefügt haben, und drücken Sie den Bleistift. Nennen wir dies die Maya 2017 Eitan, damit wir wissen, welche Sie verwenden. Schließlich müssen
wir die automatische Vervollständigung in einem Tortenanhänger einrichten. Wenn Sie meine A 2015 und unter dem Deck es mit dem Auto Complete Schiffe mit Meyer. Wenn Sie My 2016 oder Maya 2017 verwenden, müssen Sie die automatische Vervollständigung Bibliothek auf meiner
Aufnahme-Seite herunterladen . Die Dev-Kits sind aufgelistet, also lassen Sie uns den Maya 2017 Download verwenden. Wir klicken auf den Link und führen uns durch den Autodesk App Store im Autodesk App Store. Sie können es herunterladen, indem Sie auf der rechten Seite gehen und auf Download klicken. Wenn das Herunterladen abgeschlossen ist, wird
Ihnen eine ZIP-Datei für Ihr Betriebssystem angezeigt. Innerhalb der ZIP-Datei wird die taube Kinderbasis sein. Sie müssen Ihr Maya-Installationsverzeichnis erneut finden. Dies wird auf Windows Undersea sein. Es wird in Ihren Programmdateien unter Autodesk Maya 2017 sein und alles, was Sie tun müssen, ist,
alle diese in dieses Verzeichnis zu extrahieren , nur in die Route zu diesem Verzeichnis, nicht in ein Unterverzeichnis. Wenn Sie Mac Os oder Lennix wieder verwenden, wird
der Topf anders sein, aber ich werde es im Video erwähnen, ein so extrahiert. Öffnen Sie Ihre Kuchen Charm-Einstellungen wieder auf ein kleines Symbol unten rechts geklickt? Sie werden mit einer Reihe von Töpfen für Python präsentiert. Wir werden einmal hinzufügen oder erneut auf Plus klicken, wir gehen zu sehen und wir werden zu den Verzeichnissen navigieren, die wir gerade extrahiert haben. Also gehen wir zu Autodesk meine 2017 und wir gehen zum Death Kit in der tauben Kit. Gehen Sie zu anderen ursprünglichen Extras und Vervollständigung, klicken Sie
dann auf Kuchen, die P Y. Und dann fügen Sie einfach dieses Verzeichnis hinzu, indem Sie auf OK klicken, schließlich einfach auf OK klicken, wieder OK
drücken und drücken. Bewerben Sie sich jetzt. Pie Charme wird wissen, eine Maya-Python anstelle Ihrer System-Kreiszeit zu verwenden, und wir werden in der Lage sein, automatisch zu vervollständigen, während Sie tippen. Also lassen Sie uns diese Einstellungen schließen und ich werde auf den Hintergrund klicken, damit es meine
Zeit nicht in Anspruch nimmt und wir werden ein Projekt öffnen. Wir gehen zu Ihren Dokumenten, in denen Ihre Maya-Skripte wiederhergestellt wurden. Dies wird auf Mac OS oder Lennox anders sein, aber wieder werde ich darauf achten, es zu erwähnen. Wir gehen nach Maya. Du bist meine Abneigung. 2017 und wir öffnen das Skript-Verzeichnis. Ich klicke auf, OK, um es zu öffnen. Ich werde meinen Tortenbegriff erweitern. Und für den Rest dieses Kurses werde
ich Pi-Charme und Präsentationsmodus verwenden, so dass Sie das meiste nicht sehen werden Sie ich Aber für jetzt, wenn ich dies erweitern, können
Sie unser Objekt umbenennen oder Beispiel dort drüben sehen. Wenn ich darauf doppelklicke, öffnet sich
es und Sie können unseren ganzen Code von Maya hier drinnen sehen.
21. Funktionen: wie ich im vorherigen Beispiel gezeigt habe. Immer wenn ich ein Skript durch Klicken auf das Quellskript und das Skript auswähle oder es
importiere, wird
es sofort umbenannt oder wieder gesehen, was nicht das ist, was ich will. Also lass mich das rückgängig machen und zurück zum Pfeifen-Charme in Torte gehen. Tom, du kannst all unseren Code sehen, den wir zuvor geschrieben haben. Was passiert ist, wenn Maya-Importe oder -Quellen ein Skript sind, wird
jede einzelne Codezeile von oben nach unten laufen. Dies ist nicht das, was wir wollen, weil Sie nicht möchten, dass es ausgeführt wird, wenn wir importieren. Das bedeutet, dass wir unser Skript nie einfach wiederverwenden können. Also, was wir tun werden, es ist alles für Code in einer Funktion, um einen Funktionstyp Tod für definieren zu erstellen. Und dann wird der Funktionsname in diesem Fall umbenennen und wir geben. Lehrling E ist zu sagen, dass es eine Funktion ist. Schließlich werden
wir einen Doppelpunkt setzen, und wie alles andere in Python wird
der Bereich durch Einrückung bezeichnet. Also wählen wir alles, was wir zuvor geschrieben haben, und drücken Tab Tabal eingerückt es unter unserer Definition aus der Funktion. Das bedeutet, dass all diese Dinge nur ausgeführt werden, wenn die Funktion ausgeführt wird, unsere Funktion wird durch das Wort death for define erstellt. Dies ist der Name der Funktion umbenennen Die Klammern sind, was wir verwendet, um zu zeigen, welche Parameter sind funktionale nehmen In diesem Fall nimmt
unsere Funktion keine Parameter. Also werden wir einfach den leeren Prinzen sehen, gefolgt von dem Doppelpunkt und dann von unserem ganzen Code zurück in Maya. Wenn wir dies erneut importieren, passiert diesmal
nichts. Aber wir wissen jetzt, dass unser Objekt umbenennen er Beispiel eine Bibliothek mit der umbenannten Funktion darin ist. Also, wenn wir es ausführen, wird
es sagen, dass Modellobjekt keine Attribute umbenennen hat. Das liegt daran, dass Python versucht, effizient zu sein. Er weiß es. Haben Sie bereits ein Objekt importiert, um unser Beispiel umzubenennen, so versuchen Sie es nicht erneut zu importieren. Stattdessen müssen wir ihm sagen, dass er es neu laden soll. Wir werden sagen, neu laden, Objekt umbenennen er Beispiel. Ich weiß nicht, wie es dir geht, aber das ist ein ziemlich langer Name, und wir haben schon dreimal getippt. Also, was ich tun werde, ist nicht ein Spitzname es Wo ist das Importobjekt? Benennen Sie unser Beispiel in
O. R. E Fehlerhaft-Objekt Umbenennen er Beispiel. Dann, anstatt Reload,
Objekt zu sagen , benennen Sie unser Beispiel um. Das ist ein Bissen voll. Sie können Reload Ory sagen. Und hier drüben können Sie es für E sehen, noch jemanden umbenennen. Erinnern Sie sich daran. Sie können sehen, dass es läuft, und es benennt alle unsere Objekte wieder um. Dies ist Ihre erste Funktion, und das wird es für dieses Video sein. Im nächsten Video werden
wir darüber nachgehen, wie wir unsere Funktion robuster machen können.
22. Wörterbücher mit Schlüssel und Werte: zurück in Tortenbegriff. Unser erster Schritt wird sein, sicherzustellen, dass, wenn das Suffix bereits am Ende des Objekts ist , wir es nicht erneut umbenennen und das Suffix doppelt hinzufügen. Dies ist einfach, weil der Objekttyp einer Zeichenfolge, die wir sagen können, wenn o b j Punkt mit etwas
fix endet , weiter und Sie können sehen, pie Charm ist automatisch abgeschlossen, wie ich tippe. Hoher Charme hat wirklich leistungsstarke automatische Vervollständigung, weshalb ich gerne mit ihm unterrichten, weil es wirklich nützlich ist, wenn Sie ein Anfänger als auch wenn Sie im Voraus TD sind. Wie auch immer, ich sage, Wenn Objekt mit Suffolk endet, Sui wird fortfahren und den Rest dieser Logik überspringen,
einschließlich des Schritts, in dem wir das Objekt umbenennen. Dies bedeutet, dass, wenn das Objekt damit endet, es nicht jedes Mal zu Zeiten von Suffolk muss, wenn wir dies ausführen. Wenn Sie also zurück zu Maya gehen und diese Funktion erneut ausführen, können
Sie sehen, dass sie keines dieser Objekte beeinflusst. Aber wenn ich einen neuen Würfel erstelle, lassen Sie ihn hier raus, nicht
das Suffolk hat, und jetzt führe ich das aus. Sie können sehen, dass es nur zu diesem Würfel hinzugefügt wird, weil der Cube es vorher nicht hatte. Aber wenn ich es nochmal führe, wird
es nicht. Wieder hinzugefügt, Dies ist unsere erste Weiterentwicklung im Skript. Unser nächster Fortschritt ist, dass ich irgendwann mehr Suffolk Stripes hinzufügen möchte. Aber das, wenn Aussagen schon ziemlich lang werden, und wenn wir für jeden einzelnen Objekttyp eine neue hatten, wird
es irgendwie verrückt werden. Also, was wir tun werden, ist, dass wir ein Wörterbuch erstellen, in dem schwächen definieren alle Suffixe, die wir wollen, damit wir eingeben können. Suffixe ist gleich und ein Wörterbuch wird geschweifte Klammern machen. Der Grund, warum ich diese Großbuchstaben mache, ist, weil es außerhalb einer Funktion ist, und normalerweise ist es schön. Sie sind nicht notwendig, um Variablen, die außerhalb der Funktion oder eines der Geltungsbereiche sind, zu Großbuchstaben
zu machen. Innerhalb dieses Zeugs X Wörterbuch, werden
wir einen neuen Schlüssel namens Mesh erstellen. Wir setzen den Doppelpunkt und machen das Netz gleich Geo. Als nächstes erstellen
wir einen gemeinsamen Typ und wir werden sagen, dass das Gelenk ein JMT-Suffix hat und Sie eine
Kamera erstellen und Sie werden sagen, dass die Kameras keine haben. Ich werde das in ein bisschen erklären. Als nächstes werde
ich ein Standard-Suffix erstellen und ich werde diese Standard-Suffixgruppe aufrufen. Sie sind hier unten. Das Problem ist, ich muss sagen, Suffolk ist gleich dieser Suffolk Sequels, die mehrere Male. Was ist, wenn ich einen Tippfehler mache? Ich tippe die gleiche Logik mehrmals mit kleinen Variationen. Idealerweise würde
ich das nur einmal eingeben und das einfach verwenden, damit ich mich nicht wiederholen muss, also kann es all diese if-Anweisungen loswerden. Stattdessen verwenden
wir das Wörterbuch, das wir nur definieren, um das Suffix zu suchen. Also sagen wir, Suffolk ist gleich Suffolk ist unser Wörterbuch und Sie werden sagen, lücken, weil wir versuchen, einen Wert aus dem Wörterbuch zu bekommen. Jetzt nimmt get standardmäßig einen Wert an. Wie Sie sehen können, sagt
Pie Charm uns den Schlüssel, und wir werden Objekttyp verwenden. Der zweite Schlüssel ist die Standardeinstellung. Wenn das Wörterbuch nicht den Schlüssel hat, der Riaz dafür uns in diesem Fall einen Standard zurück geben, keine. Aber was wir eigentlich tun wollen, ist die Standardeinstellung zurückzugewinnen. Suffolks Standard-Suffolk ist gleich Gruppe. Was wir sagen, ist, wenn das Wörterbuch nicht den Objekttyp hat, für den sich dreht. Nehmen wir einfach an, es ist eine Gruppe und erhalten den Standard. Suffolk ist zurück. Aber Sie werden sich erinnern, dass ich sagte, Kamera ist keine und das ist, weil ich keinen Suffolk setzen will. Wenn es eine Kamera ist, was
also? Ich werde es irgendwo machen. Sagen
Sie, wenn Lot Suffolk weitergeht. Und was wir sagen, ist, dass, wenn der Suffolk Sex nicht wahr ist, dies eine Abkürzung gut,
sagen, weiter und überspringen den Rest dieser Logik unterscheiden sich für die Kamera. Das Wörterbuch gibt uns den Wert none zurück, und keiner ist nicht wahr. Also werden wir sagen, fortzufahren, wenn Sie zurück zu Maya gehen und wenn ich das erneut ausführe, wird
es eine ungültige Syntax online sagen, um meinen Code zu deaktivieren. Und das ist, weil ich Mr. Khama hier und Sie sehen können, dass der Kuchen Charme hervorgehoben wurde. Es hat angefangen. Wenn ich das entferne, können
Sie sehen, dass es rot ist und das Komma verrät. Es steht, es ist in Ordnung. Jetzt gehe ich zurück nach Maya. Wenn ich das noch einmal ausführe, funktioniert es
diesmal und Sie können sehen, dass alles funktioniert. Alles klar hier. Wenn ich einen neuen Objekttyp erstelle. Nehmen wir an, erzeugen Lichter ein Umgebungslicht. Das Umgebungslicht ist aus Typ wenig. Sehen Sie, das Umgebungslicht ist vom Typ Umgebungslicht. Wenn Sie zurück zu Kuchen Charme, Ich kann das Umgebungslicht Typ hier Umgebungsflug hinzufügen. Und ich kann sagen, dass ich ein G T werden wollte. Wenn ich zurück zu Maya gehe und mein Skript ausführe, kann
man sehen, dass es mein Umgebungslicht mit dem neuen L G T Suffolk umbenannt hat, das ich zur Verfügung gestellt habe. Und Sie können den Vorteil sehen, dass dieses Wörterbuch verwendet wird, um es zu pflegen, da ich keine weitere FL-Anweisung für jedes einzelne Suffix hinzufügen muss. Es schneidet auf zwei Codezeilen für jedes einzelne Suffix ab. Das ist eine Menge, wenn Sie viel mehr Objekttypen hinzufügen, das nächste, was wir tun möchten, ist sicherzustellen, dass unsere Funktion gesagt werden kann, ob die
Auswahl verwendet werden soll oder nicht. Also werden wir einen Parameter zu unserer Funktion hinzufügen. Wir werden sagen, dass der Parametername die Auswahl gleich ist, und wir werden sagen, dass es standardmäßig falsch ist, so dass es die Auswahl nicht
standardmäßig verwendet . Das ist ein bisschen ärgerlich, da hier die Auswahl bereits als Variablenname verwendet wird
und dieser Parametername an die Funktion weitergegeben wird. Und Sie können sehen, wie Pie Charme vermisst jede Verwendung dieser Variablen jetzt hervorhebt und das ist nicht was wir wollen. Also werde ich dieses Wort in Kuchen Charme auswählen, Rechtsklick re Faktor. Und ich werde es umbenennen und wir benennen es zu Objekten um und Sie können sehen, dass Charm jede Instanz dieser Variablen gefunden und umbenannt
hat. Aber es hat auch diesen gepackt. Also werde ich das einfach wieder in Auswahl umbenennen. Und was wir tun werden, ist zu sagen, dass Objekte den Befehlen gleich sind, oder? Ls Auswahl entspricht true. Das war es, was wir vorher hatten. Aber anstatt den hart codierten Wert true zu verwenden, werden
wir die Auswahl standardmäßig als Eingabe verwenden. Es ist falsch. Aber wenn ein Benutzer true zur Verfügung gestellt hat, dann wird die Auswahl hier wahr sein und es wird wahr sein. Hier ist wieder gut, wir sind nur an dag Objekten interessiert nur in den langen Namen. Das heißt, wir können das loswerden. Aber was ist, wenn der Benutzer die Auswahl gleich wahr ist und es derzeit keine Auswahl gibt. Nun, wir müssen tun, ist Luft früh, so dass wir nicht den Rest für unseren Code ausführen, weil der Rest unseres Codes viel Zeit in Anspruch nehmen kann, wenn wir viele Objekte haben. Also lassen Sie uns früh einen Fehler machen. Wir werden sagen,, wenn Auswahl und nicht Objekte. Und was wir sagen, ist, dass, wenn die Auswahl wahr ist und Objekte nicht wahr sind, ich damit meinen wir, dass Objekte leer sind. Es gibt keine Objekte. Wir werden einen Laufzeitfehler und echte sagen, dass Sie ich nichts ausgewählt habe. Wie kannst du es wagen? Und das ist unser erster Fehler, den wir werfen werden. Wir sehen eine Gehaltserhöhung, weil wir einen Fehler auslösen werden, genau wie Sie eine Beschwerde
gegen jemanden erhoben haben . Oder die Arbeit, um stinkende Füße zu haben, hieß eine Laufzeitfehler-Sache. Dass wir während unserer Laufzeit einen Fehler festgestellt haben. Und dann geben wir mehr Details darüber. Sie haben nichts ausgewählt. Wie kannst du es wagen? Ich werde das speichern und zurück nach Maya, wo, wenn ich jetzt nichts ausgewählt habe. Aber ich sage, Auswahl gleich wahr ist und ich führe dies aus, Sie können sehen, dass ich einen Laufzeitfehler von was bekomme? Unser Drehbuch. Es sagt uns, welche Linie die Pfeile, wo das Skript ist. Und es sagt uns hilfreich Fehler, dass wir es gegeben haben. Sie haben nichts ausgewählt. Wie kannst du es wagen, mich etwas aussuchen und wieder rennen zu lassen? Diesmal bekomme ich keinen Fehler. Alternativ, wenn ich sage, Auswahl gleich falsch ist, ist
das die Standardeinstellung. Ich muss das eigentlich gar nicht sagen. Lassen Sie mich es entfernen. Und es wird mit Auswahl ausgeführt, entspricht standardmäßig false und läuft über alles zurück in Tortencharme. Das nächste, was wir tun müssen, ist zu ändern, wie diese Formatierung geschieht. Das ist in Ordnung, aber wir haben zwei Plus-Symbole und mehrere Strings. Dies ist eine Art ineffizient und Python. Ein besserer Weg, dies zu tun und etwas komplexer ist mit einem Prozent-Symbol. Es sieht irgendwie wie ein seltsames Emoji aus, aber was wir tun, ist eine Zeichenfolgenersetzung. Also werde ich sagen, der neue Name ist gleich Prozent s Unterstrich Prozent s und sie geben ihm ein Prozentsymbol und wir geben ihm den kurzen Namen und das Suffolk. Und der Grund, warum ich Ihnen das zeige, ist, dass es für eine kurze Saite nicht so viel Sinn macht. Aber wenn Sie anfangen, es viel und über viele Objekte zu tun, kann
die andere Art, es zu tun, wirklich schwer werden. Aber das ist eine wirklich leichte Art, es zu tun. Also, was tatsächlich passiert ist, ist, dass dieses Prozent s durch kurze Namen ersetzt wird, und dieses Prozent s wird durch Suffolk ersetzt. Am Ende erstellt
es die gleiche Zeichenfolge. Aber das ist ein wenig effizienter, und ich werde es für die meisten meiner Beispiele verwenden. Also denke ich, es ist ein gutes Beispiel, um jetzt zu zeigen. Die andere Sache ist, wenn das Objekt mit Suffix endet, könnte
es tatsächlich ein gültiger Objektname sein und muss ein Self X hinzugefügt werden, was wir tatsächlich
tun müssen . Es wird überprüft, ob es mit dem Unterstrich und dem Suffix endet. Und das wird bedeuten, dass es nicht wirklich das richtige Suffix hat, genau wie die Maya-Befehle uns eine Liste von Objekten zurückgeben, auf denen sie ausgeführt wurden. Es wird schön sein, dass unser Objekt das gleiche bei der unter vier Funktion außerhalb von für
vier Schleife tun kann , ich werde sagen, dass Rückgabeobjekte zurückgeben, unsere Funktion sagen wird, dass, wenn es fertig ist , es sicher die -Objektliste, die es hat. Aber das Problem ist, dass die Objektliste nicht die neuen Namen darstellt, also lasst uns das ändern. Lassen Sie uns den Index vom aktuellen Element aus der Objektliste abrufen. Wir werden dies tun, indem wir sagen, Index ist gleich Objekte dot Index bieten aktuelle Objekt. Was dies tut, ist, gibt uns den Indexwert aus dem Objekt aus der Liste Are-Objekte zurück. Wenn es also ein erstes Objekt ist, kommen
wir zurück. Null. Wenn es unser zweites Objekt ist, erhalten
wir eins und so weiter und so weiter. Wir werden dies verwenden, um zu wissen, welches Objekt innerhalb der Liste zu realen Objekten zu ersetzen Index ist gleich, und jetzt werden wir das Objekt darin ersetzen. Also werden wir sagen, Objekt würde ersetzen. Und jetzt werden wir eine Zeichenfolge ersetzen, so dass sie einen neuen Namen hat. Also sagen wir Objekt in Richtung ersetzen kurzen Namen neuen Namen. Und was dies tun wird, ist in der Objektliste. An diesem Indexpunkt wird
es durch den Objektnamen ersetzt, bei dem der Objektname den alten Kurznamen
durch einen neuen Namen ersetzt hat . Das bedeutet also, dass unsere Liste alle Objekte enthält, die zu jedem Zeitpunkt operiert haben, an dem wir ein Objekt
umbenannt haben . Es wird in der Liste durch diesen neuen Namen ersetzt worden sein. Also, wenn du zurück nach Maya gehst, ist
das ein Abdruck oder du benennst dich nicht um. Sie können sehen, dass ich eine Liste aller Objekte mit ihren neuen Namen zurückbekomme, sowie der Objekte, die sie nicht mit ihren alten Namen umbenannt hat. Schließlich müssen
wir sicherstellen, dass unsere Funktion einfach zu bedienen ist. Leute, die unsere Code-Bibliothek verwenden, wollen sich unseren Code nicht ansehen. Nur, weißt
du, harte Funktion funktioniert. Wenn ich sage, Druckhilfe zu dieser Funktion, gibt
es mir nichts zurück, weil es keine Hilfe für diese Funktion gibt. Wie bieten wir Hilfe für eine Funktion? Das ist einfach. Wir nennen es den Doc String. Vor allem in einem Kuchen Charme. Lassen Sie uns das Promotionsformat ändern. Lassen Sie uns zu Dateieinstellungen gehen, und in diesem werde
ich Tools,
Python, Python, integrierte Tools und Winter ändern Sie es von Umstrukturierungstext zu Google, Google ist viel einfacher zu lesen als Umstrukturierung Text, klicken Sie auf OK, und ich gehe nach unserer Funktion zu meiner Funktion zurück. Ich werde schlagen, eingeben und tippen Sie in drei doppelte Anführungszeichen 123 und dann werde ich schlagen, eingeben und Sie werden sehen, dass Kuchen Charms es automatisch ein wenig ausgefüllt. Dies wird als Doktorarbeit bezeichnet. Der erste Kommentar nach einer Funktion mit dreifachen Anführungszeichen wird angezeigt, wenn Sie Hilfe für eine Funktion
aufrufen. Also werde ich sagen, dass diese Funktion alle Objekte umbenennt, um die richtigen Suffolks zu haben. Wir sagen für ein Auswahlargument, ob wir die aktuelle Auswahl verwenden oder nicht, und für Rückgaben, sagen
wir eine Liste aller Objekte, auf denen wir operiert haben. Wenn ich zurück zu Maya gehe und sie den Hilfebefehl ausführen, können
Sie sehen, dass ich jetzt den Ring des Doks bekomme, den wir geschrieben haben. Es sagt, Dysfunction wird alle Objekte umbenennen, um die richtigen Suffolk zu haben, und gibt uns Informationen darüber, wie die Funktion zu verwenden. Dies ist eine Form der Dokumentation Ihres Codes, doc-Strings Luft wirklich hilfreich, wenn andere Leute Ihre Funktion verwenden müssen, oder sogar wenn Sie eine Funktion auf der Straße verwenden und vergessen haben, wie Sie sie geschrieben haben. Dies ist eine Form des Kommentars. Die andere Form des Kommentars in Python ist mit Hashtag, das ist nicht wie Instagram oder Twitter . Stattdessen stellen
diese Hashtags die Absicht des Codes dar. Also nach Art des Hash-Tags und dann kann ich alles eingeben. Bieten Sie es an, und diese werden nicht mit dem Programm dort laufen, einfach gibt es andere Programmierer zu betrachten. Es ist eine Gnade. Hashtag-Dysfunktion kann nicht ausgeführt werden, wenn keine Auswahl und keine Objekte vorhanden sind. Der Punkt der Kommentare ist ein später, wenn Sie sich Ihren Code ansehen müssen oder jemand anderes Ihren Code
ansehen muss . Sie müssen nicht jede einzelne Codezeile lesen, um zu verstehen, was Sie versuchen zu tun . Es ist auch wirklich nützlich für sich selbst, weil Sie verpflichtet sind, höhere Codearbeiten zu vergessen. Ich empfehle das Hinzufügen von Kommentaren Trio-Code, so dass es einfach zu folgen ist. Mein ganzer Code im get Hub Repo für dieses Projekt wird mit Kommentaren dokumentiert, wie man es
benutzt. Was ich mache und hohe Auflagen, wissen
Sie, haben eine Funktion, die auch in anderen Projekten wiederverwendet werden kann. Es ist von selbst aufgerufen, Ihre Szene zu organisieren und sagte:
Oh, Oh, Maya in unserem nächsten Projekt wird sich darum kümmern, wie man Dramabaum prozedural erstellt
23. String: ein gemeinsamer Wurf. Python zu tun ist das Erstellen von Strings zum Beispiel Lassen Sie michzum Beispieleine Zeichenfolge erstellen, die „Hallo“ sagt. Mein Name ist vorbei und ich bin 26, aber ich möchte diesen Seiken ändern. Verwenden Sie verschiedene Benutzernamen und ein anderes Alter. Also lassen Sie uns eine Variable für den Benutzer erstellen und ich werde es durch und eine Variable für das Alter aufrufen. Ich weiß, dass das auf 26 eingestellt ist. Was ich jetzt tun kann, ist hallo zu sagen. Mein Name ist plus Benutzer plus und ich bin plus Alter. Und wenn ich weiß, laufen, Dies wird uns sagen, wenn Sie keine Zeichenfolge in einem in TOB überprüft hinzufügen können, so dass es erfordert, dass wir diese ganze Zahl in eine Zeichenfolge
konvertieren und jetzt wird es funktionieren. Aber das könnte sehr umständlich werden, weil wir beide den Typ der Variablen kennen müssen
und wir weiterhin Strings zusammen hinzufügen müssen, was ziemlich teuer sein könnte. Eine weitere Option ist die Zeichenfolgenersetzung. Also können wir hallo sagen. Mein Name ist Prozent s und ich bin Prozent s. Dann schließen wir die Zeichenfolge, wir geben ein weiteres Prozentzeichen und dann werden wir in Prinzen die Werte geben, die in diesem
Fall zu verwenden , es sei denn, ein Benutzer Komma Alter. Und was dies tun wird, ist, den ersten Prozenttest durch den ersten Wert auf der 2. 1
mit dem zweiten Wert zu ersetzen und so weiter und so weiter. Wenn ich das jetzt ausführe, können
Sie sehen, dass ich mich nicht um meinen Variablentyp kümmern musste, und es ist sehr prägnant zu definieren. Wir können dies auch mit Namen Lookups mit einem Wörterbuch anstelle eines zu ziehen tun. Zum Beispiel, Wenn ich sage, Name ein Alter, Ich kann es ein Wörterbuch geben. Jetzt, mit Namen ein Alter Sorry, die benannt werden sollte und Benutzer und Sie können sehen, dass sind jetzt funktioniert. Diese Form der Verwendung von String-Substitution ist eine, die in der Tortenzeit sehr beliebt war. Leider ,
wenn Sie längere Strings erstellen, kann
es,
wennSie längere Strings erstellen,ziemlich unlesbar werden. Und es ist ziemlich oft, dass Sie eine String-Ersetzung wie diese haben, wo es nicht möglich ist herauszufinden, was wohin geht. Eine ultimative Möglichkeit, dies zu tun, ist die Verwendung des Format-Operators. Also kannst du hallo sagen. Mein Name ist, und dann geben wir geschweifte Klammern und ich bin und wir geben Mädchen lockige Klammern wieder. Und dann sagen wir Format. Und innerhalb eines Formats für Givet User und das Alter und es funktioniert genau das gleiche. Aber das ist keine große Verbesserung. Es ist die gleiche Anzahl von Zeichen wie Prozent s und wir haben immer noch das gleiche Problem , dass wir nicht wissen, was wohin geht, ohne den ganzen Satz lesen zu müssen. Stattdessen könnten
wir auch so etwas tun. Wir können sagen, welchen Wert wir verwenden, und wir haben das gleiche Outfit. Aber das coole Ding ist, dass ich jetzt meine Zeichenfolge ändern und sich auf sie nicht in Ordnung beziehen kann. Hallo, ich bin und mein Name ist und das ist wirklich cool, weil ich nicht genau definieren konnte, wo meine Werte gehen und es macht es viel einfacher zu lesen und zu pflegen. Es bedeutet auch, dass ich jeden dieser Werte wiederverwenden kann. Wenn ich einfach 00 sage, verwende ich einfach den ersten Wert mehrmals, während mit der
Zeichenfolgenersetzung mit der Prozent-Methode wächst, müsste
ich den Benutzer mehrmals bei jeder Verwendung neu definieren. Ich kann dies auch mit einem Wörterbuch tun. Schauen Sie auch nach, da ich hallo gesagt habe. Mein Name ist etwas und ich bin etwas, was ich sagen kann Hallo. Mein Name ist User und ich bin alt, und dann kann ich diese einfach als Argumente an die Formatfunktion geben. Genug. Ich leite es. Es funktioniert genau das gleiche, wenn Sie eine Menge String-Konstruktion machen und nach meiner
Meinung ist die
Verwendung der geschweiften Klammern der beste Weg, um den Formatoperator zu verwenden. Es ist effizient, und es gibt Ihnen viel mehr Funktionalität als die Verwendung des Prozent-Symbols. , Wenn Sie jedoch nur einen einzelnen Wert verwenden,der Prozent s sehr praktisch sein kann, ist
es auch üblich, es in vielen Python-Bibliotheken wie der Logging-Bibliothek verwendet zu sehen. Dies liegt daran, dass es viel länger war und diese Bibliotheken ihr Vermächtnis nutzen. Funktionalität, für unseren Kurs wird so ziemlich das Prozent-S-Format verwenden. Aber ich möchte, dass Sie auch über die Punktformatoption wissen, weil es nützlicher ist
24. Scopes in Python: in diesem Video werden
wir den Logik- und Funktionsbereich von Python Python folgen einfachen Regeln zum Suchen von Variablen. Es schaut zuerst auf lokale Variablen. Dies sind Variablen, die innerhalb der Funktion oder des aktuellen Bereichs zugewiesen sind. Zum Beispiel ist
dies der Bereich von der inneren Funktion,
alles, was unter der Bereichsdeklaration eingerückt ist. In diesem Fall ist
die Funktionsdeklaration die Bereichsdeklaration. Also sagen wir, dass alles darunter, das auch eingerückt ist, innerhalb des Bereichs liegt, und wenn Sie Variablen nachschlagen, wird
es zuerst innerhalb dieses Bereichs nachschlagen und dann im Bereich darüber nachschlagen, was dies ist äußerer Funktionsumfang. Und dann schauen wir schließlich darüber und sie schauen nur in eine Python selbst, so dass Sie dies hier beschrieben
sehen können . Dies wird als L E G B Regel bezeichnet. Also ist l für lokale Namen beiseite und in irgendeiner Weise innerhalb einer Funktion. Innermost Variable ist eine lokale Funktion innerhalb der inter Funktion in der Schließfunktion. Dies bedeutet, dass auf die Funktionen, die außerhalb dieses Bereichs liegen, zugegriffen werden kann. Inter Variable ist also eine Variable außerhalb dieses Bereichs. Aber es ist indischer Abschlussbereich G für globale Variablen auf Modulebene. Eine Python-Datei. Es wird das Python Modul genannt, und dies ist außerhalb jeder Funktion. Daher handelt es sich um eine Variable auf Modulebene. Schließlich können
Sie eingebaute Python-Typen verwenden, bei denen es sich nur um Patan-Variablen handelt, die mit Python geliefert werden. Lassen Sie uns also die Dokumentation hier oben und darunter loswerden, sicher, dass
wir unsere äußere Funktion aufrufen. Und jetzt, wenn ich das ausführe, können
Sie sehen, dass die Inter-Funktion auf innerste Variable,
Intervariable,
die äußere Variableund die Python-Global zugreifen kann Intervariable,
die äußere Variable . Wenn ich uns aus dem Bereich bewegt, können
Sie sehen, dass ich nicht mehr auf die innerste Variable durch Charme zugreifen kann, ist klug genug, um mir das zu sagen. Wenn ich versuche, dies auszuführen, wird
es einen Fehler geben. Es sagt, dass es die innerste Variable auf keiner höheren Ebene als diese finden kann. Also, wenn ich das rausnehme, wird
es laufen. Ähnlich, Wenn ich dies jetzt aus dem Umfang der äußeren Funktion herausnehme, können
Sie sehen, dass es jetzt relativ zur äußeren Funktion uneingerückt ist. Ich konnte nicht mehr auf die innere Variable zugreifen. Wenn ich dies ausführen, wird
es Fehler, Also lassen Sie mich loswerden, dass und NAFTA auf diesem, Sie können sehen, dass es wieder perfekt funktioniert. Dies liegt daran, dass wir von lokalen zwei eingeschlossen zu Global zwei eingebaut gehen. Dies ist, was wir die L E g b Principal Off Lookups nennen.
25. Projekt 3: Der Aufstellungsort von der Ausrüstung: durch dieses Projekt wird lernen, wie man eine Controller-Bibliothek mit niedlich zu erstellen. Unsere Controller-Bibliothek wird flexibel sein und Thumbnails unterstützen. Wir können jedes der Objekte importieren, die wir speichern, und wir können auch alle neuen Objekte erstellen, die wir wollen. In diesem Fall werde
ich das als Test sagen, und wenn ich auf Speichern klicke, werden
Sie sehen, dass es innerhalb unseres Fensters erscheint. Wir haben gelernt, wie man Daten als Jason und Dateien speichert und sie wieder in Are You? Ich Wir werden mit niedlichen von pi-Seite zur Verfügung gestellt innerhalb meiner 2017 und Tortenseite. In früheren Versionen von Maya, werden
wir über die Unterschiede zwischen niedlichen vier und niedlichen fünf gehen, sowie die Unterschiede zwischen Kuchen süß und Kuchen Seite und Kuchen, Nette fünf und Kuchen Seite, auch. Ich werde auch über eine beliebte süße Bibliothek gehen, die von Disney,
WETA,
Sony Imageworks und mehr verwendet WETA, wird. Es wird uns helfen, Code zu schreiben, der sowohl in Maya 2017 als auch in früheren
Versionen von Maya verwendet werden kann . Im nächsten Video werde
ich eine kurze Einführung in niedlich auf machen. Die verschiedenen Versionen sind niedlich im Inneren der verschiedenen Versionen von Maya
26. Ein Python-Script erstellen: in diesem Video. Anstatt den Skript-Insider Mayas eigenen Skript-Editor zu erstellen, verwenden
wir stattdessen Pi Charm, um das Skript zu erstellen. In einem Pre-in einem vorherigen Video
haben wir I Charme eingerichtet, um auf unser Maya Skript-Verzeichnis zu verweisen. Wenn Sie sich nicht erinnern, wo das ist, können
Sie sagen, Datei öffnen und Fuß gehen. Sehen Sie Ihren Dokumentenordner Maya 2017 auf dem Skript-Verzeichnis unter There. Wenn Sie auf Mac Olympics sind, werde
ich sicher zu erwähnen, wo Ihr Verzeichnis Zara gut ist, in einem Overlay Im Video können
Sie unser vorheriges Skript sehen, das wir hier geschrieben haben, das Objekt umbenennen er, aber lassen Sie uns erstellen Sie ein neues Skript. Nun, sagen Sie Datei neu und wir werden sagen, Python Datei. Wir werden diesen Zahnradschöpfer aufrufen und wir sagen OK,
und Sie werden sehen, weil wir gesagt haben, dass es eine Python-Datei ist, die Tortenbegriffe bereits das Dot p y
Suffix hinzugefügt haben . Als nächstes müssen
wir das Zentrum Maya laden. Also lasst uns eine kleine Prince-Aussage schreiben, mit der wir Maya testen können, indem wir unser Skript laden. Also lassen Sie uns einfach sagen drucken und in Anführungszeichen bei Hallo, Maya und speichern Sie es jetzt gehen zurück in Maya und sagen, importieren Getriebe Schöpfer und führen Sie es und Sie können sehen, die Maya sagte Hallo, Maya. Hier unten. Wenn Sie es erneut ausführen, können
Sie sehen, dass es nicht gedruckt wird. Hallo, mein nochmal. Dies liegt daran, dass Maya den Import einlösen wird, damit er ihn nicht erneut importieren muss. Das bedeutet, dass
Maya während wir uns entwickeln, unsere Veränderungen nicht aufheben wird. Was wir also tun müssen, ist an der reload-Anweisung. Wenn Sie dies nun ausführen, können
Sie sehen, dass es erneut importiert und ausgeführt wird. Hallo, Maya. Wenn ich zurück zu Kuchen Charme und ändern Sie dies zu sagen mit meinem Auge statt und jetzt auf sie, können
Sie sehen, dass ich sagen, von Meyer jetzt.
27. Eine Ausrüstung erstellen: Lassen Sie uns darüber gehen, wie wir tatsächlich eine Ausrüstung erstellen. Also zuerst werde ich gehen, um zu erstellen, und dann werde ich eine Polygonleitung wählen. Wir können festlegen, wie viele Unterteilungsachsen es hat, indem Sie sie in der Kanalbox ändern. Im Moment hat es 20. Wir wählen jede abwechselnde Fläche aus, um die Zähne zu erstellen. Dann extrudieren wir sie und das schafft unser Getriebe. , Das Problem dabei ist,dass wir nicht wirklich ändern können, wie viele Zähne das Zahnrad hat. Wenn ich die Unterteilungen ändere, können
Sie sehen, dass die Extrude jetzt verwirrt wird, weil sie auf Polygone zeigt und nicht
mehr dort vorhanden ist , wo sie sein sollten. Wenn Sie also unser Skript erstellen, müssen
wir sicherstellen, dass wir kontrollieren können, wie viele Zähne der Gator hat, wie lange die Extrusion Zar und wir müssen ihm die Möglichkeit geben, die
Anzahl Zähne später zu ändern . Also lasst uns wieder in Kuchencharme kommen. Ich werde meinen Skript-Editor etwas erweitern. Ich werde meine Kanalbox zusammenbrechen. Lassen Sie uns das Skript loswerden, das wir bereits haben. Wir werden die Maya-Befehls-Bibliothek importieren, also werden wir von Maya-Import-Befehlen sagen und wieder,
Sie können Torten-Charme sehen, der mir automatisch vervollständigt, während ich tippe. Wir werden unsere temporäre Funktion gut schaffen, den Tod
passen, um Funktion zu definieren. Wir geben ihm den Namen, schaffen Ausrüstung. Wir geben ihm der Prinz sieht, in dem ihm die Parameter geben, sind erste Parameter . Wenn Zähne und wir geben es einen Standardwert von 10 unser nächster Parameter verliehen wird und wir geben dies einen Standardwert von 0.3 thes Luft Standardwerte, die ich denke, sind gut für einen Anwendungsfall innerhalb dieser wird sagen, drucken,
Erstellen von Zahnrad. Und dann gebe ich einfach die beiden Parameter, die wir bereits haben, kurz nachdem ich das
Skript ausgeführt habe , Insider. Maya, du siehst, dass nichts passiert. Dies liegt daran, dass wir diese Funktion nicht genau so aufrufen, wie wir Funktionen innerhalb
der C.
M.
D-Bibliothek aufrufen der C. M. . Wir müssen die Funktion innerhalb einer Zahnradersteller-Bibliothek aufrufen. Also gehen, um zu sagen, Getriebe Schöpfer, die Ausrüstung zu schaffen. Und wir werden sagen, Zähne sind gleich 20. Und jetzt können Sie sehen, was mit Standardwerten passiert. Wir überschreiben den Wert der Zähne, weil Sie eine 20 statt 10 gesagt haben. Aber wir behalten die Standardwertlänge bei 0,3, weil wir sie nicht innerhalb von Maya angegeben haben , und Sie können sehen, dass die Funktion eindeutig ausgeführt wird, weil sie die Anweisung ausdruckt, die Zahnrad für die beiden Parameter
erzeugt. Die Anzahl der Zähne ist eine Unterteilung multipliziert mit zwei. Also rufen wir die Spannweiten an. Nun,
sagen wir, Spannweiten sind gleich Zähnen. Mal zwei. Denken Sie daran, dies ist eine ganze Zahl, und wir können ganze Zahlen ohne die ganzen Zahlen multiplizieren. Also, wenn wir sagen, Prinz verbietet und das in Maya laufen, können
Sie sehen, dass Einschätzung 40, weil wir ihm den Wert von 20 geben. Ich werde diesen Standard loswerden. Und wenn Sie dies erneut ausführen, geben Sie uns einen Wert von 20, weil der Standard 10 ist. Lassen Sie uns einen Kommentar hinterlassen, damit jemand, der unser Skript später bearbeitet, sich daran erinnern kann, was wir
beabsichtigt haben . Wenn Sie das Hashtag-Symbol verwenden und ich werde Zähne sagen, unser jedes alternative Gesicht erstreckt sich also über mal zwei, dann werden wir das Pipe-Objekt erstellen. Wir tun dies, aber mit den Befehlen, das Poly-Pipe-Objekt und wir geben ihm einen Parameter namens Unterteilungen Zugriff und wir sagen ihm die Anzahl der Spannweiten, wenn Sie wollen. Wenn ich das jetzt laufe und mein altes Zahnrad lösche, können
Sie sehen, dass wir ein Rohr erstellt haben. Lassen Sie mich das löschen und Sie geben ihm einen neuen Wert für Zähne und ich sage 30. Also führe ich das. Sie können sehen, dass wir so viele Spannweiten darüber haben. Wenn ich die Kanalbox öffne, können
Sie sehen, dass das Poly-Rohr 60 hat, weil wir zwei Mal die Anzahl Zähne für uns
Bänder haben . Lassen Sie mich das löschen. Als nächstes müssen
wir sicherstellen, dass wir an der Transformation und dem Konstruktor davon festhalten. Als nächstes erhalten wir eine Auswahl der Flächen, die wir auf der Seite des Rohres wollen. Also sagen wir Seitenflächen. Dies wird der Name einer Variablen sein, und wir verwenden die Bereichsfunktion. Die Bereichsfunktion gibt uns Zahlen zwischen der ersten Zahl auf der zweiten Zahl. In diesem Fall werden
wir sagen, Spannweiten mal zwei und erstreckt sich mal drei. Lassen Sie mich eingehen, warum wir das tun. Wenn ich eine andere Pfeife erstelle, lass mich eine erstellen, und ich wähle jedes Gesicht aus, das wir für unseren Tee und wieder wollen. Dies wird mit dem Standardwert von 20 Divisionen erstellt. Also, wenn ich diese Gesichter auswähle, wenn ich ls Russia Cell tippe und renne, wird
es mir die Gesichter zurück geben. Ich kann das in Tortenanhänger kopieren, also ist es einfacher für uns zu sehen. Und wenn eine Kopie sie in Kuchen Begriff, Sie können sehen, dass sie begann Gesicht 40. Geht zu 42 44 so weiter und so weiter. Lassen Sie mich diese Linie loswerden. Das bedeutet, wenn wir mit 20 Spannweiten beginnen, unsere Gesichter beginnen, die Zeiteintopf umfasst, die gleich 40 und das Ende, das Fans drei spannt, die gleich 60 Wenn ich zurück in meine gehen und jetzt laufen diese, können
Sie sehen, dass Ich habe 40 angefangen, aber ich gehe in Schritten von eins hoch. Aber ich enden richtig bei 59, was kurz vor Spannungen ist. Mal drei, was wir wollen. Der Bereichswert nimmt auch 1/3 Argument, das sind die Schritte, die durchgeführt werden sollten,
was bedeutet, dass ich uns jede zweite Zahl geben werde. Wenn ich das jetzt durchführe, lass es mich retten. Wenn ich jetzt auf diese, können
Sie sehen, dass es uns 40 42 44 46 so weiter und so weiter, welche werden die richtigen Werte, die wir erwarten? Nein, wählen
wir diese Gesichter. Also zuerst, lassen Sie uns löschen jede Auswahl, die wir einige grundlegende Befehle haben, oder wählen Sie löschen gleich True. Und wir sagen für Gesicht in Gesichtern es Befehle Punktauswahl und wir werden ihm eine Zeichenfolge geben . Und was wir mit der Zeichenfolge tun, ist, dass wir Prozent s Punkt f sagen und in
eckigen Klammern innerhalb der eckigen Klammern sparen Prozent s,
und wir werden String-Ersetzung verwenden, um die Zeichenfolge zu erstellen, als Meyer die Gesichter. Also werden wir es geben, um zu transformieren und den Glauben. Und hier können Sie sehen, dass dies durch das ersetzt wird und dass dies den zweiten Wert
ersetzt wird. Und wir werden ihm auch sagen, dass er Maya tun soll, ist, die Auswahl hinzuzufügen, anstatt sie zu ersetzen. Wenn Sie es einfach ohne den Anzeigenparameter ausführen würden, wenn mein oh do jedes Mal ist, wenn es für die Schleife geht, würde
es nur dieses spezifische Gesicht auswählen. Aber wir sagen Ihnen, dass Sie es jedes Mal hinzufügen müssen. Wenn ich das jetzt mache, können
Sie sehen, dass ich eine Pipe erstellt und jedes andere Gesicht auf der Seite ausgewählt habe, genau wie wir es erwartet haben. Als nächstes werden
wir diese Gesichter extrudieren. Lassen Sie mich dieses Polygon hier und zurück in Kuchen Charme Extrude löschen, das ein variabler Name
toehold extrude sein wird , sonst befiehlt es Punkt Polly extrudieren Fläche. Dies ist ein Befehl zum Extrudieren von Polygon-Objekten. Ich werde ihm einen Parameter von lokaler Übersetzung Z geben und wir sagen ihm, Länge als
Wert dieses Parameters zu verwenden und mehr sagen, drucken extrude, um zu sehen, was dieser Befehl uns tatsächlich zurückgibt. Also, wenn ich jetzt das ausführen und wir haben einen Fehler, weil ich das nicht richtig eingeben, weil es nicht poli-extrude Gesicht ist. Aber was ist es? Also in meinem,
äh, wenn ich tatsächlich das Gesicht extrude, können
Sie sehen, dass die kommandierte lief Polly Extrude Facette nicht Gesicht war. Also lassen Sie mich das zurückkopieren und es in einem Tortenanhänger ersetzen. Lassen Sie mich dieses Objekt löschen. Und jetzt, wenn Sie es ausführen, haben
wir ein Zahnrad erstellt und wir erhalten eine Liste zurück, in der Polly Gesicht 1 extrudiert. Da unsere Liste nur ein Objekt enthält. Lassen Sie uns nur das erste Objekt in ihm zurückbekommen. Wir werden dies tun, indem wir die eckigen Klammern nach dem Aufruf setzen und den Wert Null
wieder geben . Was wir tun, ist, dass wir wissen, dass dies uns eine Liste zurückgibt und wir können darauf zugreifen, dass mit dem gleichen Zugriff für die Methodenüberprüfung gesehen Phyllis, die die eckigen Klammern verwendet und die Null verwendet, um auf das erste Element zuzugreifen. Wir weisen nicht all dies der Extrude-Variable zu. Wenn ich das erneut lösche und das Skript ausführe, können
Sie sehen, dass wir jetzt die Poly-Extrude-Fläche 1 erhalten, die das erste Element aus dieser Liste war. Schließlich für eine Funktion lassen Sie uns
für eine Funktiondrei wichtige Objekte zurückgeben, die später verwendet werden müssen. Wir werden Return speichern und wir werden den Transformationskonstruktor und den Extrude-Knoten nehmen. Also, wenn ich diese Ausrüstung in der Szene lösche und ich es wieder laufen, Aber dieses Mal werde ich sagen drucken, was diese Funktion uns gibt. Wenn ich es ausführe, können
Sie sehen, dass unsere Funktion einen zurückgibt, um den Transformationsknoten,
den Konstruktor und die Poly-Extrude-Fläche abzuziehen . Und da gehst du. Wir haben eine Funktion, die ein Getriebe erstellen kann und gibt uns nützliche Daten zurück, die wir verwenden können, um die Ausrüstung im nächsten Video zu manipulieren Bevor ich das Video beenden, lasst uns einige Dokumentation zu unserer Funktion, so dass die Leute es leicht benutzen können, bieten die Funktionsdefinition, setzen Sie drei doppelte Anführungszeichen und drücken Sie Enter und Kuchen Charm sollte es automatisch
für Sie vervollständigen . Wenn nicht, kopieren Sie
einfach. Was auch immer mein Video sagt, wir werden sagen, dass diese Funktion ein Zahnrad mit den angegebenen Parametern erstellt. Wir werden sagen, dass die Bögen oder die Parameter Zähne sind, die Anzahl der zu erstellenden Zähne und die Länge der Zähne. Und wir werden sagen, dass es ein zurückgibt, um den Transformationskonstruktor und den Extrude-Knoten abzuziehen. Jetzt kann jeder, der unsere Funktion aufruft, einfach Hilfe für unsere Funktion aufrufen und sehen, was sie uns zurückgeben
wird. Und schließlich ist
es wichtig zu beachten, dass er nicht verwenden sollte. Der Prinz sieht in der Hilfe, denn was das tut, ist, dass es dies ausführt und dann Sie die Hilfe
ausführen. Es gibt Ihnen tatsächlich, um für die beiden Menschen zu helfen, die von diesem zurückgegeben wird, ohne dass der Prinz sieht. Du machst es nicht aus, und du gibst nur Hilfe. Die eigentliche Funktion stattdessen
28. Die Ausrüstung ändern: um unser Verlustvideo zusammenzufassen, haben
wir eine Funktion erstellt, die basierend auf den Parametern, die wir ihm geben, ein Zahnrad generieren kann. Wenn ich das anlegen soll, bekommst
du ein Zahnrad mit variabler Zähnezahl. In diesem Video zeigen
wir Ihnen, wie Sie die Ausrüstung ändern, die er gerade erstellt würde. Die Funktion, die wir erstellt haben, kehrt zurück, um den Konstruktor und den Extrude-Knoten zu transformieren . Diese werden nützlich sein, weil wir sie in der nächsten Funktion ändern müssen. Also lassen Sie uns diese innerhalb von Variablen innerhalb von Meyer setzen, wir werden sagen, transformieren, Konstruktor und Extrude sind gleich unserer Funktion. Und wenn ich das jetzt ausführe und sage drucken, transformieren, drucken Konstruktor und ich muss sagen, transformieren Konstruktor print extrude. Wenn ich das jetzt ausführe, können
Sie sehen, dass es sagt, dass die Transformation P-Rohr zum Konstruktor Polly Pipe zu ist und Extrudieren wahrscheinlich Fläche zu extrudieren ist. Also lasst uns diese Zahnräder löschen. Lassen Sie uns ein neues Getriebe erstellen. Ich werde Maya erweitern. Wenn Sie zum Kanalfeld gehen, können
Sie sehen, dass die Polity Pipe eins die Unterteilungen Zugriff hat, die wir ändern können, um die Anzahl der Pete zu ändern, die das Zahnrad haben wird. Aber wenn Sie es ändern, können
Sie sehen, dass die Sie sehen können, dass der Poly-Extrude-Knoten nicht mehr weiß, welche Flächen zu bearbeiten sind, und Sie erhalten wirklich funky Formen. Wenn Sie dies ändern, müssen
wir auch den Poly-Extrude-Knoten wieder einschalten. Pike Charm wird eine neue Funktion erstellen, um dies zu tun. Also lasst uns wieder ein Zahnrad erstellen. Und jetzt die wiederhergestellten diese Werte. Lassen Sie uns einen Hashtag setzen, um es zu kommentieren, so dass wir diesen Befehl versehentlich in der
nächsten Zeile ausführen können . Lassen Sie uns eine Funktion nennen, die wir im Begriff sind zu machen. Wir werden sagen, Zahnradschöpfer Duck ändern und dann geben wir ihm den Konstruktor und
die Extrude , die es auch geben würden, ist die Anzahl der Zähne. Wann werden wir sagen, dass wir 40 davon machen wollen? Also haben wir die Szene. Lassen Sie uns eine neue Funktion erstellen. , Sagen wir,der Tod hat die Hitze geändert, weil das der Name der Funktion ist, die wir erstellt haben. Es wird zwei Parameter nehmen, wird den Konstruktor und die Extrude nehmen. Es braucht die Anzahl der zu erstellenden Zähne und die Länge, die wir den Konstruktor ausdrucken und wir drucken die Extrude aus, so dass wir sehen können, dass es die richtigen Werte erhält. Und dies ist ein guter Zeitpunkt, um die beiden Arten von Parametern in einem Python einzuführen, wenn Sie keinen Standardwert angeben, aber das gleiche Symbol und einen Wert geben Python macht sie Positionsargumente, was eine obligatorische macht, wenn Sie die Wechseln Sie die Zahnfunktion. Sie müssen diese Werte angeben, da sie keine Standardwerte haben. Aber Python muss wissen, was das Gleiche ist. jedoch nicht abrufen, Sie müssen diese beidenjedoch nicht abrufen,da sie bereits einen Standardwert haben,
was bedeutet, dass Python genau weiß, was sie gleich sind. Wenn Sie das jetzt ausführen, können
Sie sehen, dass wir das Poly Pipe eins und die Poly extrudieren Fläche eins haben. Wenn ich die Extrude entferne und dann führe ich sie aus, wird
es uns eine Ära geben, sagt Change. Heat nimmt es mindestens zwei Argumente, und wir haben nicht die notwendige Anzahl von Argumenten gegeben. Was wir jetzt tun werden, ist die Anzahl der Flächen auf dem Poly-Rohr zu ändern. Also wieder sagen wir Spannweiten gleich Pete Times zwei Wir haben die Befehle nicht bekommen. Stechpalmenpfeife dup. Ich werde ihm den Konstruktor geben, wenn Sie sagen, dass Edit gleich wahr ist und wir sagen Unterteilungen greifen auf gleiche Spannen zu. Was wir jetzt sehen, ist, dass ich den Befehl Poly Pipe wieder mit der Polity Pipe verwenden werde , die wir dieses Mal haben, geben wir ihm das Edit-Flag, so dass es weiß und irgendwie
eine neue zu erstellen , um die vorhandene zu bearbeiten. Also, wenn wir jetzt auf diese, können
Sie sehen, dass es die Anzahl der Spannweiten auf diesem geändert hat. Aber das Poli Extrudengesicht ist alles durcheinander, weil es nicht weiß, welche Gesichter
genau extrudiert werden sollen . Wie sehen Sie, was es tatsächlich verwendet? Diese Werte zerstören? Nun, wenn Sie Polly Extrude Gesicht sagen und wir werden die Liste bei ihrem Befehl in einer
Python verwenden , also in einer neuen Zeile, werde
ich Befehle sagen. zunächst Lassen Sie michzunächstdie Befehle importieren, Lavery. Also werden wir von Maya Import Ramone sagen und bemerken, dass Befehle der Liste Adder. Und dann gebe ich ihm die Poly-Extrude-Fläche eins. Wir führen das jetzt durch. Es gibt uns nichts zurück. Das liegt daran, dass wir es auch drucken müssen. Wenn wir dies auswählen und dann ausführen, gibt
es uns eine Liste aller Attribute zurück, die sie zu viele sind, um durchzugehen. Also sage ich dir, derjenige, der daran interessiert ist, heißt Komponente. Es heißt Eingabekomponenten, die Sie hier beschränkt haben, können wir verwenden, um auf ihre Kommune zu gelangen, um zu sehen, was es gleich ist. Wir sagen, Get at the polity extrude Gesicht ein Punkt Eingabekomponenten. Und wenn ich das jetzt ausführe, können
Sie sehen, dass es gleich den Nennwerten ist, die wir haben, so können wir verwenden, wie wir es bei ihrem Befehl verwendet haben. Wir können das Set bei unserer Verpflichtung verwenden, um es wieder zu setzen, also erstellen wir eine Liste, zerstören alle Gesichter. Und genau wie zuvor, werden
wir sagen, Seitenflächen ist gleich Bereichsspanne Zeiten für Sie erstreckt sich mal drei und wieder. Dies bedeutet, dass wir durch das erste Gesicht gehen, das die Anzahl der Zeitspannen für Sie sein wird. Dann werden wir alle zwei Werte erhöhen, wie dies gegeben wird. Tut mir leid, das sollte mal drei sein. Das werden die Gesichter sein, die wir wollen, und wir werden diese Liste ändern, um
Namen zu nennen , damit wir nicht verwirrt werden. Also jetzt Was wir tun werden, ist, sagen wir vier Gesicht innerhalb Gesichter Gesicht, Name ist gleich und wieder Will Sie String Substitution sagen f und eckige Klammern. Und im Inneren davon werden
wir sagen Prozent s, weil ich Prozent s durch diesen nächsten Wert innerhalb dieser
Drucke ersetzt werden sieht, die Gesicht sein wird, wenn ich sage, Druckgesicht und ich jetzt das laufen, lassen Sie mich das loswerden. Zunächst einmal
lassen Sie mich das einfach kopieren, damit wir die Werte sehen können, die erwartet werden. Kann ich sie dabei haben? Sie können sehen, dass es uns die Namen gibt, die Zahlen der Gesichter, was eigentlich mit dem Gesichtsnamen wollte. Es genügt, das auszudrucken. Jetzt können Sie sehen, dass es f sagt und dann in eckigen Klammern den Gesichtsnamen, den wir wollen. Also, was wir tun werden, ist, dass wir das auf die Liste der Gesichter hinzufügen. Also sagen wir Gesichtsnamen Punkt upend und wieder, können
Sie Kuchen Charme geben uns hilfreiche Abschluss sehen, und wir werden Gesichts Namen speichern. Also, wenn ich sage, drucken Gesichtsnamen und ich das, können
Sie sehen, dass es sehr ähnlich der Liste ist, die wir jetzt hier haben. Was wir tun werden, ist wie wir es früher gemacht haben. Wir werden jetzt die Attribute festlegen, die sagen würden, komm schon. Also setzen Sie sich wieder auf sie, werden Sie String Substitution? Weil wir nicht wissen, wie der Name der Extrudiernotiz ist. Während sie die Funktion ausgeführt haben, werde
ich ihm den Extrude-Knoten geben und dann das nächste Argument, das es braucht, ist, wie viele Elemente es in der Liste gibt, es zu geben. Also sagen wir Len, und ich werde ihr die Liste der Gesichter geben. Und was das tun wird, ist, dass sie die Länge der Gesichtsnamen-Liste erhalten und sie dem
Satz außer Funktion geben . Als nächstes braucht es eine Liste von alten Gesichtern, die so geschwächt tun wird, ist die Liste der
Gesichtsnamen zu erweitern . Wir tun das, aber geben das Sternchen und wir sagen Gesichtsnamen. Und was dies tut, ist, anstatt ihm die Liste der Gesichtsnamen zu geben, es erweitert sie so, dass jeder von ihnen ein Parameter sein wird. Dies ist das gleiche wie f 1 60 hier zu sagen und dann einen anderen Parameter zu geben, der f 1 62 sagt und so weiter. Und so weiter. Was wir tun, ist und fing an, sie jeweils einzeln zu geben. Wir erweitern es aus der Liste, so dass wir es nicht manuell tun müssen. Und schließlich ist
die Verlustvariable Typ, weil wir ihm sagen müssen, welche Art von Typ das Attribut ist. Und wir werden sagen Komponentenliste. Ich muss das sagen. Und wenn ich hier die Geschichte lösche und dann das Skript ausführe, kannst
du sehen, dass unsere Ausrüstung bearbeitet wurde, um die richtige Zähnezahl zu haben. Wir wollen auch in der Lage sein, die Länge zu ändern, und das ist wieder sehr ähnlich. Also sagen wir Befehle Nepali Extrude Facette, weil es ein Befehl ist, den wir verwendet, um die
extreme erstellen wir geben es Extrude Knoten. Und genau wie wir es früher mit der Poly Pipe getan
haben, sagen wir, dass Edit wahr ist, weil Sie es bearbeiten wollen und wir müssen wissen, und wir müssen meine Ich wissen lassen, dass wir es bearbeiten wollen. Und als nächstes werden wir eine kurze Form für die Variable von früher verwendet verwenden. Wir werden sagen, Z ist gleich Leihgaben. Dies ist eine Kurzform aus dem lokalen Translate Z-Parameter, den Sie die Kurznamen innerhalb der Maya-Dokumentation zuweisen. Ich werde es hier nur benutzen, um faul zu sein. Also, wenn ich das nie wieder renne, funktioniert
es so, wie wir es erwarten. Ich kann die Anzahl der Zähne 10 nochmals ändern und ausführen. Und die Änderungen, die und es kann die Länge auf 0,5 ändern. Wenn ich es jetzt laufe, können
Sie sehen, dass es die Länge verlängert hat und es kann es wirklich klein nach unten ändern. Und genau so haben
wir eine Funktion. Wir haben ein Zahnrad geschaffen, und jetzt können wir das gleiche Zahnrad ändern, das wir erstellt haben.
29. Kurseinheiten: Benutzerdefinierte Arten und Schnittstellen in Python: Ich werde nicht über Klauseln lernen. Klauseln befinden sich in einem Python, um benutzerdefinierte Typen zu generieren. In diesem Fall wird ein
Typ namens Animal generiert . Wir erstellen die Tierkrallen, indem wir die Klausel Schlüsselwort geben ihm den Namen von ihm genannt geben den Namen Tier. Und dann sagen wir ihm, wovon wir erben sollen. In diesem Fall erben
wir vom Python-Objekt,
das den niedrigsten Level-Typ in einem Python ist. Das bedeutet, dass Tier alle Eigenschaften, die Objekt haben wir mehr darüber in
ein bisschen innerhalb einer Klausel erfahren ? Methoden schwächen definieren. Diese ähneln Funktionen, müssen
aber innerhalb einer Klausel leben. Und sie alle nehmen sich selbst als erstes Argument an. Ansonsten verhalten
sie sich alle genau wie Funktionen. Wir erstellen eine Instanz aus dem Tierobjekt auf die gleiche Weise, wie wir Instanzen von jedem anderen
Typ innerhalb eines Pythons erstellen . Wenn ich also eine Liste erstellen wollte, würde
ich sagen, dass meine Liste der Liste gleich ist. Ich gebe ihm den Typ, den ich erstellen möchte, und dann Klammern und dann speichere ich ihn in einer Variablen namens meine Liste. Also, wenn ich ein neues Tier erschaffen möchte. Ich kann sagen, etwas wie Tiger ist gleich Tier und geben ihm Währungen auf die gleiche Weise, wie wir Schöpfer Liste. Wir erstellen eine neue Tierinstanz, indem wir ihr den Typ mitteilen, der Klammern gibt, um anzuzeigen, dass wir eine neue Instanz erstellen und sie dann in einer Variablen namens Tiger speichern. Wenn ich sage, drucken Sie die Art des Tigers, Sie können sehen, dass es eine Klausel des Tieres in einem Haupt gespeichert ist. Dies ist momentan relevant, aber wir lernen später darüber. Wir haben schon früher gelernt, wie man Funktionen mit Objekten aufruft. Wenn Sie etwas sagen wollen, um zu sprechen, würden
wir sagen, sprechen und geben ihm das Objekt, das wir wollen, und geben ihm das Objekt, an dem wir diese Aktion
durchführen möchten . Zum Beispiel haben
wir Dinge wie denken,
Befehle, die Eltern und dann geben Sie ihm ein Objekt wie Tiger, anstatt dies zu tun. Wo wir übergeben, wo übergeben wurden, sind Variablen in eine Funktion. Python hat eine funkelnde objektorientierte Programmierung. Objektorientierte Programmierung ermöglicht es uns, Aktionen mit dem Tigerobjekt auszuführen, anstatt Aktionen auf dem Tigerobjekt
auszuführen. Anstatt also sprechen zu sagen und ihm die Tigervariable zu geben, können wir stattdessen sagen, dass Tigerpunkt spricht. Und wenn ich das jetzt leite, wird
es sagen, ich weiß nicht, wie ich sprechen soll. Dies liegt daran, dass wir dieses Verhalten genau hier definiert haben. Ein weiterer Aspekt von Klassen ist die Tatsache, dass Sie mehrere Instanzen von einer erstellen können. Also statt zu sprechen, sagen wir, ich weiß nicht, wie ich sprechen soll, sagen
wir, mein Name ist und dann lasst es uns. Und dann lassen Sie es sich auf einen sehr biblischen Namen beziehen und wir sagen, Name ist gleich keiner weil wir den Namen noch nicht definiert haben. Dies ist unsere Einführung in das Schlüsselwort self. Das lässt uns auf eine Instanz von Kloss verweisen. Also im Moment, wenn ich sage, Tiger spreche nicht, wird
es sagen, dass mein Name keiner ist, weil selbstgelehrter Name keiner ist. Wenn ich Tiere erschaffe und ich sage, und ich sage, dass sie beide bis wieder sprechen sollen, sagen
beide, dass der Name keiner ist. Aber jetzt kann ich etwas Besonderes machen. Ich kann sehen, Tiger-Punkt-Name ist gleich Tiger und Buffalo. Fertig. Der Name ist gleich Büffel, und wenn ich das jetzt ausführe, können
Sie sehen, dass diese Instanz des Tierobjekts ausgedruckt wird. Mein Name ist Tiger, weil die sprech-Methode sich auf den selbstgelehrten Namen bezieht
, der hier auf dieser speziellen Instanz festgelegt wird. Dies bedeutet, dass wir das Verhalten einer Klasse wiederverwenden können, während wir nur bestimmte Aspekte
ändern wie wir es für richtig halten. Dies gibt uns die Möglichkeit, viele wiederverwendbare Verhaltensweisen zu definieren, die wir gesehen haben, dass ihr Tier vom Objekt
erbt, aber wir können andere Typen erstellen, die vom Tier erben. zum Beispiel Lassen Sie unszum Beispieleinen Hund erstellen und anstelle von Objekt werde
ich ihm sagen, dass er vom Tier erben soll. Und ich werde hier nichts definieren. Also lasst uns einen neuen Hund erschaffen. Ich werde es nennen. Fido ist wieder gleich Hund. Wir erstellen eine neue Hundeinstanz und speichern sie dann in der Kämpfervariablen. Wenn ich sage Fido dot sprechen, wird
es sagen, dass mein Name keiner ist, weil es verwendet, weil es die hier
oben definierte Methode verwendet . Stattdessen wollte
ich sagen, Wolf, jemand sagt, so werde ich jetzt neu definieren, sprechen und ich werde sagen, Druck wert. Und jetzt wird es Wolf sagen,
und das liegt daran, dass wir nur die Sprechmethode aus dieser Klasse hier oben neu definiert haben. Aber wenn ich jetzt sage Kämpfer Punkt atmen, obwohl wir die Rassemethode für Hund nicht definiert haben, wird
es diese Eigenschaften vom Tier erben. In diesem Fall haben wir hier oben definiert und Sie können sehen, dass es sagt, ich weiß nicht, wie ich hier unten
atmen soll , genau das gleiche A sagt, ich weiß nicht, wie ich atmen soll erscheinen. Dies liegt daran, dass Hund jede einzelne Eigenschaft vom Tierobjekt erbt, und das liegt daran, dass wir Tier als Basis für Hund definieren. Wir können dies weiter erkunden, indem wir sagen, drucken Typ ein Kämpfer, und ich werde sagen, dass es aus den Krallen Hund. Aber wir sagen, Druck ist Instanz Fido aus Tier. Es wird wahr sein, denn Fido ist eine Instanz von Hund und Tier,
weil Kämpfer sowohl den Hund als auch die Tiereigenschaften erbt. Wenn wir mehr Methoden dazu definieren, um zu überschreiben, können
wir sagen, gehen und ich werde sagen, drucken. Ich gehe auf vier Beinen und jetzt, wenn ich Kämpfer renne, gehen Sie nicht. Sie werden sagen, ich gehe auf vier Beinen, aber wenn ich sage, Kämpfer ,
nicht atmen, wird
es die Methode vom Tier Kloss bekommen, anstatt von der Hundeklasse. Schließlich können
wir auch immer unsere eigenen Methoden hinzufügen. Jedes U-Boot schließen. In diesem Fall sagen
wir, was Rasse ist und wir werden sagen, drucken Selbststernrasse. Und definieren wir hier oben eine Rasse und wir werden sagen, züchten wie keine. Also, wenn ich Fido sage, was ist Rasse? Sie können sehen, dass es uns keine gibt, aber wenn ich es jetzt tun würde. Aber wenn ich jetzt diesen Wert und die Entstehung festsetze, und ich werde sagen, dass es ein Dobermann ist, wenn ich jetzt renne, wird
es mir sagen, dass es ein Dobermann ist. Aber wenn ich Kämpfer von einem Hund in nur ein normales Tier umwandle und dann renne, kann
man sehen, dass Tierobjekt keine Attribute hat. Was ist Rasse? Denn das, was Rasse ist, ist nur auf dem Hundeobjekt und nicht auf dem Tier definiert. Kloss. Es funktioniert also nur, wenn Fido für Hund und nicht nur für ein Tier ist. Was uns dies erlaubt, ist das gemeinsame Verhalten in einer Basis zu definieren. Kloss, in diesem Fall,
Tier, das alle Tiere teilen können, und wir können spezialisiertere Verhalten innerhalb einer Unterklasse wie Hund definieren. Wenn du eine neue Klausel erstellst, zum Beispiel Fisch und wir sagen ihr, sie soll ein Tier sein, und wir könnten einfach die Atemmethode neu definieren, und ich werde ihr sagen, dass ich unter Wasser atme. Wenn ich einen neuen Fisch kreiere und ihm sage, er soll atmen, wird
es sagen, dass ich unter Wasser atme, weil er vom Tier geerbt wird. Und wenn ich es sagen soll, werde ich sagen, dass mein Name keiner ist, weil er vom Tier erbt. Das hat uns erlaubt, zwei verschiedene Arten von Untertieren Hund und Fisch zu finden , die Boot vom Tier erben. Aber sie definieren ihr eigenes Verhalten, wo es angebracht ist, aber beide erben gemeinsames Verhalten als Zusammenfassung, um mehrere Gründe zu zeigen. Meine Klassen sind sehr nützlich. Es ermöglicht uns, wiederverwendbares Verhalten zu definieren, das wir mithilfe von Instanzen anpassen können. Eine Instanz Variablen dazu können wir gemeinsame Verhalten gruppieren. Zusammen Es bezieht sich auf einen einzelnen Objekttyp in diesem Fall, aus Tierarten und drei. Es ermöglicht uns, jede dieser Klassen zu erben und zu erweitern. Wir können jede der Methoden überschreiben, die definiert wurden, oder wir können unsere eigenen neuen Methoden hinzufügen, um einer Klausel mehr Funktionalität hinzuzufügen, ohne jeden anderen Typ von Unterklasse
beeinflussen zu müssen , den es
30. Die Funktionen in die Kurse konvertieren: Wir werden unsere Funktionen zum Erstellen und Ändern von Zahnrädern nicht in ein Tuch umwandeln , mit dem wir im Kreisbegriff einfacher interagieren können, eine neue Datei
erstellen. Sie werden neue Dateien ablegen und Python-Datei sagen. Sagen Sie Ausrüstungstücher, Schöpfer. Stattdessen haben wir Recht. Klicken Sie auf die Registerkarte und sagen Sie, Vertikal
aufteilen“. Dies wird unseren Code senkrecht zwischen dem Zahnradschöpfer und dem Gear Clause Creator , der jetzt für die Mehrheit dieses Videos erstellt wird, wird in einem Kuchen Charme bleiben. Dennoch müssen
wir zurück zu Maya gehen, weil die Funktionalität ziemlich einfach ist. Zuerst sagen
wir von Maya Import. Siehe MDS. Wir werden eine Klasse erstellen und wir werden ein Zahnrad nennen und wir werden vom Python-Objekt erben. Im Inneren dieser, lassen Sie uns eine neue Funktion oder Methode erstellen, und wir nennen es Zahnrad erstellen. Wie Sie sehen können, fügt
Pie Charm automatisch ein Selbstschlüsselwort hinzu, so dass wir wissen, wie wir uns
innerhalb der Klasse auf uns beziehen . Wir verwenden die gleichen Parameter wie zuvor, und Sie können den alten Code auf der linken Seite sehen. Ich werde sagen, Spannweiten sind gleich Zähnen. Mal zwei. Ich schreibe genau den gleichen Code wieder transformieren und Konstruktor ist gleich Befehlen. Duck, Polly Pipe und lassen Sie mich sehen, die Flaggen, die verwendet. Ich werde das einfach quer kopieren und wir werden sagen, Seitenflächen sind gleich Bereichsspannen mal
zwei Spannweiten Zehe drei und sagen zu nochmal Nun, sag es, um die Auswahl zu löschen und wir sagen vier Gesicht innerhalb Gesichter. Und lassen Sie mich das einfach den Rest des Codes von dieser Funktion kopieren und sicherstellen, dass es
eingerückt ist , so dass es mit der Create-Getriebefunktion übereinstimmt, oder in diesem Fall ist
es eine Methode. Als nächstes erstellen
wir die Änderungszähne Methode wird es quer kopieren, und ich werde nur sicherstellen, dass alles richtig eingerückt ist, indem Sie es auswählen und Tab drücken. Ich weiß, fügen Sie das Schlüsselwort self am Anfang manuell hinzu, also ist das nicht sehr nützlich. Wir haben gerade den gleichen Code genommen und ihn in ein Getriebeobjekt gesteckt. Wenn Sie zurück in meine,
uh, uh, wir können das importieren, indem wir Getriebetücher Schöpfer sagen, was wir tun, ist das Importieren des neuen Moduls, aber als dieser Modulname, so dass wir den Rest unseres Codes nicht ändern müssen. Und wenn ich versuche, das jetzt zu laufen, lassen Sie mich einfach kommentieren. Diese Linie abgeschleppt. Wenn ich versuche, dies jetzt auszuführen, wird
es sagen, dass es keine Create-Gear-if-Methode gibt, weil es jetzt innerhalb einer Klausel ist. Also lasst uns den Kloss erschaffen. Nun,
sagen wir, Getriebe ist gleich Gang. Und wenn wir das jetzt ausführen Oh, tut mir leid. Wir müssen sagen, dass die Ausrüstung in der Ausrüstung Schöpfer ist und wenn ich jetzt diese laufen, können
Sie sehen, dass es funktioniert. Wir müssen das noch außerhalb von für Tücher verwalten. Das ist nicht sehr nützlich für uns. Also wieder in Kuchencharme, lasst uns das ändern. Zunächst einmal haben
wir das Selbst. Was bedeutet das? Das bedeutet, dass, wenn wir im Inneren von hier sind, sich
Ausrüstung auf diese Instanz von Ausrüstung bezieht und unsere Methoden wissen, wie sie darauf zugreifen können. Eine andere Sache, die in der Nähe ist, lassen Sie uns es tun, Werte in uns selbst speichern. Also lasst uns das jetzt versuchen. Also werden wir tun, ist, dass sie sagen werden, Selbstduck-Transformation und Selbstpunkt-Konstruktor und hier unten werden Sie es zu
Selbstpunkt-Transformation ändern , und wir würden diesmal nichts zurückgeben. Darüber hinaus ändern
wir es in Selbstpunktextrude, und was wir hier tun, ist, dass wir sagen, dass es eine Art ist, diese Variable innerhalb
der Justizfunktion gespeichert zu haben . Lasst uns diese Variable selbst einschlagen. Dies ist ein Weg, um Variablen außerhalb dieser Funktion zu zerstören, und es ist ein gutes Beispiel für Python. Scoping ist ein Beispiel für eine Variable, die nur innerhalb dieser Funktion existiert. Wir können nicht außerhalb dieser Funktion darauf zugreifen. Die zweite Dysfunktion beendet Seitenflächen nicht mehr vorhanden. Stattdessen konstruieren wir, oder diese Variable auf der Tücher Instanz selbst durch die Verwendung von Selbst. Das bedeutet, diese Variable auf sich selbst wiederherzustellen. Also, wenn du zurück zu Maya gehst und ich das hier führe, lass mich das löschen. Zuerst werden
Sie sagen, dass kein Typ nicht schrecklich ist, weil wir versuchen, zu erweitern, um Werte zurückzugeben. Und wie Sie sehen können, entfernen
wir den Rückgabewert. Ursprünglich hatten
wir das. Wir geben nichts mehr zurück, also lass mich den Kranken loswerden. Ich sage einfach getriebenes oder erschaffe Getriebe. Aber jetzt ist hier der coole Teil. Ich kann sagen, Druck Getriebe Punkt Transformation. Und wenn ich das renne, können
Sie sehen, dass es P-Rohr eins sagt. Das liegt daran, dass ich diese Attribute für diese Instanz aus Gang gesetzt habe,
und ich kann jetzt auf dieses Attribut auf dieser Instanz von Gang eine Schwung zugreifen. In ähnlicher Weise kann
ich sagen, drucken Sie die Extrude und wieder es cept auf dem Zahnrad. Ich
kann
jedoch jedoch nicht auf die Variable Seitenflächen zugreifen. Mal sehen, ob ich das versuche. Da steht, dass Gear keine Attribute hat. Seitliche Flächen. Das liegt daran, dass die Seitenseiten-Variable auf Justizfunktion beschränkt ist, und das ist, wie wir es für jetzt wollen. Also, jetzt, da wir die Transformation des Konstruktors nicht zurückbekommen und extrudieren, wie wir
früher waren , macht
es keinen Sinn, dies hier zu haben. Also lasst uns diese Variablen loswerden. Und jetzt, wenn Sie zurück zum Kreisdiagramm gehen, lassen Sie uns auch diese Parameter loswerden, und wir können einfach auf sie verweisen, indem Sie sich wieder selbst verwenden. Also sagt es, selbstgelehrter Konstruktor
, der diesen Wert bekommt und wieder hier unten können wir sagen, Selbstzweifel, extrudieren und selbst Zweifel wieder extrudieren und
sagen, Blick auf den Wert des Selbst auf uns selbst. Dies bedeutet, dass wir außerhalb der Funktion schauen und stattdessen schauen wir auf die Klasse. Also, wenn du zurück hierher gehst und das jetzt
läufst, lass mich das zuerst löschen und wenn ich jetzt all das durchführe, kannst
du sehen, dass wir hier drüben einen Gang haben. Mit diesen Änderungen kann
ich nun die Anzahl der Zähne und die Länge ändern. Wenn ich diese Linie wieder laufe, können
Sie sehen, dass wir nur den gleichen Gang modifizieren. Und wenn ich sagen würde, drucken Art von Ausrüstung, Sie können sehen, dass ist aus Typ Ausrüstung von der Gear Tücher Schöpfer. Daher können
Sie Stoff von einer wirklich guten Möglichkeiten fühlen, Logik in sich selbst zu enthalten. Anstatt ihre Funktion wie in unserem vorherigen Beispiel aufrufen zu müssen und die Werte zu speichern , die von ihr stammen und dann diese Werte verwenden, um sie in eine andere Funktion zurückzugeben. Wir können nur an einem Zahnradobjekt festhalten, und es weiß, wie man mit sich selbst interagiert. Wenn Sie wieder in Kuchen Charme gehen, können
Sie sehen, dass diese Werte nur gesetzt werden, wenn ein kreatives Jahr. Aber sie sind standardmäßig nicht da, bevor wir diese Methode ausführen. Also, wenn ich in Maya gehe und ein neues Getriebe kreiere und ich sagte, dass Getriebe extrudiert wurde, war
das etwas, was wir früher hätten bekommen können. Aber wenn ich nie darauf, können
Sie sehen, dass das Getriebeobjekt keine Attributextrude hat. Dies liegt daran, dass wir standardmäßig die Attribute erstellen, bis diese Funktion ausgeführt wird. Wenn Sie also Getriebe sagen, Zahnrad
erstellen und jetzt gut laufen, erhalten Sie stattdessen den Wert zurück, lassen Sie uns diese Werte standardmäßig setzen. Innerhalb eines Pfeifen-Charms wird eine Funktion erstellt, die darin aufgerufen wird. Also, um diesen jüngsten Tod zu erschaffen, wie wir alle Funktionen von Methoden erstellen. Aber dieses Mal tippen wir doppelt in die Partituren und darin und Pfeife Charme wird es für Sie vorschlagen , gefolgt von zwei weiteren Unterstrichen. Also doppelter Unterstrich i n I t. Gefolgt von zwei weiteren Unterstrichen. Wir geben ihm den Wert des Selbst. Und dann sagen wir hier einfach Selbstlehren. Die Form ist gleich keiner. Self dot extrude ist gleich none, und self, dieser Konstruktor ist gleich none. Nein, ich sagte,
ist, wenn wir zum ersten Mal ein neues Getriebe initialisieren und dann können wir abfragen, ausgerichtete Extrude. Oh, tut mir leid. Nachdem Sie das zuerst neu geladen haben, lassen Sie es mich neu laden. Und wenn ich eine neue Getriebeinstanz erstellt habe und dann ausgerüstete Extrude ausgeführt werde, können
Sie sehen, dass nichts ausgedruckt ist. In der Tat kann
ich sagen, drucken Getriebe Punkt extrudieren und sie werden keine sagen. Dies ist, weil wieder in Kuchen Charme. Wir setzen Selbstzweifel. Extrudieren entspricht keiner. Aber wenn ich sagen sollte Geared, Ich erstelle Getriebe und führe diese Linie jetzt ausgerichtete Extrude Wert hat. Aber was das bedeutet, ist, dass, wenn wir nicht laufen, erstellen Getriebe, können
wir immer noch den Wert von Zahnradpunkt extrudieren und zurück in Torten-Begriff bekommen. Ich kann endlich erklären, was die Einheitenfunktion tut. Thean it Methode wird ausgeführt, wenn eine neue Instanz des Objekts erstellt wird. Also, wann immer wir das tun, führen
wir tatsächlich die innit-Methode aus. Ich kann Ihnen das ganz einfach zeigen. Wenn ich sage, drucken läuft die innit-Methode, Wann immer ich ein neues Zahnradobjekt erstelle, können
Sie sehen, dass es sagt, die Einheitenmethode
ausgeführt wird. Lassen Sie mich also ein neues Getriebeobjekt erstellen. Ich kann versuchen, extrem ausgerichtet zu drucken, und ich werde keine sagen, weil es immer noch auf keines eingestellt ist. Aber wenn ich sagte, Getriebe oder erstellen und jetzt Druck ausrichten extrudieren,
es hat Wert, weil ich Methode erstellen Getriebe hat den Wert des Zahnradpunkts extreme geändert. Daher können
Sie den Wert deran it-Methode sehen, indem Sie uns Standardwerte und Verhalten festlegen . Wenn ein Close erstellt wird und vor einer seiner Methoden oder schließlich ausgeführt wird, um die
Zahnradklasse zu dokumentieren , erstellen
wir die Dokumentation unter dem Wort Kloss, genau wie wir es für eine Funktion tun. Also lassen Sie uns drei doppelte Anführungszeichen hinzufügen, und wir können sagen, dass dies ein Zahnradobjekt ist, mit dem wir hier ein Zahnrad erstellen und ändern können. Lassen Sie uns einen Kommentar hinterlassen, um die innit-Methode zu sagen. Lassen Sie uns einen Satz Standardwerte, und dann, wenn Sie möchten, Dokumentation für diese hinzufügen, können
Sie es auf die gleiche Weise tun. Und da gehst du. Wir haben ein allererstes Tuch erstellt, indem wir die Funktionen, die wir in unserem ersten
Video gelernt haben, konvertieren und sie verwenden, um diese Klausel namens Gear zu komponieren. Wir haben über sich selbst und über die Unit-Methode gelernt und darüber, wie nah die Zustimmungswerte an sich selbst sind und dann auf Werte auf sich selbst zugreifen, so dass wir keine eigenen
Variablen außerhalb der Funktionenhalten müssen Variablen außerhalb der Funktionen
31. Projekt 4: Der Animation: durch dieses Projekt wird lernen, wie man eine Controller-Bibliothek mit niedlich zu erstellen. Unsere Controller-Bibliothek wird flexibel sein und Thumbnails unterstützen. Wir können jedes der Objekte importieren, die wir speichern, und wir können auch alle neuen Objekte erstellen, die wir wollen. In diesem Fall werde
ich das als Test sagen, und wenn ich auf Speichern klicke, werden
Sie sehen, dass es innerhalb unseres Fensters erscheint. Wir haben gelernt, wie man Daten als Jason und Dateien speichert und sie wieder in Are You? Ich Wir werden mit niedlichen von pi-Seite zur Verfügung gestellt innerhalb meiner 2017 und Tortenseite. In früheren Versionen von Maya, werden
wir über die Unterschiede zwischen niedlichen vier und niedlichen fünf gehen, sowie die Unterschiede zwischen Kuchen süß und Kuchen Seite und Kuchen, Nette fünf und Kuchen Seite, auch. Ich werde auch über eine beliebte süße Bibliothek gehen, die von Disney,
WETA,
Sony Imageworks und mehr verwendet WETA, wird. Es wird uns helfen, Code zu schreiben, der sowohl in Maya 2017 als auch in früheren
Versionen von Maya verwendet werden kann . Im nächsten Video werde
ich eine kurze Einführung in niedlich auf machen. Die verschiedenen Versionen sind niedlich im Inneren der verschiedenen Versionen von Maya
32. Übersicht über die User in Maya: bevor wir mit dem Design beginnen. Sind Sie Augen? Ich gehe gerne über die verschiedenen You I Bibliotheken im Inneren bewundern meine hat zu Ihnen ich Bibliotheken. Einssein, ein Teil der Befehls-Bibliothek, die bereits mit dem anderen vertraut waren, basiert auf etwas namens Niedlich. Es ist Zauber Q T. Aber die offizielle Aussprache ist süß, so tragen Sie mit mir, wie ich verwenden werde, dass die gesamte meine Benutzeroberfläche auf Cute gebaut ist. Cute ist eine C Plus-Bibliothek, die Anwendungsentwickler für ein
Betriebssystem entwickeln können und ein Sie I haben, das nativ auf jedem anderen Betriebssystem aussehen kann. Wenn ich etwas unter Windows entwickelt
habe, kann ich denselben Code unter Mac OS oder Lennox wiederverwenden, und meine Anwendung sieht so aus, als würde sie zu diesem Betriebssystem gehören. Darüber hinaus bietet
es viele weitere Funktionen, die uns helfen, plattformübergreifende Anwendungen zu entwickeln. Vor meinem 2011, als mein A Wechsel zu niedlichen Maya hatte verschiedene Sie ich Bibliotheken für jedes Betriebssystem. Dies bedeutete, dass
Sie als U I-Entwickler gezwungen sind, die Maya Commands-Bibliothek zu verwenden, in der die Befehle die entsprechende Bibliothek auf jedem Betriebssystem verwenden würden, so dass Sie nicht wissen müssen, was sie verwendet. Dies verursachte viele visuelle Diskrepanzen und Verhaltensunterschiede. Darüber hinaus bietet
die Maya Commands Bibliothek nur eine kleine Teilmenge von dem, was süße Angebote. So verlieren Sie die Kontrolle auf Kosten, die zugrunde liegenden Details nicht verstehen zu müssen. Als mein A 2011 kam um meine ich hatte eine neue dunkle Sie ich mit der niedlichen Bibliothek, diese mentale Maya vergossen das gleiche Sie ich Code auf jedem Betriebssystem, und es bedeutete, dass wir endlich etwas namens Pike UT oder Kuchen verwenden konnten. Cute Pi cute ist eine Python-Bindung um die niedliche Bibliothek. Dies bedeutet, dass wir alles verwenden können, was die Q-Tests oder bieten in Python. Plötzlich gab dir das. Ich Designer sperren mehr Kontrolle und Flexibilität dort drüben, Leute, weil sie nicht mehr die Commands Library verwenden mussten, die ein Wrapper war. Niedlich. Wie auch immer, es bedeutete, dass du viel mehr Kontrolle über jedes kleine Ding hast, das du in diesem ersten
Projekt erstellt hast . Ich werde Ihnen zeigen, wie Sie Jungs mit der Maya Commands Bibliothek zu erstellen und in den nächsten zwei Projekten bieten, dass wir auf den Kuchen niedlichen Konkurrenten er wechseln werden, die Schiffe mit Maya genannt Tortenseite, auch
33. Daten für die Tween verwenden: beginnen wir, indem wir unser Skript erstellen, das wir in Maya importieren können. Also klicke ich auf Ihr Skript-Verzeichnis, sehen Neue und Python Datei, und wir werden diesen tweener Sie ich doc pie nennen. Wir werden beginnen, indem wir zwischen Funktion erstellen, die wir innerhalb verwenden können. Bewundere dich. Nehmen wir also von Maya Import C. M. D s. Dann lassen Sie uns die Tween-Funktion erstellen. Also sagen wir wieder Tod dazwischen. Der Tod ist kurz für definieren zwischen ist unser Funktionsname und in der Prinz sieht Lassen Sie uns
die Parameter geben , die wir brauchen. Zunächst einmal müssen wir zwischen ng wissen, welchen Prozentsatz zwischen zwei. Dann müssen wir wissen, welches Objekt zwischen. Aber lassen Sie uns dies zu einem Standard von keiner machen. Wir wollen wissen, welche Attribute zwischen, aber auch wieder sagen, dass dies keine ist. Schließlich können
wir sagen, dass die Auswahl gleich wahr ist, da standardmäßig die Tween-Funktion toe an der aktuellen Auswahl arbeiten soll. Aber bevor wir weitermachen, denke
ich, dass es wichtig ist zu zeigen, dass wir hier widersprüchliche Argumente haben können. Wenn ich sage, Auswahl gleich falsch ist und ich kein Objekt
spezifiziere, habe ich nichts zum Ausführen. Lassen Sie uns also einen Fehler am Anfang von for Code setzen, damit wir keine Zeit damit verbringen, alles auszuführen, nur um herauszufinden, dass wir nicht überhaupt laufen konnten . Also werde ich sagen, wenn nicht über J und nicht Auswahl, dann werden wir Graswert Fehler sagen und wir werden sagen, kein Objekt zu Tween gegeben. Also, wenn ich das jetzt ausführe, können
Sie sehen, dass es mindestens ein Argument braucht, also geben wir es einen Prozentsatz. Und der einzige Grund, warum ich das jetzt in Tortencharme ausführen kann, ist, weil ich keine der Befehls-Bibliothek
verwende. Also sagen wir zwischen dem, was wir sagen, Auswahl gleich falsch. Und jetzt, wenn Sie dies ausführen, können
Sie sehen, dass kein Objekt an Tween gegeben wird. Nun, wie funktioniert diese Überprüfung? Nun, wir sagen, wenn nicht Objekt,
was bedeutet, wenn das Objekt jetzt gleich falsch ist, das Objekt nicht gleich fällt, aber keine ist falsch ish,
was bedeutet, dass, wenn ich es in ein Aufzählungszeichen konvertiert habe wäre
es falsch und ähnlich ist die Auswahl falsch. Also sagen wir, wenn nicht Objekt wahr ist,
was bedeutet, dass Objekt falsch ist und nicht die Auswahl wahr ist,
was bedeutet, dass die Auswahl falsch ist. Dann werden wir erhöhen, bewerten Fehler bewerten Fehler ist ein Fehler, der sofort jedem präsentiert wird, unsere Funktion
aufruft und uns Details darüber, was schief gelaufen ist. Wir werden sagen, dass kein Objekt zwischen und erhöhen bedeutet, diesen Fehler sofort auszulösen und die
Ausführung ihres Codes zu stoppen . Als Nächstes. Sie möchten sagen, dass, wenn kein Objekt angegeben ist, also wenn nicht o b j, wir sagen, O b J ist gleich Befehle bekommen LS und Auswahl gleich eins. Entschuldigung, Auswahl ist gleich wahr. Und dann erhalten wir das erste Objekt in der Auswahl. Nein, lasst uns das so gut kommentieren, wie wir mitmachen. Also sagen, wenn Objekt Wenn LBJ nicht gegeben ist und Auswahl, es auf false error früh gesetzt. Wenn nein, wenn No O. B. J angegeben ist, rufen Sie es von der ersten Auswahl ab. Als nächstes müssen
wir dasselbe für Attribute tun, damit wir herausfinden können, welche Adder verwendet werden sollen. Also sagen wir, wenn nicht Adders. AdDers ist gleich Befehlen. Hat Liste Adder, weil wir die Attribute auflisten wollen, die für dieses Objekt verfügbar sind. Also sagen wir Objekt und Keeble gleich wahr. Also werden wir also das Objekt abfragen, das wir von der Auswahl erhalten haben, und wir haben das erste Element in der Auswahl
genommen, weil dies eine Liste ist. Also werden wir alle Attribute auflisten, die fähig sind. Also, jetzt werde ich einfach das O.
B.
J und die Adder ausdrucken B. , nur um sicherzustellen, dass wir die richtigen Dinge bekommen. Also, zurück in Meyer, werde
ich Import-Tweener laufen lassen. Ich höre, das ist ein Name für Modul. Ich sage Reload, Putzer. Sie ich und ich müssen sagen, tweener Sie ich doc Tween und ich werde es einige imaginäre Prozentsatz von 50. Also, wenn ich nie darauf bin, werden
wir all diese Attribute bekommen, die auf P Cube eins animiert werden können. In diesem Fall ist
es alles in der Kanalbox. Jetzt müssen wir also genau herausfinden, was wir tun müssen, um ein Tween zu erstellen. Und das könnte eine etwas fortgeschrittene Logik sein. Also zuerst müssen
wir unsere aktuelle Zeit finden. Die aktuelle Zeit hängt vom Schieberegler hier ab. Wenn wir hier drüben sind, nun, zwischen diesem Schlüssel und diesem Schlüssel. Aber wenn für hier drüben, nun, zwischen den anderen beiden Tasten, lassen Sie mich einfach Schlüssel auf anderen Kanälen loswerden, damit wir uns einfach auf den X-Kanal konzentrieren können, zurück in Kuchencharme. Lassen Sie uns die aktuelle Zeit von Mayas bekommen, sagte
Hui. Aktuelle Zeit ist gleich den Befehlen Punkt Karton Zeit und Sie werden sehen, eine Abfrage ist gleich wahr weil wir nicht wollen, um es zu ändern. Wir werden es nicht abfragen. Lassen Sie uns jetzt sicherstellen, dass wir in der richtigen Zeit sind. So sagen wir Drucken Karte in der Zeit und zurück in Maya. Wenn wir dies ausführen, können
Sie sehen, die aktuelle Zeit ist 28, weil rechten Frame 28. Wenn ich zu Frame 80 gehe und es ausführe, heißt
es Frame 80. Als nächstes müssen wir jedes Attribut auf Suchen nach dem vorherigen und nächsten Schlüssel durchgehen.
34. Keys mit der the einfügen: zuerst eine Vier-Schleife, Erstellen
wirzuerst eine Vier-Schleife,wie wir vier Luke erstellt haben, bevor wir vier in ER in
Adders sagen werden , wo Adders eine Liste ist. Nun, bevor wir dies tun, ist
es wichtig zu erwähnen, dass, wenn List Adder keine Keeble-Attribute zurückbekommt, es ihre Liste nicht zurückgibt. Maya gibt ärgerlich einen Nonentyp zurück, was bedeutet, dass wir eine for-Schleife verwenden können und unser Code für jetzt Fehler wird. Dies ist in Ordnung, weil ein Fehler erwartet wird, aber wir werden später darauf zurückkommen. Also zuerst, lassen Sie uns die volle auf ihren Namen erstellen. Also sagen wir Adder voll und wieder werde ich String Substitution und ich werde es über
J einen Adder geben . Also werden wir dieses Prozent s durch O.
B.
J ersetzen B. und dieses Prozent s durch den Adder in unserer aktuellen Schleife. Auf dem Prozent-Symbol sagt es einfach, die Dinge auf der linken Seite durch Dinge auf
der rechten Seite zu ersetzen . Und der Grund, warum ich das Volle bei ihrem Namen erstelle, ist, weil viele der Maya-Befehle dieses Format
benötigen, und anstatt es in jedem einzelnen Befehlsaufruf zu erstellen, ist
es besser, hier einfach zu erstellen. Damit wir es später wiederverwenden können. Für jetzt, lassen Sie uns eine Liste aller Schlüsselbilder auf den Attributen erhalten. Also sagen wir, Schlüsselbilder sind gleich Befehlen. Ducky Rahmen Adder Vollständige Abfrage entspricht true, und was dies tun wird, ist, dass es uns eine Liste aller Schlüsselbilder in der Aufnahme für die spezifischen Attribute gibt. Also, wenn wir drucken Keyframes speichern und wir gehen zurück zu Maya und führen dies, heißt
es, Modell hat die Attribute, Schlüsselbilder. Also haben wir irgendwo einen Tippfehler gemacht. Ah, sehr einfache historische Schlüsselbilder. Es heißt wieder Key Frame. Ich habe das beschränkt, indem ich die Moordokumentation nachsah. Gehen wir also zurück zu Maya und führen Sie das erneut aus, und Sie können sehen, dass alle anderen Kabelattribute uns keine anstelle einer Liste zurückgeben,
während das eine Attribut, das eingegeben werden kann, uns die Frame-Nummern für die Schlüssel zurückgibt. also keinen Sinn, den Rest unserer Logik fortzusetzen, wenn wir keine Schlüsselbilder dazwischen haben . Also, was ich sagen werde, ist, wenn nicht Keyframes, anderen
Worten, wenn Keyframes nicht wahr sind, dann lassen Sie uns mit dem nächsten Objekt fortfahren. Und was dies der Schleife sagt, ist, dass, wenn diese Aussage nicht wahr ist, dann fahren Sie mit dem nächsten Objekt fort und überspringen Sie alles unter mir. Dies kann uns helfen, Zeit zu sparen, weil wir es nicht tun. Wir werden keine Logik auf etwas ausführen, das es
nicht braucht. Also, jetzt müssen wir unseren vorherigen Schlüsselrahmen zu bekommen. Also lasst uns alle vorherigen Schlüsselbilder sammeln. Also, jetzt werden wir durch alle Schlüssel in der Schlüssel-Frame-Liste suchen, also sagen wir vier K in Schlüsselbildern. Wenn K kleiner als die aktuelle Zeit ist, was bedeutet, dass es ein vorheriger Schlüsselrahmen ist, werden
wir sagen, vorherige Schlüsselbilder dot upend que. Nun, bevor wir weiter gehen, lasst uns das einfach kommentieren, ich werde sagen, konstruieren Sie den vollständigen Namen aus den Attributen mit seinem Objekt. Ich werde sagen, bekomme die Schlüsselbilder von den Attributen auf diesem Objekt. Wenn keine Keyframes vorhanden sind, fahren
Sie fort und so weiter und so weiter. Es ist wichtig, dies zu tun, damit Sie zurückkommen und auf Ihren Code verweisen und verstehen können was vor sich geht. Normalerweise werde
ich nicht jede einzelne Zeile kommentieren, aber ich werde einen großen Teil Code kommentieren und Sie können
dies in meinen Get-Hub-Beispielen für dieses Video sehen . Ich werde ein wenig übereifrig mit meinem Kommentar, damit ich zeigen kann, was los ist. Okay, jetzt werde ich Ihnen ein Konzept vorstellen, Kalis Verständnis. Hier können
Sie sehen, dass wir eine Liste auf leerer Liste erstellt haben, und dann haben wir alle Schlüsselbilder in Schlüsselbildern für jeden Schlüssel durchlaufen. Wenn es kleiner ist als die aktuelle Zeit, dann werden wir es zur vorherigen Keyframe-Liste hinzufügen. Aber das sind 1234 Codezeilen, nur um herauszufinden, welche Schlüsselbilder vor der aktuellen
Zeit sind . Python hat also ein Konzept, das Listenverständnis. Einfach Wir können es später so verwenden. Schlüsselbilder sind gleich Frame vier Frame in Keyframes. Efraim ist größer als die aktuelle Zeit, und das ist genau das gleiche wie das, was wir hier nur in einer Codezeile getan haben. Also sagen wir für das Framing von Schlüsselbildern genauso, wie wir vier K- und Schlüsselbilder gemacht haben. In der Tat, lassen Sie mich diese K zwei Frames umbenennen, damit Sie Rahmen und Sie sehen können, dass es ein ähnlicher Wortlaut . Also sagen wir für das Framing von Schlüsselbildern, Efraim ist größer als die aktuelle Zeit. Fügen Sie den Rahmen zu dieser leeren Liste hinzu. Es ist ein bisschen eine verwirrende Syntax, aber es könnte sehr nützlich sein, wenn Sie nur einfache if-Anweisungen innerhalb einer
Vier-Schleife machen und dann eine Liste daraus erstellen möchten. Darüber hinaus ist das
Listenverständnis so oft förderlich, als eine vollständige Liste wie diese auszuführen. Jetzt müssen wir überprüfen, ob es keine wichtigen Freunde davor oder danach gibt. Dies ist sehr selten, aber es lohnt sich immer noch zu überprüfen. Also sagen wir, wenn nicht vorherige Frames und nicht Keyframes weiter. Also sagen wir, wenn es keine vorherigen Keyframes gibt und keine späteren Keyframes gibt, dann fahren Sie fort. Das Schlüsselwort und hier bedeutet, dass sowohl dies als auch dies wahr sein muss. Also müssen beide vorherigen Schlüsselfreunde leer sein und später Schlüsselfreunde müssen leer sein, bevor wir dem nächsten Element in der Liste fortfahren und weiter nur bedeutet, dass wir alle
Logik überspringen, die diesem folgen wird, damit wir wieder mit dem nächsten Objekt beginnen können in der Liste. Zum Beispiel, dies wird fortgesetzt, wenn es ausgelöst wird, wir überspringen all dies und wir beginnen einfach wieder von hier mit dem nächsten Eintrag in der Adders-Liste. Als nächstes müssen
wir herausfinden, was auch immer unser engster vorheriger Frame ist. Also sagen wir, wenn vorheriger Schlüsselrahmen das so ist, wenn es vorherige Schlüsselbilder als vorheriger Frame gleich Max aus den vorherigen
Frames ist . Eine andere Art von hier. Also werde ich es einfach reparieren. Und was dies tun wird, wird durch alle Objekte in der vorherigen Keyframe-Liste gehen, und wir werden den maximalen Wert ein Fall von ihnen erhalten. Wenn wir den nächsten der vorherigen Frames finden müssen, müssen
wir diejenige finden, die am höchsten ist, was daher dem US-Gesundheitszustand am nächsten ist. Wenn es keine vorherigen Keyframes gibt, dann sagen wir, dass der vorherige Frame gleich keiner ist, was bedeutet, dass er nicht wieder eingestellt wurde. Dies sind vier Zeilen für eine so einfache Auswertung. Wir können uns in eine Zeile verdichten, also sagen wir, dass der nächste Frame den Männern später gleich ist. Schlüsselbilder, wenn es spätere Schlüsselbilder sonst gibt, werden keine sein. Und das ist die gleiche Logik. Wir sehen, dass, wenn es spätere Schlüsselbilder gibt, genau wie wir gesagt haben, wenn es frühere Schlüsselbilder gibt, der nächste Frame gleich dem Minimum aus den späteren Schlüsselbildern ist, das uns den nächsten Frame zu unserem aktuelle Zeit. Andernfalls wieder, wie die else Aussage hier, werden
wir
wieder,
wie die else Aussage hier,sagen, dass der nächste Frame keiner sein wird. Und das ist ein nettes Feature innerhalb von Python, wo wir einfache, wenn else Aussagen bis zu einer einzigen Zeile verurteilen können. Lassen Sie uns also den vorherigen freien und den nächsten Frame drucken und gehen Sie zurück zu Maya, um sicherzustellen, dass alles funktioniert. Also, wenn ich das jetzt laufen, können
Sie sehen, gibt es uns 47 113. In der Tat, wenn ich diesen Rahmen wähle, war
es Frame 113. Und wenn ich diesen Rahmen auswählen, ist
es frei und 47. Aber was passiert, wenn wir auf einem bestimmten Frame sind und es dann ausführen? Es gibt uns eine, und sie und 13, die perfekt
ist, gibt uns zwei vorherigen Rahmen und den nächsten Rahmen. Was ist, wenn es keine vorherigen Frames mehr gibt? Gehen wir zum ersten Frame und führen es aus. Jetzt bekommen wir keine und 47 und das ist, weil sie sagen, dass, wenn es keine vorherigen
Schlüsselbilder mehr gibt , dann sagte es zu keiner Und wieder, wenn wir sagen, es gibt keine weiteren Frames danach und dann laufen
wir es wieder sagen, dass die nächsten Schlüsselbilder keine sind. Wir wollen sagen, dass, wenn es keine weiteren Werte nach oder normalen Werten vor der realen einfach zwischen ng Operation ignorieren, ich den Schlüssel nicht ändere, weil es ein Extrem ist. Also sagen wir, wenn nicht vorherige, halten Sie vorherigen Frame oder nicht. Nächster Rahmen. Fahren Sie noch einmal fort. Dies ist ähnlich wie hier oben, wo wir sehen, ob es keine vorherigen Keyframes gibt und es keine späteren Keyframes weiter. Aber jetzt verwenden wir das Schlüsselwort oder oder Mittel ist, dass, wenn es keine vorherigen Frames oder gibt es keinen nächsten Frame, dann fahren Sie fort. Jede dieser könnte wahr sein, um dies zu erfüllen, wenn Anweisung verursacht, dass dies weiterhin als
nächstes ausgelöst wird, müssen
wir den Wert sowohl im vorherigen Frame auf dem nächsten Frame erhalten. Nun,
sagen wir, der vorherige Wert ist gleich Befehlen. Holen Sie Adder, weil wir die Attribute bekommen und sagen, dass sie voll. Und dann sagen wir, dass die Zeit gleich dem vorherigen Frame ist, was dies tun wird, ist, dass sie
die Attribute zur gegebenen Zeit abfragen . Nächster Wert ist Gold für Befehle. Aber kommen Sie bei ER und dann werden wir sagen, äußere voll wieder, weil wir eine Abfrage wollen, die und dieses Mal werden
Sie sagen, Zeit ist eine Kultur nächsten Frame. Lassen Sie uns jetzt überprüfen, ob wir die richtigen Werte an jedem dieser Frames erhalten. Gehen wir zurück nach Maya und lassen Sie es uns hier laufen. Wenn ich das ausführe, gibt
es uns minus 29 etwas das andere, was, wie Sie sehen können, der Wert hier oben
ist, als auch der nächste Wert 1,344 ist, was es ist. So können wir zuversichtlich sagen, dass wir die richtigen Werte bekommen. Was wir als nächstes tun müssen, ist herauszufinden, den Unterschied zwischen dem nächsten Wert und dem vorherigen Wert. Also sagen wir, Unterschied ist gleich dem nächsten Wert Linus vorherigen Wert, und wir werden sagen, die gewichtete Differenz gleich Differenzzeiten ist. Der Prozentsatz, den wir gegeben wurden geteilt durch 100, wenn Null, und dies wird uns den Betrag geben, den wir auf den vorherigen Wert hinzufügen müssen, um unseren
aktuellen Wert zu erhalten . Also sagen wir, der aktuelle Wert ist gleich dem vorherigen Wert plus wartete Differenz. Und dann haben wir endlich gesagt, Befehle setzt Schlüsselrahmen, weil Sie einen Schlüsselrahmen setzen möchten. Offensichtlich, mit diesem neuen Wert, werden
wir sagen, dass sie voll ist, weil das die Attribute sind, die wir ändern wollen. Wir sagen, die Zeit ist gleich der aktuellen Zeit. Ich werde sagen, Wert ist gleich dem aktuellen Wert. Und jetzt, wenn du zurück in Maya
gehst, lass uns sehen, ob alles, was wir geschrieben haben, funktioniert. Also haben wir dieses Jahr, lasst uns es 20 verzerren, was bedeutet, dass sie 20% auf diese Weise sein werden, wobei Null bedeutet, dass es gleich diesem ist auf 100 Geräumigkeit gleich dem ist. Also lasst uns das laufen und da gehst du. Es ist verzerrt 20% des Weges, und wir führen es wieder, so wie es war. Null ist jetzt voreingenommen Null, und wenn wir sagen, 100 ist voreingenommen es 100. Aber eine schönere Voreingenommenheit würde wahrscheinlich 90 schlagen, was uns einen schönen kleinen Abfall zu
ihm geben würde . Und zurück hier können wir sagen, 30 und wenn Sie es laufen, es ist um 30% der Art und Weise weniger Ihre 10% statt und gibt uns einen schönen fallen ab. Und schon können Sie sehen, wie das uns mit unseren Kurven helfen kann. Also in diesem Video haben wir übergegangen, wie wir unseren Code mit Listenverständnis und in
Linie vereinfachen können. Wenn Aussagen und wir unsere Tween-Funktion im nächsten Video erstellt
haben, werden wir über, wie Sie die Sie I erstellen
35. Erstellen einer Benutzeroberfläche: Ich denke, dieses Video wird unseren Tweener erstellen. Sie ich zuerst schauen wir uns die Dokumentation für den Fensterbefehl an. Wir gehen, um zu helfen. Wir gehen zu meiner ass Scripting Referenz Python Common Referenz. Jetzt gehen wir Zehe Fenster und hier können Sie den Fensterbefehl sehen Wenn wir den ganzen
Weg nach unten scrollen und es viele Parameter gibt, können
Sie dieses Beispiel von hier sehen. Lass uns das kopieren und zurück nach Maya gehen. Ich werde das hier einschlagen und wir werden meine Skript-Größe vergrößert und dann werde ich das ausführen. Und was Sie hier sehen, ist ein kleines Fenster, das es geschaffen hat. Jetzt lass mich dich durch den Code für dieses Fenster führen. Wir sagen, wir erstellen ein Fenster mit den Befehlen, dem Fensterbefehl. Wir geben ihm einen Titel, der lange Name ist, Wie Sie hier sehen können, können
wir ihm eine Nikon und einige Dimensionen geben. Schließlich geben
wir ihm ein Spaltenlayout, das nur ein vertikales Layout ist, das besagt, wenn Sie Objekte durch das Fenster hinzufügen, sie vertikal nach unten
setzen. Wir erstellen eine Schaltfläche, auf der „Nichts tun“ steht. Eine weitere Schaltfläche, die mit einem Befehl geschlossen sagt, um das Sie zu löschen ich schließlich sagten wir sein Elternteil zum Maya-Fenster, das durch Punktpunkt bezeichnet wird Dies ist nicht wichtig. Und dann sagen wir es, das Fenster zu zeigen, das wir hier erstellt haben. Das scheint ziemlich einfach zu sein. Lassen Sie uns jetzt anfangen, unser eigenes Fenster zu erstellen. Wir schließen das ab. Ich werde das klären und würde zwischen Fenster sagen. Also offensichtlich, wenn ich das ausführe, wird
es sagen, dass das Tween-Fenster nicht existiert. Also gehen wir zurück zu Kuchen Charme und erstellen Tween-Fenster. Wir werden eine Klausel namens Tween Window erstellen und wir werden vom Objekt erben, und im Moment werden
wir nichts tun. Und wenn Sie nichts tun, schreiben
Sie einfach das Wort Pause. Pause bedeutet, dass Sie gehen, um zu pausieren und nichts zu tun. Ich will zurück zu meinen, äh, sie sind dran. Es wird sich nicht mehr beschweren, aber es würde auch nichts tun. Also lassen Sie uns eigentlich Fenster zuerst zeigen. Lassen Sie uns die Show-Methode erstellen, und wieder erstellen wir eine Klausel. Aber mit dem Wort Tücher, wir nennen es Tween-Fenster und wir erben von Objekt. Dann können wir in Dent auf Sie Methoden erstellen, die Funktionen innerhalb des Stoffes auf die ähnlich wie alle Funktionen akzeptiert sind. Nehmen Sie das Selbst-halten, außer dass sie zuerst das Selbst-Argument nehmen, das ihm sagt, wie man sich auf sich selbst bezieht. Also, wenn Sie sagen zeigen, Ich werde sagen,, Komm schon, Schneefenster, genau wie wir es getan haben, ist gleich Tweener Fenster und dann werde ich sagen Befehle das
Showfenster standardmäßig. Dies zeigt das vorherige Fenster an, das wir erstellt haben. Also, wenn ich zurück zu Maya und ich sage Kreatur, Sie sind zwischen Fenster Dot Show und wenn ich das laufen, öffnet es sich auf milderem Monitor dieses große leere Fenster mit dem Wort Tween ein Fenster drauf. Wenn ich das erneut ausführe, öffnet
es ein weiteres Fenster. Ich will das nicht. Ich möchte sicherstellen, dass nur ein Fenster gleichzeitig existieren kann. Also, was wir tun, ist wieder in Kuchencharme. Ich werde eine Variable auf der Ebene des Schrankes erstellen. Dies bedeutet, dass es sich um eine Variable handelt, die sich nicht ändert, wenn die Klauseln ausgeführt werden. Also werde ich zwischen Ihrem Fenster sagen, weil dies eine Variable ist, die eine statische Das bedeutet, dass es sich nicht
ändert, egal was ich referenzieren kann. Es fliegt nur sagen, sich selbst den Namen des Fensters. Aber jetzt werde ich etwas anderes machen. Ich werde sagen, dass, wenn dieses Fenster bereits existiert, löschen
wir es. Also sagen wir, wenn Befehle das Fenster wieder, Wenn Sie etwas mit einem Befehl erstellt, Sie können es oft wieder mit dem gleichen Befehl abfragen wieder verkaufen. Abfrage des FTA-Fensters entspricht „true“ und ist gleich. Wahr. Also, was wir sagen, ist, dass, wenn ein Fenster mit diesem Fensternamen existiert, dann lasst uns etwas mit ihm machen. Und wir werden uns entschuldigen. Wir werden sagen, dass Befehle dich nicht löschen. Ich selbst den Fensternamen, und auch Sie können kein Leerzeichen im Fensternamen haben. Also lasst uns diesen Raum loswerden. Und wenn du zurück zu Maya gehst und wir das ausführen, kannst
du sehen, dass es mein Tween ein Fenster schafft. Und wenn ich könnte und wenn ich das noch einmal ausführe, löscht
es es und erstellt es dann wieder für mich. Also gehen wir zurück zu Pie Charm. Also, jetzt möchte ich wirklich Dinge in mein Fenster legen, bevor ich das Fenster zeige. Lassen Sie uns eine Methode nennen, die wir nur Gold bauen Sie I Dies ist eine Methode, die echte trotzt uns selbst, und wieder nimmt es selbst als sein erstes Argument, so dass ihre Nase auf sich selbst zuerst beziehen, genau wie in der Beispiel, Lassen Sie uns ein Colum Lee wieder erstellen. Ein Spaltenlayout bedeutet nur, dass alle Objekte, die Sie diesem Fenster hinzufügen
,vertikal
untereinander hinzugefügt werden , . Nein, lassen Sie uns ein Textlabel erstellen Es wird unserem Benutzer sagen, wie zu verwenden, oder? Ich werde sagen, Verwenden Sie einen Schieberegler, um zwischen Betrag und Sie gehen zurück zu Maya und dann führen Sie diese. Sie können sehen, dass wir jetzt wenig Text haben. Dies ist verwenden Sie einen Schieberegler, um zwischen Betrag zu setzen. Was ich jetzt tun möchte, ist, dass ich
auch Kinder hinzufügen möchte , oder? Ich will Anzeige der Schieberegler und Wahrheit richtig? Ich werde die Reset-Taste nicht hinzufügen. Dies bedeutet, dass das Spaltenlayout nicht sehr gut funktioniert, weil es sie
untereinander hinzufügen würde . Also müssen wir tun, ist das Ausrollen der Roll-out erstellen, Im Gegensatz zu der Spalte Layout, wird sie horizontal auslegen. Also sagen wir, Ro equals Befehle werden ausgeführt, und wir sagen, die Anzahl der Spalten ist gleich zwei, weil wir zwei Spalten darin haben müssen. Sonst wird es nicht wissen, wie breit es sich machen soll, und dann schaffen wir einen kleinen, und ich werde den Schieberegler auf uns selbst speichern, damit wir später darauf zugreifen können. Somerset Befehle die Floats leichter, da dies ein Schieberegler mit Gleitkommawerten wieder ist, Floater Zahlen mit Dezimalstellen. Und ich muss sagen, Männer sind gleich Null, weil das der Mindestwert ist. Max ist gleich 100 und unser Standardwert. Legen wir ein Quadrat bei 50 in die Mitte. Und für Schritt, sagen wir eins. Das bedeutet, dass es einen Schritt nach oben und unten gehen kann und den Befehl geändert hat. Lassen Sie uns sagen, dass es zwischen Funktion aufrufen soll. Was das bedeutet, ist, dass wir einen Float-Schieberegler erstellt haben und wir ihm Selbstzweifeln zugewiesen wurden. Schieberegler Der Float-Schieberegler hat einen Mindestwert Null ein Maximum 400 einen Wert von 50. Standardmäßig wird
es nach oben und unten um einen Schritt nach dem anderen, und wenn sich geändert hat, wird
es stattdessen zwischen Befehl aufrufen. Als nächstes fügen
wir einen Reset-Buttons wirklich krank. Amman knöpft nicht an und wir werden sehen. Die Beschriftung ist gleich in Anführungszeichen. Zurücksetzen und Sie sitzen. Befehl ist gleich selbst das Reset, und dies ist eine Methode, die wir noch nicht entwickelt haben. Also lasst uns diesen Tod tun und wir sagen „Zurücksetzen“. Und dann sagen wir Pause, weil wir nichts tun wollen. Doch bevor ich fortfahre, möchte
ich erwähnen, warum ich, wenn ich diese Funktionen gebe,
um den Befehl zu ändern keine Klammern gebe. Wenn ich Klammern geben würde, würde
es tatsächlich eine Dysfunktion ausführen, anstatt die Funktion zu geben, ohne dass der
Prinz es tatsächlich sagt, diese Funktion auszuführen, anstatt sofort auszuführen. Lassen Sie uns diese Pause machen und sagen, Drucken Sie zurücksetzen. Ich gehe zurück nach Maya. Schließen Sie meine alte Sie ich und führen Sie die neue und Sie können sehen, wir haben die Reset-Taste und lassen Sie uns darauf
klicken, um zu sehen, ob es funktioniert. Also, wenn ich darauf klicke, sagt
es, nimmt genau ein Argument, aber zwei wurden gegeben. Dies liegt daran, dass Maya-Tasten auch einen zusätzlichen Wert an jede Funktion senden, die sie aufrufen . Uns ist das eigentlich egal, also lasst uns das in einer ARDS-Variablen erfassen. Was das bedeutet, ist, dass alle zusätzlichen Argumente, die unserer Funktion gegeben werden, in
unseren Eiern gespeichert werden , und der Stern bedeutet nur alles, was in dieser Funktion nicht gut angegeben ist, nur
in den Kunsteiern wiederhergestellt . Also, wenn ich so wäre, wenn ich jetzt sagen würde, Drucken Sie unsere Eier, wenn wir zurück sind, ist eigentlich eine Liste, was es braucht. Wenn ich nun auf Reset klicke, funktioniert
es. Was Sie sehen können, ist, dass die Schaltfläche einen Wertaufruf false sendet, und wir kümmern uns nicht um diesen Wert. Also werde ich es einfach in unsere Eier geben. Mit dem Sternchen. Sie werden ihm sagen, dass er es einfach in diese Variable ablegen
soll, die wir nie verwenden müssen. schließlich Lassen Sie unsschließlicheine Reset-Taste sagen, tatsächlich etwas zu tun. Also wollen wir den Schieberegler zurücksetzen, so dass wir sagen, Befehle die Floats leichter, weil wir float Schieberegler verwendet, um es zu erstellen, und wir werden sagen, selbst am besten Schieberegler, denn das ist ein Schieberegler, den wir bearbeiten möchten. Wie Sie aus sehen können, werden Sie sagen, bearbeiten ist gleich wahr, und wir speichern Wert ist gleich 50. Also, wenn Sie zurück nach Maya und laufen diese, die wieder schließen wird, sind Sie ich und laden Sie es neu. Wenn ich meinen Schieberegler ändere, können
Sie sehen, dass es hier einen Schlüssel erstellt, weil er unsere Tween-Funktion
jedes Mal aufruft . Also, wenn ich alle diese Tasten löschen wollte, haben Sie bereits erstellt und ich ziehe den Schieberegler es funktioniert. Die Schieberegler sind an unsere Tween-Funktion angeschlossen, und das liegt daran, dass wir den Änderungsbefehl verwendet haben, wenn der Wert ändert sich zwischen aufrufen wird . Und wenn wir zurückgesetzt haben, ändern
wir den Schieberegler auf den Wert 50, aber es wird nicht den Änderungsbefehl auslösen. Dies ist wirklich praktisch, weil es bedeutet, dass ich den Schieberegler zurück von 50 setzen kann, ohne tatsächlich eine Taste zu
setzen. Als nächstes müssen
wir die Schließen-Schaltfläche hinzufügen. Jetzt. Das Problem mit der Schließen-Schaltfläche besteht darin, dass sie sich unter dem Schieberegler und der
Reset-Taste befinden muss . Aber alles, was wir jetzt sind, wird zu dem Rollout hinzugefügt, das wir hier geschaffen haben. Und das liegt daran, dass die Art und Weise, wie Maya-Befehle funktionieren, ist, dass ein Geschäft, das verlorene Layout, das er erstellt hat und alles, was Sie machen, dazu hinzugefügt wird. In ähnlicher Weise, wenn Sie das Spaltenlayout erstellt haben, alles, was wir erstellt haben, nachdem es dem Spaltenlayout hinzugefügt wurde, einschließlich Rollout. Was wir also tun müssen, ist Maya zu sagen, das aktuelle Elternteil auf die Spalte zu setzen, und dann können wir unsere Schaltfläche wie oben erstellen. Wir können Befehle auf eine Schaltfläche setzen und Sie werden sehen, ein Label gleich schließen. Und dann werden wir sagen, Befehl ist gleich Selbstpunkt wieder schließen. Es ist eine Methode, die wir nicht erstellt haben, also lassen Sie es uns erstellen. Also sagen wir, dass der Tod wieder nahe ist. Selbst ist das erste Argument, und sie werden Befehle sagen, die Sie löschen. Ich wie wir oben getan haben und wir werden den Fensternamen verwenden, den wir verwendet haben. Wenn Sie also genau gefallen sind, werden
Sie wissen, dass das nicht funktionieren wird. Wenn wir zurückgehen und Sie das ausführen und wieder auf die Schließen-Schaltfläche drücken, bleibe
ich in der Nähe. Nimmt genau ein Argument zu gegeben, wenn Sie pingen. Und wenn du näher herumfährst, erinnerst du dich, dass ich das hier wieder hergesteckt habe. Ich muss dieses Jahr setzen, weil der Schließen-Knopf die gleichen Argumente sendet, die wir ignorieren
möchten . Also, wenn ich zurück nach Maya gehe und das hier leite, haben
wir ein Fenster mit ihm. Text, wie man es benutzt. Wenn wir den Schieberegler ziehen, ändert
er den Schlüssel oder setzt einen neuen Schlüssel. Wenn wir zurückgesetzt haben, wird der Schieberegler zurückgesetzt. Und wenn wir in der Nähe krank waren, schließen Sie das Fenster. Und wenn wir es erneut ausführen und wir erstellen zwei Instanzen, wenn es nur mit einem
Fenster wieder endet . Es war wichtig für uns, zuerst die Tween-Funktion zu erstellen, weil es einfacher ist, Code ohne u I zu testen. Und es bedeutet auch, dass, wenn Sie nur die Funktion I in einer anderen Bibliothek aufrufen möchten, Sie das U I nicht zusammen mit ihm
benötigen immer wichtig, um Ihr Ich und Ihren Logikcode zu trennen. Im nächsten Video erfahren Sie, wie Sie dieses Fenster wiederverwenden können, um unsere Zahnräder zu erstellen und einzurichten.
36. Die Benutzeroberfläche für die Ausrüstung neu erstellbar: Theo dünn Dieses nächste Video werden wir übergehen, wie man eine Basis erstellt. Sie ich, dass wir sowohl für unseren Tweener als auch für unsere Zahnradkreation wiederverwenden können. Du warum? Zuerst
lassen Sie uns ein neues Skript erstellen, das wiederverwendbar Sie ich in diesem echten Import zwischen Funktion aus unserem tweener Sie auch ich von tweener sagen Sie ich importiere Tween und was das
bedeutet , dass aus dem tweener Sie warum, dass wir hier gebaut haben? Wir können nur zwischen Funktion und nichts anderes importieren. Das ist der Vorteil, den wir importieren,
genau das, was wir brauchen. Aber es hat einen Nachteil, dass wir nicht mehr den schönen Namensraum vor ihm haben, um unsere
Funktionen zu organisieren . Als nächstes werden
wir die Zahnradklausel importieren Also sagen wir von Zahnradklasse Creator Importausrüstung. Und jetzt lassen Sie uns unser Basisfenster erstellen, so dass wir tatsächlich eine Menge für einen Fenstercode
aus ihrem tweener Sie kopieren könnten . Warum? Also lass uns aufmachen zwischen bist du ich und kopierte die Klasse? Ich werde uns einschlagen und ein Spiegel benennen das in Basisfenster um. Ich wurde den Fensternamen wieder in Basisfenster umbenannt. Sie können keine Basen hier verwenden, sagen uns, dass wir nicht die Befehlsbibliothek haben. Also lasst uns das importieren. Also von Maya Importbefehle und jetzt ist es wieder glücklich. Ich werde all diese Funktionalität mit Überprüfungen des Fensters behalten. Und wenn dies nicht der Fall ist
, löscht es sich selbst. Ich werde die Kleidungsmethode behalten, aber der Reset und der Build Sie werde ich zwischen den beiden unterschiedlich sein. Also werde ich sagen, Pause für beide. Und was das tun wird, ist, dass, wenn wir wieder in Maya gehen und Sie sagen Import wiederverwendbar Sie ich neu laden. Wiederverwendbare Sie Ich wiederverwendbar Sie. Ich punktbasiertes Fenster zeigt auf einem Lauf, dass es unsere Basis schaffen wird, wo kein besserer wirklich viel anderes tut. Also jetzt gehen wir zurück und neu erstellen unser Animationsfenster. Es ist, was wir tun können, ist zurück zu unserem tweener Sie ich und kopieren Sie einfach den Build Sie und den Reset und die Reset-Funktion. Also werden wir sagen, plus, Screener, du ich und wir werden wieder vom Basisfenster erben. Was dies tut, ist zu sagen, dass wir die gesamte Struktur, die das
Basisfenster hat, wiederverwenden und nur die Teile neu definieren, die wir brauchen. Teoh, die Teile, die wir tun müssen, haben den Fensternamen zwischen ihrem Fenster neu definiert und dann kopieren
wir einfach den Build Sie I und den Reset-Code aus einem vorherigen Beispiel. Also, wenn Sie zurück zu Maya ein Antwort-basiertes Fenster gehen, werde
ich Tween ein Fenster importieren und es ausführen. Hoppla, ich glaube, ich habe einen Tweener vergessen. Dir tut es mir leid. Und wenn ich das ausführe, erstellt
es das Fenster. Wenn ich den Schieberegler ziehe, können
Sie sehen, wie sich die Werte hier ändern. Wenn ich einen Hals zurücksetzen und perfekt schließen. , Wenn ich hierher zurückgehe,weiß
ich, dass ich einen für eine Ausrüstung kreieren will. Also, was ich tun werde, ist, dass ich neue Tücher erschaffen werde. Ich meine, rufen Sie an und wir rufen das Getriebefenster an, oder rufen wir die Ausrüstung an, die ich und wir werden
wieder vom Basisfenster erben. Du wirst sagen, dass der Fenstername gleich ist, und wir werden es wieder das Gangfenster nennen. ist kein Platz erlaubt, genau wie wir es für die Klasse A gemacht haben. Wir wollen an einigen Werten festhalten. Also werde ich meine darin wieder erstellen. Auch hier, Dies ist doppelter Unterstrich in ihm. Doppelter Unterstrich, und ich werde nur eine Platzhaltervariable namens Self Dot Getriebe erstellen, die alle auf
keine gesetzt sind . Also möchte ich den Build neu definieren Sie I. Also zuerst, lassen Sie uns ein anderes Spaltenlayout erstellen, genau wie wir es vorher getan haben, und wir werden diese und unveränderliche Farbspalte speichern. Dann müssen wir ein Label erstellen, um unserem Benutzer mitzuteilen, wie dies zu verwenden ist. Also sagen wir Komponenten oder Text,
und wir werden sagen, dass die Beschriftung gleich ist, um den Schieberegler zu verwenden, um das Zahnrad zu ändern. Und jetzt werden wir das Rollout erschaffen, denn was ich tun möchte, ist, dass ich vier Objekte in diesem Rollout haben will. Ich möchte einen Knopf haben, der sagt Make your another sagt Reset. Schließlich möchte
ich den Schieberegler, und dann möchte ich ein kleines Textobjekt. Es wird uns den Wert aus dem Schieberegler sagen, also lassen Sie uns zuerst das Textobjekt wieder in Tortenzug erstellen. Sagen wir uns selbst. Das Label, weil ich dieses Kommando bearbeiten werde, ist gleich 10 und ich behalte es
als Selbstvariable, weil ich später auf Sie zugreifen möchte. Ein Schieberegler ist gleich dem Befehl sortieren in slighter, weil ich keine Float-Werte möchte. Ich möchte ganzzahlige Werte. Dieses Mal werde ich einen Mindestwert von fünf sagen, so dass unsere Schieberegler Beton weniger als fünf Zähne und ein Maximum von 30 Wir werden sagen, Wert ist gleich 10 und Schritt ist gleich eins. Also Standardwerte 10 und ich werde um eins nach oben und unten gehen. Aber dieses Mal anstelle des Änderungsbefehls möchte
ich
anstelle des Änderungsbefehlsden Befehl drag verwenden. Das bedeutet, dass der Schieberegler im Trakt des Updates wird, während wir ziehen, was irgendwie cool ist. Und jetzt werden wir diese Funktion erstellen. Also werden wir sagen modifiziertes Getriebe und was der Isolator tut, ist, dass er uns tatsächlich den
Wert des Schiebereglers sendet , der in einem Wertaufruf Zähne speichert. Und einfach für jetzt, lassen Sie uns einfach diesen Wert ausdrucken und später zu dieser Funktion zurückkommen. Als nächstes erstellen
wir eine Schaltfläche, auf der „Ausrüstung machen“ steht. Also sagen wir, Label ist gleich Jahr zu machen, und wir geben den Befehl zu sich selbst. Lassen Sie uns diese Funktion nicht hier und wieder erstellen. Die Schaltfläche sendet uns nutzlose Werte an die Variable sind Eier. Also lasst uns dort aufbewahren und lasst uns machen Ausrüstung drucken. Schließlich lassen Sie uns eine weitere Schaltfläche namens Zurücksetzen erstellen, und wir werden immer noch Beschriftung gleich zurücksetzen. Und für das gemeinsame. Wir werden sagen, self go reset, und wir müssen auch dieses Jahr neu definieren, weil es nicht definiert ist, weil es nichts in unserem Elternteil tut. Plus und wieder, wir verwenden Stern unsere Eier, um sicherzustellen, dass jede der Variablen die Bucking gibt uns Ari
weggeworfen in die Arts Variable und Sie werden sagen, drucken Zurücksetzen. Als Nächstes. Wir müssen unsere Eltern auf die Spalte zurücksetzen. Also sagten wir, Befehle ein Satz Elternteil nennen ihn und Befehle eine Schaltfläche Beschriftung gleich schließen Befehl selbst dunkle Kleidung. Und wir müssen das nicht neu definieren, weil das Gehalt in unserem Basisfenster hier oben definiert ist. Wenn Sie genau auf Tortendiagramm geachtet haben, werden
Sie feststellen, dass es diese kleinen Symbole um bestimmte Methoden gibt, weil es uns
sagt, dass diese Luft aus dem Basisfenster überschrieben wurde. Wenn Sie zurück nach Maya und starten Sie die Ausrüstung,
Sie ich, indem Sie sagen, wiederverwendbar Sie. Ich habe hier mit dir angefangen. Ich Klammern keine Show und wenn wir laufen, es L akut wird das Zahnradfenster erstellen, aber Sie können sehen, dass etwas nicht stimmt. Die Felder werden immer noch vertikal angezeigt. Gehen wir zurück und sehen, was passiert ist. Dies liegt daran, dass ich nie das Straßenlayout erstellt habe. Und wieder, es wurde einfach immer und immer unter der Säule hinzugefügt. Also, was ich tun muss, ist vor diesem Label, das sagt 10 Lassen Sie uns das Rollout erstellen Also
sagen wir , Befehle gründlich aus. Zu dieser Zeit. Wir haben vier Objekte, die wir unten wollen. Es war eine Anzahl von Spalten gleich vier, und jetzt, wenn Sie zurück nach Baia gehen und wir es laufen, können
Sie sehen, dass sie jetzt horizontal statt vertikal angeordnet sind. Wenn ich auf machen Getriebe klicke, es ist ein Jahr klicken Sie zurücksetzen, es sagt zurücksetzen. Und während ich dies schiebe, können
Sie sehen, dass es die Werte aus dem Schieberegler ausdruckt. Also lassen Sie uns das schließen und hier zurückgehen und wir können damit beginnen, dies zu implementieren. Also zuerst müssen wir das Zahnrad erstellen, um wirklich sagen, zuerst müssen wir den Wert des
Schiebereglers erhalten , also werden wir Befehle in Schieberegler sagen, weil wir den Schieberegler mit einem int Schieberegler erstellt haben, und wir müssen es abfragen. Also sagen wir „Selbst“. Ein Schieberegler Abfrage gleich wahr, weil wir es abfragen werden. Ich werde sagen, Wert ist gleich True, weil wir den Wert abfragen werden. Dies gibt uns einen ganzzahligen Wert, den wir für unsere Zähne verwenden können. Als nächstes erstellen
wir eine Zahnradinstanz. Also sagen wir, selbst gegrabene Ausrüstung ist gleich Getriebe, und dies ist ein Getriebe, das wir importiert haben, erscheint aus unserem vorherigen Gang. Beispiel. Nun, da wir das getan haben, könnten
wir sagen, Selbstdrogen-Ausrüstung, Doc, erstellen Sie Ausrüstung und Sie werden sagen, Zähne oops ist gleich und wir geben ihm den Wert, den wir vom Schieberegler
bekommen haben. Also jetzt, wenn du zurück nach Maya gehst und das rennst und mich einfach mein Ah hochziehen
lässt, lass mich einfach meine Perspektive hochziehen. Du hier, Nuffer, leite das und ich sage „Jahr machen“. Sie können sehen, dass es aus Ausrüstung für uns gemacht ist. Aber wenn ich mich ändere, macht
der Schieberegler noch nichts. Und wenn ich auf Reset klicke, macht
es auch nichts, also gehen wir zurück als nächstes. Wir müssen ihm sagen, wie man die Zahnräder ändert. Wir werden sagen, dass, wenn hier ein Getriebe selbst gegraben ist,
na ja, na ja, sagen Sie selbst Getriebe, die Zähne wechseln und wir werden sagen, dass Zähne gleich dem Wert sind, den wir einen anderen haben. Was wir tun, ist, dass wir sagen, dass, wenn die Ausrüstung standardmäßig existiert,
es keine Ausrüstung gibt, weil wir es zu keiner gesagt haben. Wenn wir also noch keine Ausrüstung haben, wird
es nichts tun. Aber wenn wir ein Zahnrad haben, das hier oben zugewiesen wurde, wird
es die Zahnwechselmethode für das Zahnrad verwenden, das wir geschaffen haben. Sie können diese Methode hier im Gear-Klassen-Schöpfer sehen und dann Also, wenn Sie zurück zu
Maya gehen und lassen Sie uns diese schließen und wieder laufen, wenn ich nur den Schieberegler ziehe, passiert
nichts. Lassen Sie mich einfach diese Ausrüstung löschen. Wenn ich ein neues Zahnrad erstelle und dann einen Schieberegler gezogen habe, können
Sie sehen, dass es in Echtzeit ist, unsere Ausrüstung mit einer Reihe von Zähnen zu aktualisieren. Das ist wirklich cool, aber es aktualisiert immer noch nicht das noch ein Textfeld hier. Gehen wir zurück zu Pie Charme und beheben, dass so außerhalb dieser, wenn Anweisung wollen wir immer, so wollen wir das Textfeld immer ändern, unabhängig davon, ob es ein Zahnrad oder nicht. Also setzen wir es außerhalb der S-Anweisung und wir sagen Befehle doc Text und wir geben ihm das Label, dass wir früher Self Bell Label erstellen erscheinen und wir sagen bearbeiten gleich wahr und wir sagen, dass Label gleich Zähnen ist. Nun, gehen wir zurück und versuchen es. Wenn ich also zurück zu Maya gehe und jetzt den Schieberegler ziehe, können
Sie sehen, wie sich die Werte ändern. Wenn ich sage, Ausrüstung zu machen, schaffen
wir ein weiteres Jahr. Lassen Sie mich einfach beide löschen. Ich werde sagen, machen Sie hier und Sie können sehen, dass beide Gänge Peter Wechsel und die u I. Schließlich müssen
wir die Reset-Taste funktionieren. Also gehen wir zurück nach Petra. Und alles, was wir zu sagen haben, ist Selbstpflegeausrüstung. Keine, weil wir das Zahnrad nicht mehr festhalten wollen, damit die Schaltfläche „Zahnrad herstellen“
ein neues Zahnrad erzeugt . Wir möchten Thean Slider zurücksetzen, damit wir uns einen Schieberegler geben. Edit gleich wahr, und wir geben es zurück den Wert von 10 und wir krank Mengen oder Text selbst. Das Etikett an ihm entspricht True Label gleich 10, denn was wir hier tun, ist, dass wir sehen Wir setzen es zurück, so dass wir nicht an einem Zahnrad festhalten,
sagt, dass der Schieberegler nicht mehr an ein Zahnrad angeschlossen ist. Wir ändern den Standardwert des Schiebereglers zurück, und wir ändern den Standardtext von der Beschriftung zurück, so dass es mit dem Schieberegler übereinstimmt. Nein, wenn du nach Ah,
Maya zurückgehst und es
rennst, lass mich das löschen. Und jetzt leite ich es. Wenn ich ein Zahnrad mache und sie einen Schieberegler benutzt haben, ändert
es interaktive Führung diesen Gang. Wenn ich zurückgesetzt hatte, funktioniert der Schieberegler nicht mehr, bis ich einen anderen Gang mache. Lassen Sie mich das aus dem Weg bringen. Das ist unser neues Jahr. Und wenn ich sagte, dies ist unser neues Jahr und wenn ich den Schieberegler ziehen wird auf dem neuen Gang zu arbeiten, und wenn ich ein neues Getriebe erstellen, wird
es nur auf dem Getriebe selbst arbeiten.
37. Die Schrift zum Maya hinzufügen: anstatt Ihren Strip immer aus dem Skript-Editor ausführen zu müssen, können
Sie ihn auch zu Ihrem Regal hinzufügen. Es gibt zwei Möglichkeiten, Ihr Skript zum Regal von hier hinzuzufügen. Ich werde es dem benutzerdefinierten Regal hinzufügen, und wenn ich mein Skript auswähle und mit der mittleren Maustaste klicke, ziehen Sie es in mein Regal und lassen Sie es los. Wir werden eine Schaltfläche dort hinzufügen, und ich kann mit der rechten Maustaste auf diese Schaltfläche klicken und Bearbeiten drücken. Dies bringt den Regaleditor auf. Wir geben den Befehl zu, den wir gerettet haben. Sie können sehen, dass die Sprachen Python, und wenn Sie auf die Registerkarte Shells gehen, können
Sie auf der linken Seite sehen. Hier hat es unser benutzerdefiniertes Regal ausgewählt, und unser Befehl hier zeigt sich eine Option. Wir können den Namen dieses Befehls ändern, indem Sie auf den Umbenennen klicken und es tweener Sie nennen. Ich und schaffen geben Sie es in etwas vernünftigeres umbenennen. Dies ändert nicht unseren Befehl hier, nur was innerhalb des Regals hier unten bezeichnet wird, wir können das Symbol wählen, das wir wollen. Ich kann entweder mein eigenes Bild auswählen, indem ich auf den Ordner hier klicke oder eines von Mayas
Standardbildern verwende , indem ich auf dieses Icon klicke. Die Psych auf kann in früheren Versionen von Maya nicht existieren, aber es sollte dort von meinem 2016 und höher sein. Es öffnet sich diesen anderen. Sie, Ich denke,,
wählen Sie, wenn das Symbol sagte, ich will Sie können auch für sie suchen. Also, wenn ich nach dem Wort Kurve suche und Eingabetaste drücke, lassen Sie mich eine finden, die mir gefällt. Ich mag den Zyklon, also werde ich einfach Select drücken. Ich kann auch eine Symbolbeschriftung hinzufügen. In diesem Fall werde
ich Tweener sagen, und Sie können sehen, dass es es als Etikett zu unserem Symbol hier oben hinzufügt und das Symbol auch ändert . Also lassen Sie mich sagen, Speichern Sie alle Regale und es schließt die Sie I. Die andere Möglichkeit, es hinzuzufügen, ist, wenn Sie auf das kleine Zahnradsymbol in Ihrem Regal klicken und auf Regal-Editor klicken, wählen Sie das Regal, das Sie hinzufügen möchten oder bei einem neuen Regal. Aber wenn ich auf das Plus-Symbol hier klicke, füge ich es einfach zum benutzerdefinierten Regal hinzu und wenn ich klicke, , fügt
es ein neues Benutzerskript hinzu,um zu ändern, was das Skript tut. Ich klicke auf die Befehlsregisterkarte und ändere es in Python, und ich werde einfach sagen, Print Hello World. Ich kann auch festlegen, was es tut, wenn ich in diesem Fall einen Druck doppelklicken,
ich werde ändern, ich werde ändern, schmachten Biss auf, und Sie können auch Optionen hinzufügen, die angezeigt werden, wenn Sie mit der rechten Maustaste darauf klicken. Also werde ich nur sagen, Speichern Sie alle Regale und Sie können sehen, dass es hinzugefügt wurde und Sie Symbol dort für mich. Und wenn ich auf dieses neue Symbol klicke, können
Sie sehen, dass es läuft drucken Hallo Welt, die druckt Hello World. Und wenn ich darauf doppelklicke, heißt
es stattdessen Doppelklick. Ich benutze das Regal normalerweise nicht, während ich entwickle, aber wenn Sie den gleichen Code immer und immer wieder ausführen, ist
es oft nützlich, ihn einfach hier oben in Ihr Regal hinzuzufügen.
38. Projekt 5: Die Controller-Bibliothek: durch dieses Projekt wird lernen, wie man eine Controller-Bibliothek mit niedlich zu erstellen. Unsere Controller-Bibliothek wird flexibel sein und Thumbnails unterstützen. Wir können jedes der Objekte importieren, die wir speichern, und wir können auch alle neuen Objekte erstellen, die wir wollen. In diesem Fall werde
ich das als Test sagen, und wenn ich auf Speichern klicke, werden
Sie sehen, dass es innerhalb unseres Fensters erscheint. Wir haben gelernt, wie man Daten als Jason und Dateien speichert und sie wieder in Are You? Ich Wir werden mit niedlichen von pi-Seite zur Verfügung gestellt innerhalb meiner 2017 und Tortenseite. In früheren Versionen von Maya, werden
wir über die Unterschiede zwischen niedlichen vier und niedlichen fünf gehen, sowie die Unterschiede zwischen Kuchen süß und Kuchen Seite und Kuchen, Nette fünf und Kuchen Seite, auch. Ich werde auch über eine beliebte süße Bibliothek gehen, die von Disney,
WETA,
Sony Imageworks und mehr verwendet WETA, wird. Es wird uns helfen, Code zu schreiben, der sowohl in Maya 2017 als auch in früheren
Versionen von Maya verwendet werden kann . Im nächsten Video werde
ich eine kurze Einführung in niedlich auf machen. Die verschiedenen Versionen sind niedlich im Inneren der verschiedenen Versionen von Maya
39. Übersicht über die Qt-Benutzeroberfläche: Dieses Video wird als eine kurze Übersicht über die niedlichen sowie die verschiedenen Versionen akut in den verschiedenen Versionen von Maya dienen. Was ist süß, niedlich geschrieben Q t aber aussprechen süß wurde als Antwort auf ein gemeinsames Problem in
den frühen neunziger Jahren erstellt . Wenn Sie eine Anwendung schreiben möchten, die ausgeführt wurde, könnten
mehrere Betriebssysteme eine wirklich harte Zeit haben, da jedes Betriebssystem
seine eigenen hatte . Sie I-Bibliotheken sowie verschiedene Möglichkeiten, mit dem Betriebssystem zu interagieren. Niedlich, ursprünglich von Troll Tech entwickelt, dann von Nokia gekauft und schließlich an de Gea verkauft, ist die Bibliothek, die Entwickler eine Anwendung erstellen können und die Sie werde ich nativ aussehen egal welches Betriebssystem läuft auf und niedlich wird handhaben. Die Abstraktion aller Funktionen, die mit dem Betriebssystem interagieren müssen,
erleichtert die Entwicklung für Multi-Plattform-Entwickler erheblich . Bis zu meinem 2011 meine Schulden mit verschiedenen You I-Bibliotheken und OS-Code für jedes Betriebssystem, dies bedeutete, dass Autodesk mehr Code zu verwalten hatte, sowie viele Fehler, die
betriebssystemspezifisch sein würden , beginnend mit meinem A 2011 Autodesk akute niedliche Mittel gewechselt , dass Autodesk nicht anders wie Code für jedes Betriebssystem
pflegen muss, und es bedeutet, dass sie sich auf mich selbst konzentrieren können. Dies ist stark reduziert. Die Anzahl der Os spezifischen Bugs in Meyer Maya, 2011 verwendet niedlichen vier, und das war der Standard bis zu meinem 2016. Meine 2017 wird Cute Five verwenden. Cute Five kommt in vielen Fortschritten. Es ist besser, die Leistung. Es hat eine neue Bibliothek namens Cute Quick, die Ihnen hilft, wirklich schön Sie klug sehr schnell zu schreiben, dass Sie auf mehr
Betriebssysteme als nette vier Did bereitstellen können . Sie können endlich auf Anwendung auf Android und IOS bereitstellen, und es enthält neue Sie ich gestylt, um Googles Materialdesign und Microsoft nachzuahmen. Universal entworfen niedlich ist überwiegend ein C plus ein P I. Glücklicherweise hat ein Unternehmen namens Riverbank eine Software namens Pie Cute gemacht. Dies ermöglicht es uns, niedliche Innenseite von Python auf eine wirklich schöne und einfache Art und Weise zu verwenden. Es verhält sich wie eine völlig native Python-Bibliothek. Leider, Pike, testen
Sie einige Lizenzprobleme. Hier kommt die Tortenseite ins Spiel. Pi Side ist ein Projekt offiziell von der niedlichen Stiftung unterstützt, und es kommt ohne Lizenzprobleme, und wieder ist es ähnlich wie Kuchen süß in der lässt Sie niedlich in Python verwenden. In der Tat, für alle Absichten und Zwecke, Ausnahme des Namens und der Lizenzierung ihre ganz das gleiche. Ich mag es, zwischen niedlichen vier von meinem A 2011 zu 2016 und die neuen niedlichen fünf in meinem 2017 zu wechseln gibt es begleitende Änderungen an Kuchen süß und Kuchen Seite. Wenn Sie niedlich in meinem 2016 und unten sind, wird
mein oh mit Tortenseite ausgeliefert. Aber Sie können auch Pi niedlich für mit meinem A 2017 und höher verwenden. Meyer wird
auch mit Tortenplatz ausgeliefert . Oder Sie können auch Pi Cute Five verwenden. Seit ihren signifikanten Änderungen zwischen niedlichen vier und niedlichen fünf ist
es schwer, Python-Code zu schreiben, der mit Boot läuft. Dies ist, wo wir eine sehr beliebte Abstraktionsbibliothek namens niedlichen Duck Pie verwenden können. Cute Top I wird von vielen großen Studios verwendet, darunter Sony Pictures, Imageworks, WETA und Disney. Was es tut, ist eine einfache Ebene über beiden niedlichen vier AP Augen und niedlichen fünf AP Augen so dass Sie einfach halten Dot Pie verwenden können und es wird jeden Ihrer Anrufe an die relevante a p
I umleiten . Ich werde niedlichen Punkt durch für den Rest unserer Videos und ich empfehle, dass Sie es auch tun, weil es sehr nützlich ist zu wissen und ist, was Sie wahrscheinlich innerhalb eines Studios verwenden werden. Wenn Sie keinen süßen Punkt verwenden möchten, machen Sie bitte Notiz aus. Importieren Sie Anweisung Änderungen hier, da dies die Mehrheit der Änderungen ist, über die wir uns
Sorgen machen müssen . Wenn Sie pi Cute four oder pi side verwenden, müssen
Sie die Q T gooey und die Q T Kernbibliotheken importieren. Wenn Sie pi-Site verwenden oder Sie zu fünf hechten, müssen
Sie die Q T Widgets der Q T Kern auf der Q t gooey Bibliothek importieren. Dies ist eine bedeutende Importänderung zwischen den beiden. Jedes Mal, wenn es eine größere Änderung gibt, werde
ich es abdecken und Sie können mehr Dokumentation sowohl auf dem niedlichen doc pie get Hub sehen, von meinem get up verknüpft wird, als auch den ganzen Code auf meinem get Hub für dieses Projekt. Schließlich möchte
ich einen Aspekt der niedlichen decken, dass wir in diesem Kurs nicht abdecken werden, aber es ist durchaus üblich, in diesem zu laufen heißt akute Designer. Netter Designer ist ein Dragon Drop Interface für die Gestaltung Sie Augen in Niedlich. Es ist ganz einfach zu bedienen und schnell wirklich nett zu werden Ihr Jungs geht? Ich hätte dir niedlichen Designer gezeigt, aber ich habe das Gefühl, dass es nur ein weiteres Werkzeug in ein bereits langes Video einführen würde. Siri. Wir konzentrieren uns auf Python und entwerfen süße euch Jungs mit dem Python AP I anstelle
des Designers. Dennoch wollte
ich sicherstellen, dass Sie über den Designer Bescheid wissen, damit Sie wissen, dass, wenn Sie ihn verwenden möchten, wissen, dass er existiert. Wenn Sie sich entscheiden, einen Keep Designer in der Zukunft zu verwenden. Ich weiß auch, dass jede der netten Bibliotheken für Python mit der Konvertierungs-App kommt. Es wird das niedliche Sie ich Code in Python-Code konvertieren. Dies ist nicht immer notwendig, da Sie die Sie I-Datei direkt laden und es bis zu einem engen Inneren verbinden können. Ein Python außerdem nicht niedlich schnell abdecken, wird
außerdem nicht niedlich schnell abdecken,weil cute quick keine Python-Bibliothek ist und stattdessen
Javascript verwendet , was nicht der Schwerpunkt dieses Kurses ist.
40. Qt vs Cmds: Ich empfehle, die Q two I-Bibliothek wo immer möglich anstelle des Maya-Befehls in meiner
Bibliothek zu verwenden . habe ich mehrere Gründe. Zuerst die Maya Commands Bibliothek ursprünglich für Mel entwickelt, und Sie sind es, dass ich funktioniert. Wickeln Sie eine Teilmenge aus all den niedlichen Funktionen. Nun, das kann für Anfänger leichter zu lernen sein. Das bedeutet, dass Sie den Zugriff auf alle leistungsstarken Funktionen und Anpassungen verlieren, die
Q-Testangebot bieten. Zweitens ist
die Maya-Befehle Sie I-Bibliothek auf nur Meyer beschränkt. Wenn Sie ein U.
Y außerhalb von Maya schreiben wollten , müssten
Sie sowieso süß verwenden, so dass es sinnvoller ist, Ihre Zeit süß zu lernen anstatt der
Maya-Befehlsbibliothek zu konzentrieren . Schließlich verwendet
niedlich ein Design-Paradigma namens Ente Typing. Wir haben schon einmal Ententippung erlebt, werden
aber sehr nützlich für uns sein, wenn wir Ihre Augen entwickeln. In unserem vorherigen U-Beispiel haben
Sie gesehen, dass wir dieselben Funktionen verwenden mussten, um das you i-Element zu bearbeiten, wie wir es
erstellt haben. Das bedeutet, dass wir, wenn wir einen Integer-Schieberegler oder einen float-Schieberegler hatten, den Respekt verwenden mussten, um ihn zu modifizieren. Das bedeutet, dass, wenn wir uns jemals entschieden haben, unser Element zu ändern, wir möglicherweise alle Bearbeitungsfunktionen an vielen verschiedenen Stellen in unserem Code ändern müssen. Dies wird wirklich problematisch, wenn größere Benutzer und Gesichter entwickelt werden. Im Gegensatz dazu, weil niedlich auf objektorientiertes Design verwendet, hat
jedes Element Methoden darauf, die wir aufrufen können. Also unabhängig von der Art des Schiebereglers oder Ihr Element,
das wir erstellen, die oft genau die gleichen Methoden haben. So könnten wir einfach die Set-Value-Methode auf einem der ersten Schieberegler in niedlich verwenden, ohne sich Gedanken darüber machen zu müssen, welche Art von Schieberegler sie sind.
41. Duck: Ich werde nicht über ein Konzept in Python gehen, das Duck-Typing genannt wird. Das Tippen von Duck ist nicht einzigartig für Python. In der Tat ist
es in vielen objektorientierten Programmiersprachen ziemlich üblich. Enten-Typing ist ein Calo Kilter, der von der Phrase kommt, wenn es wie eine Ente klingt und
wie eine Ente geht , dass es eine Ente sein muss. Dies bezieht sich auf eine Entwurfswahl, bei der viele verschiedene Typen die gleichen Schnittstellen haben
,dh , verschiedene Typen, die die gleichen Methoden für ihre Klassen haben. Zum Beispiel, wenn ich eine neue Zeichenfolge erstelle und ich nenne sie Namen und ich werde sagen, Dave, wenn ich sage, Name wird drucken Oh, Dave und ich kann sagen, die Art des Namens ist gleich string, aber ich kann dies genau wie ich würde eine Liste verwenden. Also, wenn ich Name sage und versuche, den Index von Null zu bekommen, bekomme
ich D. Ähnlich, wenn ich
auch verwende, auch verwende, bekomme
ich V. Dies ist das gleiche, als ob ich gerade eine Liste von Zeichen erstellt hätte. Also, wenn ich die Liste sagte, Name ist gleich D. Okay, das e und ich sagte, Lassen Sie uns nochmal nennen, ich bekomme V, was uns das erlaubt, ist Funktionen zu erstellen, die nicht wirklich interessieren, was die Art von vier Parameter sind. Meine Funktion könnte eine Zeichenfolge annehmen. Es könnte eine Liste,
A, um einen Satz oder ein Wörterbuch zu ziehen. Es spielt keine Rolle, solange das Objekt, das ich bekomme, die gleiche Schnittstelle hat. Wenn meine Funktion
zum Beispieleine Variable annimmt und den Index erhalten muss, spielt
es keine Rolle,ob ich ihm den Listennamen gebe,
weil ich Liste,
Namen eins machen könnteoder wenn ich ihm eine Zeichenfolge gebe, zum Beispiel Wenn meine Funktion
zum Beispieleine Variable annimmt und den Index erhalten muss, spielt
es keine Rolle, ob ich ihm den Listennamen gebe, weil ich Liste,
Namen eins machen könnte oder wenn ich ihm eine Zeichenfolge gebe, denn solange meine Funktion auf diese Variablen auf die gleiche Weise zugreift, ist es nicht wirklich egal, welcher Typ sie sind, und das wird nützlich sein, wenn wir süße Augen anstelle der Maya-Befehle definieren, die weit
weg , die weit
weg sind Sie Elemente, bei denen wir wissen müssen, welchen Typ das U-Element ist, bevor Sie eine Funktion zurückrufen, um es in niedlich zu bearbeiten. Die meisten Elemente haben die gleichen Methoden für sie. Dies bedeutet, dass, wenn wir einen Schieberegler und niedlich, weil ,
sagen wir, Schieberegler Asset Wert 22, es ist nicht wirklich wichtig, welchen Typ der Schieberegler ist, wir könnten viele verschiedene Arten von Schiebereglern haben, und sie würden alle die gleiche interagieren auf die gleiche Weise. Wenn ich ein Textfeld oder ein Label hatte, spielt
es keine Rolle, weil ich einfach die Textmethode verwenden kann, um ihren Wert zu erhalten. Dies ermöglicht es uns, unseren Code wirklich zu vereinfachen und ein wenig mehr freie Form in der Art, wie wir entwickeln .
42. Qt.py: Verwendung von Qt in Python: bevor wir mit dem Design beginnen
, oder? Ich Lassen Sie uns Märkte herunterladen sagt Cute pie Abstraktion Layer Wenn Sie gehen, um Hub dot com Motto So cute pie Sie den Code für diese zu finden. Sie können sehen, dass es sich um eine süße Bindung handelt. Die Wraps Kuchen Seite an Seite zu Hecht, würden
Sie ausländische Kuchen Süße fünf. Das bedeutet, dass
wir anstatt eine dieser Python-Bindungen direkt zu importieren, einfach süße Kuchen verwenden können und wir die beste Bindung für uns importieren. Ich werde den niedlichen Haufen benutzen. Ich stimme zu, dass einige einige, die dieses Video ansehen, die, mit meinem A 2016 oder früher immer noch mit dem Code folgen können. Und wenn ich meine A 2017 oder höher verwende, sollte
es ziemlich einfach sein. Wenn Sie sich entscheiden, diese Ebene zu überspringen, werde
ich im nächsten Video darüber nachgehen, wie Sie Ihre Module korrekt importieren können. Aber für jetzt, lassen Sie mich gehen, wie dieses Modul herunterladen. Wenn Sie nach oben gehen, können
Sie auf den Klon- oder Download-Button klicken und auf Zip herunterladen klicken. Ich sag „Speichern“ und dann öffne ich meinen Reißverschluss im Inneren. Meine Akte ist ein akutes Kuchenmonster Geh hier runter und sie werden eine akute Kuchendotfeile sein. Ich öffne meinen Ordner „Maya-Dokumente“ unter Windows. Dies wird in Ihrem Dokumentenordner unter Mayer sein, aber unser Mac Olynyk Dies wird in einem anderen Verzeichnis sein, und ich werde sicherstellen, dass Sie ein Overlay haben, das Ihnen sagt, wo Sie sie finden. Amaya Verzeichnis. Geh in die meine Abneigung, die du verwendest. Ich benutze 2017 und gehe dann in das Skript-Verzeichnis. Ziehen Sie einfach die süße Kuchenfeile hier hinein. Sobald es da drin ist, kannst
du das schließen. Jetzt können Sie zu Maya gehen und den Skript-Editor öffnen Innerhalb des Skript-Editors können
Sie sagen, import cute, und wenn Sie dies ausführen, sollte
es keine Fehler geben und es wird die nette Bibliothek importieren. Sie können dies tun, indem Sie drucken. Niedlich. Lassen Sie mich vergrößern, wenn Sie sehen können, dass es bereits die Tortenseite in das Modul für mich importiert hat. Dies liegt daran, dass niedlich automatisch die beste Python Cute Bibliothek für Sie auswählen wird. Nun, wenn Sie ein neues Fenster erstellen möchten, sagen
wir, dass Gewinn gleich süß ist. Nette Widgets Que Dialog und L. A s ein Win-Dot-Show. Und wenn ich das ausführe, werden
Sie sehen, dass es ein leeres Dialogfenster erstellt In unserem nächsten Video werde
ich darüber gehen, wie man die Module importiert, die wir brauchen, wenn Sie keine
nette Ebene verwenden möchten .
43. Importieren von Qt: wird jetzt hinübergegangen sein. Müssen bestimmte Module importieren, und wir werden aus den niedlichen Bibliotheken verwenden. Wenn Sie es nicht verwenden, werde
ich übergehen, wie man aus den verschiedenen Python-Bindungen für niedliche direkt importiert. Stattdessen beginnen wir
das erste mit süßem Kuchen. Also, um zu beginnen, werden
wir von nettem Import sagen. Niedlich. Brigids niedliche Widgets sind, wo alle U-Elemente, die Sie sehen, leben werden. Es gibt auch niedlichen Kern
, der eine Menge von der Kernfunktionalität für niedlich enthält. Endlich ist
das niedlich. Gooey, akut, klebrig enthält viele nützliche Klassen und Funktionen. Das echte, das verwendet wird, um zu bauen, sind Sie klug, aber es enthält keine tatsächlichen Widgets oder Ihre Elemente selbst. Wenn Sie planen, niedlich von zu verwenden, wird
dies unsere gemeinsame Importaussage sein. Wenn Sie nicht mit niedlich durch und eine mit meinem 2017 und höher, Sie haben zwei andere nette Optionen. Stattdessen können
Sie
auch frump Sehkraft sagen , und der Rest des Moduls bleibt gleich. Sie definieren nur eine andere Elternbibliothek anstelle von niedlich. Sie sagen nicht hallo Website zu kaufen Anblick kommt gebündelt mit Maya, so dass Sie garantiert, dass es immer existieren wird. Ihr Studio selbst kann jedoch
entscheiden, Pi niedlich fünf verwenden stattdessen, Pie niedlich ist eine Alternative, Bindung für niedlich wie oft etwas reifer, aber es kommt nicht mit Maya ausgeliefert. Führen Sie Lizenzprobleme aus. Dies bedeutet, dass viele Leute es vorziehen, von süß zu verwenden, aber es ist nicht immer garantiert, dass es auf einem anderen Benutzersystem existiert. Aber wenn du willst, dann würdest du fünf. Wir ändern einfach diese Importanweisung, um Sie fünf auszuwählen. Also, unabhängig vom Watcher, der verwendet, importieren
Sie immer noch die gleichen Submodule und Sie ändern nur das übergeordnete Modul. Wenn jedoch Sie
jedochmeine 2016 und unten verwenden, die süß für Sie verwendet,
können eines der drei Dinge tun, die Sie von Cute sagen können und halten Sie Ihr Modul ist das gleiche weil wir die niedliche Abstraktionsschicht verwenden. Wenn Sie stattdessen pi-Seite verwenden möchten, die mit Maya ausgeliefert wird, so ist es immer garantiert, für meine 2016 und darunter zu existieren. Sie können die gleiche Import-Anweisung verwenden, aber entfernen Sie einfach niedliche Widgets. Dies liegt daran, in niedlichen vier niedlichen Widgets wurde im Inneren kombiniert, akut, klebrig und akute fünf jemals ausgespalten. Also jederzeit im Code, dass Sie niedliche Widgets sehen, können
Sie eine akute klebrig ersetzen. Wenn Sie mein A-Training 16 und darunter verwenden und sich entscheiden, die niedliche
Abstraktionsschicht nicht ähnlich anstelle von Tortenseite zu verwenden, können
Sie auch pi cute für verwenden und Sie importieren die gleichen Bibliotheken erneut. Ähnlich wie Pike, würden
Sie fünf Pi Cute vier kann reifer sein als Kuchen Seite, aber es kommt nicht mit Maya ausgeliefert, so dass Sie oder Ihr Studio vielleicht lieber Pi süß verwenden. Seien Sie nur gewarnt, dass, wenn Sie Ihren Code verteilen, er nicht garantiert auf jedem Benutzersystem ist. Für alle meine Videos werde
ich die nette Bibliothek verwenden, und ich werde es als fem mit niedlichen fünf verwenden. Ich empfehle Ihnen, das Gleiche zu tun, weil sie es einfacher machen, mitzuverfolgen. Besser bedeutet auch, dass Ihr Code zwischen verschiedenen Maya-Versionen portabel ist. Jetzt, da wir mit einer ziemlich langwierigen Einführung in die süße und niedliche Maya fertig sind, fangen
wir an, die Logik für eine Controller-Bibliothek zu erstellen
44. Das Bibliothekssystem erstellen: wird nun die Logik für unsere Controller-Bibliothek erstellen. Genau wie wir es mit unserem Animationspweener und unserem Werkzeug zur Erstellung von Zahnrädern gesehen haben. Es ist immer in unserem besten Interesse, die Logik getrennt von zu erstellen, Sind Sie I Die vereinfacht unsere Entwicklung, und es bedeutet auch, dass wir wiederverwenden oder Code, ohne aufrufen zu müssen. Bist du ich in Tortenzauber? Lassen Sie uns das Paket für unseren Controller erstellen, um innerhalb eines Rechtsklicks auf das
Skript-Projekt zu leben und sagen Neues und Python-Paket und Real Man Diese con-Bibliothekspakete sind in Python, um Code zusammen als Paketbibliothek zu enthalten. Sie können sehen, dass das Paket ein Verzeichnis mit dem Namen enthält, den wir ihm gegeben haben, sowie ein innit dot pie thean. Es hat Torten leer. Es existiert einfach, Python zu sagen, dass dieses Verzeichnis tatsächlich ein Paket ist und nicht nur das Verzeichnis. Wir klicken mit der rechten Maustaste auf die con-Bibliothek, und jetzt erstellen wir eine Python-Datei. Wir nennen diesen Controller Lavery und in diesem, sagen
wir drucken. Ich bin die Controller-Bibliothek. Ich mache dies, damit
Sie beim Importieren in Maya sehen können, dass es aus dem con Library Paket importiert und das
Controller-Bibliotheksmodul zurück in Maya importiert , sagen
wir von Con Library, die der Name ihrer Paketimport Controller-Bibliothek Und wenn ich das durchführe, können
Sie sehen, dass eine Prinzessin ich die Kontrolle der Bibliothek bin. Aber wenn ich es nochmal laufe, wird
es nichts mehr ausdrucken. Das liegt daran, dass wir das Nachladen nicht eingesteckt haben. Also, wenn ich das sage, wenn ich sage, reload control of library und ich jetzt führe das, können
Sie sehen, dass es es wieder ausdruckt. Und das ich und das bedeutet, dass es immer die neuesten Änderungen an unserem Code aufnehmen . Also zurück in Kuchencharme, lassen Sie uns diese Druckaussage loswerden. Zuerst lassen Sie uns einige des Moduls importieren, sagte, dass wir den ersten Herbst verwenden werden. Wir werden
natürlich das Maya-Modul verwenden, also sagen wir von Maya-Importbefehle. Wir werden das OS-Modul verwenden, um mit unserem Betriebssystem zu interagieren, und wir werden das Jason-Modul verwenden, um unsere Daten zu schreiben. Wir werden auch ein Modul namens P Print verwenden. Dies wird uns ziemlich viele unserer Daten drucken lassen, so dass es einfacher für uns zu lesen . Also, jetzt, wo wir die Importe aus dem Weg haben, was ist unsere erste Berufung Zuneigung? Nun, zuerst müssen
wir ein Verzeichnis erstellen, in dem wir alle unsere Controller und ihre zugehörigen Daten speichern können . Also lasst uns zuerst herausfinden, wo sich das Mire Verzeichnis jetzt befindet. Dies wird auf jedem Computer eines Benutzers anders sein, und es wird definitiv auf jedem Betriebssystem anders sein, also können wir nicht erraten, wo es sein wird. Glücklicherweise mein
natürlich, natürlich, weiß
mein
natürlich,wo das ist, und wir können es für Maya abfragen. Also werde ich Benutzer danach machen und das wird der Name einer Variablen sein und sonst Befehle. Ich habe interne Var. Ich werde den Benutzer nach der Variablen von Maya abfragen. Also, wenn ich sage drucken Benutzer nach und ich gehe zurück zu Maya und ich jetzt das ausführen, können
Sie sehen, dass es das Benutzer-App-Verzeichnis ausgedruckt ist, das unter meinem Benutzernamen, Dokument und Maya ist. Und das wird natürlich
funktionieren, unabhängig davon, welches Betriebssystem Sie verwenden. Als nächstes müssen
wir den Namen des Verzeichnisses konstruieren, bevor wir das eigentliche Verzeichnis erstellen. Also lassen Sie uns ein Variablenverzeichnis Tür und wir werden sagen, ist gleich, und jetzt müssen wir diesem Benutzer nach dem Namen von Far Directory beitreten. Also werden wir sagen, dass der westliche rechte Pot verbunden ist, und wir werden ihm die Variablen Benutzer nach und den Namen unserer
Verzeichniscontroller-Bibliothek geben. Wissen Sie, was Westra Parts tojoin tut? Ist verwendet Ihr betriebssystemspezifisches Trennzeichen, das sich zwischen Windows,
Lennox und Mac unterscheidet . Unter Windows ist
es ein rückwärtsgerichteter Schrägstrich und unser Mac und Linux. Es ist ein Schrägstrich, und dies wird Python sagen. Verwenden Sie Ihr betriebssystemspezifisches Trennzeichen, um diese beiden Verzeichnisnamen miteinander zu verknüpfen. Also, wenn ich jetzt das Druckverzeichnis sage, wenn ich zurück zu Maya gehe und ich das ausführe, können
Sie sehen, dass es jetzt das Verzeichnis entsprechend unserem Betriebssystem erstellt hat. Es kann verwirrend sein, weil es hier den Schrägstrich verwendet, aber das liegt daran, dass das Verzeichnis, das mein gegen uns zurück Schrägstriche verwendet. Wenn es nicht verwendet würde, würde Hi Tom das richtige Verhalten tun und den umgekehrten Schrägstrich geben. Wir können eine Funktion namens Create Directory erstellen, so dass wir den Tod sagen, um eine Funktion
zu definieren ,
und wir nennen es Verzeichnis erstellen, und ich werde ihm eine Variable namens Verzeichnis geben und ich werde Kestel es verwenden Dies ist der Standardwert. Dies bedeutet, dass, wenn niemand meiner Funktion einen Wert gibt, es wird nur dieses nächste Mal verwenden, wenn Sie sagen, wenn nicht Oh, esta pot dot existiert Verzeichnis, dann werden Sie sagen, Oh s dot m Kader, wir denken, wenn dieses Verzeichnis nicht existiert, dann machen Sie dieses Verzeichnis. Aber hier können Sie ein Problem sehen. Wir verwenden ein Verzeichnis mehrmals und könnte verwirrend sein, ob dieses Verzeichnis
das Argument bedeutet , das unsere Funktion bekommt, oder diese Variable hier oben etwas Python. Es ist ziemlich üblich, Variablen zu haben, die an der Spitze sind, wie dies alle Großbuchstaben sein. Also, jetzt werde ich mit der rechten Maustaste darauf klicken. Ich werde wieder Faktor und umbenennen und im Winter Not Und ich werde es alle
Capitals umbenennen und ich werde sie und ich werde drei Faktoren treffen und Sie können sehen, dass Kuchen Charme klug
genug ist , um es sowohl hier als auch hier umzubenennen. Aber er weiß, dass ich das hier nicht verwenden wollte, also hat es diese nicht ähnlich geändert, ich werde dasselbe für den Benutzer tun, nachdem ich eine Verknüpfung verwenden werde. Shift F sechs, und ich nenne es Sie Benutzer AP dir und Sie können sehen, dass es es sowohl hier als auch hier umbenannt wird. Schließlich, bevor wir fortfahren, lassen Sie uns raus, Doc Strings zu unserer Funktion. Ich werde drei Anführungszeichen setzen und Enter drücken und Sie können sehen, dass Tortenbegriff automatisch unsere Argumente ausfüllt . Ich werde ihre Dokumentation für Rücksendungen entfernen, weil sie nichts zurückgibt. Ich werde sagen, das Verzeichnis ist eine Feder und es ist das Verzeichnis, das erstellt werden soll. Und wir sind zu sagen, dass die Funktion das angegebene Verzeichnis erstellt, wenn es nicht bereits existiert . Also gehen wir zurück zu Meyer. Ich muss sagen, Controller, Bibliothek, dunkel, Verzeichnis
erstellen. Und wenn ich das ausführe und ich meinen Datei-Explorer geöffnet habe, können
Sie sehen, dass die Steuerung des Bibliotheksverzeichnisses für mich erstellt hat, das
früher nicht existiert hat. Wenn ich es erneut anrufe, wird
es nicht erneut erstellt, weil es überprüft, aber es existiert zuerst. Wenn ich das lösche und es dann erneut ausführe, können
Sie sehen, dass es das Verzeichnis erneut erstellt hat.
45. Dateien speichern: wird nun eine Klasse erstellen, um unsere Controller zu verwalten. Dazu gehört sowohl das Finden vorhandener sicherer Controller als auch das Speichern neuer Controller. Beginnen wir mit der Erstellung unserer Tuch- und wir sind krank Verlust Controller Bibliothek, weil unsere Krallen werden Controller Library genannt werden. Und ich wollte von dicked dicta kurz für Wörterbuch erben. Und der Grund, warum ich das tue, ist, weil das Wörterbuch eine wirklich gute Möglichkeit ist,
Beziehungen zwischen dem Namen von etwas und allen Informationen zu speichern , die es betreffen, einschließlich dieses Datei-Topfes und irgendwelche Screenshots für andere Informationen, die wir erstellen. Sie uns nun LassenSie uns nundie gleiche Methode erstellen. Also sagen wir Tod speichern und Sie können sehen, dass Tortendiagramm automatisch ein Selbstschlüsselwort hinzufügt weil es weiß, dass es notwendig ist. Jetzt müssen wir die beiden Parameter betrachten, die notwendig sein wird, um unsere Datei
den ersten seinen Namen zu speichern , weil wir immer ihren Namen brauchen, um zu wissen, was sie zu speichern. Auf der zweiten wird Verzeichnis sein, so dass wir wissen, wo es gespeichert werden soll. Ich möchte das nicht immer spezifizieren. Also lassen Sie uns das Verzeichnis Standard auf das Verzeichnis, das wir definiert haben, jetzt in dieser
Funktion erscheinen , wir wissen nicht Wenn dieses Verzeichnis bereits existiert, haben
wir bereits die Verzeichnisfunktion erstellen gemacht. Also rufen wir es noch einmal an und wir sagen ihm, dass er dieses Verzeichnis verwenden soll. Beachten Sie, dass ich hier nicht den tatsächlichen Keyword-Namen gebe. Wenn Sie den Schlüsselwortnamen nicht angeben, wird
Python dies in der Reihenfolge tun. Da Verzeichnis also das erste Schlüsselwort ist, indem der Verzeichniswert hier angegeben wird, wird es automatisch an das Verzeichnisschlüsselwort übergeben. Als nächstes müssen
wir das Teil erstellen, das dies speichert. Tun Sie so sagen wir Pfad ist gleich und wieder, wir verwenden Östrogen. Teile sind verbunden, um dies zu machen, also sagen wir, Oh, Esther Pfad zu verbinden und wir werden das Verzeichnis sagen. Ich führe erneut eine Zeichenfolgenersetzung durch. Also ist es ein Prozentpunkt m a und ich sage Prozentname und dann werde ich versuchen
, es zu retten. Aber zuerst gehen
wir über einige der Parameter des sicheren Befehls. Öffnen wir die Dokumentation aus dem Dateibefehl und scrollen Sie nach unten, wo wir Hilfe dafür erhalten. Sie können sehen, was wir tun müssen, um es zu retten. Wir müssen es zuerst in den Speicherort umbenennen, den wir speichern möchten, und dann müssen wir
ihm sagen, dass es gespeichert werden soll, und wir müssen ihm den Typ geben. Meine Frage, Lasst uns das kopieren und zurück zu Pie Charm gehen. Lassen Sie uns das System bezahlen, um den Charme zu Kuchen. Also sehen wir Command Start Datei und wir sagen, sie soll sie in fred dot m A umbenennen Das ist nicht das, was wir wollen. Also sagen wir es, um es auf diesen Weg umzubenennen, den wir gebaut haben, und dann werden wir
ihm sagen, dass er retten soll. Und wir haben gesagt, einen Zumaya zu retten, fragen Sie, tippen Sie. Wir müssen auch sagen, dass Kraft gleich wahr ist. Dies liegt daran, dass die Datei bereits vorhanden ist. Wir wollen erzwingen, dass wir darüber sparen. Also haben wir diesen Weg konstruiert. Das ist das Verzeichnis und der Maya-Dateiname. Wir benennen es in diesen Pfad um, und dann speichern wir es. Also, zurück in Maya, werde
ich eine neue Instanz aus unserer Bibliothek erstellen. Es ist ein bisschen lang, also bitte ertragen Sie mit mir. Also sagen wir, lib ist gleich Controller Library, die ein Modulname Punktsteuerung der Bibliothek ist, die unsere Krallen ist. Name und Wieder Esperance sieht eine neue Instanz von ihm zu schaffen, um eine gelebte speichern und
laufen es zu finanzieren . Es wird sagen, dass Safe die wenigsten zwei Argumente nimmt, von denen nur einer gegeben wurde. Es erwartet den Namen. Also lassen Sie uns sagen Test, Lassen Sie uns das laufen. Und wenn ich in mein Meyer-Verzeichnis zurückblicke, können
Sie sehen, dass es eine Steuerung des Bibliotheksverzeichnisses gibt, das wir innerhalb erstellt haben. Es ist eine Testautonomie, und ich kann sie importieren. Aber es ist leer. Lassen Sie uns das mit einigen Dummy-Daten versuchen. Also lasst uns das nochmal laufen. Und wenn ich diese Datei öffne, können
Sie sehen, dass sie den Cube genau so geöffnet hat, wie wir es erwartet haben. Aber sagen wir, ich habe mehrere Objekte, aber ich möchte nur eines von ihnen speichern. Also, wenn ich
zum Beispieleine Kugel erstelle zum Beispiel und ich diese Angst nur speichern möchte,
wenn ich dies ausführe und lass uns eine neue Datei erstellen und dann diesen vorhandenen Test Emmy öffnen