NVL Maker 是一款基于吉里吉里/KAG 开发的免费开源视觉小说制作工具。本文档将系统性地介绍 NVL Maker 的核心系统变量、脚本指令以及各类界面数据的配置方法,帮助你从入门到精通掌握这款工具。
一、系统变量参考(nvlflag)
游戏运行时使用了大量系统变量来记录状态和控制行为。了解这些变量的作用,可以避免在自定义脚本时发生命名冲突。
1.1 系统初始化参数
| 变量名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| sf.初始化 | Boolean | false | 第一次执行游戏且所有数值初始化完毕后,该值被设为 true |
| sf.语音初始化 | Boolean | 0 | 音量相关系统数值初始化完毕后,该值被设为 1 |
| sf.cglist | Dictionary | %[] | 登录CG时,将对应CG名的值设为1,可通过 sf.cglist['图片名'] 判断CG是否已登录 |
| sf.历史 | Array | [] | 每个存档对应的最后一句对话,例如存档0对应 sf.历史[0] |
| sf.最近存储页 | Int | 1 | 存档/读取界面自动翻到上次打开的页面 |
1.2 游戏运行参数
| 变量名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| kag.allskip | Boolean | false | true=跳过全部,false=只跳过已读 |
| kag.textspeed | Int | 5 | 跳字速度,范围0-10,10为最快 |
| kag.autospeed | Int | 5 | 自动前进速度,范围0-10,10为最快 |
| kag.bgmvolume | Int | 50 | 音乐音量 |
| kag.sevolume | Int | 100 | 音效总音量(包括一般音效和语音) |
| sf.sevolume | Int | 50 | 音效音量(因 kag.se[0].volume 不会被保存而额外设置) |
| sf.voicevolume | Int | 50 | 语音音量(因 kag.se[1].volume 不会被保存而额外设置) |
1.3 界面配置文件
NVL Maker 的各类界面配置存储在 macro 文件夹下的配置文件中:
| 变量名 | 文件 | 对应界面 |
|---|---|---|
| f.setting | setting.tjs | 选项按钮 |
| f.config_title | uititle.tjs | 标题画面 |
| f.config_dia | uidia.tjs | 对话界面 |
| f.config_menu | uimenu.tjs | 主选单 |
| f.config_slpos | uislpos.tjs | 存储/读取系统排版 |
| f.config_option | uioption.tjs | 系统设置界面 |
| f.config_history | uihistory.tjs | 历史记录界面 |
| f.config_name | namelist.tjs | 主要人物姓名及颜色代码 |
| f.config_save | uisave.tjs | 存储系统图片 |
| f.config_load | uiload.tjs | 读取系统图片 |
| f.config_cgmode | uicgmode.tjs | CG鉴赏界面 |
命名提示:为自己创建变量时,请避开以上系统已使用的变量名。
二、脚本指令参考(nvltag)
NVL Maker 的脚本指令基于 KAG 语法扩展。以下列出最常用的图形化指令。
2.1 通用参数
切换效果参数(trans 相关):
| 参数 | 值 | 说明 |
|---|---|---|
| time | 毫秒数 | 切换时间,不同指令有不同默认值 |
| canskip | true/false | 效果是否可点击跳过,默认 true |
| method | ①~⑩ | 切换效果:①crossfade(淡入)、②universal(遮片)、③turn(翻页)、④wave(波纹)、⑤ripple(水面涟漪)、⑥scroll(卷动)、⑦mosaic(马赛克)、⑧rotateswap(旋转切换)、⑨rotatezoom(旋转缩放)、⑩rotatevanish(旋转消失) |
| rule | 图片名 | 遮片图,method 为 universal 时使用 |
| from | left/right/top/bottom | 切换方向,method 为 scroll 时使用 |
| stay | nostay/stayback/stayfore | 原图是否停留,method 为 scroll 时使用 |
图层参数(layer 相关):
| 参数 | 值 | 说明 |
|---|---|---|
| layer | stage/base | 背景层 |
| layer | all | 全部前景图层(0-8) |
| layer | 0-7 | 立绘层 |
| layer | 8 | 头像层 |
| page | fore | 表页(默认) |
| page | back | 里页 |
2.2 图像操作指令
(1)显示背景 @bg
| 参数 | 是否必须/默认值 | 说明 |
|---|---|---|
| time | 默认700 | 显示效果切换时间 |
| storage | 必须 | 背景图片名 |
| clfg | false | 同时消除所有前景层 |
| hidemes | false | 同时消除对话框及系统按钮 |
| convert | false | 图片反色效果 |
| grayscale | false | 图片去色效果 |
| mcolor | — | 蒙版色 |
| mopacity | — | 蒙版色透明度 |
(2)显示人物 @fg
| 参数 | 是否必须/默认值 | 说明 |
|---|---|---|
| time | 默认500 | 显示效果切换时间 |
| storage | 必须 | 人物图片名 |
| layer | 0 | 显示人物的图层编号 |
| pos | left/center/right | 人物显示位置 |
| left | — | 直接指定横坐标(pos为空时生效) |
| top | — | 直接指定纵坐标(pos为空时生效) |
| opacity | — | 图片透明度 |
(3)显示头像 @face
| 参数 | 是否必须/默认值 | 说明 |
|---|---|---|
| time | 默认100 | 显示效果切换时间 |
| storage | 必须 | 头像图片名 |
| opacity | — | 图片透明度 |
| fg | — | 同时显示人物立绘(自动取得指定图层坐标) |
| layer | 0 | 同时显示立绘所用的图层 |
(4)消除背景 @clbg
| 参数 | 是否必须/默认值 | 说明 |
|---|---|---|
| time | 默认700 | 消除效果切换时间 |
| clfg | false | 同时消除所有前景层 |
| hidemes | false | 同时消除对话框及系统按钮 |
(5)消除人物 @clfg
| 参数 | 是否必须/默认值 | 说明 |
|---|---|---|
| time | 默认500 | 消除效果切换时间 |
| layer | 0 | 可选 0~8 或 all |
| clface | false | 是否同时消除头像 |
三、界面数据说明(nvluidata 1-5)
NVL Maker 的界面通过配置文件进行高度定制。大部分配置文件是字典结构,一个 name 对应一个控件。
3.1 基础设定(nvluidata1)
文件列表
| 数据文件 | 对应界面 |
|---|---|
| uititle | 标题画面 |
| setting | 基础设定 |
| uidia | 对话界面(主界面) |
| uimenu | 主选单界面 |
| uioption | 系统设置界面 |
| uihistory | 对话回顾界面 |
| namelist | 人物姓名、简称及颜色列表 |
| uisave | 保存游戏界面图素 |
| uiload | 读取游戏界面图素 |
| uislpos | 保存/读取游戏界面排版 |
按钮控件通用结构
所有按钮控件都包含以下参数:
| name | type | 说明 |
|---|---|---|
| use | bool | 0=隐藏,1=显示 |
| x | int | 按钮坐标 x |
| y | int | 按钮坐标 y |
| normal | string | 一般状态图片 |
| over | string | hover 状态图片 |
| on | string | click 状态图片 |
| enterse | string | hover 时播放的音效 |
| clickse | string | click 时播放的音效 |
滑动槽控件通用结构
| name | type | 说明 |
|---|---|---|
| use | bool | 0=隐藏,1=显示 |
| x | int | 坐标 x |
| y | int | 坐标 y |
| base | string | 滑动槽底部图 |
| normal | string | 滑动按钮一般状态 |
| over | string | 滑动按钮 over 状态 |
| on | string | 滑动按钮 click/drag 状态 |
标题画面(uititle)控件
| name | type | 说明 |
|---|---|---|
| logo | string | 小组标志图片 |
| bgd | string | 标题画面背景图 |
| front | string | 标题画面前景图(非必要) |
| bgm | string | 标题画面背景音乐 |
标题画面按钮:start(开始游戏)、load(读取进度)、exit(离开游戏)、option(系统设定)、extra(自定义脚本)、omake(CG一览)
粒子效果:rain(下雨)、snow(下雪)、sakura(樱花)、momiji(红叶)、movie(旧电影)、firefly(萤火虫)
基础设定(setting)
| name | type | 说明 |
|---|---|---|
| selbutton | dict | 选项按钮的默认外观和音效 |
| selfont | dict | 选项按钮的默认字体颜色和字号 |
3.2 保存与读取界面(nvluidata2)
保存和读取界面共用同一套排版(uislpos),但使用不同的图片和颜色配置(uisave / uiload)。
uisave / uiload 控件
| name | type | 说明 |
|---|---|---|
| bgd | string | 背景图片 |
| lastsavemark | string | 最近保存档案旁的标记图片 |
| button | 按钮* | 存档栏位按钮 |
| back | 按钮* | 返回按钮 |
| up | 按钮* | 向前翻页 |
| down | 按钮* | 向后翻页 |
存取界面的按钮没有 x/y 坐标参数,坐标由 uislpos 控制。
颜色组
| name | type | 说明 |
|---|---|---|
| num | 颜色组 | 存档按钮编号的颜色 |
| date | 颜色组 | 存档日期颜色 |
| bookmark | 颜色组 | 书签名颜色 |
| history | 颜色组 | 最近一句对话记录颜色 |
| draw | 特殊颜色组 | hover 时显示的额外信息颜色 |
颜色组结构:normal(一般状态)、over(hover状态)、on(click状态)
draw 颜色组:talk(对话记录)、bookmark(书签名)、date(日期)
uislpos 排版配置
| name | type | 说明 |
|---|---|---|
| pagefont | 文字设置组 | 全页面文字设定(粗体、斜体、阴影、描边等) |
| snapshot | 特殊设置组 | hover 时显示的截图设置 |
| drawmark | 特殊设置组 | hover 时显示的书签名 |
| drawdate | 特殊设置组 | hover 时显示的日期 |
| drawtalk | 特殊设置组 | hover 时显示的最近对话 |
3.3 CG一览模式(nvluidata3)
CG 一览界面包含以下控件:
| name | type | 说明 |
|---|---|---|
| bgd | string | CG界面背景图 |
| up | 按钮 | 向前翻页 |
| down | 按钮 | 向后翻页 |
| back | 按钮 | 返回上层 |
| locate | array | CG栏位位置 |
| thum | dictionary | CG缩略图按钮效果 |
locate 定位:locate[0][0] 代表第一个CG栏的 x 坐标,locate[0][1] 代表 y 坐标,以此类推。
thum 缩略图:实际只读取 thum.normal 的值,用于决定缩略图大小和hover/click时的叠加效果。
CG列表配置(cglist.txt)
CG1_1,CG1_2,CG1_3 CG2 CG3_1,CG3_2 CG4 CG5 ....
每行代表一个CG栏位,同一行的多个文件名用逗号隔开表示差分。
CG收集机制
一张CG要出现在CG一览中,必须满足:
-
该CG在 cglist.txt 中,且是某行的第一张图
-
在剧情脚本中使用 “登录CG” 功能登录过(将CG名存入
sf.cglist)
例如登录CG “abc”:sf.cglist.abc = true
点击CG小图时,会按顺序显示该行的所有已登录差分,鼠标点击切换下一张。
3.4 地图面板(nvluidata4)
地图数据存储在 .map 文件中,内容为 TJS 数组。整个数组有 16 个元素:array[0] 设定背景板,array[1] 到 array[15] 设定按钮。
array[0] 背景设定
| name | 类型 | 说明 |
|---|---|---|
| bgd | string | 地图背景图片 |
| normal | string | 默认按钮一般状态图片 |
| over | string | 默认按钮 hover 状态图片 |
| on | string | 默认按钮 click 状态图片 |
array[1]-array[15] 按钮设定
| name | 类型 | 说明 |
|---|---|---|
| use | bool | 0=隐藏,1=显示 |
| x | int | 按钮坐标 x |
| y | int | 按钮坐标 y |
| place | string | 编辑界面显示的按钮名(注释用) |
| normal/over/on | string | 按钮三态图片 |
| enterse/clickse | string | 音效 |
| storage | string | 跳转的脚本文件 |
| target | string | 跳转的脚本标签 |
| exp | string | 点击后执行的 TJS 式 |
| cond | string | 按钮出现的条件 TJS 式 |
| onenter | string | 鼠标移入时执行的 TJS 式 |
| onleave | string | 鼠标离开时执行的 TJS 式 |
关于 cond 条件:cond 为空时,只要 use==1 按钮即显示;cond 有值时,需满足条件才显示,如 "(sf.结局A==1)"。
3.5 养成面板(nvluidata5)
养成数据存储在 .edu 文件中,内容为 TJS 数组。整个数组有 31 个元素:
-
array[0]:背景板设定 -
array[1]到array[10]:按钮(10个) -
array[11]到array[20]:文字(10个) -
array[21]到array[30]:图片(10个)
array[0] 背景设定
| name | 类型 | 说明 |
|---|---|---|
| bgd | string | 背景图片 |
| normal/over/on | string | 默认按钮三态图片 |
| num | string | 图片数字的默认前缀 |
| space | int | 图片数字的默认间隔 |
array[1]-array[10] 按钮
与地图面板按钮结构完全相同(参见 3.4 节)。
array[11]-array[20] 文字
使用 ptext 指令描绘,支持 \n 换行。
| name | 类型 | 说明 |
|---|---|---|
| use | bool | 0=隐藏,1=显示 |
| cond | string | 显示条件 TJS 式 |
| x/y | int | 坐标 |
| name | string | 编辑界面显示的名称(注释用) |
| flagname | string | 具体文字或 TJS 式(如 “提示:” 或 “f.姓+f.名”) |
| fontname | string | 字体名 |
| size | int | 文字大小 |
| lineheight | int | 每行高度(支持多行时使用) |
| color | color | 文字颜色 |
| bold/shadow/edge | bool | 粗体/阴影/描边 |
| shadowcolor/edgecolor | color | 阴影色/描边色 |
array[21]-array[30] 图片
| name | 类型 | 说明 |
|---|---|---|
| use | bool | 0=隐藏,1=显示 |
| cond | string | 显示条件 TJS 式 |
| x/y | int | 坐标 |
| name | string | 编辑界面显示的名称(注释用) |
| pic | string | 固定图片名(flagname 为空时使用) |
| flagname | string | 变数名或 TJS 式 |
| num | string | 图片数字前缀 |
| space | int | 图片数字间隔 |
四、实用技巧总结
4.1 变量命名规范
创建自定义变量时,务必避开系统变量名(sf.xxx、kag.xxx、f.xxx 等),以免造成冲突。
4.2 CG 小图优化
系统会自动缩放原图作为 CG 小图。如果存在 xxx_thum.png 格式的图片,会优先使用该图,避免缩放失真。
4.3 条件显示
在地图和养成面板中,通过 cond 参数可以实现按钮/文字/图片的条件显示,常用于根据游戏进度解锁不同内容。
4.4 动态文字
养成面板的文字控件支持 TJS 式,可以显示变量内容。例如 flagname: "f.姓+f.名" 会动态显示玩家设定的姓名。
4.5 存档缩略图
在 uislpos 中配置 snapshot 可以实现鼠标悬停时显示存档截图,提升用户体验。
以上即 NVL Maker 核心系统变量、脚本指令与界面数据的完整参考。建议在实际开发中结合官方示例和本文档进行实践,逐步掌握各项功能的使用方法。如有疑问,可访问 THE NVL Maker 官网 获取更多资源。




评论0