@allan199409
2015-07-13T07:14:12.000000Z
字数 2361
阅读 1082
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"}