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 音量设定
[
本帖最后由 波斯拖鞋 于 2009-8-6 16:01 编辑 ]