Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Makra Quartz Composeru
4. července 2005, 00.00 | Až dosud jsme si animace popisovali jako síť patchů, vzájemně podle potřeby propojených "trubkami", jež spojují jejich vstupy a výstupy. Ve skutečnosti nám systém Quartz Composer nabízí daleko více: animace je libovolně hluboká hierarchická struktura takovýchto sítí: vzdáleně se to podobá systému souborů, kde můžeme v jedné složce mít vedle sebe soubory i další složky.
V minulém dílu našeho seriálu věnovaného systému Quartz Composer jsme se seznámili s typy patchů; na dnešní pokračování jsme si ale nechali speciální typ patche, tzv. makro.
Hierarchická struktura patchů
Až dosud jsme si animace popisovali jako síť patchů, vzájemně podle potřeby propojených "trubkami", jež spojují jejich vstupy a výstupy. Ve skutečnosti nám systém Quartz Composer nabízí daleko více: animace je libovolně hluboká hierarchická struktura takovýchto sítí: vzdáleně se to podobá systému souborů, kde můžeme v jedné složce mít vedle sebe soubory i další složky (jež opět obsahují vnořené soubory a složky...).
Podobně v Quartz Composeru kterýkoli z patchů v síti může být jen "složkou" nebo dejme tomu "balíčkem", obsahujícím další, vnořenou síť patchů propojených podle potřeby. Takovéto "balíčky" se právě nazývají makra.
Základy práce s makry
Nové makro můžeme kdykoli vytvořit příkazem "Create Macro"; Quartz Composer vloží nové makro do komposice. Nové makro je nazváno "Macro Patch"; jeho jméno však můžeme kdykoli změnit prostřednictvím Inspektoru (mimochodem, to je možné i u ostatních patchů; u nich to však má smysl jen u složitých komposic, zatímco u maker je to vhodné vždy, abychom se v komposicích lépe orientovali).
Pokud byly označeny nějaké patche, automaticky se přemístí do nového makra; jinak je nové makro prázdné. Poklepáním na makro je otevřeme a můžeme upravovat patche, jež jsou v něm obsaženy; zpět o úroveň výše se vrátíme pomocí příkazu "Edit Parent". V horní části okna lze také příkazem "Hierarchy Browser" zapnout hierarchický prohlížeč, který zobrazuje celou strukturu navzájem vnořených maker:
Jak je vidět na obrázku, makro se na první pohled od "obyčejného" patche liší tím, že má ostré rohy – běžné patche mají rohy zakulacené, podívejte se na příští obrázek. Barva titulku může být jakákoli; prázdné makro má titulek zelený (neboť se implicitně považuje za procesor), ale Quartz Composer automaticky přiřadí makru vhodnou barvu podle toho, co obsahuje: uložíme-li do něj aspoň jeden patch, jenž je providerem, titulek makra zmodrá (tak tomu je u makra "Sestava jakási" na obrázku); pokud do makra vložíme alespoň jeden consumer, nejenže titulek makra automaticky zrůžoví, ale také je makru přiděleno pořadí zpracování a atribut Enable – jako u každého jiného consumera.
Ostatní porty, jež jsou na obrázku vidět, je třeba určit ručně; hned si řekneme, jak na to.
Vstupy a výstupy maker
Makra ve Quartz Composeru jsou ovšem trochu víc, než jen balíčky patchů: makro jako celek má vlastní skupinu vstupních a výstupních portů, jejichž prostřednictvím jej můžeme propojovat s ostatními patchi na téže úrovni. Tyto porty se samozřejmě "nějak" mapují na vstupní a výstupní porty patchů, jež jsou uvnitř makra; pojďme se podívat na to, jak lze toto mapování definovat.
Je to jednoduché: otevřeme-li nad kterýmkoli patchem v makru kontextovou nabídku, můžeme jejím prostřednictvím vybrat nejen "Rendering Layer" (to jsme se naučili minule), ale také "Published Inputs" a "Published Outputs": vybrané porty pak budou k dispozici přímo z nadřízeného makra. To, že např. makro "Tohle makro obsahuje "consumera", má vstupní port "Image", je díky tomu, že jsme tento port zvolili v jeho vnořeném patchi "Sprite":
Při volbě můžeme vstupním i výstupním portům přidělit specifická jména – u portu "Image" jsme toho nevyužili, avšak na prvém obrázku je vidět, že specifické jméno bylo přiděleno vstupnímu portu makra "Sestava jakási".
Povšimněte si také (na druhém obrázku), že Quartz Composer pro lepší přehlednost zvýrazňuje ty porty, jež jsou z makra "exportovány" jako vstupní čí výstupní: nejsou zobrazeny jako kroužky, nýbrž jako plná kolečka.
Clip library
Na začátku našeho seriálku jsme si řekli, že v levé části okna aplikace Quartz Composer je seznam patchů, jež máme k dispozici; nezmínili jsme se ovšem o tom, že tento seznam lze přepnout do režimu "Clip Library": v něm máme k dispozici knihovnu předem připravených maker, jež můžeme používat v komposicích.
Standardně zde je několik maker, např. rotující krychle (na jejíž stěny lze ukládat obrázky či další animace), logo Apple, a několik různých pozadí; jak si ale hned ukážeme, můžeme tuto knihovnu sami rozšiřovat.
Celá animace je vlastně také makro
Možná jste si všimli, že prostředky pro definování vstupních a výstupních portů makra máme k dispozici i na nejvyšší úrovni, u patchů v "kořenové složce". Jaký to má smysl? Inu, to je prosté: pokud uložíme komposici do složky "Application Support/Apple/Developer Tools/Quartz Composer/Clips" uvnitř některé ze složek "Library" (nejspíše samozřejmě té v naší domovské složce), objeví se po příštím spuštění aplikace Quartz Composer tato komposice jako připravené makro v seznamu "Clip Library". Abychom mohli určit jeho vstupní a výstupní parametry, nastavíme právě "exportované porty" na kořenové úrovni. Také můžeme určit standardní jméno, ikonu a popis "klipu" pomocí služby "Edit Information..." z nabídky "Editor".
Kromě toho, jak si ukážeme na konci tohoto seriálku, animace, vytvořené v Quartz Composeru, lze přímo používat jako grafické prvky v aplikacích Cocoa. Tam pak je možné velmi jednoduše (jak pomocí explicitních příkazů, tak i prostřednictvím grafického programování, tzv. bindings) vstupní a výstupní porty animace přímo vázat na proměnné (a metody objektů) v programu.
Obsah seriálu (více o seriálu):
- Mac OS X Tiger - Vývojářské aplikace nejen pro vývojáře!
- Quartz Composer: základy
- Quartz Composer: co je to "patch"
- Quartz Composer: typy patchů
- Makra Quartz Composeru
- Speciální služby Quartz Composeru
- Quartz Composer pro programátory
Poslat článek
Nyní máte možnost poslat odkaz článku svým přátelům: