忍者ブログ

[PR]

×

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

【Hiyu&Rava】常用KAG函式介紹2 - 連結篇

 

 

這次介紹的重要功能,在文字冒險類遊戲中不可或缺的項目--「選項(亦可稱呼為分支)」--讓玩家去選擇劇情的走向。
吉里吉里內可以做到這效果的指令分別為圖像式的「button」和純文字的「link」兩種。
 

指令屬性

[link]
color (0xRRGGBB) 滑鼠在連結上或點擊狀態時的顏色

[button]
graphic (圖像檔案名稱)
graphickey (0xRRGGBB) 會透明化的顏色
recthit (true/false) true的話圖像透明部份會有反應,反之在64或以下的透明部分不會導滑鼠起反應

[共通]
storage (腳本檔名) 要連結到的目標檔案的位置
target (標籤) 要跳到去的位置
exp (TJS) 點擊時會實行式子再跳到目標
hint (字串) 用來顯示提示
onenter (TJS) 滑鼠進入範圍內時會實行的式子
onleave (TJS) 滑鼠離開範圍內時會實行的式子
countpage (true/false) 指定為已讀與否
clickse (聲音檔名) 滑鼠點擊時發出的音效
clicksebuf (數字) 指定音效buffer編號
enterse (聲音檔名) 滑鼠進入時發出的音效
entersebuf (數字) 指定音效buffer編號
leavese (聲音檔名) 滑鼠離開時發出的音效
leavesebuf (數字) 指定音效buffer編號


使用方式

以下是簡單的 link 範例,顯示選項讓玩家選擇而繼續進行的方式。
 

*start|開始
; 清除畫面
[cm]
[link target=*select1]選項1[endlink][r]
[link target=*select2]選項2[endlink][r]
[link target=*select3]選項3[endlink][r]
;停止遊戲 等待玩家動作
[s]

*select1
; 斷行
[r]選擇了第1個項目[l]
[s]

*select2
; 斷行
[r]選擇了第2個項目[l]
[s]

*select3
; 斷行
[r]選擇了第3個項目[l]
[s]

效果圖:
 


連給目標不限制同一檔案,想連結到別的檔案去可以用這種方法:
[link target = ”*任意label” storage = “檔名.ks”]

如果不喜歡這種固定顯示連結的話,可以在 link 指令前加上 [locate x=數字 y=數字] 這指令來指定顯示位置。


按鈕格式

吉里吉里的按鈕圖像格式是由3種圖像並連起來的。
由左至由分別是:普通狀態-滑鼠正在點擊-滑鼠在範圍內。



用法和 Link 相近,大多數用在標題畫面、系統按鈕等地方以美化畫面。


簡單例子

[ title.jpg ]

[ 內碼 ]

*start|開始
[iscript]
// 將背景填滿白色
// 圖層.填滿(左, 上, 闊, 高, 色碼);
kag.fore.base.fillRect(0, 0, 800, 600, 0xffffff);
[endscript]

[locate x = 100 y = 100]
[button graphic = title storage = title.ks target = *start hint = 開始遊戲]
[s]

效果:



滑鼠在按鈕上及顯示提示文字



確認方塊和輸入欄

接下來的部分就是玩 AVG 時很大機會會看到的功能--名字輸入。
詳細解釋不如直接用例子作說明比較容易理解,可以先看下圖的範例。



( 可以把下面內碼貼到新的吉里吉里project內執行看看效果 )

內碼:


*start|開始
[cm]
輸入名字後要顯示嗎? :  [checkbox name="f.showname"]
[r][r]
名字 : [edit name="f.sname" length=200 maxchars="8"]
[r][r]
[link target=*ok]OK[endlink]     [link target=*cancel]Cancel[endlink][s]

*ok
; commit 會將代數代入
[commit]
[cm]
;選擇顯示,才會顯示輸入了的名字
[if exp=f.showname]
[r][r]
輸入的名字是: [emb exp=f.sname][l]
[endif]
[r]成功輸入[l]
[jump target=*repeart]

*cancel
; cancel
[cm][r][r]
選擇取消[l]

*repeart
[jump storage="first.ks" target="*start"]

由上面的內碼可以看出,使用 checkbox 和 edit 時一定要配合 commit一起用上,否則代數不會有變化。edit 和 checkbox 可以指定背景顏色 (bgcolor) ;而 edit 可以指定文字顏色 ( color ) 和限制字數。

 

 

 

拍手[3回]

PR

【捨丸&KID】如何變換背景及人物立圖

 

這篇要講如何變換背景及人物立圖。首先,在NS裡,如果完全不考慮變更背景時的效果,則換背景只是件非常容易的事情,範例如下

 

;mode800

*define

clickstr"!?。」",2

game

*start

bg "BG\093.JPG",1

click

bg "BG\094.JPG",1

click

end


這樣就可以換了,人物立圖也差不多,只要再打一次,並視情況加入cl等消除人物立圖的指令就可以了,因此本篇重點是在effect號碼,也就是最後的數字代表的意義(這裡的範例是1)。

*  effect和畫像表示
 到此之前,畫像在表現是的時候都是一瞬間就表示在螢幕上。但是如果改變表示方法的話,也能夠做出符合劇情的演出。
 例如,如果角色在消失的時候是「慢慢地變成透明化消失」那麼就會有像是幽靈消失般的氣氛,「瞬間消失」的話則會有像是瞬間移動般的氣氛。
 這個「慢慢地變成透明化消失」、「瞬間消失」等效果就被稱為effect。

*  effect效果號碼和effect號碼

要指定effect必須先理解「effect效果號碼」、「effect號碼」這兩個參數。


 「effect效果號碼」是表示Nscripter已準備好effect種類的號碼。總共有0~18號,各自有著不同的effect。
「effect號碼」則是為了叫出effect效果號碼和作用時間組合後的effect set所使用的號碼,這是由使用者自由設定的東西。能夠從2~99號自由設定。

 effect效果號碼=effect的種類
 effect號碼=effect效果號碼+作用時間組合產生者

 先這樣記下來就可以了。
 effect命令比較難以理解的原因便是因為相同的數字排列在一起容易搞混。

*  effect使用的流程
 effect再沒有設定「effect號碼」的時候,只能使用1號的瞬間表示,因此之前的effect號碼都只有1。設定必須在*define和game之間的定義區塊完成。以下先設定effect號碼2以及3最為例子。


;mode800

*define

clickstr"!?。」",2

effect 2,5,600  ;600代表此效果時間為600毫秒也就是0.6秒

effect 3,11,1000

game

*start

bg "BG\093.JPG",2

click

bg "BG\094.JPG",3

click

end



 在執行區塊時,當想要表示圖像的時候在表示命令的最後加上「effect號碼」來叫出圖像:

bg "BG\093.JPG",2
 也就是預先設定好畫像出現的方法然後在要使用的時候使用號碼把它呼叫出來這樣的方式。


*  effect的設定方法
 那麼我們來實際定effect看看。
 首先,在*define和game之間的定義區塊里設定effect號碼。
 effect號碼的1號在預設中已經被決定為瞬間表示,因此請從2號開始設定(effct號碼能夠設定到99號)。

程式碼

 effect 用來呼叫出的effect號碼,effect效果號碼,效果秒數(單位為ms)

 範例
 effect 2,3,500

 effect是命令本體。
 2為用來呼叫出effect的號碼。(也就是在script中使用到的號碼)
 3為用到effect的效果號碼。
 500是效果時間(單位為ms,1s=1000ms)。
 mask畫像中使用到的effect會在後面輸入被叫出的檔案名稱文字列。(後述)

*  effect使用範例
 於執行區塊中,使用畫像表示命令等命令時會使用到effect號碼。
 範例
 bg ,white,2
 bg是叫出背景的命令,white則是以白色塗滿背影的意思。
 2是effect號碼,會以在定義區塊中所設定的effect效果來更換畫面。

 effect號碼和effect效果號碼都是相似的數字所以比較容易混亂,但是只要作過幾次畫面表示的命令後想來就會慢慢習慣。

*  Effect效果的種類

Nscripter中共有18種effect效果。就算想設定effect但如果不明白各種effect效果的功用會相當地難以下手,因此先依照其號碼依序解說。

*  效果號碼一覽表

0  沒有表現效果。但是使用0號effect的圖像不會立刻顯現出來。

  必須等到下一個指令表現圖像時才會一起顯現出來。

  當想要讓人物站立圖像左右兩張圖時顯現時,或是想是讓背景跟人物圖像同時顯現時可以使用。

1  瞬間表現。沒有指定時間的參數。

  圖像會在瞬間被表現出來。

  由於default中就設定為顯示效果1號。沒有經過設定能夠使用的effect只有這個。

2  左快門(shutter)

3  右快門

4  上快門

5  下快門

  2~5號是被稱為快門系列的效果。畫面會被複數個長方形的圖塊cut過去後顯示。左右上下為效

  果朝著哪個方向前進來呈現畫面。

  在表現人物立圖和背景畫面時常被使用。

6  左窗簾(curtain)

7  右窗簾

8  上窗簾

9  下窗簾

  6~9號是被稱為窗簾系列的效果。畫面會被比快門較大一點的長方形圖塊cut過去後顯示。和快門系列相同,上下左右是指效果朝著哪個方向前進來呈現畫面。

10 以畫素為單位的cross fade。

  從透明變為半透明,再由半透明轉為不透明的效果。

  雖然是很不起眼的效果,但是由於有著柔和的效果常被用在人物立圖和SP上。

11 從左邊開始捲軸滾動(scroll)

12 從右邊開始捲軸滾動

13 從上面開始捲軸滾動s

14 從下面開始捲軸滾動

  畫面整體進行scroll滾動的效果。讓某些東西由下方往上升,或是讓車子左轉等

  

*  加上特殊效果
 Nscripter中有能夠對畫面全體加上effect的命令種類。
 較常用到的有讓畫面全體搖晃和改變畫面全體色調的命令。

*  quake(地震)
 搖動畫面全體的命令。
 如同字面的意義,當你想表現發生地震、撞到車子、被敵人毆打的瞬間時,可以使用這個命令來搖動全體畫面。

 程式碼
 quake 振幅數,效果時間
 範例
 quake 8,1000

 quake是命令本體。
 8為振幅數,最大會搖晃到所設定數字的三倍畫素。雖然要將振幅數設定為100、300都沒有關系,但是設定為10左右便會產生相當程度的搖晃,在實際運用上大約會使用1~15左右。
 1000為效果時間(單位為ms)。會在效果時間中搖動畫面。
 
 quake為上下左右隨機搖動。
 如果疊合兩個不同振幅的quake也能夠做出類似真正地震的效果。

*  橫搖、縱搖
 範例
 quakex 5,1000
 quakey 5,1000

 quakex是橫搖,而quakey則是縱搖。
 但是要注意5不是振幅而是搖晃的次數。1000為執行時間。
 這個命令也能夠利用搖晃次數和時間的組合來達到各種效果。設定搖晃次數為2,執行時間為1500(1.5秒)左右的話,能夠做出像是主角在說Yes或No的效果。

 各種使用方法
 quakex 5,1000;被打巴掌時
 quakey 5,1000;頭頂被直擊時

注意:quake命令,特別的使用法
 quake命令可以讓畫面大幅度的搖晃在使用上常常會過頭,但是也有像是秘技的有趣使用方法。
 在event圖中有時後會出現像是投擲長槍這樣有方向性的構圖。
 在表現這樣的圖像時,如果大致配合其方向性使用quakex、quakey稍微動作,大概是振幅2、時間0.2秒左右,這麼一來圖像看起來會好像有動作。雖然這只是屬於錯覺這樣的東西,但是作為表現方法來說意外的有效果。
 短暫而輕微的quake意外的能用在許多地方。

*  將畫面全體的顏色替換
 monocro是改變畫面全體色調的命令。在回憶場景中常被使用。
 monocro #EEEEEE ;黑白相片
 monocro #FFBB66  ;汎黃色
 monocro #33CCFF  ;夜色
 monocro #FF9900   ;黃昏
 monocro off

 monocro是命令本體。
 在命令之後利用#RRGGBB的RGB code來設定基本的色調。
 例如#EEEEEE會是灰色,就像是黑白相片那樣的色調。

 只要改變基調的顏色就能夠變化成汎黃的感覺、夜色的感覺等各種感覺。請試著變換各種顏色來實驗看看。
 只要輸入monocro off的命令後就能夠結束這個模式,回復原本的色調。

 當在回憶場景中使用時,由於模式瞬間的切換會讓玩家感到有些唐突,在monocro命令的前後先利用表示單色的背景畫面,能夠讓感覺較流暢。

 

 

拍手[0回]