NVLMaker
NVL界面数据说明(一)基础设定
(零)整体结构说明
(1)文件列表
下表列出了NVLMaker中界面数据文件的名字和它们对应的界面。
除了namelist是数组之外,其他的主结构都是字典,一个固定的name对应一个控件。
比较简单的控件例如“界面背景图”,name就是bgd,value就只有一个string,存储图片名。
比较复杂的控件例如“按钮”,name是代表它固定的功能,例如标题界面的start代表开始游戏按钮,它的value则是一个字典。
数据文件 |
对应界面 |
uititle |
标题画面 |
setting |
基础设定 |
uidia |
对话界面(主界面) |
uimenu |
主选单界面 |
uioption |
系统设置界面 |
uihistory |
对话回顾界面 |
namelist |
人物姓名、简称及对应颜色列表 |
uisave |
保存游戏界面图素 |
uiload |
读取游戏界面图素 |
uislpos |
保存、读取游戏界面排版 |
(2)按钮控件的结构
所有类型为按钮的控件都有如下同样的参数。
请注意有些参数(例如enterse)并不强制用户填写,因此希望这部分能做到值为""或者不存在这个name时也不报错。
另外涉及坐标、边距的参数,大部分情况下应该是int,但有时候没转好也可能会是string,希望能自动转换。
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状态时播放的音效 |
(3)滑动槽控件的结构
所有类型为滑动槽的控件都有如下参数。
name |
type |
说明 |
use |
bool |
0代表隐藏(不使用该功能),1代表显示 |
x |
int |
坐标x |
y |
int |
坐标y |
base |
string |
滑动槽底部图,用于展示滑动槽的长度 |
normal |
string |
滑动按钮一般状态 |
over |
string |
滑动按钮over状态 |
on |
string |
滑动按钮click/drag状态 |
(一)标题画面uititle
(1)控件
name |
type |
说明 |
logo |
string |
游戏一开始显示的小组标志图片 |
bgd |
string |
标题画面背景图 |
front |
string |
标题画面前景图片(非必要,该name可能不存在) |
bgm |
string |
标题画面播放的背景音乐 |
(2)按钮
name |
type |
说明 |
start |
按钮 |
开始游戏 |
load |
按钮 |
打开读取进度界面 |
exit |
按钮 |
离开游戏 |
option |
按钮 |
打开系统设定界面 |
extra |
按钮 |
连接到玩家自定义脚本title_other.ks |
omake |
按钮 |
打开CG一览界面 |
(3)其他
以下为标题画面时播放的默认粒子效果,就先忽略吧。
name |
type |
说明 |
rain |
bool |
下雨效果,0为不使用,1为使用,下同 |
snow |
bool |
下雪效果 |
sakura |
bool |
樱花飘落效果 |
momiji |
bool |
红叶飘落效果 |
movie |
bool |
旧电影效果 |
firefly |
bool |
萤火虫光点飘荡效果 |
(二)基础设定setting
(1)控件
基础设定包含的内容大部分是为了NVL编辑器读取方便,因此大部分数据和KRKR的Config.tjs相同。
但以下是比较特殊的内容需要读取,就是选择按钮的设定。
选择按钮包括两个部分,一个是按钮图片,一个是上面由玩家指定的选项文字。
name |
type |
说明 |
selbutton |
dict |
选项按钮的默认外观、音效 |
selfont |
dict |
选择按钮的默认字体颜色、字号设定 |
name |
type |
说明 |
normal |
string |
按钮-一般状态下的图片 |
over |
string |
按钮-hover状态下的图片 |
on |
string |
按钮-click状态下的图片 |
enterse |
string |
按钮-hover状态时播放的音效 |
clickse |
string |
按钮-click状态时播放的音效 |
②selfont结构
name |
type |
说明 |
normal |
string |
按钮-一般状态下的文字颜色,为KRKR格式的0x000000,下同 |
over |
string |
按钮-hover状态下的文字颜色 |
on |
string |
按钮-click状态下的文字颜色 |
read |
string |
按钮-既读文字颜色,指当玩家选过一次这个选项之后,按钮一般状态时会使用这个颜色代替normal的颜色 |
height |
string |
文字字号,同样也是应该是int但是保存的是string |
(三)对话画面uidia
就是进入游戏以后的画面,三种类型的文字框和头像位置、以及系统按钮都在这里设定。
(1)控件
name |
type |
说明 |
dia |
文字框 |
文字框1,可使用dia指令设定并显示,三种文字框共用message0层,所以同时只会出现一种 |
scr |
文字框 |
文字框2 |
blank |
透明文字框 |
特殊文字框 |
face |
头像 |
记录人物头像显示的坐标,请注意这里的坐标记录的是头像图的底边中点位置,而非通常的左上角坐标 |
①文字框dia/scr控件结构
name |
type |
说明 |
left |
int |
左上点横坐标,注意这里是left/top不是x/y |
top |
int |
左上点纵坐标 |
frame |
string |
文字框图片名 |
marginl |
int |
左边距 |
marginr |
int |
右边距 |
margint |
int |
上边距 |
marginb |
int |
下边距 |
②透明文字框blank控件结构
透明文字框无需指定坐标和图片,所以只有以下四个参数:
name |
type |
说明 |
marginl |
int |
左边距 |
marginr |
int |
右边距 |
margint |
int |
上边距 |
marginb |
int |
下边距 |
③头像face控件结构
再次提醒,这个地方记录的是头像图的底边中点位置,而非通常的左上角坐标,
这样可以保证用户调用头像图片时不管图片本身的大小都能显示在正确位置。
name |
type |
说明 |
left |
int |
左上点横坐标,注意这里是left/top不是x/y |
top |
int |
左上点纵坐标 |
(2)按钮
此处的按钮其实是系统按钮sysbutton,功能不同,但控件结构和button相同。
name |
type |
说明 |
save |
按钮 |
打开保存游戏界面 |
load |
按钮 |
打开读取进度界面 |
option |
按钮 |
打开系统设定界面 |
history |
按钮 |
打开对话回顾界面 |
menu |
按钮 |
打开主选单 |
auto |
按钮 |
游戏对话自动前进 |
skip |
按钮 |
游戏对话框快速略过 |
hide |
按钮 |
隐藏对话框,相当于对话画面上点右键的效果 |
other |
按钮 |
连接到玩家自定义脚本other.ks |
从系统按钮menu可以连接到这个界面,非常简单,比标题画面还简单。
(1)控件&按钮
name |
type |
说明 |
bgd |
string |
主选单背景图 |
save |
按钮 |
打开保存游戏界面 |
load |
按钮 |
打开读取进度界面 |
option |
按钮 |
打开系统设定界面 |
history |
按钮 |
打开对话回顾界面 |
totitle |
按钮 |
返回标题 |
exit |
按钮 |
结束游戏 |
back |
按钮 |
返回对话界面,与在此界面按右键功能相同 |
other |
按钮 |
连接到玩家自定义脚本other.ks |
(五)系统设置界面uioption
调整音量、文字速度等的界面。控件滑动槽只在此界面用到。
(1)控件
name |
type |
说明 |
bgd |
string |
界面背景图 |
textspeed |
滑动槽 |
调整文字显示速度 |
autospeed |
滑动槽 |
调整文字自动前进速度 |
bgmvolume |
滑动槽 |
调整音乐音量 |
sevolume |
滑动槽 |
调整音效音量(se buf=0) |
cvvolume |
滑动槽 |
调整语音音量(se buf=1) |
(2)按钮
name |
type |
说明 |
totitle |
按钮 |
返回标题 |
endgame |
按钮 |
结束游戏 |
reset |
按钮 |
所有设定恢复默认值 |
back |
按钮 |
返回之前界面,与在此界面按右键功能相同 |
(3)单选互斥按钮
以下四个按钮所需参数和其他按钮完全相同,但在游戏中表现时,显示为互斥。
即“当某个按钮被按下后,它将显示为over状态,同时点击该按钮不会发生任何效果”。
name |
type |
说明 |
window |
按钮 |
窗口化显示游戏 |
fullscreen |
按钮 |
全屏化显示游戏 |
allskip |
按钮 |
快速略过时,跳过全部对话 |
readskip |
按钮 |
快速略过时,只跳过已读对话 |
(六)对话回顾界面uihistory
这个界面里面也有一些参数和Config.tjs是相同的,因此需要读取的是以下这些。
(1)控件
name |
type |
说明 |
bgd |
string |
界面背景图 |
marginl |
int |
左边距,它和以下三个值划定了历史记录的文字显示范围 |
marginr |
int |
右边距 |
margint |
int |
上边距 |
marginb |
int |
下边距 |
slider |
滚动条 |
可通过拖动该滚动条来翻页,其实应该叫scroll的但是写错名字了(喂 |
up |
按钮 |
向上翻页 |
down |
按钮 |
向下翻页 |
back |
按钮 |
返回之前界面,与在此界面按右键功能相同 |
和滑动槽不同,滚动条的长、宽用来决定滚动按钮的位置,具体外观效果直接做到bgd内了。
name |
type |
说明 |
use |
bool |
0代表隐藏(不使用该功能),1代表显示 |
width |
int |
滚动条宽度 |
height |
int |
滚动条长度 |
normal |
string |
滚动条上面标记当前位置和用于拖动的按钮一般状态下的图片 |
over |
string |
按钮hover/drag状态下的图片 |
(七)主要人物名字列表namelist
人名列表是一个array,默认具有“主角”和“默认”两行。
“主角”为第一行,当使用 @主角 时,显示的是f.姓+f.名的值,同时取得这一行的color记录的值。
“默认”为第二行,只记录颜色(没有tag这个参数),为非重要角色的人物名颜色。
当使用 @npc id="路人甲"且未指定姓名颜色时,会调用这个颜色。
这个列表的作用是对应生成人物姓名宏,让游戏里在使用 @人物名 时,能够显示格式为【人物全名】的、特殊颜色的文字。
(1)一个人物名的结构
name |
type |
说明 |
tag |
string |
人物简称,也就是对应的TAG名,例如:马克思 |
name |
string |
游戏中显示的全名,例如:卡尔·海因里希·马克思 |
color |
color |
人物名字的颜色代码,这个颜色在对话和对话回顾部分都会表现出来 |
(八)其他
由于保存、读取部分界面比较复杂,新开一个文档说明。
由于CG一览界面涉及读取其他数据,新开一个文档说明。