MAXScript
MAXScript je vestavěný skriptovací jazyk pro balíček 3D modelování 3D Studio MAX od firmy Autodesk, určený k automatizaci rutinních úkolů, optimalizaci využití stávajících funkcí, vytváření nových editačních nástrojů a uživatelského rozhraní. Prostřednictvím skriptovacího rozhraní API umožňuje ovládat a upravovat objekty trojrozměrné scény: geometrii, textury, animaci a další. Je možné vytvořit různé pluginy a nástroje pro urychlení provádění konkrétních úkolů. Nástroje Autodesk 3ds Max používají MAXScript v různých funkcích, včetně nativních nástrojů a prvků rozhraní.
Historie MAXScript
MAXScript byl představen jako zásuvný modul v aplikaci 3d Studio MAX r2. Následně to bylo začleněno do základního kódu 3ds Max. Původní implementace byla ve srovnání se současnou inkarnací velmi jednoduchá.
S každou novou verzí byly funkčnost a použitelnost neustále vylepšovány. Významné vylepšení zahrnovalo přidání makroscriptů (.mcr). To umožňovalo volat skripty z VI jako vložený kód, plus skripty bylo možné volat pomocí klávesových zkratek, nabídek a čtyř nabídek. Postupně bylo více a více jádrového kódu vystaveno MAXScript. Bylo přidáno zásadní vylepšení nazvané Function Publishing System (FPS), které vývojářům modulů plug-in umožnilo přístup k jejich kódu pro MAXScript. Referenční příručka MAXScript (tj. Soubor nápovědy) prošla významným zlepšením pokrytí a čitelnosti. Ve skutečnosti se rozrostla z jednoduchého odkazu na příkaz do plnohodnotného odkazu doplněného spoustou příkladů s ukázkovým kódem, částmi o 3D matematice a informacemi o obecných a konkrétních programovacích principech.[1]
32-bit Max vs. 64-bit Max
Mikroprocesor uchovává pokyny v registrech. 32bitový mikroprocesor obsahuje instrukce dlouhé 32 bitů. V praxi platí, že čím více bitů na instrukci, tím rychlejší mikroprocesor. Čím více bitů, tím více paměti, ke které lze přistupovat, což umožňuje zpracování větších scén. Neustále se tedy tlačí na zvyšování velikosti instrukce. Nová generace mikroprocesorů, která byla právě uvedena na trh, je 64bitová.
Přestože programy napsané pro 32bitové mikroprocesory poběží na 64bitových mikroprocesorech, neuvědomí si plnou rychlost a výhodu paměti. Vývojáři softwaru musí používat nástroje speciálně určené pro 64bitové systémy.
Autodesk nyní poskytuje 64bitovou verzi aplikace 3ds Max pro uživatele, kteří si „brzy osvojili“ a vyžadují maximální rychlost a velikost scény. Nejsou potřeba žádné speciální nástroje.
Všechno je transparentně zpracováno MAXScriptem. Existuje však jedno významné důsledek. Ovládací prvky ActiveX, které nebyly znovu zkompilovány, nebudou v 64bitovém prostředí fungovat.
Visual Studio .NET je relativně nové revoluční prostředí pro vývoj softwaru nabízené společností Microsoft a používané společností Autodesk k vývoji aplikace 3ds Max 9.
Pro většinu ovládacích prvků ActiveX existují ovládací prvky .NET, takže některé skripty budou muset být aktualizovány, aby mohly používat ovládací prvky .NET, pokud se mají spouštět v 64bitovém systému. Ovládací prvky .NET budou fungovat v 32bitovém systému. MAXScript nyní obsahuje strukturu .NET a příkazy pro přizpůsobení ovládacím prvkům .NET.[1]
Oblasti použití
MAXScript je velmi univerzální – počet oblastí, které lze použít, je omezen hlavně představivostí uživatele. Přesto existují určitá pole, která MAXScript vyniká a používá se častěji v:
Ovládání aplikací z příkazového řádku
MAXScript lze použít pro přístup k různým aspektům 3D scény a 3ds Max obecně a ke změně vlastností, vytváření, úprav a mazání objektů, iteraci přes skupinu objektů a filtrování podle různých kritérií, dokonce ke změně některých nastavení, která nejsou vystavena Uživatelské rozhraní a jsou přístupné pouze prostřednictvím MAXScript (například experimentální funkce nebo systémové přepínače). Rozhraní příkazového řádku (Listener a Mini-Listener) lze také použít k provádění rychlých matematických výpočtů nebo k tisku statistických dat o aktuální scéně atd.[2]
Vytvoření uživatelského rozhraní
MAXScript poskytuje sadu ovládacích prvků uživatelského rozhraní, které lze umístit do rolloutů, které se zobrazí jako dialogy, v rollout floaters, v příkazovém panelu (jako součást skriptovaných nástrojů, skriptovaných modulů plug-in a vlastních atributů), v editoru materiálů (jako součást skriptovaného materiálu a zásuvných modulů mapy) a na kartě Render Effects dialogu Render (jako součást skriptovaných Render Effects).
Ovládací prvky uživatelského rozhraní zahrnují tlačítko, zaškrtávací tlačítko, pickbutton, mapové tlačítko, materialbutton, imagebutton, spinner, slider, checkbox, radiobutton, dropdownlist, listbox, multilistbox, combobox, bitmap, colorpicker, curvecontrol, edittext, groupbox, label, hyperlink, imgtag, popupmenu, progressbar, subrollout a časovač.
Ovládací prvky uživatelského rozhraní lze objednat automaticky, relativně a absolutně.
- Výchozí chování je automatické umístění: Pouhý výpis ovládacích prvků jeden po druhém je automaticky uspořádá pomocí výchozího nastavení zarovnání a také nastaví rozměry na základě textu titulku a velikosti nadřazeného zavádění. Nastavení formátování může také určit uživatel, včetně napříč:, zarovnat:, výška:, šířka: a šířka pole:.
- Relativní umístění lze provést nad automatické řazení pomocí parametru offset: [X, Y], který posune ovládací prvek vzhledem k jeho automatickému umístění.
- Absolutní umístění lze provést pomocí parametru pos: [X, Y], který určuje absolutní pozici levého horního rohu ovládacího prvku relativně k levému hornímu rohu nadřazené rollout.
Kromě toho lze ovládací prvky ActiveX a (od 3ds Max 9) ovládací prvky .NET integrovat do skriptovaných rolloutů. V případě .NET lze uživatelská rozhraní založená zcela na Windows Forms vytvořit uvnitř MAXScript.
MAXScript poskytuje nástroj s názvem Visual MAXScript, který umožňuje vizuální návrh zavádění podobným způsobem jako MS Visual Studio. Ovládací prvky vytvořené pomocí Visual MAXScript budou vždy používat absolutní umístění. [2]
Makroskripty
Makroskripty byly původně představeny v R3 jako forma balíčku pro kód vydávaný programem MacroRecorder, ale staly se preferovanou formou skriptovaných nástrojů, protože je lze umístit na panely nástrojů, nabídky, QuadMenus nebo je přiřadit ke zkratkám.
Jednoduché makroskripty mají jednoduchou formu těla obsahujícího nějaký kód, který má být spuštěn, když je aktivováno tlačítko / položka nabídky / zástupce.
Makroskripty mohou obsahovat vlastní grafické uživatelské rozhraní nebo provádět příkazy přímo při spuštění.
Makroskripty mají volitelný komplexní formulář s řadou obslužných rutin událostí, které lze použít k přidání kontextové citlivosti do kódu a ovládání viditelnosti položky tlačítka / nabídky, aktivního a kontrolovaného stavu, a dokonce poskytnout alternativní akci, pokud se použije jako položka nabídky.
MacroScript lze také vytvořit droppable pomocí speciální obslužné rutiny události, která dokáže zjistit, zda byl skript spuštěn do výřezu nebo na objekty a provádět s nimi operace. [1]
Skriptované funkce
MAXScript lze použít k vytvoření globálních funkcí, ke kterým lze přistupovat jinými skripty nebo prostřednictvím příkazového řádku Listeneru. Zdrojové soubory těchto funkcí lze nainstalovat do libovolné složky uvedené v cestách k zásuvným modulům nebo do vyhrazených složek stdplugs / stdscripts a scripts / startup. Funkce lze také kombinovat do sady pomocí skriptované struktury, která zajistí lepší zabalení kódu a zmenší nepořádek v globálním prostoru jmen (oboru) MAXScript. [3]
Funkce zpětného volání
Skriptované funkce zpětného volání mohou být registrovány v systému a jsou spouštěny událostmi systému, jako je otevření scény, vytvoření, úprava nebo vymazání objektu, spuštění rendereru atd. Tyto skriptované funkce lze použít k monitorování akcí uživatele a provádění změn na pozadí, pokud je to nutné; testovat soubory, objekty a další nastavení správnosti (kontroly zdravého rozumu); upravovat objekty za běhu (například přiřadit materiál libovolnému nově vytvořenému objektu, upravit nastavení na některá výchozí nastavení uživatele, když jsou přidány modifikátory atd.) atd. V MAXScript je k dispozici několik specializovanějších mechanismů zpětného volání, které spouští volání uživatelských funkcí při změnách Time Slider, překreslování výřezů nebo různé operace se zadanými objekty vč. topologie, transformace, sub-animační struktura a další. [3]
Skriptované doplňky a vlastní atributy
Skriptované pluginy byly zavedeny v R3 a umožňují rychlé prototypování několika tříd a úrovní modulů plug-in pro rozšíření 3ds Max bez použití SDK. Aktuálně jsou podporovány následující skriptované třídy modulů plug-in:
- Atmosférický (rozšířit pouze existující)
- Fotoaparát (rozšířit pouze stávající)
- Geometrie
- Pomocník (rozšířit pouze existující)
- Světlo (rozšířit pouze existující)
- Manipulátor
- Materiál (pouze rozšířit existující)
- TextrureMap (rozšířit pouze existující)
- Modifikátor (rozšířit pouze existující)
- SimpleMod
- RenderEffect
- Tvar (rozšířit pouze existující)
I když se obvykle spouští mnohem pomaleji než pluginy C ++ vyvinuté pomocí SDK, skriptované pluginy se vyvíjejí o řád rychleji a často mohou vyřešit problém stejně efektivně jako běžný plug-in.
Zvláštním případem skriptovaných modulů plug-in jsou takzvané vlastní atributy (aka parametry) - jsou implementovány jako uživatelem definované skriptované bloky parametrů s volitelnými ovládacími prvky uživatelského rozhraní, které lze připojit k většině objektů scény, včetně základních objektů, modifikátorů, materiálů, mapy, řadiče atd. [4]
Reference
Externí odkazy
- 3ds Max 2017 Help (autodesk.com)
- Roger Cusson, Pia Maffei, 3ds max 7 fundamentals and beyond courseware manual, Focal Press (2005), ISBN 9780240807393
- Autodesk 3ds Max 9 MAXScript essentials (2007), Focal Press, ISBN 9780240809328
- Ted Boardman, 3ds max Fundamentals (2005), New Riders Press, ISBN 0536081999