多萝故事引擎是一个基于 Dora SSR 开发的视觉小说游戏框架。本框架整合了 Yarn Spinner 对话系统,并采用了开源游戏《灵数奇缘》的代码与授权美术资源,为视觉小说游戏开发提供完整的解决方案。
-
安装 Dora SSR 引擎
-
获取项目文件
克隆或下载本项目的文件。通过 Dora SSR 的 Web IDE 界面,使用左侧的资源管理器上传项目文件夹或压缩包,将其导入到 Dora SSR 引擎中。如果是上传 Zip 压缩包,记得进行解压。
-
启动游戏
在 Dora SSR 的 Web IDE 界面中,点击右下角的“启动游戏”按钮,即可开始游戏体验。
本项目在原版 Dora SSR 的 Yarn Spinner 对话系统基础上,增加了下面的指令。Yarn Spinner 是一门极简的对话脚本语言,可以参考这篇教学快速上手。
-
玩家姓名输入框
<<inputName>>用于弹出玩家姓名输入框,并将输入的姓名作为变量存储在
$charName中。 -
背景图片
<<background "Image/bg_001.png", true>>用于设置背景图片。第一个参数为背景图片路径,第二个参数为是否对背景图片进行模糊处理。
<<noBackground>>用于隐藏当前正在展示的背景图片。
-
角色立绘
<<figure "Image/ch_001.png", 0, 200, 1.5>>用于设置角色立绘。第一个参数为角色立绘图片路径,第二个参数为立绘图片的 X 轴偏移量,第三个参数为立绘图片的 Y 轴偏移量,第四个参数为立绘图片的缩放比例。
<<noFigure>>用于隐藏当前画面中已经展示的角色立绘图片。
-
播放帧动画
<<frame "Animation/frame_001", 1.0, 0, 500, 1.5, true>>用于播放帧动画。第一个参数为帧动画文件夹路径,第二个参数为帧动画播放时间,第三个参数为帧动画 X 轴偏移量,第四个参数为帧动画 Y 轴偏移量,第五个参数为帧动画缩放比例,第六个参数为是否循环播放。
<<noFrame>>用于隐藏当前画面中已经在播放的帧动画。
-
背景音乐
<<BGM "Music/军事学园.mp3">>用于设置背景音乐。第一个参数为背景音乐路径。
-
播放音效
<<SE "Sound/door_knock.wav">>用于播放音效。第一个参数为音效文件路径。
-
停止背景音乐
<<stopBGM>>用于停止背景音乐。
-
启动下一个章节
<<chapter "tutorial.yarn">>用于启动下一个章节。第一个参数为章节文件路径。启动下一个章节时,会自动停止当前章节。并更新记录当前进行的章节,在下次启动时,会从当前章节继续。
-
预加载资源
<<preload "Image/bg_001.png">> <<preload "moling">>用于预加载资源,会在下一个对话语句开始展现的时候开始异步预加载指定资源,避免用户在交互时有卡顿感。第一个参数可以为资源路径,也可以为项目带的 Spine 立绘的资源名称。当前可用的立绘资源名有:
- char
- charF
- charM
- ninilite
- ayan
- villywan
- moling
- moyu
- liyena
- sunborn
- wuyun
- vika
- vivi
- yuzijiang
另外也可以通过
<preload "Animation/frame_001">这样的格式,预加载项目里的帧动画资源。 -
使用项目自带的 Spine 立绘
[char id=moling name=默翎] 午夜是我的主场,实验室比床更适合我——如果有事,直说,别绕弯子。通过
[char id=moling name=默翎]这样的格式,id=后面为项目自带的 Spine 立绘的资源名称,需要对应准确名称,name=后面为给对话人物起的名称可以做任意设置。这样可以在提供对话人物名称的同时调用展示项目自带的 Spine 立绘。
当前框架会自动存储 Yarn Spinner 变量,并会在下次启动程序时自动读取。需要把用到的变量额外配置在 Script/Data/Config.tl 中。请找到以下代码位置做修改:
local conf = Config(
"story", -- 数据库名
"charName", -- 玩家名字
"chapter", -- 当前章节
-- 以上为框架保留变量,在下面根据自己的需要补充新的变量
"gold", -- 教学对话测试用临时变量
"name" -- 教学对话测试用临时变量
)如上所示,就可以在 Yarn Spinner 脚本中这样使用这些变量。并在变量发生变化时,自动存储变量到数据库中。
<<set $gold to 100>>
金币数量为:{$gold}。
玩家名字为:{$charName}。
本项目使用了《灵数奇缘》的游戏代码及授权的美术资源。
- Dora SSR 引擎
- 灵数奇缘美术资源
- YarnFlow - 想要在其它 Lua 环境中使用 Yarn Spinner 语言可以试试这个库.
本项目遵循 MIT 开源协议。
