Skip to content
Tian edited this page Feb 14, 2026 · 2 revisions

欢迎来到 Dvnge wiki!

作者:Tian

Dvnge 是什么?

一个视觉小说引擎,由Tian基于 JavaScript 创建,全平台通用。

怎么编写?

找到 Dvnge章节 文件夹,里面创建一个任意名称的 .js 文件,视觉小说就在里面使用类似 json 格式的代码编写。
创建完你的 .js 文件之后还要在 TTQ视觉小说引擎.js 文件里面的 章节库 常量中加入你的章节 .js 文件数据,代码如下:"你的章节名称": typeof 你的章节名称数据 !== 'undefined' ? 你的章节名称数据 : []

节点属性参考

通用属性

属性名 类型 说明
角色 字符串 说话角色名称
内容 字符串 对话内容
背景 字符串 背景图片路径
音乐 字符串 背景音乐路径
音效 字符串 音效路径
自动节点 数字 自动跳转时间(秒)
自动存档 布尔 是否自动存档
目标 数字/对象 跳转目标

立绘系统

相关属性立绘左立绘中立绘右立绘路径隐藏

属性名 类型 说明
立绘 对象 立绘控制对象
左立绘 对象 左侧立绘配置
中立绘 对象 中间立绘配置
右立绘 对象 右侧立绘配置
路径 字符串 立绘图片路径
隐藏 布尔 是否隐藏立绘

示例

{
    立绘: {
        左立绘: {
            路径: "images/角色1.png",
        },
        中立绘: {
            路径: "images/角色2.png"
        },
        右立绘: {
            隐藏: true
        }
    },
    角色: "NPC",
    内容: "对话内容"
}

选项系统

相关属性选项文本目标标签条件设置变量解锁CG否则目标

属性名 类型 说明
选项 数组 选项列表
文本 字符串 选项显示的文本
目标 数字/对象 跳转目标
标签 字符串 目标 功能相同,具体见下示例
条件 字符串 显示条件
设置变量 对象 选择后设置的变量
解锁CG 对象 解锁的CG信息
否则目标 数字/对象 条件不满足时的跳转目标

示例

{
    选项: [
        {
            文本: "选项1",
            目标: 5, // v1.3.0 版本之后建议使用标签,使用方法见下。
            设置变量: {
                "变量名": "值"
            }
        },
        {
            文本: "选项2",
            条件: "vars.变量名 === '值'",
            目标: 10,
            解锁CG: {
                名称: "CG名称",
                路径: "images/cg.png"
            }
        },
        {
            文本: "选项3",
            条件: "vars.变量名 !== '值'",
            目标: 15,
            否则目标: 20
        }
    ]
}

标签使用示例

// 在要跳转的目标节点添加 "目标: '目标名称',",如:
{ 标签: '钕铜', 角色: 'Tian', 内容: '你成为了钕铜……'},

// 在跳转目标的选项中直接使用 "字串符" 类型跳转
{
    内容: 'Tian:',
    选项: [
      { 文本: '成为钕铜', 目标: '钕铜' }
    ]
},
// 或直接跳转的类型:
{ 目标: '钕铜'},

输入系统

相关属性输入变量名占位符最大长度必填提示文字按钮文字目标标签

属性名 类型 说明
输入 对象 用户输入配置
变量名 字符串 存储输入的变量路径
占位符 字符串 输入框提示文字
最大长度 数字 最大输入长度
必填 布尔 是否必须输入
提示文字 字符串 输入说明文字
按钮文字 字符串 确认按钮文字
目标 数字 输入完成后的跳转目标
标签 字符串 目标 功能相同,具体见下示例

示例

{
    角色: '请输入',// 必须要有一个角色或者内容
    输入: {
        变量名: "玩家名字",
        占位符: "请输入名字",
        最大长度: 10,
        必填: true,
        提示文字: "请输入2-10个字符",
        按钮文字: "确定",
        目标: 5// v1.3.1 版本之后可使用标签,使用方法参考**选项系统**的**标签使用示例**
    }
}

条件系统

相关属性条件表达式真目标假目标

属性名 类型 说明
条件 对象 条件判断配置
表达式 字符串 JS条件表达式
真目标 数字/对象 条件为真时的跳转目标
假目标 数字/对象 条件为假时的跳转目标

示例

{
    条件: {
        表达式: "vars.玩家金币 >= 100",
        真目标: 10,// v1.3.1 版本之后可使用标签,使用方法参考**选项系统**的**标签使用示例**
        假目标: 15
    }
}

标题系统

相关属性标题显示内容位置样式

属性名 类型 说明
标题 对象 屏幕标题显示
显示 布尔 用于下一对话隐藏标题
内容 字符串 标题文本
位置 字符串 标题位置
样式 对象 CSS样式

示例

{
    标题: {
        内容: "第一章",
        位置: "中",
        样式: {color: "#ffffff", fontSize: "50px"}
    }
},
{
    标题: {
        显示: false
    }
}

跳转系统

相关属性跳转HTML路径参数传递变量

属性名 类型 说明
跳转HTML 对象 跳转到其他页面
路径 字符串 目标HTML文件路径
参数 字符串 URL参数
传递变量 字符串/数组 要传递的变量名

示例

{
    跳转HTML: {
        路径: "next.html",
        参数: "场景=2",
        传递变量: ["玩家名字", "玩家等级"]
    }
}

CG收集系统

相关属性解锁CG名称路径

属性名 类型 说明
解锁CG 对象 解锁CG收集
名称 字符串 CG的唯一标识符
路径 字符串 CG图片路径

示例

{
    解锁CG: {
        名称: "第一次去卢浮宫CG",
        路径: "cg/CG1.png"
    }
}

显示内容效果系统

相关属性逐字显示设置变量启用速度

属性名 类型 说明
逐字显示 对象 打字效果配置
启用 布尔 是否启用逐字显示
速度 数字 打字速度(毫秒/字)

示例

{
    逐字显示: {
        启用: true,
        速度: 50
    }
}

直接设置变量

相关属性设置变量

属性名 类型 说明
设置变量 对象 设置用户变量

示例

{
    设置变量: {
        "玩家金币": "+=100",
        "玩家.经验": "+=50",
        "任务状态": "已完成"
    }
}

变量系统说明

功能 语法 说明
变量设置 "变量名": "值" 设置变量值
变量运算 "变量名": "+=10" 支持 +=, -=, *=, /= 运算
变量引用 {变量名} 在字符串中引用变量
变量路径 "玩家.属性.值" 支持多级路径

示例

{
    角色: "{玩家名字}",
    内容: "当前金币: {玩家金币}",
    设置变量: {
        "玩家金币": "+=50",
        "玩家.等级": "+=1"
    }
}

位置参数说明

属性 可选值 说明
标题位置 "上", "下", "左", "右", "左上", "左下", "右上", "右下", "中" 标题显示位置
跳转目标类型 数字或对象 数字: 当前章节内跳转; 对象: {章节: "名称", 索引: 数字}

特殊功能说明

功能 触发方式 说明
自动存档 自动存档: true 在该节点自动保存进度
自动跳转 自动节点: 数字 等待指定秒数后自动跳转
CG收集 解锁CG: {名称: "...", 路径: "..."} 解锁CG到收集库
逐字显示 逐字显示: {启用: true, 速度: 数字} 启用打字机效果
条件分支 条件: {表达式: "...", 真目标: ..., 假目标: ...} 根据条件跳转
用户输入 输入: {变量名: "...", ...} 收集用户输入
页面跳转 跳转HTML: {路径: "...", ...} 跳转到其他HTML页面
变量设置 设置变量: {"变量路径": "值"} 设置或修改变量

示例

{
    自动存档: true,
    自动节点: 3,
    条件: {
        表达式: "vars.玩家.声望 >= 50",
        真目标: {章节: "第二章", 索引: 0},
        假目标: 10
    }
}

Caution

注意事项

  1. 条件表达式使用JavaScript语法,通过 vars 对象访问变量(不用也可以但是用会安全一点)
  2. 在字符串中使用 {变量名} 格式进行变量替换
  3. 选项条件不满足时不会显示
  4. 标题位置参数需使用指定字符串值
  5. 跳转目标可以是数字(当前章节)或对象(跨章节)
  6. 输入配置需要设置 变量名 来存储用户输入
  7. 设置变量支持运算表达式(+=, -=, *=, /=)