Imagine 3.0Peter Macsánszky
 Imaginárne kosti 
Program Imagine určíte pozná každý majiteľ Amigy, ktorý sa len trochu zaujíma 
o počítačovú grafiku. V nasledovnom článku Vám chceme predstaviť nový systém 
modelovania pohybu v Imagine 3.0. 
Bez zbytočných úvodov sa hneď dejme do práce! Objekty môžeme prinútiť k zložitým 
pohybom dvoma metódami: pomocou systému skutočných kostí (ang. bones) alebo 
použitím kinematického modelovania. Princíp obidvoch spočíva v tom, že sú 
definované imaginárne kosti, na ktoré sú nabalené objekty ako svaly na kosti. 
Pohybom kostí sa automaticky deformuje priradený objekt podobne ako v prírode: 
pri pohybe svaly sledujú pohyb kostí. 
Kinematické modelovanie sa javí jednoduchšie. Jeho princíp spočíva v tom, že 
kosti nemusíme definovať, nakoľko sa za ne považujú spojnice objektov zviazaných 
do skupín (grupa). Každý uzol sa potom javí ako kĺb pozdĺž ktorého sa deformuje 
objekt. Tento spôsob modelovania je možné použiť iba na skupinu objektov. 
Skutočné bones môžeme aplikovať aj na jednotlivé objekty (nielen na skupiny 
objektov). Samozrejme, najprv treba definovať systém kostí tzv. kostru, ku 
ktorej sa priradí objekt. Obzvlášť užitočná je, že sa môže definovať časť 
objektu, ktorá sa deformuje pri pohybe kostí. Takto je zaručené, že napr. v 
prípade ruky sa bude objekt ohýbať v lakti a nie v inom mieste (napr. LightWave 
to nedokáže)... K realizácii animácie pomocou kostí používa Imagine animačný 
systém State. Skôr, ako sa pustíme do animovania, malí by sme si o ňom niečo 
povedať. 
State znamená v preklade stav. Jednotlivé kľúčové polohy (stavy) objektov sa 
zaznamenávajú a potom program automaticky vygeneruje medzi nimi plynulý prechod. 
Tento systém práce veľmi pripomína prácu v Cycle editore. Odlišností je ale hneď 
viac, napr. môžeme nastaviť, ktoré objekty skupiny ako menia svoj tvar, vzájomnú 
polohu, svoje vlastnosti (atribúty) a iné. 
Pre jednoduchšie pochopenie vytvorme jednoduchú state animáciu. Simulujme pohyb 
kyvadla, ktoré pozostáva z valca visiaceho z vodorovnej roviny. Prácu začneme v 
Detail editore, kde najprv vytvoríme potrebné objekty. Os valca umiestnime do 
jeho konca. Potom objekty spojíme do skupiny tak, aby sa os valca prekrývala s 
osou roviny (pozvi obrázok). Hierarchia skupiny musí byť taká, aby valec bol 
napojený na rovinu. V pohľade FRONT teraz otočme valec o 45 stupňov doprava - to 
bude jedna kľúčová pozícia. V móde Pick Group naklikneme rovinu, ktorá je 
rodičom skupiny a potom aktivujme funkciu States z menu States (viď obrázok). 
Objaví sa okienko s deviatimi voľbami. Naklikneme najprv na políčko "Create" 
(vytvoriť), čím vytvoríme nový State. Objaví sa okno, do ktorého musíme zapísať 
meno vytvoreného State. Program ponúkne meno "Default", ktoré potvrďme s OK 
(neprepisujme na iné meno!). Hneď sa objaví ďalšie okno, v ňom názov State 
(Default) a tri prepínače. Properties označuje atribúty objektu, Shape tvar a 
Group pozíciu jednotlivých objektov skupiny. Nakliknutím jednotlivých prepínačov 
sa uložia zodpovedajúce vlastnosti objektu do State. V našom prípade teraz stačí 
nakliknúť na Groups - teda nech sa uloží vzájomná pozícia objektov. 
Teraz otočme valec do ľavej krajnej polohy a hore popísaným spôsobom fixujme 
jeho polohu (použitím funkcie Create State z menu State). Názov nového state si 
teraz môžeme zvoliť ľubovolný. Týmto je naše animácia hotová. 
Preview (ukážku) animácie si môžeme vytvoriť priamo v detail editore. K tomu 
postačí zvoliť funkciu States/StateAnim/Create. Najprv sa zjaví okienku, ktoré 
nás upozorňuje na pravidlá vytvárania animácie. Po odkliknutí sa vykreslí okno 
"State List" s vytvorenými State z ktorého treba zvoliť jednu položku. Ďalej 
treba zadať počet obrázkov, v ktorých sa bude realizovať prechod do ďalšieho 
stavu (State). Samotné generovanie animácie sa začne zadaním hodnoty 0. 
V praxi to znamená v našom prípade asi toľko: po odkliknutí upozornenia si 
zvoľme State s názvom Default a do input okienka zadajme počet obrázkov premeny 
- 10. Znova sa objaví okienko "State List", z ktorého si teraz vyberme druhý 
State ("vpravo") a počet obrázkov nastavme na 10. Nakoniec si znova zvoľme 
Default State ale s nulovým počtom obrázkov. Počítač sa teraz pustí do práce a 
po niekoľkých sekundách si animáciu môžeme prezrieť známym spôsobom (Play Loop, 
Play Once). Podobný výsledok by sme holi dosiahli aj pomocou Cycle editoru. 
Samozrejme systém State dokáže omnoho viacej, vieme animovať nielen polohu 
objektov v rámci skupiny, ale aj ich tvar a atribúty. 
Otázne je teraz, ako použiť takýto objekt v Action editore? Najprv uložme naše 
kyvadlo na disketu. V Action editore nastavme počet obrázkov na 21 a pomocou 
funkcie ADD pridajme nového herca na 1. frame. Nech je to "Normal object" a ešte 
k tomu naše kyvadlo. Otvorí sa známe okienko "Object File Info", v ktorom na 
riadku "State name" nakliknime gadget "Browse". Objaví sa zoznam uložených State 
pre daný objekt. Vyberme si prvý stav, teda "Default". Do frames 2-11 načítajme 
predchádzajúci objekt, ale teraz si vyberme druhý State ("vpravo"). Celú 
operáciu zopakujeme ešte pre zvyšné frames (12-21) s tým rozdielom, že si 
zvolíme State "Default". Týmto je naše dielo dokončené. Teraz prejdime do Stage 
editoru a spravme animačný preview z prvých 20 obrázkov. 21. obrázok 
nepotrebujeme, nakoľko je zhodný s východiskovou polohou (obrázkom 1). 
Pri zhotovení Stage vedľa funkcie Create bolo vidieť ešte ďalších osem, ktorých 
význam je nasledovný: 
Funkcia "Cancel" asi nepotrebuje žiadny komentár. "Info" vykreslí okienko s 
hotovými State. Nakliknutím na požadovaný riadok dostaneme obšírnejšie 
informácie. "Set to" sa javí ako veľmi užitočná funkcia. Umožňuje prepínať medzi 
rôznymi už hotovými State a tak ich prezerať. Objekty vtedy preberajú vlastnosti 
zaznamenané v State. Vlastnosti, ktoré nie sú uložené, sa nemenia. Napríklad ak 
máme červený objekt, ktorého tvar uložíme pomocou prepínača Shape a potom 
zmeníme farbu objektu na modrú, pri prepnutí na pôvodný objekt sa jeho farba 
nezmení na červenú, zostane modrá. 
"Delete" slúži na vymazanie State, ktorý si vyberieme z ponúknutého zoznamu. Na 
zmenu nastavených vlastností máme funkciu "Update". Po zvolení požadovaného 
State sa vykreslí daný stav a môžeme modifikovať niektoré parametre. Pozor, nové 
vlastnosti sa pridávať nedajú, len existujúce vymazať. Napríklad ak pri 
vytvorení State sme definovali Properties a Group, potom pri Update nemôžeme 
pridať Shape. Pomocou "Import" sa dajú importovať State z iných objektov. 
Samozrejme význam to má iba v prípade, ak objekty majú podobnú hierarchiu 
výstavby. Najprv sa objaví okno so zoznamom objektov v editore. Z nich treba 
zvoliť zelený, ktorého práve aktuálny State sa pre vezme. Na koniec ešte musíme 
zapísať meno State. 
"Clone" slúži na kopírovanie State. Názov State sa vyberá zo známeho okienka, 
potom mu treba zadať nové meno. Pritom môžeme určiť, ktoré vlastnosti sa budú 
kopírovať. Pomocou "Tween" sa môžeme nastaviť na niektorú fázu medzi dvoma 
State. Ak sa vrátime k príkladu nášho kyvadla, potom si musíme uvedomiť, že máme 
dve State - ľavá a pravá poloha kyvadla. Nech je kyvadlo práve v ľavej polohe. 
Pomocou Tween zvoľme State, keď je kyvadlo v pravej polohe. Vykreslí sa okienko, 
v ktorom vidieť zoznam parametrov uložených v State. Vyberme si Group. V zapätí 
sa objaví ďalšie okno, kde môžeme zadať v percentách ktorý obrázok sa má 
vykresliť pri prechode do ďalšieho State. Ak sa zadá hodnota 50, naše kyvadlo 
bude práve v strede t.j. v zvislej polohe. 
Ak už poznáme princíp práce so State, môžeme sa pustiť do kinematického 
modelovania pohybu. Nebudeme zbytočne hovoru, radšej sa hneď dajme do roboty. 
Vytvorme primitívny model prsta pozostávajúci zo štyroch článkov. V Detail 
Editore pomocou Add Primitives vytvorme 4 rovnaké valce. Nech sú tenké a vysoké. 
Teraz ich usporiadajme vedľa sebe tak aby sa voľne dotýkali k sebe podstavou 
(viď. obrázok). Na koniec posledného valca pridajme Axis tak, aby bol oproti osi 
voľte, ale na druhom konci. Teraz musíme objekty zviazať (Group) tak, aby ľavý 
valec bol prarodičom. Jeho potomkom je valec vedľa v pravo, ktorého potomkom je 
ďalší valec v pravo atď. rad uzaviera Axis. Takto vytvorená grupa sa pri ďalších 
transformáciách bude správať oko zložený objekt, ktorého kostru predstavuje 
spojnice jednotlivých valcov. Axis slúži oko úchytný bod. 
A teraz celok dajme do pohybu. Najprv nakliknime prarodič v móde Pick Object. 
Potom zvoľme funkciu Freeze z menu State, výsledkom ktorého je okienko s 
"dotazníkom" o možných pohyboch celku. Pomocou neho vieme zabezpečiť, aby sa 
skupina pohybovala a rotovala len želaným smerom. Zapnime všetky tri prepínače v 
riadku "Translation Local", následkom čoho sa os kostry nebude môcť premiestniť, 
iba rotovať. Týmto je objekt pripravený na pohyb. Zo základného stavu spravme 
State. Teraz zapnime funkciu State/Constarin, čo znamená nútený pohyb. V móde 
Pick Object uchopme Axis a pohybujme s ním. Tento bude "ťahať" za sebou ostatné 
voľte, oko keby skutočne bolí spojené pomocou kostí. Samozrejme, pohybovať sa dá 
s ľubovoľným objektom skupiny. Dôležité je, aby počas núteného pohybu bol editor 
v móde Pick Object. Ak polohu skupiny teraz zaznamenáme do State a spravíme 
animačný preview, uvidíme aké možnosti ukrýva v sebe metóda kinematického 
modelovania. 
A teraz sa venujme systému skutočných kosti (bones). Prvá skutočnosť, ktorú si 
musíme uvedomiť je, že skutočné kosti (kostra) sa viažu vždy iba k jednému 
objektu a nie skupine objektov (Group). Samotná kostra pozostáva z viacerých osí 
(Axis), ktoré sú navzájom zviazané. Jednotlivé osi predstavujú kĺby a spojnice 
medzi nimi potom kosti. Pri manipulácii s kostrou sa samozrejme patrične 
deformuje priradený objekt. Tvar deformovaného objektu sa ukladá do State pre 
neskoršie použitie. 
Toľko z teórie, ktorú nech teraz nesleduje praktická ukážka. Našou úlohou bude 
zostrojiť ďalší model prsta, ktorý potom zahneme. Keďže hlavný dôraz je na 
objasnení princípu práce a nie na detailnom vypracovaní objektu, náš prst kvôli 
jednoduchostí nahradíme valcom zloženého z 10 vodorovných segmentov. Body 
jednotlivých segmentov preusporiadajme podľa obrázku (pre začiatočníkov stručný 
postup: Detail editor, F5, Tube - 50, 400, 24, 10, F1, Amiga+T, Rotate Y=90, 
menu Mode/Pick Points, menu Mode/Pic Method/Drog Box, stlačiť Shift a myšou 
orámčekovať zľava druhý segment, Move -X a myšou presunúť, podobne presunúť aj 
ostatné segmenty). Asi ste sa už dovtípili, že pri zhustených segmentoch budú 
kĺby. Týmto je objekt hotový, teraz vytvorme kostru. Do každého kĺbu pridajme 
jeden Axis a navyše ešte aj na konce objektu. Prvý bude reprezentovať "koreň" 
ruky, t.j. bod kde sa pripája k zápästiu a druhý bude slúžiť na uchopenie špičky 
prsta. 
Rozmiestené osi musíme spojiť pomocou funkcie Group tak, aby Axis zo strany 
zápästia ruky (vpravo) bol prarodičom. Jeho potomkom je Axis vľavo, ktorého 
potomkom je ďalší Axis vľavo, atď. Takto vytvorená skupina osí sa pri 
transformáciách bude správať oko zložený objekt, kde osi predstavujú kĺby a ich 
spojnice kosti. 
Vytvorenú kostru teraz treba priradiť objektu. Podobne oko v predchádzajúcom 
prípade, znova sa použije funkcia Group. Najprv sa zvolí objekt ako prarodič, 
ktorého bezprostredným následníkom bude Axis kostry (zo strany zápästia). V 
ďalšom kroku Je nutné definovať, ktoré kĺby aké častí objektu deformujú. K tomu 
musíme patričné prvky (Faces = trojuholníky) objektu rozdeliť do dvoch skupín. 
Prvú skupinu (označovaná aj oko veľká podskupina) tvoria všetky Faces, na ktoré 
daný kĺb vplýva druhú skupinu (malá podskupina) tvoria Faces, ktoré sa 
nedeformujú - iba sa pohybujú (prakticky je to podmnožina (času prvej skupiny). 
Rozdiel týchto dvoch skupín určuje kĺbovú časť, ktorá sa bude deformovať. 
Pre lepšie pochopenie sa pozrite na svoju ruku. Ohnite prst. Do našej prvej 
skupiny bude patriť prst od jeho špičky až po kĺb včítane kĺbu. Druhú skupinu 
bude tvoriť znova prst od jeho špičky ale teraz len po kĺb. Rozdiel týchto dvoch 
skupín dáva okolie kĺbu, ktoré sa účinkom pohybu deformuje. 
Teraz to vykonajme aj v praxi! Najprv musíme zvoliť objekt potom prejst do módu 
Pick Faces. Axis (kĺb) vpravo manipuluje s celým objektom, preto musíme zvoliť 
všetky Faces (najľahšie v režime Pick Drag Box). Z vyznačených Faces vytvorme 
podskupinu (Subgroup) pomocou funkcie Functions/Make/Make Subgroups a dajme mu 
meno "All". Nakoľko ide o kĺb, kde sa pripája prst k zápästiu, druhú skupinu 
netreba definovať, pretože v tomto bode sa náš prst ešte nedeformuje. Prvým 
skutočným kĺbom bude vlastne druhý Axis. Prvú skupinu Faces budú tvoriť 
prakticky všetky body od druhého segmentu až po ľavý koniec (špičku prsta, pozri 
obrázok 6). Vytvorme z nich Subgroup pod menom napr. 1-1 (prvé číslo teraz 
označuje kĺb, druhé skupinu). Druhú skupinu budú tvoriť Faces, ktoré sa 
nedeformujú vplyvom kĺbu, iba sa pohybujú, t.j. Faces od štvrtého segmentu až po 
koniec prsta (pozri obrázok 7). Vytvorenému Subgroupu dojme meno 1-2. Podobným 
spôsobom sa určia Faces aj pre ďalšie kĺby. Posledný Axis nie je kĺbom, slúži 
iba na uchytenie špičky prsta počas manipulácie s objektom. 
Ak sme definovali všetky podskupiny pre kĺby, môžeme prejsť k priradeniu 
jednotlivých podskupín ku konkrétnym kĺbom. V režime Pick Object zvoľme prvý 
Axis zo strany zápästia ruky. Z menu State zvoľme funkciu "Bones Subgroups". Na 
obrazovke sa objaví ďalšie okienko (obr. 8) v ktorom sú dve vstupné polia: Big 
Subgroups (veľká podskupina) a Small Subgroups (malá podskupina). Výber názvu 
skupiny uľahčujú gadgety Browse. Nakoľko prvý Axis je výnimočný (nedeformuje 
objekt) do obidvoch vstupných políčok napíšeme "All" alebo použijeme gadgety 
Browse, kde z ponúknutého zoznamu podskupín si myšou zvolíme ten patričný. 
Druhému kĺbu musíme priradiť podskupiny 1-1 a 1-2 a atď. Poslednému kĺbu sa 
nepriraďuje žiadna podskupina, pretože ide o špičku prsta a ako už vieme, slúži 
iba na uchytenie a manipuláciu s objektom. 
Teraz v režime Pick Groups zvoľme objekt a spravme z neho State s názvom 
"default" (postup sme si už minule popísali). V State treba uchovať informáciu o 
tvare objektu, to znamená, že treba zapnúť voľbu "Shape" . 
A týmto sme s objektom hotový! Deformovanie objektu sa vykoná podobne, oko je to 
popísané vyššie pri kinematickom modelovaní pohybu. Nezabudnite zapnúť voľbu 
State/Constrain! V režime Pick Object uchopme Axis na špičke prsta a ohnime prst 
podľa želania. Nezabudnite, že pohyb jednotlivých kĺbov je možné koordinovať 
pomocou funkcie State/Freeze. Pozor, pohyb kostí nemá za následok automatické 
deformovanie objekt! To sa vykoná iba po zvolení funkcie States/Bones Update. Ak 
sa podaril objekt zdeformovať na požadovaný tvar, potom sa môže z neho vytvoriť 
ďalší State. Použitie takto vytvoreného objektu v animáciách sme popísali už 
minule. 
Veríme, že týmto príspevkom sme vo Vás prebudili ďalšiu vášeň modelovania v 
Imagine a prispeli ku vzniku ešte nádhernejších animácií. Vytlačiť článok 
			 
                     
                    Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
  Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing 
 
 
 
none
 
                     |