MAXScript – výukový kurz Díl druhý – nástroje MAXScriptu © Jan Melichar únor – březen 2006
OBSAH
OBSAH.......................................................................................................................................................... 1
ÚVOD ....................................................................................................................................................... 3 MACRO RECORDER ................................................................................................................................ 3 MAXSCRIPT LISTENER .......................................................................................................................... 3 SPUŠTĚNÍ MAXSCRIPT LISTENERU ................................................................................................................... 3 MAXSCRIPT LISTENER ...................................................................................................................................... 4 MINI-LISTENER ................................................................................................................................................... 5 PROBLEMATIKA GENEROVÁNÍ KÓDU ................................................................................................................... 5
VISUAL MAXSCRIPT EDITOR ................................................................................................................ 6 SPUŠTĚNÍ A ZPŮSOB PRÁCE S VISUAL MAXSCRIPT EDITOREM ....................................................................... 6 PROVÁZÁNÍ VISUAL MAXSCRIPT EDITORU S KLASICKÝM EDITOREM KÓDU MAXSCRIPTU ............................. 7
POUŽITÁ LITERATURA ............................................................................................................................ 9
© Jan Melichar (aka JME)
strana 1
MayaMax3D.NET
Upozornění Tento materiál je určen výhradně pro soukromé výukové účely. Nesmí být v žádném případě použit ve spojení s komerční činností, prodáván, šířen v pozměněné podobě či jinak modifikován.
© Jan Melichar (aka JME)
strana 2
MayaMax3D.NET
Úvod
Vážení uživatelé 3ds Max, je zde druhý díl kurzu jazyka MAXScript (dále jen MSC). V tomto dílu se budeme zabývat základními nástroji MAXScriptu, kterými jsou Macro Recorder , MAXScript Listener a Visual MAXScript Editor. V této kapitole popíšu, k čemu výše uvedené nástroje slouží a uvedu jejich základní funkcionality. Podrobnější popis možností práce s těmito nástroji se objeví v průběhu dalších dílů kurzu, a to vždy v rámci konkrétního příkladu, k jehož vyřešení lze příslušný nástroj použít.
Macro Recorder
Utilita Macro Recorder slouží pro zachycení činností, prováděných ve výřezech aplikace 3ds Max, v podobě kódu jazyka MSC. Pro zachycení výše zmíněných činností je třeba utilitu Macro Recorder aktivovat. Aktivaci provedeme následovně: Hlavní menu > MAXScript > Macro Recorder. Jak naznačuje obrázek 1, utilita je aktivována, je-li zaškrtnutý (označený) řádek Macro Recorder. Od této chvíle budou činnosti prováděné v rámci výřezů 3ds Max zobrazovány v okně nástroje MAXScript Listener, viz dále kapitolu MAXScript Listener.
Obrázek 1 – aktivovaná utilita Macro Recorder
Poznámka: Utilitu Macro Recorder lze aktivovat také z nástroje MAXScript Listener, a to v menu MacroRecorder > Enable.
MAXScript Listener
Poté, co máme úspěšně aktivovanou utilitu Macro Recorder pro zaznamenávání kódu, již nám nic nebrání začít s generováním vlastních příkazů MAXScriptu. Spuštění MAXScript Listeneru Pro tento účel slouží nástroj MAXScript Listener (dále jen MSCL). Spustit jej lze čtyřmi možnými způsoby: •
Hlavní menu > MAXScript > MAXScript Listener
•
Klávesová zkratka F11
© Jan Melichar (aka JME)
strana 3
MayaMax3D.NET
•
Panel Utilities > MAXScript > Open Listener
•
Klepnutí pravým tlačítkem myši na libovolný z řádků Mini Listeneru a následným Open Listener Window
Všemi výše uvedenými způsoby spustíme nástroj MSCL – viz. obrázek 2.
Obrázek 2 - nástroj MAXScript Listener
MAXScript Listener Máme-li spuštěn MSCL (lze spustit pouze jednu instanci okna MSCL !), všimneme si menu a jeho položek File, Edit, Search, MacroRecorder a Help. Pod menu File se skrývají možnosti vytvořit nový skript, otevřít skript či skript spustit. Těchto tří zmíněných operací se skripty lze dosáhnout taktéž z hlavního menu MAXScript > (New Script / Open Script / Run Script), nebo také z panelu Utilities > MAXScript > (New Script / Open Script / Run Script). To ale trochu předbíháme. O možnostech práce se skripty bude řeč ve 3. kapitole kurzu. Menu File navíc ještě obsahuje možnost okno MSCL zavřít, a také generované či provedené příkazy uložit ve formě souborů .ms (klasický MSC soubor) či .mcr (makroskript). Menu Edit představuje možnosti práce s textem v okně MSCL – kopírování, vkládání, mazání, označení celého bloku textu apod. Menu Search pro změnu slouží pro hledání řetězce textu a jeho nahrazování jiným textovým řetězcem. Menu Help je, dle mého skromného názoru, samovysvětlující ☺. Menu MacroRecorder je již o mnoho zajímavější. Skrývá v sobě možnosti nastavení způsobu zaznamenávání činností prováděných uživatelem, např. odlišný přístup k odkazování na objekty, relativní či absolutní určení pozice objektu atd. Tyto parametry je možné explicitně nastavit v hlavním menu Customize > Preferences > záložka MAXScript > sekce Macrorecorder. Detailnější popis těchto možností je nad rámec tohoto druhého dílu kurzu, a bude jim proto věnován prostor ve 4. kapitole nazvané jazyk MAXScript. © Jan Melichar (aka JME)
strana 4
MayaMax3D.NET
Jak je vidět, nástroj Macro Recorder je rozdělen na dvě horizontálně oddělené oblasti. Hornírůžová oblast je oblastí Macro Recorderu a je zde vypsáno vše, co MacroRecorder zaznamená. Spodní-bílá oblast slouží pro výstup prováděných příkazů. Tip: Okno MSCL můžeme jednoduše “nainstalovat” do kteréhokoli výřezu. Provedeme to následovně: pravým tlačítkem myši klepneme na nadpis výřezu, a poté: Views > Extended > MAXSCript Listener. Aktivní může být okno MSCL současně pouze v jednom výřezu. Odstraníme jej pro změnu tak, že klepneme pr.tl. myši na menu MSCL a vybereme jeden z pohledů (left, right, perspective …). Následující tabulka zahrnuje typy textu, názvy proměnných a defaultní barvy textu používaného v okně MSCL. Typ textu
Proměnná
Defaultní barva
vkládaný text
inputTextColor
černá
výstupní text
ouputTextColor
modrá
text chybové hlášky
messageTextColor
červená
Příkazy budou vykonány vždy – ať je napíšeme do kterékoli z oblastí okna MSCL – tedy do růžové oblasti či do bílé. Příkazy se píší na jeden řádek a jejich provedení se potvrzuje klávesou Enter. Mini-Listener Pro zadávání příkazů MAXScriptu slouží také zmenšená podoba okna Listener, a sice tzv. Mini Listener, jenž disponuje stejnou funkcionalitou jako okno MSCL, a je umístěn v levém dolním rohu aplikace 3ds Max a jehož velikost lze horizontálně ovlivnit tažením myší za jeho pravý okraj.
Obrázek 3 - Mini Listener
Klepneme-li pravým tlačítkem myši na jakýkoli z řádků Mini Listeneru, zobrazí se možnost otevřít okno MSCL. Problematika generování kódu V nástroji 3ds Max je mnoho oblastí, které podporují generování kódu MSC, ale na druhé straně také existuje hodně oblastí, které jej nepodporují. Jako příklad, kdy není kód MSC generován může být situace, kdy stiskem tlačítka vyvoláme v rámci 3ds Max nové dialogové okno. Změny nastavení nebo činnosti prováděné v tomto dialogovém okně nebudou ze zásady generovat kód MSC v okně MAXScript Listeneru. Skutečnost, že některé činnosti (např. spuštění pluginu) toto generování kódu nepodpodporují, je dána tím, že v 3ds Max implementované objekty, pluginy či modifikátory nebyly s touto vestavěnou podporou vytvořeny. Dlužno podotknout, že budoucí verze 3ds
© Jan Melichar (aka JME)
strana 5
MayaMax3D.NET
Max, a také pluginy pro něj dodávané, prý již budou podporu generování kódu MSC obsahovat.
Visual MAXScript Editor
Visual MAXScript Editor je dalším z nástrojů, kterým 3ds Max disponuje. Jedná se o editor, který je založený na práci s formulářovými prvky a slouží pro tvorbu vlastních roletových menu. Na rozdíl od okna MSCL lze spustit několik instancí Visual MAXScript Editoru (dále jen Editor VMSC) najednou.
Obrázek 4 - Visual MAXScritp Editor
Spuštění a způsob práce s Visual MAXScript Editorem S editorem VMSC lze pracovat dvěma způsoby : •
Jako se samostatným nástrojem v rámci 3ds Max, ve kterém vytváříme své vlastní roletové menu pomocí formulářových prvků, jak ukazuje obrázek 4. Takto vytvořené roletové menu si poté můžeme uložit buďto jako zdrojový kód skriptu MSC (ve formě souboru s koncovkou .ms) a otevřít jej poté v klasickém editoru nebo jej můžeme uložit v binárním formátu .vms, který poté můžeme otevřít pouze a opět v editoru VMSC.
•
Nebo jako s nástrojem, který je provázán s otevřeným editorem skriptu a veškeré operace provedené a poté uložené v editoru VMSC jsou automaticky zaznamenávány
© Jan Melichar (aka JME)
strana 6
MayaMax3D.NET
v podobě kódu v otevřeném, ale dočasně zmrazeném editoru jazyka MSC, tak jak ukazuje obrázek 5. Provázání Visual MAXScript Editoru s klasickým editorem kódu MAXScriptu Provázání editoru VMSC následujícím způsobem:
s klasickým
editorem
kódu
MAXScriptu
provedeme
V otevřeném klasickém editoru kódu (spuštěným např. přes hlavní menu MAXScript > New Script; na obrázku 5 se jedná o spodní editor s názvem Untitled - MAXScript) můžeme přes menu Edit > Edit Rollout (nebo přes klávesovou zkratku F2) spustit editor VMSC (Visual MAXScript Editor). Máme-li v klasickém editoru kódu již nějaký kód skriptu napsaný, objeví se v editoru VMSC jeho grafická reprezentace – viz obrázek 5. Při každém uložení práce v editoru VMSC bude obsah skriptu v podobě kódu v klasickém editoru automaticky aktualizován. Po dobu práce s editorem VMSC bude okno klasického editoru jakoby „zmražené“, tzn. nebude zde možnost jej upravovat. Toto bude trvat ale pouze do doby, než práci s editorem VMSC ukončíme. Práce s editorem VMSC spočívá, jak jsem již dříve naznačil, v manipulaci s formulářovými prvky. Těch je v editoru VMSC hned několik, jmenuji například tvorbu různých druhů tlačítek (button), rozevíracích (drop down list) a „kombo“ seznamů (combo box), editovacích polí (edit box), popisových polí (label), zaškrtávacích (check box) a výběrových přepínačů (radio button), „spinnerů“ a posuvníků (slider) a dalších formulářových prvků, z nichž se většina bude při tvorbě vlastních roletových menu rozhodně hodit. Další užitečnou záležitostí je možnost zachycení událostí u formulářových prvků. Máme-li při práci v editoru VMSC označený některý formulářový prvek a klepneme vpravo na záložku Event Handlers, zobrazí se k vybranému formulářovému prvku příslušný počet událostí, které lze zachytit. Můžeme tak například vytvořenému tlačítku s názevm „Zobraz hlášku“ přiřadit událost (která bude vyvolána stiskem tohoto tlačítka), a která například vyvolá hlášku „Hello world !“. Příklad na vytvoření vlastního roletového menu s využitím editrou VMSC bude obsahem některého z dalších dílů kurzu MAXSsriptu.
© Jan Melichar (aka JME)
strana 7
MayaMax3D.NET
Obrázek 5 - Ukázka provázání skriptu s editorem VMSC
V tento okamžik jsme se dostali na samotný závěr tohoto dílu zvaného Nástroje MAXScriptu. V příštím díle, který se jmenuje Základní témata MAXScriptu se budeme zabývat nastavením MAXScriptu v menu Preferences > MAXScript, povíme si něco o tzv. start-up skriptech, chybových hláškách, o možnosti spouštění skriptů z příkazové řádky, také si řekneme několik informací o samotném zdrojovém kódu a možnostech jeho šifrování.
© Jan Melichar (aka JME)
strana 8
MayaMax3D.NET
Použitá literatura
[1]
3ds Max 7 Bible, Kelly L. Murdock, 2005, Wiley Publishing Inc.
[2]
3ds Max 7 MAXScript, nápověda maxscript.chm
[3]
Vlastní zkušenosti s MAXScriptem
© Jan Melichar (aka JME)
strana 9
MayaMax3D.NET