Zdvojená animáciaPeter Macsánszky
Budeme potrebovať: programy Imagine, ADPro, Arexx a Cygnus editor. Ďalšie
komponenty: ľubovoľný model Amigy so 4 MB pamäti a harddiskom. Nezaškodí štipka
programátorskej ambície a patričná dávka trpezlivosti. Toto všetko zamiešame a
po niekoľkohodinovej námahe sa na obrazovke objaví fascinujúca animácia. Áno, presne v tomto duchu bude písaný nasledovný článok. Pôjde o „kuchársky
recept“ určený pre nadšencov počítačovej grafiky, ktorí sa neboja experimentovať
s novými nápadmi. Úvodná veta presne vystihla podstatu, teda aké hardwarové a
softwarové prostriedky sú nutné pre ďalšiu práce. Snáď upresniť by trebalo ešte
cieľ našej práce. Cieľom je vytvoriť animáciu, v ktorej kamera letí vnútri
tunelu, pričom jej steny sú priehľadné a za nimi vidieť okolitý svet. Na prvý
pohľad sa nejedná o zložitú úlohu, ale napriek tomu je výsledná animácia veľmi
efektná.
Obrázky animácie budú počítané pomocou programu Imagine. Preto je nutné, aby ste
tento program ovládali na priemernej úrovni. Z ostatných programov (ADPro,
Arexx) si nemusíte robiť ťažkú hlavu, využijeme z nich iba niektoré špeciálne
funkcie.
Takže späť k našej animácii. V prvej fáze vytvoríme prelet kamery tunelom a
obrázky vypočítame v čierno-bielom móde B/W Wire. Takto dostaneme v podstate
„drôtený“ model tunelu. Potom sa na scénu umiestnia objekty tvoriace „okolitý
svet“, odstráni sa tunel a kamera znova prejde mysleným stredom tunelu. Obrázky
sa teraz budú počítať v móde Scanline. Záverom sa skombinujú obrázky oboch
animácií pomocou programu ADPro tak, že sa na farebný obrázok pozadia nanesie
čierno-biely obrázok popredia, pričom jej pozadie (čierna farba) bude
transparentná. To je všetko. Prvý krok
Najprv vytvorme uzavretú cestu (Closed Path), ktorá bude predstavovať os
tunelu ako aj dráhu pohybu kamery. Postup: v Detail editore vytvorme 4 osi
(Axis) v pohľade „Top“ tak, aby tvorili približne rohy štvorca. Vyznačme všetky
osi postupne v smere hodinových ručičiek a potom použitím funkcie „Make Closed
Path“ z menu Objects vytvorme cestu. Vznikne kľukatá dráha, ktorú ešte upravme v
móde „Edit Path“ tak, aby neboli v nej ostré „zákruty“. (Ako? Naklikni jeden bod
a skús ho rotovať alebo premiestniť.) Ak to máme za sebou, cestu uložme na disk,
nakoľko neskôr sa ešte zíde. V tuneli
Pokračujeme. Z ponuky „Functions/Add/Primitives“ (alebo stlač F5) vyberme
„Disk“, zadujme 10 sekcií a OK. Vzniknutú „platňu“ upravme takto: v móde „Pick
Points“ nakliknime na stredný bod a použitím funkcie „Delete“ ho vymažme.
Dostaneme kruh, ktorý bude predstavovať kolmý rez tunelu vzhľadom na jeho os.
Ešte upravme jeho rozmer vzhľadom na veľkosť dráhy a potom použitím funkcie
„Mold/Extrude“ vytvorme tunel. Počet sekcií nastavme na 30 (prípadne 40) a
nezabudnime zapnúť funkcie „Align Y to Path“ a „Align to Path“. Tunel uložme. Okolitý svet
Teraz nasleduje vytvorenie objektov, ktoré budeme vidieť pri prelete
tunelom. Fantázii sa medze nekladú, jediným limitujúcim prvkom je pamäť a
rýchlosť vášho počítača. Na prvé pokusy odporúčame vytvoriť jednoduché objekty z
menšieho počtu bodov ako je napr. kocka, valec, disk, guľa a podobne. Ak je
všetko hotové, prejdime do „Action editora“. Editor akcií
Počet obrátkou animácie nastavme na 200, potom načítajme cestu a tunel.
Vymažme kanál pozície kamery a namiesto neho nastavme „Follow Path“ (samozrejme
v režime „Add“) pre obrázky 1 až 100. Podobne vymažme aj kanál „Align“ a sem
nastavme „Align to Path“ pre celá dĺžku animácie. Zmeny uložme a prejdime do
„Stage editoru“. Spravme preview z prvých 100 obrátkou animácie (menu
„Animate/Make“), aby sme videli ako sa nám podarilo zladiť rozmery tunely s jeho
priemerom a veľkosťou zorného pole kamery. Ak obraz sprostredkovaný kamerou
ukazuje steny tunely príliš zblízka alebo opačne, treba zmeniť veľkosť kamery.
Ak je všetko v poriadku, potom pomocou jednoduchého triku nanavigujme kameru
tak, aby pri prelete tunelom sa vždy pozerala dopredu. K tomu vytvorme jeden
Axis. V Action editore nastavme, aby sledoval cestu medu obrázkami 1-100 (Follow
Path).
Potom nastavme aby aj medzi obrátkami 101-200 sledoval tú istú cestu. Takto
vlastne Axis dvakrát obehne dráhu vyznačená Pathom medu obrátkami 1-200. U
kamery v kanáli „Postm.“ nastavme v políčku „Follow Path“ hodnoty začiatočného a
koncového obrázku na 10 a 110. Týmto sme zabezpečili, že kamera sa dá do pohybu
až od obrázku 10. Aligment vymažme a namiesto noho pridajme „Track to Object“
pre celá dĺžku animácie. V políčku „Object Name“ nezabudnite napísať názov
sledovaného objektu (štandardne sa novovytvorený Axis volá „TRACK“). Z uvedeného
je asi zrejmé, že čím neskôr sa dá kamera do pohybu, tým väčší má náskok Axis a
teda o to viac „sa pozerá“ kamera dopredu.
Ak všetky nastavenia sú v priadku, prejdime do „Project editoru“ a vytvorme
Subproject, v ktorom nastavme Rendering Method na B/W Wire a formát obrátkou na
HAM. Je to potrebné z toho dôvodu, aby sa čiernobiely obrázok „tváril“ ako
farebný. Ide o fintu na oklamanie programu ADPro. Na závor prvej fázy zostáva
iba spustiť výpočet obrátkou 10 až 110. Nakoľko výsledné obrázky sú iba
čiernobiele. výpočet je pomerne rýchly. Výpočet farieb
Teraz nasleduje výpočet farebného okolia. Najprv prejdime do Action editora
a načítajme objekty, ktoré budú mimo tunel. Potom vymažme objekt tunely a na
koniec pridajme zdroj svetla. Všetko uložme a prejdime do Stage editora. kde
musíme upresniť polohu a rozmer jednotlivých objektov. Pozor! Objekty - Kamera,
Path a Axis - nechajme bez zmeny, nedotýkajme sa ich!
S rozmiestnením objektov sa oplatí trochu pohrať. Dávajme pozor hlavne na to,
aby sa aspoň raz dostali do zorného pole pohybujúcej sa kamery. Pre ľahšiu
„stráviteľnosť“ výslednej animácie odporúčame ešte umiestniť pod tunel väčšiu
rovinu, ktorá môže slúžiť na orientáciu v priestore. Ak si myslíte, že Vaša
priestorová fantázia je neomylná, rovinu kľudne vynechajte. Kombinujeme
V Project editore vytvorme nový Subproject, v ktorom nastavme mód Scanline a
24-bitový formát obrázkov (napr. RGB24). Po výpočte obrátkou 10-110 máme v
podstate 2 série obrázkov. Pozadie je vypočítané v móde Scanline a popredie v
W/B Wire. Teraz nás čaká kompozícia - t.j. na obrázok pozadia musíme umiestniť
obrázok popredia. Táto zdanlivo zložitú úloha jednoducho zvládne program ADPro,
ktorý dokonca z vypočítaných obrázkov dokáže zostaviť aj animáciu. No skôr než
sa niekto pustí do manuálne práce, pripomenieme, že na svete existuje aj Arexx,
ktorý slúži na automatizáciu práve takýchto úloh. To znamená, že si načítajte
svoj obľúbený textový editor a môžete prepísať uvedený program. Je to arexový
skript, ktorý zabezpečí kompozíciu obrátkou a ich uloženie do animácie. Pozor na
znaky operátorov ako sú „~“ a „||“, tieto paznaky nie sú dielom tlačiarenského
škriatka, ale patria k programu (bez nich nefunguje). Ak je všetko hotové,
program uložte do logického adresám „Rexx:“ pod menom „anima.rexx“. Zaslúžený odpočinok
Pomaly sa blížime k záveru našej práce. Spusťme program ADPro, v ktorom
nastavme rozlíšenie obrazovky a počet farieb. Teraz otvorme okno Shellu, odkiaľ
spustíme arexxový program:
rx anima.rexx pozadie popredie animácia početframe konframe krok
Význam jednotlivých parametrov:
pozadie - prístupová cesta k vypočítaným obrázkom pozadia + názov obrátkou bez
číselnej prípony. Napríklad:
Data:tunel.imp/scanline.pix/pic
popredie - obrázky popredia s prístupovou cestou.
animácia - názov vytvorenej animácie s prístupovou cestou.
početframe, konframe - číslo prvého a posledného obrázku animácie (10-109)
krok - krok medzi jednotlivými obrátkami (u konečnej animácie je to 1)
Jednotlivé parametre bezpodmienečne treba oddeliť medzerou! Ak je všetko v
poriadku, počítač sa pustí do práce a my sa pohodlne môžeme roztiahnuť v našom
pohodlnom kresle. Po niekoľkých minútach je dielo hotové. Nezabudnite si
animácie prezrieť! Ku gratulácii sa pripájam aj ja... /* */
parse arg background foreground anim startframe endframe stepframe
address „ADPro“
LFORMAT UNIVERSAL
SFORMAT ANIM
PSTATUS UNLOCKED
do fr=startframe to endframe-1 by stepframe
premenuj(background)
say Načítáva sa fr. obrázok pozadia
LOAD narve
if RC ~=0 then do
say Chyba, obrázok pozadia nelze načítat!
exit
end
premenuj(foreground)
say Načítáva sa fr. obrázok popredia
LOAD name 0 0 100 0 0 0
íf RC ~=0 then do
say Chyba, obrázok popredia nelze načítat!
exit
end
EXECUTE
SAVE anim IMAGE APPEND
if RC ~=0 then do
say Chyba, výsledný obrázok nie je možné uložit!
exit
end
if fr=startframe then do
PSTATUS LOCKED
say Paleta je zachytená
end
end
fr=endframe
premenuj(background)
say Načítáva sa posledný obrázok pozadia
LOAD name
if RC ~=0 then do
say Chyba, obrázok pozadia nelze načítat!
exit
end
premenuj(foreground)
say Načítáva sa posledný obrázok popredia
LOAD name 0 0 100 0 0 0
if RC ~=0 then do
say Chyba, obrázok popredia nelze načítat!
exit
end
EXECUTE
SAVE anim IMAGE WRAPUP
say Animácia je hotová!
PSTATUS ULOCKED
exit
premenuj:
arg name
name=name.0000
name =delstr(name,length(name)-length(fr)+1)||fr
return name 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
|