作者:李旬政

emailsclee@eagle.ee.ntu.edu.tw

 

讀過前面三篇與GIMP編輯動畫相關的文章,也許你也會覺得GIMP並不適合用來做大幅與多圖框的動畫,我覺得超過15個,使用操作圖層對話盒來做圖框的管理就變得不容易。加上GIFXCF的檔案格式並沒有對圖框與圖框之間做的壓縮的動作,GIMP只適合用來製作簡單的動畫。製作一個有趣的動畫,使用好的軟體固然重要,但更重要的是想像力與創造力,把相關聯的影像按照時間順序排一起,可產生有律動感覺的動畫;但不相關的的影像按照時間順序排一起,有時會有另一番趣味,把葡萄、香蕉、蘋果等水果圖案放一起,可製作出水果盤的動畫。

GIMP還有一些威力強大的工具。執行[image] -> AnimFrames可將數張依照流水號編排的anim_####.xcf圖檔轉成一張多圖層的動畫,在下一篇文章中會做簡單介紹。執行[image] -> Script-Fu -> Animators 可針對你所開啟的圖形,做些處理自動產生多圖層的動畫,下面我們會用到。

 

文章的寫作慣例

執行[image] -> 表示你要點選圖片所在的顯示視窗,按滑鼠右鍵,而後會出現一個功能表選單,在選單內選擇你要執行的功能。

執行[GIMP] -> 表示你要點選GIMP程式主畫面選單,File選單、Xtns選單、或Help選單,在選單內選擇你要執行的功能。

描述對話盒參數設定時,對話盒參數的名稱對話盒參數的設定值都用粗體字顯示,方便讀者閱讀。

 

一、          使用Script-Fu產生動畫:

 

1、文字的漣波動畫

 

        1的文字動畫是執行[GIMP] -> Xtns -> Script-Fu -> Web Page Themes -> Gimp.Org -> Big Header產生Hello World!的橫幅文字,執行[image] -> Script-Fu -> Animators -> Ripples產生一漣波動畫對話盒,可設定漣波強度Ripple Strength、畫框數Numbers of FrameRipple Strength使用預設值Numbers of Frame5。你可以使用動畫播放對話盒來觀看漣波動畫,或將動畫存成GIF格式,使用瀏覽器觀看到動畫的效果。

 

關於Script-Fu

使用GIMP的視窗介面來處理影像的任何動作都有想對應的函數(function or procedure ),執行[GIMP] ->Xtns -> DB Browser產生一DB Browser對話盒,這對話盒提供了GIMP所有函數的輸入變數的資料形態、輸出變數的資料形態、該函數的功能…..等相關資訊。如:gimp-edit-copygimp-edit-pastegimp-edit-cut對應的便是最常使用的影像複製、影像貼上、影像剪下等動作。

Script-Fu所使用的語言是Scheme一種類似Lisp的語言。每個在GIMP程式主畫面選單的Script-Fu都可在DB Browser對話盒找得到對應的函數。[GIMP] -> Xtns -> Script-Fu -> Web Page Themes -> Gimp.Org -> Big Header這動作所對應的函數為script-fu-big-header-gimp-org

GIMPScript-Fu就好像UNIXShell Script,透過Script-FuScheme語言你可以組合GIMP處理影像的動作達到你想要的功能,讓這些處理影像的動作自動化。

學習Script-Fu的最好方法就是閱讀gimp/scripts目錄下的*.scm檔。

 

二、分解動作

        以下我們要產生類似圖1的動畫,不過要作一下分解動作,也許聰明的你會覺得這種有點費時,但希望從這些過程中你可以學到一些東西。

1.                GIMP程式主畫面執行Xtns -> Script-Fu -> Web Page Themes -> Gimp.Org -> Big Header產生一對話盒,Text String設為Hello World,按下OK按鈕,產生的文字圖案底色為透明,將該圖存為 hw.jpghw代表hello world),由於JEPG格式不支援透明層,原來透明的部份會變成白色。

 

2hw.jpg

 

2.                點選hw.jpg圖片視窗,執行[image] -> Filter -> Distorts -> Waves產生一參數設定對話盒,Amplitude5pixels)、Phase0degreesWave Length20pixels),按下OK按鈕產生圖4的文字,執行[image] -> File -> Save As,將檔案另存為hw0d.jpg0d代表Phase0 degree)。

 

3Wave Filter參數設定對話盒

 

3.                執行[GIMP] ->File -> Open開啟hw.jpg,重覆第2步驟,執行[image] -> Filter -> Distorts -> WavesAmplitude5pixels)、Phase改設為60degrees)、Wave Length20pixels),將產生圖片執行[image] -> File -> Save As另存為hw60d.jpg

4.                重覆第3步驟,改變Phase設定,每次增加60度,產生六張相位(Phase)不同的圖。

 

Phase 0度,hw0d.jpg

Phase 60度,hw60d.jpg

Phase 120度,hw120d.jpg

Phase 180度,hw180d.jpg

Phase 240度,hw270d.jpg

Phase 300度,hw300d.jpg

 

5.                開啟hw0d.jpghw60d.jpg、、、hw300d.jpg這六張圖檔。

6.                點選hw0d.jpg圖片視窗,執行[image] ->File -> Save as,將該圖存為hw_anim.xcf

7.                點選hw_anim.xcf圖片視窗,執行[image] -> Layers -> Layers & Channels啟動操作圖層對話盒,按下Duplicate Layer按鈕五次,將這六個相同的圖層,由上而下,以依序更改名字為h0d100ms)、h60d100ms)、、、h300d100ms)。

8.                將圖片hw60d.jpg複製後整個貼到hw_anim.xcfh60d100ms)圖層上。

9.                重覆第8步驟,將hw120d.jpghw180d.jpghw240d.jpghw300d.jpg各圖片複製後,分別貼到hw_anim.xcfh120d100ms)、h180d100ms)、h240d100ms)、h300d100ms)圖層上。

10.            執行[image] -> Filters -> Animation -> Animation Playback 啟動控制動畫播放對話盒。按下Play/Stop按鈕,動畫開始播放。

 

圖、hw_anim.gif

 

11.            最後將它存成GIF檔,執行[image] -> Image -> Mode -> Indexed,將該影像轉為索引模式,藉由控制調色盤(Pallete)的顏色數(最大256色)可改變影像解析的品質與檔案的大小,# of Colors我設64

12.            執行[image] ->File -> Save as,出現Save Image對話盒,將該圖存為 hw_anim.gif 檔,改變畫框間的延遲時間可改變動畫的播放速率,按下OK按鈕。現在你可以使用瀏覽器來觀看GIF動畫。