Basic Ötesine Bir Adım
Basic dilini kullanırken PEEK ve POKE komutlarının işleyişi ile haşır neşir olmuş olabilirsiniz ama bilgisayara ne yaptıklarını da tam olarak bilmeyebilirsiniz. Bu komutlar Basic programcısının makinenin içine direkt olarak ulaşabilmesini sağlarlar; hem donanıma hem de davranışlarını belirleyen makine dili programlarına.
Basic'te bir program yazarken yaptığınız, bilgisayarın sürekli belleğinde bulunan geniş bir makine dili programının daha sonra yorumlayacağı bir dizi direktif vermektir. Bilgisayar Basic dilini doğrudan anlayamaz, ama bu Basic yorumcusunun kontrolünde yazdığımız programları uygulayabilir. Basic, bilgisayarın RAM kısmının belli bölümlerini işlemlerinde bir müsvette kâğıdı gibi kullanır. RAM'in içeriklerini dikkatle manipüle ederek Basic dilinin beklenmeyen ve yararlı şekillerde hareket etmesini sağlayabilirsiniz.
Bilgisayarın belleğindeki adresleri temsil eden iki baytlık sayılarla çalışırız. Genelde Basic bu adresleri vektörler ya da pointer olarak kullanır. Pointer'lar RAM ya da ROM'da datanın depolanmış olduğu yerleri saptamakta ya da RAM'da belli bölgeleri belirlemekte marker (işaretleyici) olarak kullanılabilir. Basic pointer tarafından yöneltildiği adresi inceler ve orada bulduğu datayı kullanır ya da manipüle eder; ya da pointer'ı başka değerlere gönderip yönlendirmeleri yapar. Bir vektör başka bir makine dili programının ya da subrutinin başlangıç adresini temsil eder. Makine dili direktifleri genellikle bellekte depolandıkları sırayla uygulanırlar.
Bununla birlikte, vektörlerin kullanılması programcının direktiflerin uygulanma sırasını değiştirmesini sağlar. Bunu gerçekleştirmenin bir yolu uygulamanın sapması (branch) gereken subrutin ya da programın başlangıç adresini depolamaktır. Bu bir miktar Basic dilinin GOTO komutunu andırmaktadır.
MİKRO PROSESÖR
C-64 ve C-128 popüler 8 bitlik 6502 mikro işlemcisinin birazcık değiştirilmiş versiyonları olan 6510 ve 8502 mikroişlemcilerini kullanırlar. Bir programcının açısından 6510 ve 8502, 6502 ile işlevsel olarak özdeştir. Tek temel değişiklik, onlarda 0 ve 1 adreslerinin işlemci içine yerleştirilmiş bir donanım portu oluşturmasıdır. Bu şekilde referans materyalleri de birbirleri için geçerlidir. 8 bitlik bir mikroişlemci olarak 6510/8502 datayı bir seferde sekiz bit ya da bir bayt olarak kullanır. Her bit 0 ya da 1 olabildiğinden (elektronik olarak ifade edecek olursak “kapalı” ya da “açık”) bir tek baytta 256 değer olabileceğini kolayca hesaplayabiliriz (2 üssü 0 ile 2 üssü 7'nin toplamı). 256 sayılık bir alanın çok yararlı hesaplar yapmanıza yararlı olamayacağı açıktır. Programcılar bu sorunu baytları daha geniş bir sayı spektrumunu temsil etmek üzere bir araya getirerek çözüyorlar; 0-9 arasındaki rakamları daha büyük sayılar yaratmak üzere bir araya getirmeye benzeyen bir işlem bu. 6510/8502 işlemcisi bir seferde iki baytı manipüle edecek (16 bit) 65536 adres oluşturur. (0 adresi artı 2 üssü 0 ile 2 üssü 15 arasındaki üslerin toplamı) Sonuçta iki baytın bir araya getirilmesi 65535'tir. Adres-
Basic'te bir program yazarken yaptığınız, bilgisayarın sürekli belleğinde bulunan geniş bir makine dili programının daha sonra yorumlayacağı bir dizi direktif vermektir.
ler, düşük bayt ve yüksek bayt formatlarında depolanır. Yani ilk baytın değeri ikinci baytın değerinin 256 katıyla bir araya gelerek esas adres oluşturulur. Çeşitli yapalım. C-64'ün klavyesinden direkt modda şunu girin: PRINT PEEK(43) ya da C-128 modunda: PRINT PEEK(45) Her iki durumda da bilgisayarın 1 (düşük bayt değerleri) ile yanıt vermesi beklenir. Şimdi de yüksek-bayt değerlerine bakalım. C-64'de şunu girin: PRINT PEEK(44) Bir 8 almanız beklenir. Sonra da C-128'de deneyelim: PRINT PEEK(46) Bu da 28 vermelidir. Bu sayılar bilgisayarın belleğinde bir Basic programının depolanması için gereken başlangıç adreslerinin anahtarlarıdır. Bu adresin gerçek sonucunu hesaplayabilir (düşük-bayt değeri artı 256 çarpı yüksek bayt değeri) ya da bunu bilgisayara yaptırabiliriz. C-64'te şunları girin:
PRINT (PEEK(43) 4 256*PEEK
(44)
Yanıl 2049 çıkmalı, C-128'e gelin-
PRINT (PEEK(45)4 256*PEEK
(46)
7169 sonucunu Programcılar yüksek-bayttan genellikle numarası olarak söz ederler. Böylelikle bir 6510/8502, 256 sayfa belleğe adres edebilir. Makine dili programını kurcalamayı sürdürürseniz, ilk iki sayfa 0 ve 1'in mikroişlemci için özel bir önem taşıdığını fark edebilirsiniz. Hem C-64, hem de C-128, mikro- 5
Fonksiyon C-64 Basic-Başlangıcı 43,44 Değişken-Başlangıcı 45,46 Program-Sonu Basic-Tavanı Sıra-Başlangıcı 47,48 Sıra-Sonu 49,50 Dizi-Tabanı Bellek-Sonu 55,56
Adres İçerik C-128 C-64 C-128 45,46 1,8 1,28 47,48 3,8 0,4 4624,4625 3,28 4626,4627 0,255 49,50 3,8 0,44 51,52 3,8 0,4 57,54 0,160 0,255 57,58 0,160 0,255 işlemci tarafından direkt olarak ulaşılabilen 65536 baytlık bellekten çok daha fazlasına sahiptirler. C-64 Basic yorumcu ve kernal'ın depolandığı ROM biçiminde ilave belleğe sahiptir. C-128'e gelince, iki 65536 baytlık RAM deposuna ve C-64'den daha fazla ROM'a sahiptir. İki bilgisayarda da mikroişlemcinin ekstra belleğe ulaşmasına yardımcı olan bellek-idare çipleri biçiminde ilave donanım vardır. C-64'te, bir Basic programının yorumu, mikroişlemcinin direktiflerini bir bank'te ROM'dan alırken, diğer bank'in RAM'indeki Basiği manipüle ettiği karmaşık bir süreçtir. C-128 sonsuz bir üçgen içerir: Bir köşeyi Basic ROM, RAM'da depolanan Basic programı ikinci bir köşe ve RAM'da depolanmış, Basic tarafından kullanılan sayısal ve dizi dataları da üçüncü köşeyi oluştururlar. Bu donanım ve yazılım manipülasyonudur ki C-64 ve C-128'i tüm zamanların en gelişmiş 8-bitlik bilgisayarları arasına sokmuştur. İncelediğimiz adresler, bir bellekteki Basic program depolama bölgesinin başlangıcını temsil eder, Basic programının sonunda da, bilgisayarın bildiği bir adreste olduğunu tahmin edebilirsiniz. Böylece programınız için ne kadar alan kalmış olduğunu anlayabilirsiniz. Bu doğru ama bir Basic programı direktiflerin çok ötesinde bir şeydir. Çalışan bir program sayısal ve özel dataları işlediğinden, bunlar da kendileri için depo alanı gerektirir. Bu nedenle Basic yorumcusu bunun için de alan ayırmalıdır. Tablo 1'de Basic'in her şeyi izlemek için kullandığı pointer'ların bir listesi vardır. Bu pointer'ların sıralanmış içerikleri bilgisayarın açılışından ya da resetlemeden sonraki değerleridir. Aynı zamanda herhangi bir program girilmeden ya da yüklenmeden ya da değişkenler belirlenmeden önceki değerlerdir. C-128 için bu pointer'larda depolanmış adresler özel yorum gerektirir. Basiğin Başlangıcı, Programın Sonu ve Basic tavanı pointer'ları Bank 0 RAM'inde adresler içerirler. Kalan pointer'lar bank 1 RAM'de yerleştirilmiş adreslere sahiptir. Bazı Basic komutları bu pointer'ların içeriklerini direkt olarak etkileyebilir. Bunu tam tersine de içerikleri amaçlarınıza uygun olarak manipüle edebilirsiniz. Örneğin RAM'in bazı kısımlarını sprite, bit-mapped grafik ve makine dili programları için ayırmak isteyebilirsiniz.
Tablo 1. Commodore Basic'te Kullanılan Pointer'lar.
BELLEK İDARESİ
Şimdi Basiğin bellek kaynaklarını nasıl manipüle ettiğini inceleyeceğiz. C-128 ve C-64 ayrı ayrı ele alınacak, çünkü bellek kullanımları oldukça farklıdır. Tablo ikide C-64'den başlayarak Basic'te adres yerlerinin dağılımını gösteriyor. Basic program depolama alanının dört kısmı olduğuna dikkat edin. Her bölümün başı ve sonu yukarıda sözünü ettiğim pointer'larda depolanmıştır. FRE fonksiyonuyla başlayalım. Basic programı ya da data depolanması için kalanı temsil eden bi-
0-1023 Sistem RAM 1024-2047 — Ekran RAM 2048-40959 Basic program deposu: Dizi Data Sıra Data
Değişken Data Program Kodu 40960-49151 Basic ROM 49152-53247 Serbest RAM 53248-57343 Girdi/Çıktı donanım Renk Belleği Karakter Oluşturucu 57344-65535 Kernal Rom
Tablo 2. C-64 Belleğinin Basic Yerleşimi
ter değer verir. Onu şöyle deneyin: FRE(0) Bu sıfır yerine her şeyin konulabileceği temsili bir değişken. Elinizde negatif bir sayı bulunması büyük olasılıktır, bu da basitçe 32767 bayttan daha fazla serbest bayta sahipsiniz demektir. FRE tarafından verilen değer iki baytlık bir tam sayıdır ve Basic yalnızca signed (işaretlenmiş) iki baytlık tam sayıları tanıdığı için sonucu negatif olarak yorumlar. Bunu düzeltmek için şunu girin: PRINT FRE(0) + 65536 Ya da PRINT FRE(0) + 2116 Burada FRE'nin yaptığı Sıra Sonu 49,50'deki pointer'ın değerini Dizi tabanı pointer'ının değerinden çıkarmaktır. FRE'nin verdiği değeri bu iki pointer'in içerikleriyle oynayarak değiştirebilirsiniz. RAM'in bir kısmını başka bir amaç, örneğin bir makine dili subrutini ya da bit-map grafik ekranı için ayırmak daha da yararlı olabilirdi. Örneğin Bellek-Sonu pointer'ını şununla değiştirin: POKE 56,128 Bu POKE işlemine alternatif olarak bir CLR komutu kullanabilirsiniz. Dizi-Tabanı pointer'ını Bellek-Tavanı ile eşitlemenin yanı sıra, CLR Sıra-Sonu 49,50 pointer'ını ve Sıra-Başlangıcı pointer'ını Değişkenlerin-Başlangıcı pointer'ıyla da eşitler. Sonuçta tüm program değişkenleri kaybolur ama program bellekte kalır. Eğer CLR çalışan bir programdan uygulanırsa, tüm değişkenler resetlenir. For-Next ve Go-Sub referansları kaybolur ve girdi/çıktı etkinliği engellenir, dosyalar engellenir (ama kapatılmaz) ve klavye ve ekran etkin girdi/çıktı araçları haline gelirler. Bir Basic programının sonunda yer ayırmak da mümkündür. Program yüklendikten sonra, Değişkenleri-Başlangıcı'nın içeriğini kontrol edin, onu ihtiyaç duyduğunuz alan kadar arttırın ve CLR komutunu kullanarak diğer pointer'ları da buna uygun bir şekilde ayarlayın. Ayrılan alanı istediğiniz data ile doldurabilirsiniz. Sonraki SAVE komutu yalnızca programı save etmekle kalmayacak program sonunda rezerve ettiğiniz bellek içeriklerini de save edecektir. Son olarak Basic-Başlangıcı bir miktar yukarı çıkarılarak program başlamadan önce bir miktar yer ayrılabilir. Örneğin 1K'yi yerleştirebilmek için, şunu girin:
POKE 44,12:CLR Yükle komutunun bazı ilginç özellikleri vardır. Direkt modda uygulandığı zaman, bir disk yüklemesi tüm pointer'ları resetler, belleğe bir program dosyası okur ve pointer'ları programın başı ve sonuna ayarlar. Eğer bir yeniden yerleştirmeyen LOAD “filename”,8,1 uygulanırsa sonraki Load komutlarında Out-of-Memory hatası görülebilir. Çünkü 45-50 arasındaki üç pointer load aracılığıyla Dizinin-Tabanı pointer'ı yukarısına ayarlanmışlardır. Bu 49512'deki RAM bloğuna bir makine dili programı yükleseniz de olabilirdi. Bu çıkmazdan kurtulmanın en basit yolu yeniden yerleştirmeyen (nonrelocating) bir yüklemeden sonra bir NEW uygulamaktır. Program kontrolü altında, load pointer'ların hiçbirini resetlemez. Bununla birlikte bellekteki herhangi bir Basic programının uygulanması
Basic başlangıcı pointer'ının değdiği herhangi bir noktadan başlayabilir. Bu da demektir ki program kontrolü altında bir makine dili subrutini gibi şeyler yüklemek için aşağıdaki gibi bir kod yazmalısınız. 10 IF FL=1 THEN GOTO 30 20 FL=1:LOAD “routine”,8,1 30 RESTORE:REM program Bu program ilk çalıştırıldığında, FL değişkeni 0'a eşittir. Satır 20'de, FL 1'e ayarlanır ve nonrelocating load gerçekleşir. Bu yapıldığında uygulama satır 30'da başlar, ama bu sefer FL 1'e eşittir ve satır 20 pas geçilir. Load komutu program kontrolünde uygulandığı zaman hiçbir pointer'ı değiştirmemesi, Basic programcılığına ayrılabilecek ilave bir 4K sağlar. Aşağıdaki kod bunun nasıl yapılacağını göstermektedir. 10 POKE 44,192:POKE 49152,0 20 LOAD “Short program”, 8
Bu örnekte, satır 10 Basic başlangıcını 49152'ye yerleştirir ve o adrese 0 POKE eder. Satır 20'deki kısa program (short program) 4K'dan daha kısa olan her program olabilir. O satır kısa programı yükler ve çalıştırmaya başlar, böylece 2048'de başlayan esas program bellekte değişmeden kalır. Kontrolü şöyle bir satırla yeniden esas programa devredebilirsiniz: 100 POKE 44,8:GOTO esas programdaki satır numarası Kısa programa da şöyle bir şekilde geri dönebilirsiniz: 200 POKE 44,192:GOTO kısa programdaki satır numarası Böyle bir şey eğlenceli olabilir.
C-128 BELLEK İDARESİ
C-128'de işler biraz daha değişir. Her şeyden önce, bu makinede Basic program RAM bank 0'da tutulur. Oysa ilişkili dizi ve değişkenler RAM bank 1'de depolanmaktadır, bu yüzden bellek pointer'ları arasında daha az ilişki vardır. Ayrıca C-64'ün zıttına, program ve data depolanması için mevcut olan alanlar birbirinden bağımsızdır ve bu nedenle data depolanması program uzunluğunca kısıtlanmaz. Son olarak, C-128 bellek içeriklerinin kullanılmasını hızlandırmak için BSave ve BLoad komutlarına sahiptir. Dikkat etmeniz gereken bir konu da Grafik emri (statement), GRAPHIC N (1 ile 4 arasındaki herhangi bir değerdir N) uygulandığında, Basic başlangıcı pointer'ı 9K'ya gider. Adres 46'nın içeriği 28'den 64'e değişir. GRAPHIC CLR uygulanacak olursa, tam tersi olur. Buna ilave olarak, o sırada bellekte olan her Basic programı yeni yere taşınır. C-128'de belleği, RAM bank 0'daki program deposunun üstünde bellek depolamak kolaydır. Sadece 4626 ile 4627'nin içeriklerini değiştirin. Örneğin 4K rezerve etmek için şunu girin: POKE 4627,240 FRE(0) fonksiyonu RAM bank 0'daki mevcut belleği Basic tavanı ve Program sonu değerleri arasındaki fark olarak verir. C-128'de elde edilen 16 bitlik, işaretlenmemiş tam sayı sizin daha fazla bir çaba harcamanıza gerek olmadan halledilir. Tüm bunlar C-64 ve C-128'in bellek haritalarına sadece bir girişti. Ayrıntılı bilgiler için programcı referans kitaplarına başvurmalısınız.
AMIGA'DA ANİMASYON
Benn DUNNINGTON & Mark R. BROWN
Yanda Bruce Granofsky'nin ünlü animasyonları “Clerk Bomber” ve “Clerk Car”'dan kareler görüyorsunuz. Granofsky çalışmalarını Bernoulli destekli bir A 2000'de “Sculpt-Animate 4D” kullanarak yapıyor.
Biz televizyon kuşağının çocukları, klasik Walt Disney ve Hanna-Barbera yapımlarını izleyerek büyüdük ve hepimizin aklından bir gün kendi çizgi filmlerimizi yapma hayali geçmiştir. Ben kendimi bildim bileli animasyon yapmak istediğimi hatırlıyorum. Sekiz dokuz yaşlarındayken bir lambanın abajurunu çıkartıp annemin makyaj masalarından birinin üzerine yerleştirerek bir animasyon seti kurmaya çalışmıştım. Yapıtlarımı filme geçirebilmek için sekiz milimetrelik bir kameraydı tüm eksiğim. Bu eksiği o gün giderebilseydim, şimdi hiç kuşkusuz büyük filmcilerden biri olmuştum. Bu günlerde AMIGA animasyon yazılımları milyonlarca Walt Disney adayının önüne profesyonel kalitede animasyon yapma fırsatını seriyor. Tüm ihtiyacınız bin dolar kadar para, belli bir sanat yeteneği ve hepsinden önemlisi bol bol sabır. Peki, bu yeni fantastik araçlara yatırım yapmanın gerekçesi ne? Eğer yalnızca kendi animasyonunuzu yapmak yanıtıyla sınırlı kalmak istemiyorsanız işte size bir sürü neden daha: evde yaptığınız video filmlerin yazılarını yazabilir, ses ve spesiyal efektler gerçekleştirilebilir, okulunuz ya da kuruluşunuz için promosyonel ya da eğitim amaçlı filmler hazırlayabilir ve hatta bir iş bile kurabilirsiniz. Örneğin yerel televizyon ağınız için reklam amaçlı çizgi filmler üretebilirsiniz. Bu araçların bir profesyonel tarafından kullanılabilecek kadar iyi olup olmadığı konusuna gelince, belki diyebiliriz. Çünkü filmle çalışmaya alışmışsa videoda aldığı sonuçlar onu tatmin etmeyebilir. Ama video animatörleri de çok iyi kalite animasyonlar üretmeyi başaracaklar. Ayrıca film animatörleri bile kafalarındaki fikirleri kağıt yerine video ile çok daha hızlı ve etkili bir biçimde deneyebilirler.
Sculpt-Animate 4D
NASIL YAPILIYOR?
Bütün animasyonlar aynı şekilde işler. Göze son derece hızlı sunulan bir dizi görüntünün arasındaki farklar hareket olarak algılanır. Standart bir televizyon görüntüsü bile sabit karelerin canlandırılmış bir dizisidir. Saniyede 60 kare temposunda verilir (birçok başka ülkede 50 kare). Filmler de aynı şekilde çalışır, yalnız saniyede geçen kare sayısı 18 civarındadır. En iyi animatörler filmlerinkine eşit bir geçiş temposu kullanırlar. Ama insan gözü hareketi saniyede dört kare kadar düşük tempolarda algılayacaktır, tabii bu hareket gayet titrek ve sarsak gelecektir. Düşük bütçeli çizgi filmler saniyede 10 kareden bile düşük bir tempoda gösterilmektedir. AMIGA video animasyonları eylemin çokluğuna göre 8 ile 12 karelik tempolar arasında değişirler. Normal bir film hareket illüzyonunu uyandırabilmek için binlerce karelik bir akış sağlar. Video datasının her karesini AMIGA'da depolamaya kalksanız, gösterebileceğiniz animasyonlar RAM tarafından ciddi bir şekilde sınırlanabilirdi. AMIGA ve benzeri bilgisayarlar bu sorunu “double buffering” denilen yöntemle çözmeye çalışıyorlar. Bu yöntemle bellekte herhangi bir zamanda bir animasyonun yalnızca iki karesinin tutulması söz konusu. Animasyonun geriye kalanı sıkıştırılmış data olarak depolanıyor. Bir kare gösterildikten sonra AMIGA hızla görülmeyen kareyi getirecek ve gösterecektir. Bu süreci tekrarlayarak oldukça uzun animasyon filmleri 512K'lık makinalarla bile gösterilebilir. Datanın kendisi oldukça sıkıştırılmış
Yine Granofsky'den “Clerk Headkick”. Granofsky Montreal'de yaşayan Kanada'lı bir animatör.
bir biçimde formatlanmış. Nasıl resim dosyalarında bir IFF standardı varsa animasyon dosyalarında da resmi olarak saptanmış bir ANIM formatı vardır. Bu standart animasyonun ilk karesinin bir IFF resim dosyası olarak depolanmasını sağlar ama sonraki kareler delta dosyaları olarak depolanır. Yani önceki kare depolandıktan sonra değişen informasyon olarak arada çok değişiklik olmadı ise bu teknik dosya ve RAM depolama alanından tasarruf sağlar. Eğer iki kare arasında çok değişiklik olmuşsa dosyayı sanki iki kareyi bütünüyle save etmişsiniz gibi geniş bulabilirsiniz. Özellikle sayısallaştırılmış (digitized) görüntüler her karede pek çok piksel değiştirir ve bunların animasyon dosyaları da bu nedenle oldukça geniş olabilir.
ANIM “STANDARDI”
Tek resmi standart olmasına karşın birçok AMIGA animasyon programı ANIM kullanmamaktadır. ANIM format dosyası basitçe sıkıştırılmış bir data dosyası olduğu için, yazılım üreticileri ANIM format sınırları içinde ses ve spesiyal efektleri sığdıramadıklarından yakınıyorlar. Onun için de kendi formatlarını yapıyorlar. Zoetrope resmi olarak da kabul edilmiş RIF standardını kullanıyor. Sculpt, Caligari gibi pek çok programın kendi dosya formatları var. Aegis, Microillusions ve Electronic Arts animasyon ürünlerinde ANIM formatını kullanıyorlar. Design 3D ve The Director'da öyle. Şimdilik izlenebilecek en iyi yol her sahnede başka başka programların iyi yönlerini kullanıp sonuçları videoteypte bir araya getirmek gibi görünüyor.
DONANIM
Animasyonlar RAM ve mevcut depo alanlarını kolay doldurdukları için ciddi animatörler bilgisayar sistemlerinin kapasitesini zorunluluğuyla karşı karşıya kalacaklardır. 512K ile de bir miktar animasyon mümkün olmakla birlikte AMIGA programları en azından bir megabayt gerektirir ve en ideali de üç megabayt. AMIGA'nıza dokuz megabayta kadar RAM ilave edebilirsiniz, ama o zaman da sizin yarattığınız animasyonları kimse gösteremeyecektir.
Multiplane
Animatörler kolayca yirmi ya da kırk megabaytlık bir hard drive'ı doldurabilirler. Bir Bernoulli kutusu, eklenebilir hard disk ya da 10 megabaytlık floppy disket sürücüsü gibi çözümler animasyona ciddi olarak eğildiğinizde daha uygun olacaktır.
VİDEO
Animasyonlarınızı videoya kaydetmek istiyorsanız bilmeniz gereken birkaç şey var. Video resim kenarsız olduğu zaman en iyi görünür ve interlace modunda daha iyi bir görüntü alabilirsiniz. (Düzenleme sırasında çok sıkıntı verdiğini biliyoruz, ama banttaki farkı görünce bize teşekkür edeceksiniz.) Ne kadar çok belleğe sahip olsanız da AMIGA'da bir seferde ancak birkaç saniyelik animasyon üretmeniz mümkündür. Daha uzun videolar yaratmak için tek tek sekanslar kaydetmeniz gerekecektir. Eliniz hassassa ve bir miktar video sesini dert etmiyorsanız, herhangi bir VCR kullanabilirsiniz ve pause düğmesinde bir parmak yeterli olacaktır, ama zamanlama çok önemli. Düzgün bir geçiş yapabilmek için birkaç deneme yapmaya hazır olun. Ya da bu iş için bir otomatik transport denetleyicisi alabilirsiniz. Ucuz değil-300$ kadar edebilir. Ama ciddi bir prodüksiyon düşünüyorsanız değebilir. Başka bir çözüm de sekansları aralarında boşluklar bırakarak kaydetmek ve yerel bir stüdyoda bir editing yapmak olabilir. Bu şekilde animasyonlarınızı birkaç saat içinde hizaya sokabilirsiniz.
RESİM PROGRAMLARI
Ne cins animasyon yapıyor olursanız olun, iyi bir resim programına ihtiyaç duyacaksınız. Size animasyonunuzu oluşturan imgeleri değiştirmek, düzenlemek ve hatta yaratmak için gerekli olacaktır. Ayrıca kendi animasyon yetenekleri olan iki yeni resim programı var. Deluxe Paint III yeni animasyon araçları içeriyor. Basit sayfa çevirmenin yanı sıra, üç boyutta fırçayı hareket ettiren, çeviren ve döndüren fırça animasyon araçları var. Fırça bir kare animate edildikten sonra onu alıp çizmekte kullanabiliyorsunuz. Sayfa çevirmeyi yeni birleştirerek ve DPaint gölge, perspektif ve başka spesiyal efektlerini kullanarak resim programınızdan çıkmanız bile gerekmeden oldukça iyi animasyonlar yaratabilirsiniz. DPaint II'de yeni bir halfbrite modu olmakla birlikte HAM görüntülerini yapmaz. Sayısallaştırılmış, ray-traced ya da elle çizilen HAM imgeleri yapmanız gerekiyorsa MicroIllusions'un Photon Paint II'sine bir bakın. Animasyon cellerini yaratma sürecini kolaylaştıran, otomatik gölgeleme gibi yeni araçlara sahip. Daha da iyisi sayfa çevirme sistemine sahip artık ve böylece hafızada tam bir animasyon sekansı yaratabilirsiniz.
2D ANİMASYON
Animasyondan söz ederken muhtemelen geleneksel cel animasyonundan söz ediyorsunuzdur. Yani karakterlerin saydam asetat üzerine boyanıp arka plan resimlerinin üzerine oturtulduğu ve resimlerinin çekildiği teknikten. İki boyutlu animasyon programları da aynı şeyi yapıyorlar ama fırça ve IFF arka plan resimleriyle. Aegis Animator ilk AMIGA animasyon programıydı ve bugün biraz modası geçmiş gibi görünüyor. Ama bir ilk örnek için oldukça gelişmiş araçlara sahipti. Arka plan yükleme ve daha önceden belirlenmiş bir rotada fırçayı hareket ettirme olanağı sağlamanın yanı sıra hareket ettirilebilen ve hareket sırasında değiştirilebilen poligonlar yaratmanızı da sağlıyordu. Bir nesnenin biçimini otomatik olarak değiştirme işlemine "tweening" denir ve 2D AMIGA animasyon programlarında düzenli olarak bulunan bir özellik değildir. Ama Aegis Animator ve Fantavision'da bulunan bir özellik. Örneğin Fantavision'un örnek animasyonlarından birinde Neandertal adamının Homo Sapiens'e dönüşümü sadece iki elle çizilmiş kare arasında tweening yapılarak gösteriliyor. Ayrıca bu işlemi ses efektlerine de yapabiliyor. Bir karede sesi sağdan, öbüründe soldan geliyor gibi göstererek stereo efekti yaratabiliyor. Bütün programlar içinde geleneksel animasyon sistemlerine en yakın düşenler Fantavision, Movie Setter ve Zoetrope. Zoetrope birçok eğlenceli resim ve hareket seçeneği olan tam bir resim/animasyon programı. Bir resim programı olarak da gayet yeterli ama “APM” hareket efektleri ve kolay kare düzenlemesi yapılması olanağı onu çok iyi bir animasyon programı haline de getiriyor. Bana göre en iyisi Movie Setter. Senkronize ses efektleri, rulo gibi açılıp kapanan arka planlar ve hatta bir karakterin hareketlerinin nasıl oluştuğunu görmenizi sağlayan nesne “tarihi” gibi güzel efektleri var.
Show Hipez — TAR Taterlace
MovieSetter
3D ANİMASYON
Üç boyutlu animasyonda üç boyut gölgeli objeleri yaratıyor ve tanımlıyorsunuz, sonra da onları hareket etmek üzere programlıyorsunuz. Anne ve çocuk gibi bir objenin hareketlerinin ötekininkine bağlı olduğu örnekleri var. 3D ile animasyon için önce “anahtar kareler” oluşturup bir ya da birden fazla hareket doğrultusu belirliyorsunuz. Sonra program yeni obje pozisyonlarını, ışık ve kamera açılarını hesaplayarak animasyon sekansını oluşturan ara kareleri oluşturuyor. İşleri ayarlayıp döndüğünüzde bitmiş animasyonu görmek üzere oradan ayrılabilirsiniz. VideoScape 3D, 3D animasyon programlarının atası ve onunla yapılmış birçok güzel animasyon var. Bir sahne animasyonunu yapmak ihtiyaç duyduğunuz hareket çokluğuna göre karmaşık olabilir. Sculpt-Animate 4D tüm 3D programları içinde en güçlüsü. Tüm ciddi
Floch Tony
Dispoto'nun bir Sculpt 4D animasyonu Tony Dispoto şekillerin birbirine dönüştürülmesinde özellikle çok usta. Burada kuşlar balıklara, balıklar da kuşlara dönüşüyor.
animasyon sanatçılarının dilinde. Kalitesini verdiğimiz örneklerden de anlayabilirsiniz. Objeleri hareket ettirmek, izleyecekleri yolu belirlemek kadar kolay olabilir. Kullanım kılavuzunu okumak şart ve biraz zaman ayırmaya hazırsanız şaheserler yaratmanız işten bile değil. Turbo Silver da diğer önemli 3D animasyon programı, VideoScape'e göre çok daha ayrıntılı olanağı veriyor. Animasyon belirlemek de gayet kolay. Forms in Flight II, Caligari ve Animation: Apprentice bana en yabancı gelen programlar. Forms diğer tüm 3D programlarından öyle farklı ki aynı gruba koymak bile zor geliyor. IFF dosyalarını objelere map etme, yol animasyonu gibi güçlü araçları var ama kullanıcı arabirimi ile habire boğuşmak gerekiyor. Düz yüzeyde eğriler çizerek ya da kuadratik yüzeyler yaratarak şekiller oluşturmak matematiğe eğilimi olanlara daha cazip gelebilir ama yeni başlayan animatörlere hitap edeceğini hiç sanmıyorum. 2000$ gibi mütevazı ve mütecaviz bir fiyatı olan Caligari ise kitlelerin ilgilenmesi gereken bir şey değil. 3D perspektif kullanıcı arabirimi çekici ama 16 rengin sınırlaması ve IFF yokluğu en azından şaşırtıcı. Animation: Apprentice hakkında iyi şeyler duyuyoruz ve dayandığı fikir benim de hoşuma gidiyor. Modüler bir yaklaşımı var, ihtiyaç duyduklarınızı alıyorsunuz. Apprentice modülü 3D figürleri yaratıp canlandırıyor. Kullandığı sistem benzersiz. Ön ve yan görüntülerle karakterleri “dilimlerden” oluşturmaya dayanıyor. Geriye daha çok CAD'e benzeyen 3D Professional ve Design 3D kalıyor. Professional'i henüz tanımıyoruz. Design 3D, CAD'vari bir üç pencere ortamında objeleri tanımlamanıza olanak veriyor. Animasyon bir script dili ile yapılıyor ama animasyonunuzu bir dosyaya geçirmeden önce tel çerçevede önceden görebilirsiniz.
Zoetrope
Fantavision
SUNUŞ
Animasyonlarınızı yarattıktan sonra ne yapacağınıza geliyor şimdi iş. Onları videoda sunmaya ne dersiniz? ANIM dosyalarını, sabit kareleri, ses efektlerini bir araya getirip onları görsel efektlerle birleştirebilecek çeşitli programlar var. The Director interaktif videolar yaratabilen bir gösterim programlama dili ve onu kullanarak pek çok tanınmış demolar yapılmış. Lights, Camera, Action da IFF, ANIM, ses ve SMUS müzik dosyalarından video gösterimi yapabilen bir program. Deluxe Video 1.3 bu üç program içinde ANIM dosyası olmayan tek program. Ama kendi fırça animasyonlarını yapabiliyor.
GELECEK
Gelecek neler gösteriyor? Daha kolay kullanılabilecek arabirimler, daha fazla video efektleri, daha çok 3D seçeneği ve daha büyük ses ve müzik yetenekleri görmeyi bekleyebiliriz. Modüler yaklaşımın yaygınlık kazanması da beklenebilir. Yeni data sıkıştırma tekniklerinin geliştirileceğini ve disketten uzun animasyonların gerçek zamanda play-back'le makaraya sarılmasını da umuyoruz. Gerçek birtakım standartların geliştirilmesi ile programların da resim ağının gibi kolaylıkla birbirleriyle iletişim sağlayabilmesi de beklentilerimiz arasında. Bir anlamda gelecek şimdiden burada. Yirmi yıl önce bir stüdyo dolusu insanı gerektiren işler şimdi sözünü ettiğimiz araçları kullanarak bir kişi tarafından gerçekleştirilebiliyorlar. Animasyon alanında yeni bir çığ açıldığını rahatlıkla söyleyebiliriz.
MURAT