AMIGA REVIEW obsah časopisu online!
  Domov     Software     Hry     Obaly     Download  

Imagine 3.0

Peter 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

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )