Maya mel programma als model - bu de kunstenaars,,,,,,, deze les is het creëren van een grafische gebruikersinterface van het model (-) procedures voor Maya. 梅尔玛雅 in 2010 en volgende.De Maya 's 2011 voert het creëren van grafische gebruikersinterface zal hier niet, met inbegrip van een nieuwe methode.We zullen in de passende code uis, verkeerde behandeling, hebben we een zeer nuttige script, laat je een object op de as van de controle is.,,, interfaces, als je van plan bent om je script voor een andere kunstenaar, dan is het goed om een gebruikersvriendelijke de grafische gebruikersinterface van de code, zodat je Toegang tot de niet - programmeur is zeer nuttig.Deze dagen heb ik zelden gebruik van hotkey, maar op een paar van de bu, ik gebouwd in de mel Maya automatisering.Ik kan dragen, maar ook geen wijziging van de voorkeur voor een, op meer dan één werkplek.De totstandbrenging en handhaving van interfaces in de mel instrumentarium van sterke, maar soms deprimerend instrument van het vermogen.,, stap 1, laten we zien wat we vandaag te creëren."Edw_pivotcontrol eerst redden. Mel" documenten, met inbegrip van de training, je script gids.Dan, doe de Maya.Ik zal het gebruik van deze gids voor 2010 van de duur van de Maya 's, maar ook van de code van de Maya' s versie moeten werken.- de volgende commando, in edw_pivotcontrol, Bron:; edw_pivotcontrol;,, stap 2, moeten we een raam open op een knop.Het creëren van een geometrische en proberen het script.Het doel is het creëren van een script, laat je het voorwerp van de controle op het cruciale punt van de vlucht,, 3. Stap in de ontwikkeling van welke procedure moet dit script:,, edw_pivotcontrol - start scenario 's van de belangrijkste programma' s, epc_pivotcontrol het creëren van de bu, de beschikking van de epc_getbounds gebruik worden gekozen van de rechthoek, epc_movepivotlocal - mobiele voorwerpen de spil van de positie van de lokale (y minuten, notulen, enz.), epc_movepivottoobject - mobiele fulcrum in een andere positie, gebruik ik mijn epc_ als prefix.In de vorige les, wil je ervoor zorgen dat je programma een unieke naam, dus geen inmenging van een andere scripts., stap 4, we beginnen ons script open, de oude stand - by, Microsoft kladblok.De eerste is makkelijk:,,, stap 5, red je het dossier.Redt de mel documenten, moeten kiezen voor "alle documenten" in het kader van de "behoud van het type".Red je het dossier een. Mel dossier in je script catalogus van Maya.Ik zal mijn edw_pivotcontrol.mel als naam, maar je kan kiezen wat je wilt., stap 6, en we moeten nu een onderdeel van de inspanningen.In het bijzonder elegant is mel niet in de loop van de bu, dus ik zal proberen om het proces kan zonder pijn.Soms, in te schrijven voor de eerste code, de beste uit de krant iets tekenen, dus je wilt schetsen van de lay - out van de eindgebruiker interface.Dit script is eenvoudig, maar wanneer u met de behandeling begint, etikettering, menu 's, geschrift, wil je ervoor zorgen dat je hart heeft een plan.,, zeven stappen, moeten we de bu commando in drie verschillende soorten:,, het hoogste doel van een besturingssysteem Windows raam standaard knop, zoals de minimale en Maximale de lay - out, gesloten, op verschillende manieren het voorwerp van een raam in de organisatie, de knoppen, slider, tekst, enz. Deze zijn BU interactieve elementen.,, dit is onze verdeling op grond van mel' s schetsen voor het creëren van hun:,,,, acht stappen van gebruikers van het gebied, de eerste stap is het opzetten van een raam.Omdat we het raam hebben een unieke naam, Maya niet twee hetzelfde raam open?Het eerste deel van onze procedures voor de controle op het raam is open, en sluit het als het creëren van de bu de proces is, ///////pivotcontrol () {< BR /> als (% quot%. Er pivotcontrolmain% quot%) {< BR /> deleteui pivotcontrolmain; < BR />}; ///////...Stap 9};,,, we proberen de code voor het creëren van een raam en kijk wat er gebeurt:, het raam rtf 1 t "controle" MXB EDW fulcrum begrotingstekorten 1 1 450 300 pivotcontrolmain w H;,, - (- resizetofitchildren rtf) als het waar is, automatisch sluit de ramen kleine voor alle van de lay - out en controles te creëren, titel (T) in de titel van de tekst in de Top van het raam - (- minimizebutton mnb) of uitschakelen van de knop tot een minimum te beperken (- - maximizebutton MXB) uitschakelen of een maximale breedte van de knop (W), in het raam van De pixels breedte, lengte (H) de hoge pixel ramen, 10 stappen, nu, en de ramen zijn in het script, maar een bevel om dat te laten zien.Deze beschikking zal altijd alle BU het raam, de etalage, pivotcontrolmain; 11, we de integriteit van de code eruit moet zien: de belangrijkste functie van het proces, ///////edw_pivotcontrol () {}; ///////pivotcontrol; het creëren van de bu de procedure pivotcontrol () {als (% quot%.% quot% bestaan pivotcontrolmain) {deleteui pivotcontrolmain;); het raam rtf 1 t "controle" MXB EDW fulcrum begrotingstekorten 1 200 1 W H 350 pivotcontrolmain; showwindow pivotcontrolmain;}; 12 - stappen, Maya,, van de nieuwe code die het commando en de bron.Dit is je verdient, Bron: edw_pivotcontrol; edw_pivotcontrol; < breedte = "tutorial_image" > < IMG - src = "http://cdn.tutsplus.com/cg/uploads/legacy/249_maya_edwhetstone3/6.jpg" gegevens van de oorspronkelijke URL 's =' http: //cgtuts.s3.amazonaws.com/249_maya_edwhetstone3/6.jpg "(=" "border=" 0 "/> < Kruis >,, 13 stappen, het raam in onze BU niveau de op de Top van de structuur van het object.De lay - out en alle controles zijn het voorwerp van de kinderen.We gebruiken de eerste indeling is een lijst van de lay - out, de knop, columnlayout - 1: adjustablecolumn afstand 0 epc_maincolumnlayout;,, - adjustablecolumn (AC) automatisch worden aangepast op basis van het raam in de breedte van de afstand (RS) - de afstand tussen de pixels per kolom van rij 14 stappen, vond Ik. Met inbegrip van informatie of verduidelijking van de bu kan meer beschikbaar in het script.Een tekst toegevoegd aan het script, tekst: l "mobiele";,, fulcrum: etikettering (l) de controle van de feitelijke tekst,,,,, 15 stappen, de volgende stap, we gaan nog een raam op de knop te drukken en het behoud van de lay - out, mobiele draait rond.We kunnen gebruik maken van een indeling van gridlayout, het creëren van een gelijkmatig verdeeld, die elk voorwerp, de cel. Gridlayout - China West 60 24 NRC 2 5;,, - (- cellwidthheight China West) elke cel van de breedte en hoogte., - (- numberofrowscolumns NRC) reeks horizontale en verticale kolommen -,,,,, - 16 stappen, in elke cel kan bevatten een interne controle.Als je in de regeling tot doel, deze zal automatisch vullen.In ons geval, we moeten de oprichting van negen knopen.We zullen het later vertellen. De vlag op de procedures, telefoon: "het centrum", heb ik de knop; l y de knop "; de knop L Y de grootste"; de knop - ik "oorsprong"; ik "keuze" knop. - "knop X min" L "Max"; knopen; l 'z' - knop - L - Z - Max "; knopen;,, de etikettering (l) van de tekst van de knop,,,,, punt 17, en nu moeten we een manier om te zeggen dat we met gridlayout, Maya, we moeten nog meer elementen van columnlayout.Om dat te doen, zullen we het gebruik van mel 's moeder geregeld Setparent gridlayout.,...; dat wil je ouders,...; de indeling van de stap van de hiërarchische keten.We kunnen ook gebruik maken van de lay - out van de naam, maar het is de enige nuttig zijn als alle schema 's Setparent epc_maincolumnlayout duidelijk zijn naam:,,, en 18, we pivotcontrol script moeten gaan: het proces van de wereldwijde, pivotcontrol () {als (% quot%. Er pivotcontrolmain% quot%) {} deleteui pivotcontrolmain;; het raam rtf 1 t "controle" MXB EDW fulcrum begrotingstekorten 1 200 1 W H 350 pivotcontrolmain; columnlayout - adjustablecolumn 1 0 epc_maincolumnlayout afstand; de tekst "mobiele fulcrum:"; alleen de 60 - 24 2 5 1 China West NRC zilveren knop, "het centrum"; knopen; l "y"; de knop L Y de grootste "; - ik de knop" oorsprong "; ik" keuze "knop; knop -" x min "; ik de grootste" knop; knopen; l z mensen "knop - l z setparen Max";T.; showwindow pivotcontrolmain;};,, 19 stap, net als de columnlayout gridlayout, moet door de oprichting van Setparent moeder gesloten.,,,.; 20 stappen in het script bron, eens kijken wat je hebt:,,,, 22, BU procedures zijn voltooid.De belangrijkste functie van het proces en /edw_pivotcontrol () {}; ///////pivotcontrol; het creëren van de bu de procedure pivotcontrol () {als (% quot%.% quot% bestaan pivotcontrolmain) {deleteui pivotcontrolmain;}, raam rtf 1 t "controle" MXB EDW fulcrum begrotingstekorten 1 200 1 W H 350 pivotcontrolmain; columnlayout - adjustablecolumn 1 0 epc_maincolumnlayout afstand; de tekst "mobiele fulcrum:"; alleen de 60 - 24 2 5 1 China West NRC AG; de knop, "het centrum" L "y"; knopen; knopen; l y de grootste "knop - ik" oorsprong "; De knop" kiest ";" knop - X min ";" maximum "knop - knop. L z volk"; Setparent knop l z "maximum" Setparent;.;.; showwindow pivotcontrolmain;};,, 23 stap, nu moeten we het creëren van tHij is in feite een object code van de fulcrum.Dat doen, zullen we het creëren van twee programma 's, om samen te werken met epc_getbounds:,, een beetje veranderen en ook van de rechthoek: de minimale en maximale, en de gemiddelde waarde van de rechthoek, epc_movepivotlocal komt van het gebruik van informatie van de positie van de epc_getbounds mobiele fulcrum.,, 24 stap In de ontwikkeling van epc_getbounds pseudo - code:,, de keuze van de epc_movepivotlocal object, schrijf een vraag om de resultaten van de door de installatie, X, Y en z. De gemiddelde waarde van de minimale en maximale van terugkeert, zal het gemiddelde tot terug -, de terugkeer van de rechthoek met een gemiddelde van 25 - maatregelen, het opzetten van programma' s, en het skelet, de integriteit van de terug - en doorgeven van gegevensDe ontwikkeling van de trekker, die [...] epc_getbounds (touw, objsel) {}; 26, maatregelen, geselecteerd als parameter en de trekker die rechthoek informatie [...] epc_getbounds (string $objsel objsel) {gekozen R; drijvende getboundarray dollar [] =% quot% transformatie - Q - WS - bb% quot%};,, vraag (Q) vraag bevel, in plaats van te veranderen wat - breed (WS) bevestigd, - frame (bb) inkomsten van de minimale en maximale positie rondom de doos, boundingbox vlag in het terug zoeken, - zes waarden: X, X van de maximale en minimale y - y, en z - z van de minimale en maximale.,, 27 stap, de berekening van de minimale en maximale waarde van de gemiddelde waarde tussen.Weet je nog, de installatie van een nul - altijd, de drijvende bbxav dollar = (($getboundarray [3] + $getboundarray [0]) /2); ///////xmin brachten en gedeeld door twee drijvende bbyav dollar = (($getboundarray [4] + $getboundarray [1]) ////////YMAX plus 2); Ymin gedeeld door twee drijvende bbzav dollar = (($getboundarray [5] + $getboundarray [2]) /2); ///////ZMAX plus nul gedeeld door 2, 28, stap, de berekening van de minimale en maximale waarde van de gemiddelde waarde tussen.Herinner jij je dat altijd beginnen met een index van gevallen zero., drijven $bbXAv = (($getBoundArray[3] + $getBoundArray[0]) /2); //xmax plus xmin verdeeld door twee drijven $bbYAv = (($getBoundArray[4] + $getBoundArray[1]) /2); //ymax plus ymin verdeeld door twee drijven $bbZAv = (($getBoundArray[5] + $getBoundArray[2]) /2); //zmax plus zmin verdeeld. Stap twee,, 28, voegt de nieuwe berekend op basis van Averages en terug de laatste vernietigd., $getBoundArray[6] = $bbXAv; $getBoundArray[7] = $bbYAv; $getBoundArray[8] = $bbZAv; terug $getBoundArray;,, de laatste stap 29, moet er een procedure als deze, wat float[] epc_getBounds (touw $objSel) {- $objSel te drijven $getBoundArray[] = `xform - -ws; -bb`; drijven $bbXAv = (($getBoundArray[3] + $getBoUndarray [0]) /2); de drijvende bbyav dollar = (($getboundarray [4] + $getboundarray [1]) /2); de drijvende bbzav dollar = (($getboundarray [5] + $getboundarray [2]) /2); en getboundarray [6] = bbxav getboundarray dollar; [7] = $bbyav; getboundarray dollar [8] = $bbzav; terugkeer van de getboundarray;};,, 30 stap, nu kunnen we dit deel van de code in onze epc_movepivotlocal programma werkt.Schrijf de pseudo - code:,, schrijf een reeks lijsten van voorwerpen, laat de doos informatie voor elk van de doelstellingen van de keuze van de procedures, het gebruik van epc_getbounds, het creëren van een verwisseling verklaring controle naar moet stappen, procedures, 31, het creëren van een skelet.Een van die code is de tenuitvoerlegging van een cyclus van elk object in de plaats van de procedure kiezen, epc_movepivotlocal (string model) {string sel [...] =% quot% is - SL (% quot%; voor $$sel thisobj) {///////code naar hier};};,, stap epc_getbounds schrijven met 32, een reeks procedures - de terugkeer van de waarde van de dollar, die de producentenorganisaties: [] =% quot% thisobj epc_getbounds $32% quot%;,,, nu we gebruik zullen maken van een verwisseling van de as van de verklaring in de praktijk verplaatst.De structuur van een schakelaar is deze: - ($variabelen) {///////variabelen kunnen zijn van elk type, met inbegrip van touw, ponton variablevalue://als variabelen die variablevalue /deze code breken; zaak othervalue://code hier rusten;}; een verklaring is, betekent dit dat het systeem als De gangbare praktijk, heb je in elk geval niet met inbegrip van de "vooruitgang" - commando, zal de tenuitvoerlegging van de zaak en de andere.Voor ons, we moeten nog een geval van een overgang, zal ons in staat stellen om dezelfde procedure te bewegen een steunpunt op veel verschillende plaatsen.We zullen ziet er als volgt uit: - Dozen, van schakelaars (schimmel) (zaak C - "het centrum": centerpivot thisobj dollar schuld; zaak "; Ymin": een RPR $producentenorganisaties [6] [1] dollar - producentenorganisaties [8] (% thisobj + ". Rotatepivot") (% thisobj + ". Scalepivot"); breken;}, 33, stappen; zaak script, toe te voegen, laten we elke BU knopen die de desbetreffende zaak.De volledige procedure moet er een epc_movePivotLocal als deze, wat we $mode) {hangen $sel[] = `ls -sl`; voor ($thisObj in $sel) {drijven $pos[] = `epc_getBounds $thisObj`; de schakelaar ($mode) (zaak "Center": CenterPivot $thisObj; breken; zaak "ymin": MOVE - -rpr $pos[6] $pos[1] $pos[8] ($thisObj + ".RotatePivot") ($thisObj + ".ScalePivot"); de pauze; zaak "ymax": MOVE - -rpr $pos[6] $pos[4] $pos[8] ($thisObj + ".RotatePivot") ($thisObj + ".ScalePivot"); de pauze; zaak "van oorsprong": MOVE - -rpr 0 0 0 ($thisObj + ".RotatePivot") ($thisObj + ".ScalePivot"); de pauze; zaak "xmin": MOVE - -rpr $pos[0] $pos[7] $pos[8] ($thisObj + ".RotatePivot") ($thisObj + ".ScalePivot"); de pauze; zaak" xmax ": MOVE - -rpr $pos[3] $pos[7] $pos[8] ($thisObj +".RotatePivot ") ($thisObj +".ScalePivot "); de pauze; zaak" zmin ": MOVE - -rpr $pos[6] $pos[7] $pos[2] ($thisObj +".RotatePivot ") ($thisObj +".ScalePivot "); de pauze; zaak" zmax ": MOVE - -rpr $pos[6] $pos[7] $pos[5] ($thisObj +".RotatePivot ") ($thisObj +".ScalePivot "); de pauze;};);};,, voor onze laatste procedure volgt in plaats van 33, veel hetzelfde. Een wat epc_movePivotToObject () {hangen. $selLast[] = `ls -sl -tail; touw $copyToObj = $selLast[0]; beperkte -deselect $copyToObj; reeks $selSet[] =% quot% is -sl`; drijven $pivotSel[] = `xform - -piv -ws $copyToObj`; - $pivotSel; voor ($each in $sElSet) {MOVE - $pivotSel[0] $pivotSel[1] $pivotSel[2] ($each + ".RotatePivot") ($each + ".ScalePivot");};);, er zijn slechts twee nieuwe vlaggen in deze procedure:,, -tail (-tl) alleen schrijft de laatste object geselecteerd aan de installatie (ls bevel), -pivot (-piv) vragen de huidige De locatie van de spil op een object (xform bevel), 35, stap, dat is nu al te maken zodat onze knopen in de bu eigenlijk bel de procedures we've written., "Center" C "knop - epc_movePivotLocal Center"; - "knop Y min" C "epc_movePivotLocal ymin" knop "y - Max"; - "epc_movePivotLocal ymax"; de knop "oorsprong" C "- epc_movePivotLocal van oorsprong"; de knop - 1 "is" C "; - epc_movePivotToObject" knop "x min" C "epc_movePivotLocal butto xmin";N - l "" C "de grootste epc_movepivotlocal XMAX" L "Z"; de knop epc_movepivotlocal "C" nul "L"; de knop z - Max "C" epc_movepivotlocal ZMAX "; (C), commando 's, een bevel of een voorstel een lijst, druk op de knop, en 35 stap, het is ons gelukt.,,,