KAGEX1 指令文档
KAGEX1指令文档
Title: 吉里吉里/KAGEX 相关文档 Author: 合資会社ワムソフト 渡邊剛 Translator: VariableD
●吉里吉里/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 同一张图片 focusfocus时的图片省略时则使用与 focus 同一张图片(译注:带focus的按钮俺没有用过,不清楚)
◆slider (新增)
在消息层上设置滑动槽(slider bar)。
属性 expcommit 时执行的 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 同一张图片 focusfocus时的图片省略时则使用与 focus 同一张图片
graphic按钮图片(一起设定) graphickey 按钮图片透明色 x表示位置 y表示位置 hint对按钮的注释(移动到按钮上后显示浮动小说明框) exp按钮按下时执行的 TJS 式 clickse按钮按下时的SE(音效) clicksebuf按钮按下时的SE 使用声道 onenter鼠标移到按钮上时(enter时) 执行的 TJS 式 enterseenter时的 SE entersebufenter时的 SE 使用声道 onleave鼠标从按钮上移开时(leave时) 执行的 TJS 式 leaveseleave时的 SE leavesebufleave时的 SE 使用声道 recthit同一般按钮的属性 enabled系统按钮有效 disabled系统按钮无效 译注:以下两个属性非常有用,然而文档里没有提到,于是自行加上了 ※name 每个系统按钮必须指定的属性,用于区别系统按钮(没有这个属性的话根本就会一直出错……|||) ※noStable 为真时,在“行走中”(例如切换效果中,自动前进中时),按钮也有效,为假时,和普通按钮相同
◆csysbutton (新增)
清除已定义的系统按钮
◆timeout (新增)
当前操作的消息层,增加timeout处理。(制作限时选项等时使用,用在[s]之前)
属性 time 等待玩家选择的限制时间 storage 超时的情况下跳转到的剧本档 target 超时的情况下跳转到的标签
◆click (新功能)
增加在当前消息层点击鼠标左键(click)的处理。可以设定在没有按钮/选项的地方点下左键时,将执行的操作。
属性 storageclick时跳转到的文件名 targetclick时跳转到的标签名 expclick实行时执行的TJS式 cickseclick实行时播放的SE clicksebufclick实行时播放的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 改变时,这个设定自动无效。
属性 storageBGM 播放完后跳转到的剧本档 targetBGM 播放完后跳转到的标签 expBGM 播放完后执行的tjs式
◆clearbgmstop (新命令)
清除 setbgmstop 的设定。
◆setbgmlabel (新命令)
BGM 播放时,播放到BGM内建标记时进行的动作,可登陆多个标签。 BGM 改变时,这个设定自动无效。
属性 name标记名 storage通过标记时跳转到的剧本档 target通过标记时跳转到的标签 exp通过标记时执行的tjs式
◆clearbgmlabel (新命令)
清除 setbgmlabel 的设定。
◇表示系扩张
◆linemode (扩张)
KAG 换行模式的切换。 使用本指令的话,在消息窗口样式的作品中, [l]或[cm]之类的指令,可以省略。
属性 modeline 或者 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情况下,名字标记【名字/表示名】之后是否换行的效果
属性 modetrue 的话,名字标记后的换行无效。false 的话,则会自动换行。
-------------------------------------- 【瑠璃子】くすくす
【瑠璃子】 くすくす --------------------------------------
craftername mode=true 的情况下,以上两个句子的执行效果是一样的。
◆erafterpage(新功能)
[p] 之后自动执行 [er] 指令。
属性 modetrue 的话 [p] 执行之后自动执行 [er] 指令。
注意点 erafterpage为true的话、line mode的自動消去 (下一段文字表示前自动执行[er])将无效。
◆autoindent (新功能)
有效的场合、名字之后有 “「” 或者 “『”的文字段, 自动加入indent(缩进)效果。
属性 modetrue 或者 false
◆autolabelmode (新功能)
设为true的话,执行到 [p] 即自动设定可保存标签。 ※linemode为有效的情况下,linemode自动加入的 [p] 也有同样效果。
这种情况下,由[p]加入的自动标签,已读管理时,并不是单纯记录标签名, 而是以“标签名+距离标签的行数”来记录。(可以理解,因为自动标签的名字只有“autolabel”一个,如果只记录标签名就全乱了……)
属性 modetrue 或 false
注意点: mode之间最好不要进行切换。在first.ks 设定以后 最好就不要再改动了。
autolabelmode的情况下,记录的档案读取时依赖“行数”的设定,因此 假如存档之后,剧本档有改写,即使原来的标签保留着,也未必能保证正确读取。 请注意这一点。
◇选择支功能扩张(新功能)
和 Link 不同的专用选择按钮功能。
◆selopt
选择支用条件初期化
属性 normalbutton normal图象 over button over图象 leftbutton配置领域左上点x topbutton配置领域左上点y widthbutton配置领域宽 heightbutton配置领域高
◆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位置的名字 leftX方向座標 topY方向座標
多个按钮都指定在同一位置的话、 以座標位置为中心,向左右方向延伸并排显示。
◆mseladd
添加地图用选择按钮。
属性 text 选择按钮上显示的文字 (mselopt 里记录的东西) pos 显示的位置 (mse 里记录的东西|估计是说的mselops的name属性,指定时候就用pos=name的形式) storage 选择后跳转到的剧本档 target 选择后跳转到的标签 exp 点下时执行的TJS式
◆mselopt
地图用选择按钮的option指定
属性 interval地图用选择按钮动画样式播放每帧间隔时间 buttonWidth同个位置指定了多个button时,button的间距 enterseenter 時 SE 指定 leaveseleave 時 SE 指定 clickseclick 時 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 扩张
对于
「名字层」
「表情层」
进行的扩展。
◇系统变数的扩张
增加了以下这些特殊用的系统变数
◆动作控制用変数
allskipfalse: 进行skip时只跳已读 true: 进行skip时全部跳过 afterautofalse: 进行选择之后auto状态解除 true: 进行选择之后auto状态继续 afterskipfalse: 进行选择之后skip状态解除 true: 进行选择之后skip状态继续
◆系统设定用变数
textspeed文字速度指定 0~10 (10为瞬间显示) autospeed对话自动前进等待速度 0~10 drawspeed描绘系列描绘速度的调整 1.0:通常 0:瞬間 noeffectdrawspeed 对应的描绘速度效果 true/false 指定 bgmenableBGM 有效/无效 bgmvolumeBGM 的音量 0~100 seenableSE 有效/无效 sevolumeSE 的音量 0~100
◆voice 关联的变数・方法
※这些在只使用 KAGEX 单体的情况下没有意义,只是有这些变数值而已。 必须配合 WORLD 插件的 voice 功能使用。
voiceenablevoice有効 voicevolume voice 的音量 0~100 getVoiceOn(name) 指定名字的角色 voice 有効 getVoiceVolume(name)指定名字的角色 voice 音量取得 setVoiceVolkume(name,vol) 指定名字的角色 voice 音量设定