site_logo
border_img

Jak na Python v Blenderu- 1. díl

Vložil tol Ne, 2005-09-11 00:15.

anotacni_fotka Cílem tohoto dokumentu je seznámit s tvorbou skriptů v jazyce Python, který podporuje výborný 3D grafický program Blender. Neprovedu vás všemi zákoutími a možnostmi co v Pythonu můžete provádět - berte spíše tento text jako pomůcku, která vám řekne kde a jak začít. Nicméně nepůjde o teoretické povídání. Koncepci tohoto textu jsem tvořil tak, že vždy bude obsahovat praktický příklad (program), který se budu snažit co nejsrozumitelněji popsat.

Samozřejmě předpokládám, že znáte program Blender a práci s ním alespoň na základní úrovni. Taktéž předpokládám že máte alespoň intuitivní představu o teorii počítačové grafiky (víte co je vertx, face apod.). Vzhledem ke skutečnostem, že tvorba Python skriptů je vlastně programování, budu dále předpokládat, že víte, co je to proměnná, podmínka, cyklus, funkce (metody) apod. Nebudu se zde zabývat těmito základními pojmy, neboť bych zde popisoval něco, co naleznete k v každé publikaci, která se základy programování zabývá (některé tituly jsou uvedeny níže). Velkou výhodou pro vás bude, pokud máte zkušenosti s programováním v některém z jazyků, které patří k tzv. strukturovaným (Pascal, C) či ještě lépe objektově orientovaným (C++, Java). Pokud disponujete alespoň základními znalostmi v některém z výše uvedených jazyků, zvládnutí Pythonu na úrovni, abyste si mohli vytvořit alespoň nějaký jednodušší skript pro vás zcela jistě nebude problematické. Já sám programuju v jazycích C/C++, proto budu v textu často oba jazyky srovnávat.

Co budeme potřebovat?

První co budeme potřebovat je pochopitelně Blender. Pokud možno nejnovější verzi (v době kdy tyto řádky píšu je to verze 2.37a). Dále byste si měli nainstalovat Python, který je zdarma ke stažení na svých domovských stránkách www.python.org. Píšu měli byste, jelikož v dalších řádcích poznáte, že ho nepotřebujete vždy. Blender má totiž svoje vlastní objekty a metody přímo v sobě implementovány, proto u některých skriptů Python mít nainstalovaný ani nemusíte. V některých příkladech, které zde uvedu ale Python nainstalovaný mít musíte. Pokud bude potřeba, upozorním na to. Nicméně si neinstalujte poslední verzi tohoto jazyka, jelikož Bledner ve verzi 2.37a podporuje verzi Pythonu 2.3X (jakou verzi Pythonu aktuální verze Blenderu podporuje zjistíte snadno z konzolového okna Blenderu). Z tohoto důvodu si pro tuto verzi Blenderu neinstalujte verzi 2.4.X (ta v současné době již existuje) nebo dokonce vyyšší, pokud v době kdy čtete tyto řádky už vyšla. K samotnému Pythonu pak ještě můžete samozřejmě instalovat i další moduly (např. PIL - Python Image library). To ale doporučuju až v okamžiku, až budete daný modul potřebovat, aby zbytečně nezabíral místo na disku vašeho počítače.

Teoreticky víc nepotřebujete, jelikož program můžete psát přímo v Blenderu. Nicméně vám nebrání psát program v nějakém textovém editoru (nejlepší jsou ty jednodušší), ve kterém ho uložíte jako čistý text (např. Poznámkový blok) s tím, že ho v Blenderu otevřete a spustíte. Já, jakožto uživatel Windows to řeším tak, že program tvořím v editoru, který je podobný Poznámkovému bloku (ke stažení zde), který má ovšem několik rozšíření (číslování řádků, barevné odlišení příkazů od okolního textu apod.), které programování velice usnadňují. Program pak vždycky uložím s příponou .py a otevírám v Blenderu. Může se to zdát být na první pohled složitější, ale má to kromě jmenovaného ještě další výhodu. Kdo programoval nějaký delší program, tak ví, že v programu vznikají množství chyb. Pokud máte vše barevně odlišené, kód je přehlednější a chyby se v něm snadněji odstraňují (a to nemluvím o vžitých klávesových zkratkách pro práci se schránkou CTRL+C, CTRL+V, které v Blenderu nefungují - tedy fungují ale s jinými kombinacemi kláves). Zkrátka mě připadá použití externího textového editoru lepší, ale záleží čistě na vás kde budete programový kód psát.

Práce s Python skripty v Blenderu

Prostředí Blenderu si rozdělte na několik oken. Kolik jich bude záleží na vás, ale jedno okno proti původnímu plánu přidejte. V něm právě budeme vytvářet a spouštět skripty v Pythonu. Tomuto okno nastavte typ textový editor a dostanete vzhled který vidíte na následujícím obrázku:

Python

V nabídce File si nyní můžete zadat buď nový soubor, pokud ho chcete v Blenderu vytvářet od začátku nebo otevřít soubor již existující. Pokud máte již nějaký otevřený, v nabídce "File" se objeví ještě volba "Reopen", což použijete v případě, že zdrojový soubor upravíte mimo prostředí Blenderu. Pokud máte program vytvořený, opět v nabídce File naleznete volbu "Run Python Script" (klávesová zkratka ALT + P) pro jeho spuštění. Pokud je vše v pořádku, skript provede operace, které jste mu zadali. V opačném případě se objeví chybová hláška a v konzolovém okně Blenderu se dozvíte podrobnosti k jaké chybě na jakém řádku došlo.

Samozřejmě že literatura, tj. zdroje, odkud se dají čerpat vědomosti jsou základem každého studia. Já ji rozdělím na tři části. V první části bych chtěl uvést dvě doslovné nutnosti, které jsou na internetu zdarma ke stažení. A sice referneční příručky, ve kterých máte uvedeny všechny syntaxe příkazů které existují s ukázkami použití. První z nich je Python dokumentace k Blenderu (ke stažení zde) a druhá k Pythonu (k dispozici je na domovských stránkách Pythonu - pro verzi 2.35 ji naleznete zde).

Druhým typem publikací jsou nejrůznější příručky. Snad každé lepší nakladatelství, které nabízí počítačové tituly má v nabídce alespoň jednu knihu o Pythonu. Záleží jen na vás, pokud si některou z nich pořídíte. Nebudu žádnou vyzdvihovat, jednak proto, že se mi jich moc nedostalo do ruky a pak, spoutu zdrojů zdarma získáte na internetu (touto cestou jsem se dal já). Samozřejmě je většina z nich v angličtině, takže pokud dobře ovládáte tento světový jazyk, je to pro vás výhoda. Stačí na některém vyhledávači zadat hesla typu "Python documentation" a uvidíte kolik odkazů dostanete. Našel jsem i jeden český rozcestník, takže chcete-li, můžete se podívat sem.

Třetím zdrojem informací pro výuku Pythonu jsou jeho zdrojové kódy. Jejich studiem často získáte více informací, než z příručky, jelikož vidíte prakticky co ten skript dělá a nic vám tedy nebrání si ho zkusit upravit či změnit. Takových skriptů existuje velké množství. Jako jeden z nejlepších zdrojů doporučuju stránky www.elysiun.com, kde je v diskuzi věnována Pythonu celá jedna sekce. Zde naleznete odkazy, ukázky programů a samozřejmě rady od zkušenějších programátorů. Velice dobrá stránka (bohužel z větší části francouzky, ale popisy u některých skriptů jsou i v angličtině) odkud jsem převzal některé skripty a čerpal vědomosti je i jmsoler.free.fr.

Úkol

Každý díl tohoto seriálu se budu snažit zakončit úkolem, který byste měli být schopni samostatně vyřešit, pokud si pozorně prostudujete příslušný dokument, ve kterém bude úloha zadána. Dnes to budou jen takové hrátky s Python skripty. Stáhněte si jeden nebo více skriptů z internetu (např. odtud) a zkuste je v Blenderu pustit. Může se vám stát, že některé z nich nebudou fungovat (byly psány pro starší verze Blenderu a není zde 100% kompatibilita). Ale na tom zatím nezáleží. Pokud skript máte funkční zkuste do něj cokoliv zapsat, aby vypsal chybu a snažte se pochopit jak se vám kompilátor snaží napovědět kde chybu objevil a o jakou se jedná. Zkrátka jde o to, abyste se naučili v tomto směru s Blenderem spolupracovat a byli schopni (ale to až v budoucnu, jelikož ještě nemáte dostatek znalostí) chybu opravit.

To je pro dnešek vše. Příště si napíšeme první jednoduchý skript, který nám vytvoří čtvercovou plochu (mesh) a popíšeme si ho.

autor:Pavel Pokorný
Univerzita Tomáše Bati ve Zlíně
Fakulta technologická

© 2005 Blender3dcz. Všechna práva vyhrazena. | Design by Stickfish | Webmaster: Jiří Hnídek | drupal