Tags: 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,希望能自动转换。

nametype说明
usebool0代表隐藏(不使用该功能),1代表显示
xint按钮坐标x
yint按钮坐标y
normalstring按钮-一般状态下的图片
overstring按钮-hover状态下的图片
onstring按钮-click状态下的图片
entersestring按钮-hover状态时播放的音效
clicksestring按钮-click状态时播放的音效

##(3)滑动槽控件的结构 所有类型为滑动槽的控件都有如下参数。

nametype说明
usebool0代表隐藏(不使用该功能),1代表显示
xint坐标x
yint坐标y
basestring滑动槽底部图,用于展示滑动槽的长度
normalstring滑动按钮一般状态
overstring滑动按钮over状态
onstring滑动按钮click/drag状态

#(一)标题画面uititle

##(1)控件

nametype说明
logostring游戏一开始显示的小组标志图片
bgdstring标题画面背景图
frontstring标题画面前景图片(非必要,该name可能不存在)
bgmstring标题画面播放的背景音乐

##(2)按钮

nametype说明
start按钮开始游戏
load按钮打开读取进度界面
exit按钮离开游戏
option按钮打开系统设定界面
extra按钮连接到玩家自定义脚本title_other.ks
omake按钮打开CG一览界面

##(3)其他 以下为标题画面时播放的默认粒子效果,就先忽略吧。

nametype说明
rainbool下雨效果,0为不使用,1为使用,下同
snowbool下雪效果
sakurabool樱花飘落效果
momijibool红叶飘落效果
moviebool旧电影效果
fireflybool萤火虫光点飘荡效果

#(二)基础设定setting

##(1)控件 基础设定包含的内容大部分是为了NVL编辑器读取方便,因此大部分数据和KRKR的Config.tjs相同。 但以下是比较特殊的内容需要读取,就是选择按钮的设定。 选择按钮包括两个部分,一个是按钮图片,一个是上面由玩家指定的选项文字。

nametype说明
selbuttondict选项按钮的默认外观、音效
selfontdict选择按钮的默认字体颜色、字号设定

###①selbutton结构

nametype说明
normalstring按钮-一般状态下的图片
overstring按钮-hover状态下的图片
onstring按钮-click状态下的图片
entersestring按钮-hover状态时播放的音效
clicksestring按钮-click状态时播放的音效

###②selfont结构

nametype说明
normalstring按钮-一般状态下的文字颜色,为KRKR格式的0x000000,下同
overstring按钮-hover状态下的文字颜色
onstring按钮-click状态下的文字颜色
readstring按钮-既读文字颜色,指当玩家选过一次这个选项之后,按钮一般状态时会使用这个颜色代替normal的颜色
heightstring文字字号,同样也是应该是int但是保存的是string

#(三)对话画面uidia

就是进入游戏以后的画面,三种类型的文字框和头像位置、以及系统按钮都在这里设定。

##(1)控件

nametype说明
dia文字框文字框1,可使用dia指令设定并显示,三种文字框共用message0层,所以同时只会出现一种
scr文字框文字框2
blank透明文字框特殊文字框
face头像记录人物头像显示的坐标,请注意这里的坐标记录的是头像图的底边中点位置,而非通常的左上角坐标

###①文字框dia/scr控件结构

nametype说明
leftint左上点横坐标,注意这里是left/top不是x/y
topint左上点纵坐标
framestring文字框图片名
marginlint左边距
marginrint右边距
margintint上边距
marginbint下边距

###②透明文字框blank控件结构

透明文字框无需指定坐标和图片,所以只有以下四个参数:

nametype说明
marginlint左边距
marginrint右边距
margintint上边距
marginbint下边距

###③头像face控件结构 再次提醒,这个地方记录的是头像图的底边中点位置,而非通常的左上角坐标, 这样可以保证用户调用头像图片时不管图片本身的大小都能显示在正确位置。

nametype说明
leftint左上点横坐标,注意这里是left/top不是x/y
topint左上点纵坐标

##(2)按钮 此处的按钮其实是系统按钮sysbutton,功能不同,但控件结构和button相同。

nametype说明
save按钮打开保存游戏界面
load按钮打开读取进度界面
option按钮打开系统设定界面
history按钮打开对话回顾界面
menu按钮打开主选单
auto按钮游戏对话自动前进
skip按钮游戏对话框快速略过
hide按钮隐藏对话框,相当于对话画面上点右键的效果
other按钮连接到玩家自定义脚本other.ks

#(四)主选单界面uimenu 从系统按钮menu可以连接到这个界面,非常简单,比标题画面还简单。

##(1)控件&按钮

nametype说明
bgdstring主选单背景图
save按钮打开保存游戏界面
load按钮打开读取进度界面
option按钮打开系统设定界面
history按钮打开对话回顾界面
totitle按钮返回标题
exit按钮结束游戏
back按钮返回对话界面,与在此界面按右键功能相同
other按钮连接到玩家自定义脚本other.ks

#(五)系统设置界面uioption

调整音量、文字速度等的界面。控件滑动槽只在此界面用到。

##(1)控件

nametype说明
bgdstring界面背景图
textspeed滑动槽调整文字显示速度
autospeed滑动槽调整文字自动前进速度
bgmvolume滑动槽调整音乐音量
sevolume滑动槽调整音效音量(se buf=0)
cvvolume滑动槽调整语音音量(se buf=1)

##(2)按钮

nametype说明
totitle按钮返回标题
endgame按钮结束游戏
reset按钮所有设定恢复默认值
back按钮返回之前界面,与在此界面按右键功能相同

##(3)单选互斥按钮

以下四个按钮所需参数和其他按钮完全相同,但在游戏中表现时,显示为互斥。 即“当某个按钮被按下后,它将显示为over状态,同时点击该按钮不会发生任何效果”。

nametype说明
window按钮窗口化显示游戏
fullscreen按钮全屏化显示游戏
allskip按钮快速略过时,跳过全部对话
readskip按钮快速略过时,只跳过已读对话

#(六)对话回顾界面uihistory

这个界面里面也有一些参数和Config.tjs是相同的,因此需要读取的是以下这些。

##(1)控件

nametype说明
bgdstring界面背景图
marginlint左边距,它和以下三个值划定了历史记录的文字显示范围
marginrint右边距
margintint上边距
marginbint下边距
slider滚动条可通过拖动该滚动条来翻页,其实应该叫scroll的但是写错名字了(喂
up按钮向上翻页
down按钮向下翻页
back按钮返回之前界面,与在此界面按右键功能相同

###①滚动条scroll控件结构 和滑动槽不同,滚动条的长、宽用来决定滚动按钮的位置,具体外观效果直接做到bgd内了。

nametype说明
usebool0代表隐藏(不使用该功能),1代表显示
widthint滚动条宽度
heightint滚动条长度
normalstring滚动条上面标记当前位置和用于拖动的按钮一般状态下的图片
overstring按钮hover/drag状态下的图片

#(七)主要人物名字列表namelist

人名列表是一个array,默认具有“主角”和“默认”两行。 “主角”为第一行,当使用 @主角 时,显示的是f.姓+f.名的值,同时取得这一行的color记录的值。 “默认”为第二行,只记录颜色(没有tag这个参数),为非重要角色的人物名颜色。 当使用 @npc id="路人甲"且未指定姓名颜色时,会调用这个颜色。

这个列表的作用是对应生成人物姓名宏,让游戏里在使用 @人物名 时,能够显示格式为【人物全名】的、特殊颜色的文字。

##(1)一个人物名的结构

nametype说明
tagstring人物简称,也就是对应的TAG名,例如:马克思
namestring游戏中显示的全名,例如:卡尔·海因里希·马克思
colorcolor人物名字的颜色代码,这个颜色在对话和对话回顾部分都会表现出来

#(八)其他

由于保存、读取部分界面比较复杂,新开一个文档说明。 由于CG一览界面涉及读取其他数据,新开一个文档说明。