KAGEX1 指令文档

优质
小牛编辑
157浏览
2023-12-01

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 音量设定