Recrit
【捨丸&KID】NS遊戲視窗自訂
* 變更等待click的游標
* 何為等待click的游標
文字表現中在進入等待滑鼠click的狀態時,於文章末尾表示的就是等待click游標。這是為了方便玩家快速找到現在文章進行地方的小功能。
* Default游標
下載Nscripter解壓縮之後,可以找到一個名稱為「default cursor folder」的資料夾,在其中可以找到游標的bmp檔案。cursor0.bmp為等待click的畫像,而cursor1.bmp則是等待換頁游標的畫像。
只要於Nscr.exe所在階層的資料夾放入這兩個檔案的話,游標的畫像就可以被使用。而即使在同一階層中沒有這兩個檔案,也不會出現沒有畫像的error,會以沒有等待click游標的狀態繼續執行。
* 變更游標
setcursor命令(放於*start之後)
setcursor為變更所表示游標的命令。即使是在遊戲中途也能夠變更游標。
程式碼
setcursor cursor番號,”:透明化option/cell數,表示秒數,loop形式;畫像檔案名稱”,表示位置的座標
範例
sercursor 1,”:l/3,160,2;sys\cursor3.bmp”,0,0
sercursor 0,”:l/3,160,2;sys\cursor3.bmp”,0,0
setcursor是命令本體
sercursor 1,”:l/3,160,2;sys\cursor3.bmp”,0,0
sercursor 0,”:l/3,160,2;sys\cursor3.bmp”,0,0
命令之的第一個數值表示游標號碼。0為句尾,1為改頁游標。
sercursor 1,”:l/3,160,2;sys\cursor3.bmp”,0,0
sercursor 0,”:l/3,160,2;sys\cursor3.bmp”,0,0
0,0是相對座標,當想要移動游標的位置時可以使用。
會依據所輸入的數值讓游標平移後表示。當同使使用較大的文字和較小的游標,為了讓游標的中心能夠和文字的寬度高度配合時使用。
畫像tag、動畫處理選項(option)
sercursor 1,”:l/3,160,2;sys\cursor3.bmp”,0,0
sercursor 0,”:l/3,160,2;sys\cursor3.bmp”,0,0
被””所包圍的文句裡,被:;所包夾的部份是畫像tag。這部份指定游標的動畫處理方式。
”:l/3,160,2;sys\cursor3.bmp”
l為利用左上角的畫素透明化顏色的透明化選項。
在這之後是動畫處理的選項。
”:l/3,160,2;sys\cursor3.bmp”
/之後的3代表著cell分格數。數值為3時表示對象畫像被橫向切割成三個。
cursor0.bmp為72x24畫素,是由三個24畫素的正方形橫向擺放組合而成。
讓被分割的圖像一這順序表示的就能做出動畫的效果。
”:l/3,160,2;sys\cursor3.bmp”
160為表示秒數(單位為ms)。每0.16秒便會切換一個分格表示。
”:l/3,160,2;sys\cursor3.bmp”
2所指定的是動畫的迴圈形式。
迴圈形式如下列所示:
0 從第一個分格執行到最後一個分格後,再次回到第一個。
1 執行到最後一個分格後,停止在那裡。
2 執行到最後一個分格後,再從最後一個分格逆向執行到第一個分格。然後再從第一個分格再次迴轉執行到最後一個分格,像這樣反覆執行。
3 這個形式只會表示第一個分格,不會出現動畫處理。
主要是在表示按鈕時會是用到的設定。
”:l/3,160,2;sys\cursor3.bmp”
cursor3是所叫出的畫像檔案名稱。
這裡是假設在sys資料夾中有個名為cursor3的bmp檔。
l/3,160,2所表示的意義如果轉換成文字的話則為「將圖像左上角畫素的顏色設定為透明化顏色,畫像分割為三等份後每0.16s切換一次,當執行到最後一個分格後會在逆向執行表示到第一個分格且不斷迴圈。」
*固定位置的改頁游標
abssetcursor 1,”:1/3,160,2;cursor1.bmp”,580,420
在使用下視窗表模式時,有時後會想要將改頁游標固定在視窗的右下角。
此時必須使用abssetcursor命令。和setcursor命令幾乎都是一樣,但是在命令最尾端的數值表示的是從原點算來的絕對座標(x,y)。
* 改變預設menu的外表和顏色
NS可以改變功能選單的文字在游標移動到上面時的顏色,或是讓游標移動到上面時發出聲音等。
*改變功能選單的文字。
程式碼和範例
savename “[SAVE]”,”[LOAD]”,”記憶”
savename是命令本體,放置於定義區內。
在這之後是預設存檔功能選單的title,讀檔功能選單的title,各個儲存檔案最前面的名稱。
按下功能選單時的音效
程式碼
menuselectvoice 1,2,3,4,5,6,7
範例
menuselectvoice “se\colock00.wac”,”se\don2.wav”,”se\don4.wav”,”se\don13.wav”,”se\hit_p02_a.wav”,”se\hit_s06.wav”,”se\hit_s06_r.wav”
menuselectvoice是命令本體,放置於定義區內。在後面指定想要讓它發出的音效檔案。所指定的音效檔從左邊開始是:1,打開功能選單時。2,取消功能選單時。3,移動到功能選單的某個選項上時。4,點擊某個選項時。5,做出了無法反應的操作時。6,選擇「yes」時。7,選擇「no」時。
* 點擊右鍵時進入回想模式
程式碼
rlookback
範例
rlookback
當把預設功能選單消除後,想在點擊右鍵後直接進入回想模式時可以使用此命令,必須在定義區塊宣告。
* 將右鍵點擊無效化
程式碼
roff
範例
roff
讓右鍵點擊從一開始就沒有功用,必須在定義區塊宣告。
再不讓玩家存檔或是右鍵點擊時可以使用,基本上這是hardcore模式了。
* 讓右鍵點擊暫時無效化
rmode命令可以暫時讓右鍵點擊暫時無效化,在遊戲進行中宣告。
在開頭畫面或是書目等暫時不需要右鍵點擊功能選單時可以使用。
程式碼
rmode 數值
範例
rmode 1
1為切換到ON能夠使用右鍵點擊、0為切換到OFF無法使用右鍵點擊。
注意若在別的地方進入到rmode 0模式後忘了改回來而一直保持「不能使用右鍵點擊」狀態,這種事情常發生,因此若遊戲進行到一半變成無法右鍵點擊時請在script中搜索rmode看看。
* 改造上方功能選單
注意關於上方功能選單的命令全部都必須在define區塊里輸入。
* 改變視窗上的caption表示
程式碼
caption “文字列”
範例
caption “導覽小說”
* 上方功能選單消去命令
程式碼
killmenu 功能選單號碼
範例
killmenu 6
依照所設計遊戲在上方功能選單中常會出現一些不必要的功能。例如音源是使用mp3等檔案形式時便不需要CD-DA的功能、而不想要音量控制功能的人也是挺多。當想要消去不想要上方功能選單項目時可以使用這個命令。
killmenu 6為消去上方功能選單從左邊算起的第六個功能選項。
在預設系統中各項功能如下方這樣排列。
0,畫面
1,字型
2,表示形式
3,文字表示速度
4,音量
5,快速前進到下一個選項
6,CD-DA
7,版本情報
8,結束
在第二次的命令之後,由於有功能選項被消去而會使得其後者號碼往前順移,請注意這點。例如在執行過killmenu 3之後,但三個功能選項的文字表示速度被消去,則新的排序為。
0,畫面
1,字型
2,表示形式
3,音量
4,快速前進到下一個選項
5,CD-DA
6,版本情報
7,結束
因此當你接下來想要消去CD-DA功能時必須輸入killmenu 5。
* 指定文字表示速度的功能選單
這個項目的功能選單雖然存在,但是只要沒有進行設定便不會產生功能。
程式碼
defaultspeed 低速,中速,高速
範例
defaultspeed 60,40,20
此命令必須在定義區塊中進行設定。
defaultspeed是命令本體。
在此之後的三個數值指定文字的表現速度。文字表示速度功能選單中會出現低速、中速、高速三個選項給予選擇,而三個選項的表示速度分別依序由三個來指定,其單位為ms。
在範例之中
60 選擇低速時的文字表示速度被設定為60ms。
40 選擇中速時的文字表示速度被設定為40ms。
20 選擇高速時的文字表示速度被設定為20ms。
* 改造成為pull down型的功能選單
追加功能選單
restmenu是變更功能選單的宣言。
在這之後的「insertmenu “結束”,END」等insertmenu指令會分別插入功能選單中。insertmenu是插入命令本體,”結束”是被表示在功能選單中的文字列,END為功能命令。
Menu的階層化
程式碼
insertmenu “環境設定”,SUB
SUB是將功能選單階層化的命令。在這之下的功能選單會被放入階層裡。
放在命令之後的數字表示此功能屬於第幾個階層。
程式碼
insertmenu “字型”,FONT,1
在上面的例子中,1是表示第一階的意思,範例如下。
「insertmenu "終了",END
insertmenu "情報",VERSION
insertmenu "音效調整",DWAVEVOLUME
insertmenu "已讀跳過",SKIP
insertmenu "文字設定",SUB
insertmenu "表示量",SUB,1
insertmenu "通常",CLICKDEF,2
insertmenu "頁數單位",CLICKPAGE,2
insertmenu "顯示速度",SUB,1
insertmenu "慢速",TEXTSLOW,2
insertmenu "正常",TEXTMIDDLE,2
insertmenu "高速",TEXTFAST,2
insertmenu "字型",FONT,1
」
注意在最上面的會在最右邊出現,其他未使用到的指令: WAVEON WAVEOFF 音效開關 FULL WINDOW 全螢幕與視窗 CDON CDOFF CD-DA功能開關。
* 將功能選單全部消除
程式碼
deletemenu
範例
「
*define
deletemenu
game
*start
」
當對系統進行改造且使用自製系統的時候,有可能就不在需要上方功能選單。
當不需要上方功能選單時,輸入此命令就可以把所有的功能選項刪除。
* 設定既讀文章skip
* 所謂既讀文章skip是?
所謂的既讀文章skip是利用skip命令來快速跳過已經在畫面上表示過的文章之功能。在按下上方功能選單的「快速跳至下一個選項」或是右鍵點擊功能選單內的選項後能夠執行。 Nscripter的default設定中,在使用skip功能的時候不管是還沒讀過的文章或是已經讀過的文章都沒有分別,全部都會被skip掉。如果在定義區塊宣告既讀文章skip後那麼只會skip掉已經讀過的文章,而未讀過的文章則不會被skip掉,在文章較長的novel game如果有設定的話會相當便利。
* 既讀文章skip宣告命令
程式碼
kidokuskip
範例
「
*define
kidokuskip
game
*start
」
只要在定義區塊中輸入kidokuskip命令後就可以使既讀文章skip功能開啟。
在設定後與nscr.exe同樣階層的資料夾裡會創造名為kidokuskip.dat的檔案,在此檔案裡儲存文章既讀部份的資料。在設定之後重新改寫script檔案的話會是使得原本被紀錄的文章既讀部份檔案產生錯誤,因此最好把kidokuskip.dat刪除。
【捨丸&KID】NS遊戲視窗預設
有鑑於前幾次都是比較難的教學,這一次的教學要回歸到比較簡單的題材(絕對不是我想偷懶!),也就是NS遊戲執行時最上面的選單。
NS很方便,什麼都沒寫的時候就通通都用預設,這條bar就可以讓玩家調整很多遊戲的設定,即使設計者沒有打算讓玩家調整,只要有這條bar就能調,所以先讓我們看一下在這條bar有什麼功能。
- 畫面
- 全螢幕
- 視窗
因為現在很多人都是用寬螢幕,而NS還是在4:3時代,如果在寬螢幕狀況下執行全螢幕模式會讓圖的配置都強迫拉成跟螢幕一樣的比例,就會造成原本的背景跟對話框變形,解析度也會變差。大家應該注意到在預設的情況下右上方的最大化按鈕是不能按的,這樣可以避免玩家不小心按到,但也許有玩家就是喜歡用超大螢幕玩,所以NS還是有保留這個功能。
- 字型
這邊下面的選項是看各個玩家本身電腦安裝的程式判定的,像筆者上世代的NB字型只有新細明體跟標楷體,就只有兩個選項,如果玩家覺得設計者挑的字型實在太醜,可以在這邊調整,但我想這種事情應該不常發生~
- 表示形式
- 預設
- 每次一頁
預設就不用講了,每次一頁就是文字一次會跳出一整頁的量,這在AVG遊戲可能會破壞角色對話的節奏,因此只適用於純電子小說類型。
- 文字速度
- 音效
就是讓玩家調整文字顯示的速度和音效的大小,一般都會另外做一個config頁面讓玩家調,但如果懶得做config,還是可以讓玩家在這邊調,只有低、中、高速三種選項。
- 跳到下一個選項
雖然在NS只要按ctrl鍵就可以自動快速跳過已經看過的對話,但一直按著還是很累,這個一按下去就可以快速跳至下一個選擇點,也就是所謂的SKIP鈕。
- 自動模式
有時候玩家會覺得一直按很酸,按這個按鈕就可以讓遊戲自動點擊右鍵,幾乎所有的AVG遊戲都會有。
- CD-DA
撥放音樂光碟用的設定,應該很少人會用,畢竟同人遊戲還要附贈音樂光碟那還真是大手筆。
- 版本情報
按下這個上方功能選單的項目後,寫入所使用版本的資訊視窗會出現在畫面上。
程式碼:
versionstr “上行的文字列”,”下行的文字列”
範例
versionstr “導覽小說”,”ver1.02”
這命令能夠變更版本情報所出現的資訊視窗。
左方輸入第一行的文字列。
右方輸入第二行的文字列。
不管是左邊輸入title右邊輸入版本號碼,還是左邊輸入title和版本號碼右邊輸入作者名稱以及團體名稱都有人使用。
在預設裡會出現Nscripter的版本和作者高橋先生的名字。
-
結束
這不用介紹了吧,如果能用這個按鈕使用出什麼其他的功能請確定一下自己開啟的是NScripter程式。
接下來要介紹NS預設的右鍵選單與調整預設選單的方式,要在NScripter叫出右鍵選單,需要在定義區內使用rmenu指令
程式碼:
rmenu “消去視窗”,windowerase,”存檔”,save,”讀檔”,load,”回想”,lookback,”回到開頭畫面”,reset
rmenu是命令本體。
將“文字列”,功能這樣不斷排列來設定。文字列的部份會在右鍵點擊功能選單中被表示出來。
「
;mode800
*define
clickstr"!?。」",2
rmenu "消去視窗",windowerase,"存檔",save,"讀檔",load,"回想",lookback,"回到開頭畫面",reset
game
*start
…
」
各項功能的說明
skip 表示範例:「skip」、「跳至下一個選項」
快速前進到下一個選項為止。和上層功能選單的「前進到下一個選項」有同樣效果。
reset 表示範例:「reset」「回到開頭畫面」
將Nscripter重置。回到程式的開頭畫面。
save 表示範例:「save」、「存檔」
呼叫出存檔功能選單。
load 表示範例:「load」、「讀檔」
呼叫出讀檔功能選單。
lookback 表示範例:「回想」、「回憶」
進入回想模式。
windowerase 表示範例:「消去視窗」、「消去文字」
將視窗消除只顯示背景畫面。
* 調整右鍵點擊功能選單
使用menusetwindow命令能夠對右鍵點擊功能選單和文字視窗一樣進行改造。
程式碼
menusetwindow 文字大小x,文字大小y,文字間間隔,行間間隔,粗字選項,陰影選項,視窗顏色
範例
menusetwindow 23,23,0,2,1,1,#FFBB66;泛黃色
menusetwindow為命令的本體。
menusetwindow 23,23,0,2,1,1,#FFBB66;泛黃色
23,23為指定文字的大小(單位為畫素)。
menusetwindow 23,23,0,2,1,1,#FFBB66;泛黃色
0為文字間間隔,2為行間間隔(單位為畫素)。
menusetwindow 23,23,0,2,1,1,#FFBB66;泛黃色
第一個數值1為粗字選項(1為粗字0普通),第二個數值1為陰影選項(1為加上0不加)。
menusetwindow 23,23,0,2,1,1,#FFBB66;泛黃色
最後的#FFBB66為RGB code,決定視窗的顏色。
「
;mode800
*define
*start
bg white,1
…
」
clickstr"!?。」",2
menusetwindow 23,23,0,2,1,1,#FFBB66;泛黃色
rmenu "消去視窗",windowerase,"存檔",save,"讀檔",load,"回想",lookback,"回到開頭畫面",reset
game
注意所謂的泛黃色就是照著背景的顏色去調整的,如果這邊大家用的是全黑的背景那麼一點顏色都看不出來,所以先改成白色,大家可以自己試試看效果,那麼這次先講到這裡,下次說明如何改變一些設定。