看板 Tennyleaz
作者 標題 Kag EX 擴充指令
時間 2010年05月26日 Wed. AM 12:22:51
Title: 吉里吉里/KAGEX 相關文檔
Author: 合資會社ワムソフト 渡邊剛
Translator: 全局變量D
●吉里吉里/KAGEX 概要
KAGEX 對吉里吉里/KAG 在 layer 方面進行了大量的機能擴張。
而 KAG 本體的基本功能完整保留。關於 KAG 的詳細說明,
http://devdoc.kikyou.info/tvp/docs/kag3doc/contents/
請參考以上頁面。
●文件夾組成
krkr.exe
吉里吉里主程序
plugin/
插件
※插件文件夾中,實際上需要的是以下兩個文件
layerExImage.dll
wuvorbis.dll
savedata/
存檔文件夾
data/
遊戲資料夾
system/
系統
bgimage/
背景圖片
bgm/
BGM檔
fgimage/
前景圖片
image/
其他圖片
others/
其他檔案
rule/
畫面切換用規則圖片
scenario/
劇本檔
sound/
音效檔
video/
影片文件
startup.tjs
吉里吉里起動文件
envinit.tjs
系統定義文件(KAG技能擴張用)
※遊戲資料夾部分,具體文件是如何放置的並沒有關係。
●擴張技能說明
◇追加層
◆增加特殊層
加入了以下的2層全畫面層。
stage
(舞台層)深度位於背景層之上,前景層之下。
event
(事件層)深度位於前景層之上,消息層之下。
※實際上,前景層由於「水平」這一概念的增加,也可能顯示在事件層之上。
本來的 KAG 系統「背景」即是使用 base 層顯示, base 層由於
吉里吉里本身的設定限制,無法自由移動。
因此,KAGEX 加入了為實現背景捲動效果的特殊層(舞台層)。
此外,為「事件畫面」的顯示方便,前景層之上,增加了專門的事件層。
相比原版的KAG,KAGEX 的層構造變為如下圖所示
-- -- -- -- messages (KAG消息層)
-- -- -- -- layers (KAG前景層:level5~8)
----------- event
-- -- -- -- layers (KAG前景層:level0~4)
----------- stage
----------- base(KAG背景層)
◆前景層追加水平(level)概念
KAG 本來的前景層,是按照其編號決定顯示順位的。
KAGEX 則增加了「level」這一概念,由level單位來決定顯示順位。
・「level」的值越小,則層的顯示順位越低。
・在同一「level」值的層中,可以把層移動到「最前排」「最後排」。
◆layopt (擴張)
stage / event 和前景層一樣,可以用 layopt 指令進行操作。
layopt 指令則增加了以下幾個屬性。
屬性
rotate 角度
zoomx 橫方向放大率
zoomy 縱方向放大率
zoom 放大率
afx 旋轉・放大的原點X坐標 center/left/right
或使用該點距離圖片左上點的相對坐標。
afy 旋轉・放大的原點Y坐標 center/top/bottom
或使用該點距離圖片左上點的相對坐標。
type 合成模式
※http://devdoc.kikyou.info/tvp/docs/kr2doc/contents/index.html
reset 層動作與層屬性的初期化
※opacity 和 type 則重設為圖像讀入時的設定
◆laylevel (新增)
前景層顯示水平設定。
屬性
layer (指定設定的前景層等)
page (省略時默認為 fore)
level 表示 level
表示level:layfront/layback 的分組對象(level值相同的層視為同一組)。
表示level越大,顯示順位越靠前。
◆layfront (新增)
指定層移動到同一level值的所有層中的最前排
屬性
layer (指定設定的前景層等)
page (省略時默認為 fore)
◆layback (新增)
指定層移動到同一level值的所有層中的最後排
屬性
layer (指定設定的前景層等)
page (省略時默認為 fore)
◆clearlayers (新增)
清除所有層內容,停止執行。
屬性
page 的表或裡
◆action (新增)
針對 stage / event 及前景層增加的指令,
設定層的自動動作效果
屬性
layer 指定需要操作的層(前景/stage/event)
page 指定操作的是層的表頁或裡頁
module 動作效果指定
※一些動作效果擁有其獨有的屬性。
具體動作效果的詳細說明,請參考 action.txt。
◆stopaction (新增)
停止指定層的動作。
不指定層的情況下,停止所有層的動作效果。
屬性
layer 指定需要操作的層(前景/stage/event)
page 指定操作的是層的表頁或裡頁
◆wact (新增)
等待指定層的動作效果結束。
不指定層的情況下,等待全部層動作結束。
屬性
layer 指定需要操作的層(前景/stage/event)
page 指定操作的是層的表頁或裡頁
canskip 値 true(默認) 或者 false
true 的情況下可以點擊跳過動畫效果。
◆button (擴張)
可以單獨指定按鈕各個點擊狀態的圖片。
屬性
normal
通常時的圖片
over 鼠標移動到按鈕上時的圖片
省略則使用與 normal 同一張圖片
on
點下鼠標時的圖片
省略則使用與 over 同一張圖片
focus
focus時的圖片
省略時則使用與 focus 同一張圖片(譯註:帶focus的按鈕俺沒有用過,不清楚)
◆slider (新增)
在消息層上設置滑動槽(slider bar)。
屬性
exp
commit 時執行的 TJS 式
bgcolor
背景色
opacity
背景透明度
value
連動變數名。指定後的情況
(1)指定的變數的值,作為滑動槽的初期值
(2)滑動槽移動時,變數相應改變
position
初期值
※onchange
(經實驗似乎未實裝)當滑動槽被拖動時執行的TJS式
※min 指定允許設定的最小值,默認為0
※max 指定允許設定的最大值,默認為100
base
背景畫像名。
指定了背景圖片的情況下, width 和 height 用於設定背景圖片的大小
width
背景寬
height
背景高
tab
滑動按鈕圖片(一起設定) normal / on / over 以此順序排列(譯註:類似普通按鈕的graphic……吧?)
normal
滑動按鈕通常時的圖片(分離)
over
滑動按鈕鼠標移動到按鈕上時的圖片(分離)
on
滑動按鈕點下鼠標時的圖片(分離)
◆sysbutton (新增)
在消息層上( message0 )設置系統按鈕。
屬性
normal
通常時的圖片
over
鼠標移動到按鈕上時的圖片
省略則使用與 normal 同一張圖片
on
點下鼠標時的圖片
省略則使用與 over 同一張圖片
focus
focus時的圖片
省略時則使用與 focus 同一張圖片
graphic
按鈕圖片(一起設定)
graphickey
按鈕圖片透明色
x
表示位置
y
表示位置
hint
對按鈕的註釋(移動到按鈕上後顯示浮動小說明框)
exp
按鈕按下時執行的 TJS 式
clickse
按鈕按下時的SE(音效)
clicksebuf
按鈕按下時的SE 使用聲道
onenter
鼠標移到按鈕上時(enter時) 執行的 TJS 式
enterse
enter時的 SE
entersebuf
enter時的 SE 使用聲道
onleave
鼠標從按鈕上移開時(leave時) 執行的 TJS 式
leavese
leave時的 SE
leavesebuf
leave時的 SE 使用聲道
recthit
同一般按鈕的屬性
enabled
系統按鈕有效
disabled
系統按鈕無效
譯註:以下兩個屬性非常有用,然而文檔裡沒有提到,於是自行加上了
※name 每個系統按鈕必須指定的屬性,用於區別系統按鈕(沒有這個屬性的話根本就會一直出錯……|||)
※noStable 為真時,在「行走中」(例如切換效果中,自動前進中時),按鈕也有效,為假時,和普通按鈕相同
◆csysbutton (新增)
清除已定義的系統按鈕
◆timeout (新增)
當前操作的消息層,增加timeout處理。(製作限時選項等時使用,用在[s]之前)
屬性
time
等待玩家選擇的限制時間
storage
超時的情況下跳轉到的劇本檔
target
超時的情況下跳轉到的標籤
◆click (新功能)
增加在當前消息層點擊鼠標左鍵(click)的處理。可以設定在沒有按鈕/選項的地方點下左鍵時,將執行的操作。
屬性
storage
click時跳轉到的文件名
target
click時跳轉到的標籤名
exp
click實行時執行的TJS式
cickse
click實行時播放的SE
clicksebuf
click實行時播放的SE編號
◆beginskip (新功能)
鼠標點擊的情況下,到 endskip 標誌為止的腳本,將會進行強制略過處理。
beginskip 到 endskip 為止的部分,請不要加入skip相關的操作,因為可能會造成錯誤。
※假如使用jump或其他指令跳到了別的劇本檔,skip將自動解除。
beginskip 不能進行嵌套。
嵌套的話會出現錯誤。
◆endskip (新功能)
表示特殊略過模式的停止標記。
◇Sound Rack 擴張
◆聲音控制全部
音量控制方法
直接指定
KAG 的 [bgmopt] [seopt] 指令,可以直接控制音量大小。
漸變指定
KAG 的 [fadebgm] [fadese] 指令,可以平滑地調整播放中音樂的音量大小。
循環(loop)的控制
請使用吉里吉里的LoopTuner工具。
http://devdoc.kikyou.info/tvp/docs/kr2doc/contents/LoopTuner.html
使用該工具,例如
在 bgm01.ogg 對應的 bgm01.ogg.sli 內,設定循環效果。
製作這樣的循環控制文件。吉里吉里將根據sli文件執行循環效果。
從任意位置開始播放(擴張機能)
(1) 使用LoopTuner在音樂檔中設定標籤
(2) playbgm / playse / fadeinbgm / fadeinse 中,用 start 屬性指定開始播放的標籤
◆playbgm/playse/fadeinbgm/fadeinse (擴張)
從任意位置開始播放
屬性
start 指定開始播放的標籤。使用在LoopTuner中設定的標籤名。
◆fadepausebgm (新命令)
BGM 音量漸小,直到暫停
屬性
time
時間(ms単位)
fadeout 用時,以 ms (毫秒)為單位指定。
例如 time 設為 3000 ,則音樂在 3 秒內淡出。
◆setbgmstop (新命令)
指定BGM 播放完時執行的動作。
BGM 改變時,這個設定自動無效。
屬性
storage
BGM 播放完後跳轉到的劇本檔
target
BGM 播放完後跳轉到的標籤
exp
BGM 播放完後執行的tjs式
◆clearbgmstop (新命令)
清除 setbgmstop 的設定。
◆setbgmlabel (新命令)
BGM 播放時,播放到BGM內建標記時進行的動作,可登陸多個標籤。
BGM 改變時,這個設定自動無效。
屬性
name
標記名
storage
通過標記時跳轉到的劇本檔
target
通過標記時跳轉到的標籤
exp
通過標記時執行的tjs式
◆clearbgmlabel (新命令)
清除 setbgmlabel 的設定。
◇表示系擴張
◆linemode (擴張)
KAG 換行模式的切換。
使用本指令的話,在消息窗口樣式的作品中,
[l]或[cm]之類的指令,可以省略。
屬性
mode
line 或者 page
未指定時,按照 KAG 默認設定。
換行: 在輸入文本時直接使用Enter換行。
空行: 在文本段落間空一行。
可以實現用Enter換行的效果和使用了[r]一樣。
line 的情況:
換行:相當於執行[l](等待)
空行:無視
[p] :通常機能
page 的情況:
換行:[p] +自動消去文字
空行:無視
vn 的情況:
換行:相當於執行[l](等待)
空行:[p] +自動消去文字
tex 的情況:
換行:無視
空行:[p] +自動消去文字
free 的情況:
換行:換行
空行:[p] +自動消去文字
自動消去文字指的是「下一行文本開始顯示時」執行類似 [er] 的效果。
想要實現 [p] 之後即自動消除文字的效果的話、請把 erafterpage 設為true。
此外、linemode為有效的情況下,行頭有
【名字/表示名】
這種形式的記述文字的話,
將自動呼叫顯示名字命令 namedisp(名字,表示名) 。
默認情況下, namedisp 對表示的文字不做任何處理,按原樣顯示。
使用「world擴張插件」的情況,請參考 kag3plugin/world/world.txt 。
◆craftername(新功能)
line mode情況下,名字標記【名字/表示名】之後是否換行的效果
屬性
mode
true 的話,名字標記後的換行無效。false 的話,則會自動換行。
--------------------------------------
【瑠璃子】くすくす
【瑠璃子】
くすくす
--------------------------------------
craftername mode=true 的情況下,以上兩個句子的執行效果是一樣的。
◆erafterpage(新功能)
[p] 之後自動執行 [er] 指令。
屬性
mode
true 的話 [p] 執行之後自動執行 [er] 指令。
注意點
erafterpage為true的話、line mode的自動消去
(下一段文字表示前自動執行[er])將無效。
◆autoindent (新功能)
有效的場合、名字之後有 「「」 或者 「『」的文字段,
自動加入indent(縮進)效果。
屬性
mode
true 或者 false
◆autolabelmode (新功能)
設為true的話,執行到 [p] 即自動設定可保存標籤。
※linemode為有效的情況下,linemode自動加入的 [p] 也有同樣效果。
這種情況下,由[p]加入的自動標籤,已讀管理時,並不是單純記錄標籤名,
而是以「標籤名+距離標籤的行數」來記錄。(可以理解,因為自動標籤的名字只有「autolabel」一個,如果只記錄標籤名就全亂了……)
屬性
mode
true 或 false
注意點:
mode之間最好不要進行切換。在first.ks 設定以後
最好就不要再改動了。
autolabelmode的情況下,記錄的檔案讀取時依賴「行數」的設定,因此
假如存檔之後,劇本檔有改寫,即使原來的標籤保留著,也未必能保證正確讀取。
請注意這一點。
◇選擇支功能擴張(新功能)
和 Link 不同的專用選擇按鈕功能。
◆selopt
選擇支用條件初期化
屬性
normal
button normal圖像
over button over圖像
left
button配置領域左上點x
top
button配置領域左上點y
width
button配置領域寬
height
button配置領域高
◆seladd
添加選擇支
屬性
text 選擇支按鈕上顯示的文字
storage 選擇後跳轉到的劇本檔
target 選擇後跳轉到的標籤
exp 點下時執行的TJS式
依靠變數分歧的情況下請用exp、直接跳轉的情況下請用
storage/target
◆select
選擇處理執行(估計就是等待玩家選擇的指令,相當於[s])
storage/target 指定的情況下、選択處理之後、
跳躍到相應的目標。exp 的情況下, [select] 之後(玩家點選之後)執行 TJS 式。
◆mselinit
地圖選擇按鈕的初期化,將已經登陸的可選地點信息消除。
◆mselbutton
用於地圖選擇的按鈕設定。
屬性
image
圖片指定。
width
圖片橫幅指定(省略可能)
height
圖片縦幅指定(省略可能)
count
圖片動畫樣式指定(height已經指定的話可以省略這個)
地圖選擇的按鈕圖片
縦方向:動畫樣式
橫方向:normal over 的順序聯排
這樣的形式。動畫樣式的數量(幀數?)使用 count 進行指定。
◆mselpos
用於地圖選擇的按鈕位置設定
屬性
name
位置的名字
left
X方向座標
top
Y方向座標
多個按鈕都指定在同一位置的話、
以座標位置為中心,向左右方向延伸並排顯示。
◆mseladd
添加地圖用選擇按鈕。
屬性
text 選擇按鈕上顯示的文字 (mselopt 裡記錄的東西)
pos 顯示的位置 (mse 裡記錄的東西|估計是說的mselops的name屬性,指定時候就用pos=name的形式)
storage 選擇後跳轉到的劇本檔
target 選擇後跳轉到的標籤
exp 點下時執行的TJS式
◆mselopt
地圖用選擇按鈕的option指定
屬性
interval
地圖用選擇按鈕動畫樣式播放每幀間隔時間
buttonWidth
同個位置指定了多個button時,button的間距
enterse
enter 時 SE 指定
leavese
leave 時 SE 指定
clickse
click 時 SE 指定
frame
背景畫像指定(估計是地圖圖像?)
frameKey
frameColor
frameOpacity
◆mselect
選擇處理執行(等待玩家點擊)
◇scene回想機能(新功能)
為實現「scene回想」的輔助指令。
A: 劇本檔中進行指定
1. 希望進行scene回想的部分使用
-------------------
*kaisouBegin數字編號
......
*kaisouEnd數字編號
-------------------
這樣的標籤括起來。
2. recollection 指令指定no(編號)的話就可以進行「scene回想」 。
這種方式、利用了savedata進行回想的保存。
所以、savedata有矛盾的話這個功能也會受影響。
B: 回想用的劇本檔是另外設定的情況下
1. 回想用劇本檔和原本執行的文本不同
在該劇本檔的末尾用 endrecollection 指令
2. recoillection 指令中指定 storage/target 呼叫回想用劇本檔
◆recollection
呼叫回想處理。 (效果和 kag.startRecollection(elm) 等價)
呼叫成功的話就無法返回,請注意。(估計是說效果等於是跳轉,而不是call)
no 呼叫回想的情況下,必須通過 *kaisouBegin番號
才能有效果。以確認 system flag(系統變量)的
trail_劇本檔名_*kaisouBegin數字編號是否為真為標準。
這種情況下,執行到 *kaisouEnd數字編號 的標籤則回想結束。
不指定 no 的情況下,指定 storage/target 也可以。這種情況下、
endrecollection 命令標記回想結束。
屬性
no 回想番號
storage 回想用劇本檔
target 回想用標籤
doneStorage 回想終了後跳轉到的劇本檔
doneTarget 回想終了後跳轉到的標籤
回想處理中は…
・kag.isRecollection 為 true
・禁止存儲相關的動作
・照常進行已讀記錄等
◆endrecollection
回想處理結束。
recollection 結束,轉到結束處理。
◆stoprecollection
回想處理強制停止。
回想狀態解除。
◇ askYesNo 函數樣式變更
askYesNo 相關大量更改。
這是為了能在 KAG 裡進行調用而做的修改,請注意。
過去的askYesNo函數:
askYesNo(message, title)
在對話框關閉前禁止一切TJS式執行,並且返回選擇結果YES/NO。
新的askYesNo函數:
askYesNo(message, title, yesFunc, noFunc, param, doneFunc);
yesFunc : YES 的情況下執行的函數
noFunc : NO 的情況下執行的函數
param : 傳遞給各種function的param(參數)
doneFunc : 無論 yes 的情況或 no 的情況均執行的函數
返回值:無
注意點:
執行後正常返回應該是「可能」的、這只是假想,
需要實際測試驗證。
◇layer dialogue 拡張
樣式未確定,因此詳細情況不公開(估計這就是傳說中的圖片對話框!!!)
◇MessageWindow 拡張
對於
「名字層」
「表情層」
進行的擴展。
◇系統變數的擴張
增加了以下這些特殊用的系統變數
◆動作控制用変數
allskip
false: 進行skip時只跳已讀 true: 進行skip時全部跳過
afterauto
false: 進行選擇之後auto狀態解除 true: 進行選擇之後auto狀態繼續
afterskip
false: 進行選擇之後skip狀態解除 true: 進行選擇之後skip狀態繼續
◆系統設定用變數
textspeed
文字速度指定 0~10 (10為瞬間顯示)
autospeed
對話自動前進等待速度 0~10
drawspeed
描繪系列描繪速度的調整 1.0:通常 0:瞬間
noeffect
drawspeed 對應的描繪速度效果 true/false 指定
bgmenable
BGM 有效/無效
bgmvolume
BGM 的音量 0~100
seenable
SE 有效/無效
sevolume
SE 的音量 0~100
◆voice 關聯的變數・方法
※這些在只使用 KAGEX 単體的情況下沒有意義,只是有這些變數值而已。
必須配合 WORLD 插件的 voice 功能使用。
voiceenable
voice有効
voicevolume
voice 的音量 0~100
getVoiceOn(name)
指定名字的角色 voice 有効
getVoiceVolume(name) 指定名字的角色 voice 音量取得
setVoiceVolkume(name,vol) 指定名字的角色 voice 音量設定
--
※ 來源: DISP BBS 看板: Tennyleaz 文章連結: http://disp.cc/b/98-2Gv
※ 作者: Tennyleaz 來自: 140.113.138.26 時間: 2010-05-26 00:22:51
※ 看板: Tennyleaz 文章推薦值: 0 目前人氣: 0 累積人氣: 739
回列表(←)
分享