Recrit
【Hiyu&Rava】附屬工具使用(2)、Reference查詢與使用
1)附屬工具使用
由於工具眾多,這次主要詳細介紹比較常用的部分來如何操作,
更近一步的細節可以查詢 Reference 內的 付属ツールの使い方。
工具內碼大多為日文,
因此請善用 Microsoft AppLocale 、 NTLEA 等轉碼軟體來開啟。
1.1 吉里吉里專用字體製作:
開啟 krkrfont.exe 之後會出現以下視窗。

製作流程(由上至下):
- 先「顯示所有TrueType字體」打勾,以顯示電腦內已安裝的字體
- 從字體名稱選要製作的字體
- 設定文字大小
- 設定其他選項
- 按「瀏覽」設定要儲存的位置和檔名
- 按「製作」即可完成
注意:
一個檔案只能製作一種字體的大小,
若要使用不同的字體大小,就得一個一個製作。
如果只使用一種大小,當然是製作吉里字體以節省空間,
要不然,請在資料夾內附帶 .ttf 字體。(要注意版權問題)
1.2 吉里吉里資料庫製作
用吉里吉里製作的遊戲通常會看到 data.xp3, bgm.xp3 等等的資料庫。
要如何製作這種資料庫,我們可使用 krkrrel.exe 。
製作吉里吉里執行檔有三種,
一是建立一個 .exe 檔,
二是 data.xp3 資料庫,
三是 data 內的資料夾 .xp3 資料庫。
前者不能製作更新檔,要更新的話就要重新製作一個 .exe檔,
而後兩者皆可製作更新檔,順序依照 patch.xp3,patch2.xp3,patch3.xp3(以下略)排列。
要選擇哪種就要看自己所需,
如果只是數 mb 甚至數百 kb 的小檔案,不仿製作 exe檔或 data.xp3 檔便可。
要製作 exe / data.xp3 只需選舉 data 資料夾,若製作一個個獨立的 xp3,請選擇 data 內的資料夾重複以下的步驟。
1)開啟 krkrrel.exe 會出現以下的資料夾選擇畫面:
先找出檔案所在的路徑並選取,要按「OK」。
2)之後會出現以下的「輸出」畫面的視窗:
基本上只需設定選擇要輸出的形式- .XP3 或是 .EXE,還有要儲存的位置和檔名。
3)「輸出」的右方有「檔案」設定,可選擇副檔名來左右移動 ( D&D方式亦可 )。
4)再來是「選項」方面的設定,看需要來自行調整。
勾取第2選項會在 .xp3/ .exe 內附上一個版權提示的檔案。

要繼續製作其他的 .XP3檔案可以按右下角的按鈕。
1.3 吉里吉里執行檔設定工具:
如子標題所示,就是用來設定吉里吉里 .exe 檔。
開啟 krkrconf.exe 會出現下面的選擇視窗:

選擇後會出現下面的設定視窗:

1.3.2 設定小圖示:
要設定 .exe 檔的小圖示可在此視窗內進行。
「變更小圖示」打勾後再按右邊的參選,選擇要變更的 .ico 檔案。
.ico 支援的大小分別為 32x32、64x64、128x128。
最後按「OK」即完成設定變更。
2)Reference 介紹
通常人在寫程式時,並不會仔細的將所有的函式及其使用方法記下來,而是當遇上困難時再行查詢;即使是專業的程式工程師,也會在使用不熟的函式時,查詢其用法以確保萬一。
而這些函式與使用方法,通常都會記述在 Reference ( リファレンス ) 之中。
Reference 顧名思義就是在寫程式的參考文件,一般來說,會包括函式庫、說明書、設定,以及各種常數和保留字的一覽;一般來講,程式本身都會附有其版本的參考文件,如果沒有,也可以在網路上查詢。
下載版 Reference 位置:
- KAG3 - kr2_版本編號\kag3\kag3doc
- TJS2 - kr2_版本編號\kirikiri2\tjs2doc
- KRKR2 - kr2_版本編號\kirikiri2\kr2doc
吉里吉里的日文版 Reference 網址:
另外,簡體的版本可以在這裡找到:KCDDP ADV综合创作站
繁體的版本目前尚有人在進行翻譯,完成時本站會另行公告。
使用 Reference 查詢
在查詢 Reference 前,請先確定自己所寫的檔案為 .tjs 或是 .ks ,
在 .ks 中, TJS 式須以 [eval exp="TJS式"] 或 [iscript]TJS式[endscript] 的形式呼叫。
在 .tjs 中想使用KAG指令 ( TAG ) 的話,則可透過 kag.tagHandlers.TAG(%[屬性]) 來進行。
另外,也要注意自己所使用的版本。
過舊的版本,可能會有部分函式無法使用(只有新版才加入該函式的關係)。
查詢單一函式或指令時,可以以場所順キーワード一覧搭配搜尋 ( Ctrl+F ) 來找。
若是要查詢類別 ( Class ) 的使用方法或子成員,
則建議透過クラスリファレンス ( Class Ref ) 的內容來逐一了解。
KAG3的指令 ( TAG ) 表則是記錄在タグリファレンス ( Tag Ref )中。
上一章節所介紹到的附屬工具使用,在付属ツールの使い方內有更詳細的介紹。
另外,一些程式師所做的衍生版本 ( 如 Kagex 或 KageXpress ),
都會有對應的 Reference 附在程式內以供查詢。
【捨丸&KID】NS對話框文字表示(1)
大家好,今天所要講的內容是「如何在對話框裡表示文字」。對話框在AVG中是不可或缺的要件,舉凡人物對話甚至場景描述都會放在對話框裡,那麼要怎麼將想要的文字擺在對話框裡呢?
很簡單,大家還記得上一周的0.txt腳本內容嗎?
;mode800
*define
game
*start
天譴寶寶說你好@
End
這個「天譴寶寶說你好」就已經是在對話框裡了,請回憶一下上一周的介紹:
「*start這個標籤表示開始進入執行區塊。在這個標籤之後都被稱為執行區塊,如果輸入全形文字則會被表示在畫面上」
所謂表示在畫面上通通都是表示在對話框裡,一定有人問那怎麼沒看到框框?很簡單,依照NScripter的慣例,沒有寫就通通用預設。
記得第一回說明的default表嗎?裡面有提到 「文字視窗顏色#999999」。
#999999是RGB code,各利用兩個十六進位的數字來表現紅、綠、藍三個顏色。用肉眼看的話#999999是黑色,而NScripter在沒有載入背景圖的時候是呈現黑色,因此當然看不到囉。
注意,沒有背景跟放一張黑色圖背景是不一樣的,沒有放背景在做動態圖片時可能會留下殘像,這在以後講到比較進階的用法再說明。
那麼@這個符號是做什麼的呢?要測試很簡單,就把@delete掉就好啦,看看少了@會發現什麼事,請看下圖:
嗯?沒有圖啊?當然沒有圖,因為程式只有閃一下就消失了,我手沒這麼快,當然什麼都沒拍到。
@的功用呢,稱為「等待click」,程式進行到這個符號的時候,必須要點一下或按一個鈕才能進行下去。我們現在改一下程式碼:
天譴寶寶說@你好@
或是
天譴寶寶說@
你好@
請看看這兩個情況有什麼不同。
沒錯,一個有換行,一個沒換行,到了執行到@的時候都必須點一下。
在NScripter裡換行有兩種情況,一種是你在腳本裡換行,程式就自動幫你換,另一種是你的句子太長,程式會自動幫你換,用說的不清楚,改成下面程式碼試試(注意不斷行唷):
天譴寶寶說@天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說天譴寶寶說好@
句子太長出現error是很正常的事,讓我們再回想一下default表,其中有一句「橫23文字縱16文字」,這是什麼意思呢?
這表示對話框一行可以塞23個文字,總共有16行,超過這個字數的話就會出現文字超過對話框的error,因此必須換頁。換頁的符號是「\」
天譴寶寶說\你好@
把程式碼改成這個試試看,換頁是比較需要注意的小細節,因為常常有人對話寫得太奔放忘了換頁結果造成error。
再回到@,也許有人會說,那每次句子停頓都要加一個@,不是會累死,是沒錯,因此有個指令叫做clickstr,這個是放在define區的指令,範例如下
;mode800
*define
Clickstr"!?。」",2
game
*start
天譴寶寶說!你好。
天譴寶寶回答:嗄?
End
注意標點符號都要用全形。
Clickstr為命令的本體。「想讓它強制等待click的文字」之內所輸入的全形記號之後會產生強制等待click。因此在範例裡面,「!?。」」會有強制等待click的功能。
「強制行設定數字」「強制改頁行設定數字」為設定到那一行為止執行強制等待click功能,而從那一行開始會變更成等待改頁功能的參數。
為了防止文章超出最大行數而產生error,從最大行數減掉「強制行設定數字」的行數之後,如果出現強制click的文字的話,不會執行強制等待click的功能,而是變成等待改頁功能。
例如:最大行數為16而「強制行設定數字」為2的場合時,出現在1到13行的設定文字會有等待強制click功能,而14到16行的特定文字則是變成等待改頁功能。
雖然強制改頁的功能能夠減輕許多script上的作業時間,但是如果出現超過設定行數以上的長文章,仍然會引起最大行over flow error。
將「強制行設定數字」設定為2,但是超過三行以上都沒有出現強制click的設定文字時,仍會超過最大行數而引起error。
可以利用將過長的文章切為兩半、把設定行數增加、手動輸入改頁控制記號的「\」等方法來處理。
如果在奇怪的地方出現等待click、改頁記號而遇到困難時,可以在記號之前輸入「_」(下橫線)。輸入下橫線的話,在其之後的被設定為強制click的符號會被取消功能。
像是「「咦?」」或是「搞什麼鬼呀!!」這樣連續出現設定文字的時候,只有最後那一個符號會有等待強制click、強制改頁的功能。
範例如下:
天譴寶寶說_!!你好_。。
天譴寶寶回答:嗄?
如果要在句子與句子中間加入空白行呢?
天譴寶寶說!你好。
天譴寶寶回答:嗄?
大家試試看就可以發現這是沒有用的,因為空白行會被視為沒有輸入任何指令,包括換行,正確的指令如下:
天譴寶寶說!你好。
br
br
天譴寶寶回答:嗄?
注意,br是半形,半形是指令,全形是文字。接下來還有一些稍微進階的指令,就等下次再說明囉。