忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【捨丸&KID】如何放置背景圖、人物圖

 

在這一章節我們要開始介紹如何放置背景圖或人物圖,請大家先隨便找一個可以當背景的圖以及人物立圖,以便之後程式碼的測試。

 

*  試著表示背景或event圖

 

*  bg命令

  bg命令是在背景表示部份表示圖像的命令。bg是background的縮寫。

  程式碼

 

  bg #FFFFFF,1

  bg black,1

  bg “BG¥ 093.JPG”,1

 

“ bg”為表示命令的本體。

bg後面所指定的東西可以像上面這樣分成三類的背景。

而指令行最後的1是effect號碼。關於effect號碼的用處會在之後說明,現在請先將它當成表現方法的種類。

一旦輸入bg命令後,人物圖像也會被reset。

 

*  單色背景

  bg #FFFFFF,1

 

  在bg命令之後放入#RRGGBB的RGB code則會使用那個RGB色塗滿背景畫面。常被用在表現純紅色、純白色、純藍色等單色背景上。雖然是單純的背景,但是藉由顏色的感覺能夠營造出許多性質。

 

  #FF0000(純紅色)

  背景為純紅色時能夠表現不安感、焦躁感等。

 

  #FF9933(橘色)

  飄盪著一種黃昏的感覺。

 

  #330066(紫色)

  能於晚上或是心情低落時當作背景。

 

*  黑白背景

  bg white,1

  bg black,1

 

在bg之後放入black或是white的英文單字就能夠使背景顏色如文字變為黑色或是白色。

 

*  圖像背景

  bg “BG¥ 093.JPG”,1

 

在bg命令之後將檔案名稱寫入””之間的話,就能夠表示這個圖像。

放在BG之後的¥是用來區分開資料夾和檔案名稱的記號。因此” 093.JPG”

代表「放在名為BG資料夾中的093.JPG」。

背景圖片放入此處

 

擷取.JPG

擷取1.JPG

 

 

使用的圖像種類

Nscripter能夠使用的圖像種類是bmp或jpg。除此之外保存格式的圖像無法使用。

程式碼範例

 

;mode800

*define

Clickstr"!?。」",2

game

*start

bg "BG\093.JPG",1

click

End

 

擷取3.JPG

  

圖像的大小

背景和event CG所使用的圖像請將大小調整為800x600(或是640x480)畫素。當表示和畫面不同大小的圖像時,會將畫面的中心和圖像的中心疊合表示。即使圖像太小也會讀取表示,但是不夠的部份會以黑色表示。

 

*           表示人物立圖看看

*  人物立圖是什麼?

人物立圖是在遊戲中角色登場時表示的圖像。

常於呈現大致的位置關係、或是有誰在場時使用。在近期也常會讓人物表情頻繁更換,或是改變姿勢這樣的作法。

這是接觸到玩家目光時間相當多的高重要度圖像。

(表示人物立圖時的畫面)

 

*  叫出人物立圖的命令

  程式碼

  ld 位置記號(r,c,l),叫出檔案名稱文字列,叫出效果號碼

 

  範例

  ld c,”:a;LD¥myth.jpg”,1

 

  c是表示位置的命令。

  畫面的三個地方能夠配置人物立圖,分別是右(r)左(l)中(c)。

(圖像表示位置圖)

 

  ld c,”:a;LD¥ myth.jpg”,1

  粗體字”:a;LD¥ myth.jpg”部份是叫出檔案名稱文字列的部份。

  :a為被稱為畫像tag的東西(會在之後說明)。

  LD¥為畫像所在的資料夾,myth.jpg為所表示的畫像名稱。

人物立圖放入此處

擷取.JPG

  ld c,”:a;LD¥XXX.jpg”,1

  1為effect號碼,這也會在後面說明。

 

*  人物立圖的遮罩

圖像檔案基本上為四方型的圖案,因此如果直接就這樣表示在畫面上則外部白色背景的部份也會一起被表示上去,相當的不自然。

因此,在叫出人物立圖圖像時會讓人物旁邊白色的部份被透明表示。這被稱為遮罩(mask)處理。

  遮罩處理有幾種方式,要使用哪種分式由「畫像tag」來決定。

 

 

*  畫像tag和透明化命令

畫像tag是夾在「:」、「;」之間部份所指定的代碼,如下列程式碼粗體字的a。

ld c,”:a;LD¥XXX.jpg”,1

如果沒有加上畫像tag就叫出畫像的話,預設的透明化option會以最左上角的畫素之顏色作為透明化處理的設定來表示,也就是預設的代碼是l後面會說明。

ld c,” LD¥XXX.jpg”,1

 

在此我們先取一張人物立繪來做例子

例子如下

Myth.jpg

在0.txt打入下列程式碼

;mode800

*define

Clickstr"!?。」",2

game

*start

bg "BG\093.JPG",1

click

ld c,":a;LD\myth.jpg",1

click

End

 

:a;

  ld c,”:a;LD¥myth.jpg”,1

選擇使用使用α channel的option。被表示的畫像會從中央分成左右兩張,並且設定為將右側的畫像作為α channel遮罩。

在圖像製作上是最麻煩的方式但是人物立圖所呈現的輪廓能夠最漂亮的透出。

(α channel圖像)

在這裡我們詳細說明α channel遮罩。

左邊為角色的圖像,而右邊則是有個像是黑影一樣的東西。在這右側是指定每個畫素的透明度的畫像。

在右側由從白色到黑色共256個濃度的畫素組成。當左右的畫像重疊時,和右邊畫像中黑色畫素重疊的地方不會變成透明(=被表示),而和白色畫素重疊的地方則會變成透明。

因此畫像的邊界能夠更加地融入背景之中,人物立圖就能夠被漂亮的表示出來。

擷取2.JPG

 

 

:m

  ld c,”:mLD¥mask.jpg;myth_1.jpg”,1

這個是選擇使用mask option。準備別的檔案作為遮罩畫像,然後將這個畫像設定為α channel。

mask.jpg的部份是遮罩的畫像名稱。在mask option的「m」之後馬上就輸入檔案名稱的文字列,這是個較不符合一般規則的程式碼。

當都是同樣姿勢只有表情不同的畫像很多時,可以節省下圖像右邊部份的容量。可以想成就是將:a:這個處理方式的左右部份開來。

myth_1.jpg

mask.jpg


擷取5.JPG
擷取4.JPG

 

:l;

LD c,”:l; myth.jpg”,1

選擇使用左上角畫素當作透明化的處理option。畫像左上角畫素的顏色會被當成透明化顏色處理的option。

被指定為透明化的顏色會被以表示為透明畫得部份。

但是如果指定了畫像中有使用到的顏色的話,那麼畫像中相同顏色的部份也會變成透明而空出洞來。

這也是Nscripter的預設透明化處理方式。

 

由於處理方式是透明化否則就是不透明化的二分法處理,如果是點圖(tot圖)的話能夠漂亮的透出。但是畫像有經過去鋸齒處理(anti-aliasing)的話,則在畫像的邊框上會出現粗糙的邊界。

(以左上角的畫素顏色設定為透明化顏色圖)

擷取6.JPG

注意全黑的部分都變透明了 剩下的殘骸就是在jpg圖檔破壞壓縮之下沒有去鋸齒化所造成的後果,因此通常人物立繪會使用α channel

 

 

:r;

LD c,”:r; myth.jpg”,1

將右上角的畫素設為透明化的處理option。畫像最右上角那格畫素的顏色會變成透明化顏色的option。

(以右上角的畫素顏色設定為透明化顏色圖)

擷取7.JPG

 

:c;

LD c,”:c; myth.jpg”,1

複製的處理option。畫像會沒有經過透明化就直接被表示。用於處理按鈕等四角形的物體。

擷取8.JPG

 

 

*  去除人物立圖

  cl a,1

  將人物立圖去除的命令,是clear的縮寫。

  cl是命令的本體,a是消去對象的位置。能夠指定r(右)c(中)l(左)a(全部)。

  1是去除時的effect號碼(關於effect會在之後說明)。

;mode800

*define

Clickstr"!?。」",2

game

*start

bg "BG\093.JPG",1

click

cl a,1

click

End

 

拍手[1回]

PR

この記事にコメントする

お名前
タイトル
メール
URL
コメント
絵文字
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
パスワード

この記事へのトラックバック

この記事にトラックバックする