@allan199409
2015-07-13T07:14:12.000000Z
字数 2361
阅读 637
WebGal v0.1主要用于Gal游戏在web端上的实现,基于node.js、Express、javascript开发,GAL脚本为json格式,同时可以通过js代码实现动画效果和脚本逻辑
WebGal后端基于node.js的Express,除了Express的基本文件结构以外,需要注意的是:
root
|-/Gal WebGal的主文件夹
| |-/events 存放WebGal的脚本文件
|-/public
|-/gal
|-/bg 存放GAL游戏背景图片
|-/bgm 存放GAL游戏背景音乐
|-/draw 存放GAL游戏立绘图片
|-/mov 存放GAL游戏视频
|-/script 存放GAL游戏动画、逻辑脚本文件
|-/sys 存放GAL游戏系统文件(对话框、按钮等等)
|-/voice 存放GAL游戏音效以及对话声音文件
在根目录下命令行执行
node app.js
浏览器访问 127.0.0.1
WebGal主视图位于/views/gal.html
现只支持默认全屏游戏模式,所有的元素会根据窗口大小自我调节,同时可以自由添加新的元素
引入如下代码即可开始运行“1-1”脚本
var GAL = new Gal();
GAL.goToEvent("1-1");
WebGal的脚本结构遵从Game-Event-Step的层级关系,以Eden*为例,Game即为Eden*这款游戏所有内容,Event是其中某一小段事件,Step为其中某一段对话/动画
Event数据储存在/gal/events/
目录下,通用命名格式为x-x.json
,一个json文件即为一个Event,命名没有强制要求,可以根据不同游戏的不同结构自由选择方便管理、理解的命名方式。
Event数据以json数据储存,主要包含两个字段“steps”与“option”,steps是一个数组类型数据,包含该Event中所有Step数据,每一个元素就是一个Step,WebGal会依次读取Step。option包含了该Event的各项设置。
游戏窗口相关设置
字段名称 | 类型 | 说明 |
---|---|---|
width | number |
游戏原支持最大宽度(通常为游戏bg图片宽度) |
height | number |
游戏原支持最大高度(通常为游戏bg图片高度) |
游戏文字讯息框相关设置
字段名称 | 类型 | 说明 |
---|---|---|
x | number |
讯息框文字显示区域左上角横坐标值 |
y | number |
讯息框文字显示区域左上角纵坐标值 |
width | number |
讯息框文字显示区域宽度 |
height | number |
讯息框文字显示区域高度 |
fontSize | number |
讯息框文字字体大小 |
游戏文字讯息框姓名板相关设置
字段名称 | 类型 | 说明 |
---|---|---|
x | number |
姓名板显示区域左上横坐标 |
y | number |
姓名板显示区域左上纵坐标 |
width | number |
姓名板宽度 |
height | number |
姓名板高度 |
fontSize | number |
姓名板文字字体大小 |
在这里需要注意的是:当前版本姓名板与讯息框共用同一张图片/public/gal/sys/dialog.png
,区别在于姓名板与讯息框的内容显示位置不同
该设置为Eden*游戏版本BG切换动画特有,会在之后版本移动到Step数据action属性中进行设置。
step数据储存于每个Event的Steps字段中,每个step根据不同的type
可选择不同的字段进行设置
如果step数据中不包含type
字段,会默认为word
类型,下面介绍每个type中可以包含的不同字段,
默认值为继承的属性将一直延续上一个step的设定,直到被修改
字段名称 | 类型 | 默认值 | 可选值 | 说明 |
---|---|---|---|---|
type | string |
"word" | animation word event mov select |
数据类型 |
word
游戏正常展示step
字段名称 | 类型 | 默认值 | 可选值 | 说明 |
---|---|---|---|---|
word | string | none | any | 在讯息框内显示的文字 |
name | string | 继承/"" | any | 在文字框内显示的文字,name字段为""时,不显示姓名 |
voice | string | none | any | 播放的音效/对话声音文件名,路径为/public/gal/voice/[voice] |
bgm | string | none | any | 播放背景音乐文件名,路径为/public/gal/bgm/[bgm],背景音乐会被循环播放,直到被设置为""或其他背景音乐 |
auto | bool | 继承/false | true/false | 是否采用自动模式,自动模式与自动播放不同,玩家不可取消 |
draw | string | 继承/"" | any | 立绘文件地址,路径为/public/gal/draw/[draw] |
bg | string | 继承/"" | any | 背景图片文件地址,路径为/public/gal/bg/[bg] |
action | string | none | any | 额外脚本文件地址,路径为/public/gal/script/[action] |
word数据示例:
{
"bg": "ev004_mugai_b.png",
"voice": "ryo-A001-0003.ogg",
"word": "「诗音」",
"name": "【 亮 】"
}
animation
该类型数据需要整体重构,暂时不提供文档
mov
游戏视频播放step
字段名称 | 类型 | 默认值 | 可选值 | 说明 |
---|---|---|---|---|
name | string | none | any | 播放视频文件名,路径为/public/gal/mov/[name] |
mov数据示例:
{
"type": "mov",
"name": "op.mp4"
}
event
字段名称 | 类型 | 默认值 | 可选值 | 说明 |
---|---|---|---|---|
name | string | none | any | 跳转到[name]Event,路径为/gal/events/[name].json |
event数据示例:
{
"type": "event",
"name": "1-2"
}