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