mel - day0
Transcript
mel - day0
Sliker e-mail: [email protected] igloo: http://www.sliker.org -= Mel - Day 0 =1. Introduzione 2. Interfaccia 3. Script Editor 1. Introduzione Prima di vedere 200 righe di codice inutili vediamo cosa è mel, perché è stato sviluppato e come può essere utilizzato per ottenere gustosi script per le nostre esigenze. - Acronimo MEL -> Maya Embedded Language. Mel è prima di tutto un linguaggio, questo significa che è necessario imparare e conoscere una sintassi e una semantica per poter produrre codice corretto da cui Maya potrà interpretare e svolgere ciò che gli è stato chiesto di fare. Ho scritto interpretare non compilare, questo è importante, infatti Maya non genera del codice compilato ma bensì legge ed interpreta la sequenza di comandi che gli sono stati richiesti senza quindi dover generare alcun tipo di codice aggiuntivo (questo poi non risulta del tutto vero, poi ne vedremo successivamente il motivo). E’ totalmente integrato con Maya, infatti molte delle funzioni e delle GUI (…) che si vedono in Maya sono costruite tramite sequenze di comandi Mel. - Perché è stato sviluppato Per chi modella (ma non solo) con Maya sicuramente avrà incontrato durante il suo lavoro delle operazioni che possono essere semplificate oppure che non esistono nella versione in uso, Mel viene in vostro aiuto e vi permette di accedere a quasi tutte le funzioni Maya e di creare i vostri comandi personalizzate che ogni volta che verranno eseguiti faranno esattamente quello che vorrete voi (naturalmente se ben programmati). Oltre al supporto per utenti Maya è possibile sviluppare veri e propri programmi per creare od integrare nuove funzioni o nuovissime tecnologie, questo implica naturalmente conoscenze molto più vaste che il semplice utilizzo di Maya, ma la fantasia non ha limite quindi Mel è un ottimo strumento per mettere in pratica quello che si vuole. - Mi serve una funzione che fa… Naturalmente è possibile cercare su Web in determinati Forum o Siti dove altri programmatori hanno già sviluppato la funzione che si vuole realizzare ma qui siamo per imparare MEL e quindi implementeremo una nostra soluzione al problema che avremo da risolvere. Il primo passo da fare è capire “dove mettere le mani“ in Maya per poter sviluppare i nostri Script. 2. Interfaccia Apriamo Maya e localizziamo le zone che ci interesseranno per sviluppare i nostri Script: Fig. 1 Ho individuato 4 zone: 1. Command Line Come dice il nome è la Linea di commando, da qui è possibile far partire i nostri script e qualsiasi comando in Maya. Può essere vista come la versione su singola linea dello script editor. Naturalmente il suo utilizzo è comodo per lanciare un singolo comando e non certo per sviluppare script. 2. Error Message Line Se Maya genera un errore esso viene sempre segnalato in questa zona da una stringa che può essere rossa per gli errori o azzurra per i warning. I nostri script per un corretto funzionamento non dovranno mai presentare nessun errore e nessun warning, questo per assicurarci che il nostro listato sia funzionante in maniera perfetta. Se si presenta un warning spesso lo script può continuare a funzionare, ma non è una giusta metodologia di sviluppo tralasciare un problema, perché spesso un errore successivo apparentemente irrisolvibile può essere causato proprio dal warning tralasciato. Quindi bisogna sempre controllare il listato in modo tale da non produrre nessun messaggio di errore. 3. Script Editor Icon Questa icona apre quello che sarà la nostra area di lavoro lo Script Editor. Nel prossimo capitolo ne spiegherò il suo funzionamento e i suoi comandi. Maya ci mette a disposizione questo strumento in cui è possibile gestire i nostri Mel, vedremo successivamente che è comodo usarlo solo se si usano poche righe di codice, se il nostro listato inizia a diventare lungo allora lo Script Editor diventa ingestibile e molto scomodo da usare. Spiegherò cosa usare come sostitutivo e come usarlo in maniera semplice senza complicarsi la vita. In rete è possibile comunque trovare Script Editor avanzati sviluppati da molti programmatori e distribuiti freeware per chi vuole sviluppare codice Mel su Maya senza dover combattere con le poche funzionalità che presenta lo Script Editor di AW. 4. Custom Shelf Questa zona serve per creare delle icone a cui possono essere associati qualunque tipo di script sviluppato in Mel. Vedrete che sarà molto utile utilizzarla. Per fare delle prove utilizzate la Shelf che ha come etichetta “Custom”. In questo modo non modificate quelle predefinite di Maya. 3. Script Editor Premendo l’icona segnata dalla freccia 3 in Fig.1, oppure andando nel menu Windows -> General Editors -> Script Editor, compare la seguante finestra e vediamo come si presenta lo Script Editor: Fig. 2 Tre sono le zone che è facile individuare: 1. Input Window Questa zona presenta uno sfondo bianco, il colore indica che la finestra è editabile e sarà possibile scrivere il codice del nostro Mel. 2. Output Window (Status Message Window) Questa zona al contrario della precedente è grigio scuro ed indica che non è editabile infatti non è possibile scrivere niente, ma è possibile copiare parti di testo (comandi) che vi sono contenute. 3. Menu Vediamo ogni singola finestra del Menu cosa ci permette di fare File Open Script: Apre uno script per essere editato modificato e controllato per effettuare eventuali modifiche. Questo comando apre solo lo script ma non lo esegue. Il contenuto viene mostrato nella Input Window (zona 1 della Fig. 2). Source Scritp: Esegue tutti i comandi Mel contenuti nel file che si sta aprendo. Esso restituisce messaggi di errore o warning in caso si incorretto funzionamento e l’esecuzione dello script viene interrotta. Save Selected: Si può salvare solo la porzione di testo che si sta selezionando nello script Editor in un file Mel, questo commando può essere comodo per salvare porzioni di script da testare in file separati, oppure semplicemente per estrarre sequenze di comandi Mel di minori dimensioni da script più grossi. Save Selected to Shelf: Questo commando è simile al precedente come funzionamento ma al posto di salvare lo script su file vi crea una icona sulla shelf. Edit Cut, Copy, Paste, Select All: taglia, copia , incolla, seleziona tutto. Clear History: Cancella il contenuto della Status Window (Fig.2, zona 2). Attenzione ad usarlo che non permette la possibilità di ritornare indietro (undo). Clear Input: Cancella il contenuto della Input Window (Fig.2, zona 1). Attenzione ad usarlo che non permette la possibilità di ritornare indietro (undo). Clear All: Cancella i contenuti di tutte e due le finestre. Script Execute: esegue il contenuto della Input Window (il nostro script). Echo All Commands: Lavorando in Maya vi sarete accorti che molte (le più significanti) delle operazione che eseguite vengono visualizzate nello script editor. Se è selezionato questo comando in teoria si ha la possibilità di vedere tutte le operazioni che Maya sta eseguendo. Show Line Numbers: Se si hanno problemi nell’esecuzione di uno script lungo questo commando è di grande aiuto perché permette di individuare la linea in cui si è verificato un errore e quindi è immediata la determinazione della posizione del commando errato. Show Stack Trace: In script di grosse dimensioni si creano numerosi file Mel in modo tale da non appesantire la compressione di un listato mel, ma non solo anche per ottenere un codice più pulito e riutilizzabile. Con questa opzione inserita possiamo conoscere in quale posizione e quale file si è verificato l’errore. Abbiamo cosi una traccia completa per cercare di risolvere il problema. Help Questo Menu è molto sottovalutato dalla maggior parte degli utenti ed è molto sbagliato. Un bravo programmatore deve avere sotto mano sempre la Command Reference perché è assolutamente impossibile ricordarsi tutti comandi e tutte le svariate opzioni che ciascun comando contiene. Quindi: Help on MEL: Introduzione generale sul Mel (ENG) Help on Script Editor: Aiuto all’uso dei comandi dello Script Editor (ENG) MEL Command Reference: Guida da avere sempre aperta quando si sviluppa script in MEL (ENG) Ok guys, per questa lezione abbiamo terminato, come avete visto non vi ho ancora fatto vedere niente di programmazione, ma prima di utilizzare uno strumento è bene conoscerne tutte le sfaccettature. Poi non importa se userete sempre le stesse procedure, ognuno ha il suo stile, ma almeno avrete un’idea generale dell’insieme delle cose. byez __sliker __end day 0