67 KiB
《听仙》— 纯听觉仙侠MUD游戏策划案
版本:v1.1(修订版)
日期:2026-05-21
状态:修订策划(解决交互冲突、MVP收窄、技术架构前置、音频队列收敛)
目录
- 游戏概述与核心设计理念
- 世界观与背景设定
- 交互设计 — 手势映射与UI流转
- 角色与修炼系统
- 地图与导航系统
- 音频系统设计
- 战斗系统
- 副本系统
- 任务与剧情系统
- 经济与物品系统
- 多人社交系统
- AI游历修士系统
- 技术架构概要
- 内容生产管线与版本规划
一、游戏概述与核心设计理念
1.1 游戏定位
| 项目 | 说明 |
|---|---|
| 游戏名称 | 《听仙》(暂定) |
| 类型 | 纯听觉多人在线MUD |
| 题材 | 仙侠(修真/修仙) |
| 平台 | HTML5 移动端浏览器 |
| 商业模式 | 纯免费 |
| 目标用户 | 仙侠爱好者、音频内容爱好者、视障玩家、通勤/睡前场景用户 |
1.2 核心体验承诺
"闭上眼,踏入修仙界。"
玩家打开游戏后,屏幕全黑,只通过耳朵感知整个仙侠世界。风声、鸟鸣、市集喧闹、剑气破空——所有信息都通过声音传递。玩家用最简单的手势(滑动、点击)与世界互动,在语音引导下探索、修炼、战斗、结交道友。
1.3 与传统MUD的异同
| 维度 | 传统文字MUD | 《听仙》 |
|---|---|---|
| 信息载体 | 文字描述 | 语音播报 + 音效氛围 |
| 输入方式 | 键盘打字指令 | 6种手势(4滑动+单击+双击) |
| 世界结构 | 房间/节点网络 | 相同,但每个房间有独立声景 |
| 多人交互 | 文字聊天 | 语音播报 + 文字转语音 |
| 战斗 | 文字指令回合制 | 手势选择回合制 |
| 沉浸感来源 | 文字描写的想象力 | 声音营造的空间感 |
1.4 纯音频游戏设计原则
- 单线程信息原则:同一时刻只有一条关键信息在播报,避免信息重叠导致混乱
- 操作即时反馈原则:每个手势操作必须在 200ms 内给出音效反馈,让玩家确认操作被接收
- 上下文明确原则:玩家在任何时刻都能通过单击获知"我在哪、我在做什么、我能做什么"
- 渐进披露原则:信息分层播报,先说关键信息,玩家可通过手势请求更多细节
- 容错友好原则:误操作不会造成不可逆后果,所有危险操作需要确认
- 声景区分原则:不同场景有明显不同的环境音,玩家通过氛围音即可感知位置变化
二、世界观与背景设定
2.1 世界观框架
天地初开,灵气充盈万物。有修士悟道炼气,追寻长生。大陆名为苍玄大陆,灵气由地脉汇聚而成,随天时流转、星辰变化而生潮汐。修士依灵气修炼,在凡俗与仙道之间求索超脱之路。
2.2 大陆区域划分
苍玄大陆分为五大区域,每区有独特的声景氛围:
| 区域 | 特征 | 声景主题 | 势力 |
|---|---|---|---|
| 青云山脉(中部) | 灵气最浓、仙门云集 | 清风松涛、鹤鸣钟声 | 青云宗(正道之首) |
| 赤炎荒原(西部) | 火山遍布、矿脉丰富 | 岩浆翻涌、热风呼啸 | 炎狱门(炼器圣地) |
| 幽冥沼泽(北部) | 瘴气弥漫、凶兽横行 | 虫鸣蛙叫、水泡翻涌、低沉呜咽 | 万魂殿(邪修巢穴) |
| 沧澜海域(东部) | 岛屿星罗、海族出没 | 波涛潮汐、海风海鸥 | 碧波宫(海族) |
| 落星平原(南部) | 凡人王朝、贸易中心 | 市集喧嚣、车马人声 | 大周皇朝(凡俗) |
2.3 主要势力
正道三宗
- 青云宗:以剑修闻名,讲究心正剑直。位于青云山主峰。
- 天机阁:炼丹制符,精通阵法。隐于青云山脉东麓。
- 太虚观:清修悟道,擅长推演天机。独占浮云峰。
邪道两殿
- 万魂殿:以魂修邪术闻名,盘踞幽冥沼泽深处。
- 血煞宗:修炼血道功法,行事凶残,藏于赤炎荒原地下。
中立势力
- 碧波宫:海族修士,不参与陆上纷争,偶尔与凡人交易。
- 散修联盟:无门派归属的修士自发组织,分布在落星平原各城。
2.4 世界运行规则
昼夜系统
- 一个游戏日 = 现实 2 小时(白天 80 分钟,夜晚 40 分钟)
- 白天:鸟鸣虫叫、NPC活动正常、某些怪物隐匿
- 夜晚:氛围音变暗沉、夜行妖兽出没、某些秘境入口开启
- 过渡时段有专门的音效提示(鸡鸣破晓、暮鼓晚钟)
天气系统
- 晴、雨、雾、雷暴、灵气风暴(随机)
- 每种天气有独立的环境音循环
- 天气影响部分功法效果(如水系功法在雨天加成)
灵气潮汐
- 每个游戏日有 2 次灵气涨潮(约 10 分钟)
- 潮汐期间修炼经验加倍,同时有小概率触发秘境事件
- 潮汐来临时有特殊音效预警(空气嗡鸣渐强)
2.5 时间线与历史大事件
| 时间(大陆历) | 事件 | 影响 |
|---|---|---|
| 万年前 | 上古仙人飞升,留下遗迹 | 各地秘境的来源 |
| 三千年前 | 魔劫爆发,正邪大战 | 五大区域格局形成 |
| 五百年前 | 灵气衰退潮开始 | 修炼难度逐渐增大 |
| 当代 | 灵气异动,上古秘境重现 | 游戏主线的起点 |
三、交互设计 — 手势映射与UI流转
3.1 六种手势定义
| 手势 | 操作方式 | 音效反馈 |
|---|---|---|
| 上滑 | 手指从下向上滑动 | 清脆升调"叮"音 |
| 下滑 | 手指从上向下滑动 | 低沉降调"咚"音 |
| 左滑 | 手指从右向左滑动 | 短促左向划过音 |
| 右滑 | 手指从左向右滑动 | 短促右向划过音 |
| 单击 | 轻点屏幕一次 | 轻柔"滴"音 |
| 双击 | 快速点击屏幕两次 | 明快双音"滴滴" |
3.2 游戏状态机
游戏分为以下几个主要状态,每个状态下手势的功能不同:
┌──────────┐
│ 登录态 │
└────┬─────┘
│ 登录成功
┌────▼─────┐
┌─────│ 探索态 │─────┐
│ └────┬─────┘ │
遇敌/切磋 │下滑=菜单 双击NPC=对话
│ ┌────▼─────┐ │
┌────▼───┐ │ 菜单态 │ ┌──▼───┐
│ 战斗态 │ └──────────┘ │对话态 │
└────────┘ └──────┘
设计决策:探索态中,单击始终是"查看当前状态"(不切换状态),下滑进入菜单。这确保单击在所有状态下含义一致——"告诉我现在的情况",不产生歧义。
3.3 各状态下的手势映射
探索态(默认状态)
玩家在世界中移动、探索时的主要状态。
| 手势 | 功能 | 语音反馈示例 |
|---|---|---|
| 上滑 | 前进(沿当前选中出口移动到下一个房间) | "你沿着山间小道向北走去……(新房间描述)" |
| 下滑 | 打开菜单(进入菜单态) | 菜单打开音效 + "菜单。角色信息。" |
| 左滑 | 切换焦点-左(在出口/NPC/物品/玩家之间向左循环) | "西面——山崖小径" 或 "张道长" |
| 右滑 | 切换焦点-右(在出口/NPC/物品/玩家之间向右循环) | "东面——密林深处" 或 "铁匠陈师傅" |
| 单击 | 查看当前状态(播报位置、焦点详情,不切换状态) | "你在青云山·山门前。当前焦点:北面-登山石阶。附近有NPC张道长。" |
| 双击 | 与焦点实体互动(NPC→对话、物品→拾取、玩家→互动菜单) | "张道长:'少侠,可有兴趣听老夫讲讲这青云山的来历?'" |
职责分离:上滑专管移动,双击专管互动,二者不重叠。焦点为出口时双击播放该出口的详细描述(而非移动),要移动必须上滑。这避免了纯听觉用户误把出口当NPC互动却意外移动的问题。
焦点系统:左右滑动在当前房间的所有可交互对象(出口、NPC、物品、玩家)之间循环切换。进入房间时默认焦点为第一个出口。MUD中没有固有的"后退"概念,玩家通过切换到反向出口再上滑即可返回。
战斗态
进入战斗后,手势切换为战斗操作。
| 手势 | 功能 | 语音反馈示例 |
|---|---|---|
| 上滑 | 切换技能(向上翻页,切换到上一个技能) | "御剑术" |
| 下滑 | 切换技能(向下翻页,切换到下一个技能) | "火球术" |
| 左滑 | 切换目标(多个敌人时切换上一个) | "目标——赤焰蟒" |
| 右滑 | 切换目标(多个敌人时切换下一个) | "目标——妖狐" |
| 单击 | 查看当前战斗状态 | "第三回合。你:气血82%,灵力65%。敌方:赤焰蟒,气血40%。当前技能:御剑术。" |
| 双击 | 确认出招 / 使用当前技能攻击当前目标 | "你催动御剑术!剑光一闪——(命中音效)——赤焰蟒受到128点伤害!" |
菜单态
从探索态下滑进入,提供角色管理功能。
| 手势 | 功能 | 语音反馈示例 |
|---|---|---|
| 上滑 | 上一个菜单项 | "角色信息" |
| 下滑 | 下一个菜单项 | "背包" |
| 左滑 | 返回上一级 / 退出菜单 | (退出音效,回到探索态) |
| 右滑 | 无操作或子菜单展开 | — |
| 单击 | 播报当前菜单项详情 | "背包:共有15件物品" |
| 双击 | 确认进入 / 执行当前菜单项 | "进入背包。第一件:回灵丹×3……" |
菜单项列表:
- 角色信息(属性、境界、经验)
- 背包(物品管理)
- 功法(已学技能)
- 装备(穿戴管理)
- 任务(当前任务列表)
- 社交(好友、门派、附近玩家)
- 系统(设置、退出)
对话态
与NPC或其他玩家对话时。
| 手势 | 功能 | 语音反馈示例 |
|---|---|---|
| 上滑 | 上一个对话选项 | "选项一:请教修炼之法" |
| 下滑 | 下一个对话选项 | "选项二:询问附近情况" |
| 左滑 | 结束对话,返回探索态 | "你向张道长告辞。" |
| 右滑 | 重听当前NPC说的话 | (重播NPC最后一段语音) |
| 单击 | 播报当前选项内容 | "选项一:请教修炼之法" |
| 双击 | 选择当前对话选项 | (NPC回应语音) |
背包/物品操作态
管理物品时的手势。
| 手势 | 功能 | 语音反馈示例 |
|---|---|---|
| 上滑 | 上一个物品 | "回灵丹,数量3" |
| 下滑 | 下一个物品 | "铁剑,已装备" |
| 左滑 | 返回上一级 | (返回音效) |
| 右滑 | 物品操作子菜单 | "可用操作:使用、丢弃、查看详情" |
| 单击 | 查看物品详细信息 | "回灵丹:恢复50点灵力。品质:普通。描述:以灵草炼制的入门丹药。" |
| 双击 | 使用/装备当前物品 | "你服下回灵丹。灵力恢复50点,当前灵力:115/200。" |
3.4 状态切换规则
| 触发条件 | 从 | 到 | 音效提示 |
|---|---|---|---|
| 探索态中下滑 | 探索态 | 菜单态 | 菜单打开音效 |
| 菜单态中左滑 | 菜单态 | 探索态 | 菜单关闭音效 |
| 焦点为NPC时双击 | 探索态 | 对话态 | 对话开始音效 |
| 对话中左滑 | 对话态 | 探索态 | 对话结束音效 |
| 遭遇敌人 | 探索态 | 战斗态 | 战斗警戒音效(剑鸣+鼓点) |
| 战斗结束 | 战斗态 | 探索态 | 胜利/失败音效 |
| 菜单进入背包 | 菜单态 | 背包态 | 背包打开音效 |
3.5 操作容错机制
- 防误触:战斗中的逃跑、丢弃贵重物品等操作需要双击确认后再次双击
- 状态播报:任何状态下单击都可查看当前完整状态(这是单击在所有状态下的统一语义)
- 超时回退:菜单态/对话态超过60秒无操作,自动返回探索态并语音提示
- 严格6手势:不引入长按、三击等额外手势,避免增加学习成本和误触概率
注意:操作缓冲和打断规则见第六章"音频播报状态机",此处不重复定义。
四、角色与修炼系统
4.1 角色创建流程
新玩家进入游戏后,通过纯语音引导完成角色创建:
1. 语音:"欢迎来到苍玄大陆。请为自己取一个道号。"
→ 跳转到文字输入界面(唯一需要键盘的环节)
→ 输入完成后语音播报确认:"道号——[玩家名],可对否?双击确认,左滑重新输入。"
2. 语音:"请选择你的灵根属性。上滑下滑切换,双击确认。"
→ 金灵根(物理攻击见长)
→ 木灵根(治疗回复见长)
→ 水灵根(控制防御见长)
→ 火灵根(法术伤害见长)
→ 土灵根(生存续航见长)
→ 每个选项播报时附带属性说明和代表性音效
3. 语音:"选择你的出身。"
→ 青云弟子(正道,剑修路线)
→ 散修游侠(自由,百家路线)
→ 落星平民(凡人起步,大器晚成)
→ 每个出身决定初始出生点和开局剧情
4. 创建完成,播放出生动画音频(30秒左右的专属出生叙事)
4.2 基础属性体系
| 属性 | 说明 | 影响 |
|---|---|---|
| 根骨 | 身体资质 | 气血上限、物理防御 |
| 悟性 | 领悟能力 | 技能学习速度、暴击率 |
| 灵力 | 灵气亲和力 | 灵力上限、法术伤害 |
| 神识 | 精神力量 | 探测范围、控制抗性 |
| 机缘 | 运气 | 物品掉落品质、奇遇触发概率 |
基础属性由灵根和出身决定初始值,后续通过修炼、装备、丹药提升。
4.3 修炼境界体系
凡人 → 练气期(1-9层)→ 筑基期(初/中/后)→ 金丹期(初/中/后)
→ 元婴期(初/中/后)→ 化神期(初/中/后)→ 大乘期 → 渡劫飞升
| 境界 | 练气期 | 筑基期 | 金丹期 | 元婴期 | 化神期 | 大乘期 |
|---|---|---|---|---|---|---|
| 等级范围 | 1-9 | 10-18 | 19-27 | 28-36 | 37-45 | 46-50 |
| 突破方式 | 自动 | 需打坐突破 | 需天材地宝 | 需渡心魔劫 | 需渡天劫 | 终极试炼 |
| 新增能力 | 基础功法 | 御剑飞行 | 领域技能 | 分身术 | 天地法相 | 仙术 |
突破机制
- 每个大境界突破需要满足条件(经验值+特殊物品/事件)
- 突破是一个互动音频事件(进入突破态):
- 播放修炼氛围音
- 语音引导玩家"凝神静气,双击开始突破"(双击确认开始)
- 单击可查看当前突破进度/状态(保持单击统一语义)
- 突破过程中随机出现干扰(需要在音效提示后及时双击化解)
- 成功/失败有不同的音频叙事
- 失败不掉级,但需等待冷却时间后重试
4.4 功法与技能体系
功法分类
| 类型 | 说明 | 示例 |
|---|---|---|
| 攻击功法 | 造成伤害 | 御剑术、火球术、冰锥术 |
| 防御功法 | 减伤/格挡 | 金钟罩、水幕天障 |
| 辅助功法 | 增益/回复 | 回春术、聚灵阵 |
| 控制功法 | 限制敌人 | 定身术、缚灵索 |
| 身法 | 闪避/移动 | 踏云步、瞬移术 |
技能获取途径
- 出身自带:根据灵根和出身获得1-2个初始技能
- 门派传授:完成门派任务后由师父NPC传授
- 秘境获取:探索秘境发现功法残卷
- 玩家交易:部分功法秘籍可交易
- 自悟:特定条件下触发"顿悟"事件(稀有奇遇)
技能升级
- 技能通过反复使用获得熟练度
- 熟练度满后可"领悟"下一层级
- 最高10层,每3层有质变效果(音效/威力都会变化)
4.5 修炼(挂机)系统
玩家可在特定地点(灵脉处、门派修炼室等)进入"打坐修炼"状态:
- 双击开始修炼,播放修炼环境音(舒缓的修炼BGM)
- 修炼期间自动获得经验值,速率由地点灵气浓度决定
- 灵气潮汐期间修炼经验翻倍(会有音效提示)
- 被其他玩家攻击/周围发生事件时会被打断,有警告音效
离线/后台修炼(服务端结算)
移动浏览器限制:移动端浏览器在后台会暂停 JavaScript 计时器、WebSocket 连接和音频播放。因此修炼收益不依赖客户端持续运行。
- 玩家开始修炼时,服务端记录
{start_time, room_id, cultivation_rate} - 玩家离线/切换应用/关闭屏幕后,服务端按时间差计算离线收益
- 下次上线时,服务端一次性结算离线期间的经验并语音播报:
- "你打坐修炼了3小时42分,获得经验1860点。当前等级:练气四层。"
- 离线修炼收益 = 在线修炼收益 × 0.5(鼓励在线但不惩罚离线)
- 离线修炼有上限(最多8小时有效),超出部分不计算
五、地图与导航系统
5.1 地图数据结构
采用经典MUD的房间-连接模型:
世界 = {房间节点} + {连接边}
房间节点 = {
id: 唯一标识,
name: "青云山·山门前",
description: "你站在青云山的山门前,两座石狮子威严矗立。前方石阶蜿蜒上山,背后是下山的土路。",
area: "青云山脉",
exits: { north: room_id, south: room_id, ... },
ambient: "qingyun_gate.ogg", // 环境氛围音
npcs: [...], // 驻留NPC列表
items: [...], // 地面物品
events: [...], // 可触发事件
pvp_allowed: false, // 是否允许PvP
level_range: [1, 10], // 推荐等级范围
}
5.2 区域设计
新手区域:落星平原·清风镇
玩家出身为"落星平民"时的起始区域。等级 1-5。
┌──────────┐
│ 镇北郊外 │ ← 通往野外(等级5+)
└────┬─────┘
┌────▼─────┐
┌───────│ 镇中广场 │───────┐
│ └────┬─────┘ │
┌────▼───┐ ┌───▼────┐ ┌───▼────┐
│ 铁匠铺 │ │ 药材店 │ │ 客栈 │
└────────┘ └────────┘ └───┬────┘
┌───▼────┐
│客栈二楼 │ ← 休息/修炼
└────────┘
┌────────┐
│ 镇南码头 │ ← 通往沧澜海域(等级20+)
└────────┘
每个房间详细设计:
| 房间 | 环境音 | NPC | 功能 |
|---|---|---|---|
| 镇中广场 | 人声嘈杂、商贩吆喝 | 镇长赵伯、告示牌 | 任务集散、公告 |
| 铁匠铺 | 打铁声、炉火轰鸣 | 铁匠陈师傅 | 装备购买/修理 |
| 药材店 | 研磨声、药香描述 | 药师李婆婆 | 丹药/材料交易 |
| 客栈 | 说书声、杯碟碰撞 | 掌柜、说书人 | 休息、听故事(获取线索) |
| 客栈二楼 | 安静、偶尔鸟鸣 | 无 | 打坐修炼(安全区) |
| 镇北郊外 | 风声、草虫鸣叫 | 巡逻卫兵(偶尔) | 野外入口、低级怪物 |
| 镇南码头 | 水波拍岸、渔船吱呀 | 船夫老周 | 传送至其他区域 |
主要区域概览
| 区域 | 等级 | 房间数(MVP) | 核心声景 |
|---|---|---|---|
| 清风镇(新手) | 1-5 | 8-10 | 市井生活 |
| 青云山外围 | 5-10 | 12-15 | 山林清幽 |
| 青云宗山门内 | 10-15 | 10-12 | 仙门庄严 |
| 落星平原野外 | 5-15 | 15-20 | 荒野旷远 |
| 赤炎荒原入口 | 15-20 | 8-10 | 灼热干燥 |
| 幽冥沼泽边缘 | 20-25 | 8-10 | 阴森潮湿 |
| 沧澜海域码头 | 15-25 | 6-8 | 海浪风声 |
| 各势力总坛 | 15-30 | 10-15(每个) | 各有特色 |
| 秘境(副本入口区) | 随等级 | 5-8(每个) | 神秘空灵 |
5.3 导航语音播报方案
进入新房间时的播报顺序
1. 移动音效(脚步声/飞行声,0.5秒)
2. 环境音渐变(旧房间环境音淡出,新房间环境音淡入,1秒过渡)
3. 房间名称播报:"青云山·山门前"
4. 简短描述播报:"山门巍峨,两侧石狮威严。"
5. 出口提示:"可往北上山,或向南下山。"
6. 特殊提示(如有NPC/物品/玩家):"张道长站在山门旁。附近有两名修士。"
单击查看详情的播报
1. 当前位置:"你在青云山·山门前。"
2. 详细环境描述
3. 所有出口
4. NPC列表
5. 地面物品
6. 附近玩家
7. 当前天气/时辰
切换出口的播报
左滑/右滑在可用出口间循环切换:
右滑 → "北面——登山石阶"
右滑 → "南面——下山土路"
右滑 → "北面——登山石阶"(循环)
上滑 → 沿当前选中方向移动
5.4 随机事件系统
玩家在探索过程中有概率触发随机事件:
| 事件类型 | 触发条件 | 示例 |
|---|---|---|
| 奇遇 | 低概率随机 | "你发现路边一块异常的石头在微微发光……" |
| 伏击 | 进入高危区域 | "前方灌木丛中传来异响!小心——"(进入战斗) |
| 遭遇NPC | 随机生成 | "一位云游道人挡住了你的去路。" |
| 天象异变 | 定时全服 | "天空突然暗了下来,灵气剧烈波动——灵气潮汐来了!" |
| 物品发现 | 机缘属性相关 | "你的脚踢到了什么东西——一个落满灰尘的储物袋。" |
六、音频系统设计
6.1 音频分层架构
游戏音频分为四个独立的混音层,可以同时播放:
┌─────────────────────────────────────────────┐
│ 混音输出 │
├──────────┬──────────┬──────────┬─────────────┤
│ BGM 层 │ 氛围层 │ 音效层 │ 语音层 │
│ (循环) │ (循环) │ (单次) │ (队列) │
│ 音量:30% │ 音量:40% │ 音量:80% │ 音量:100% │
├──────────┼──────────┼──────────┼─────────────┤
│区域BGM │环境声 │操作反馈 │NPC对白 │
│战斗BGM │天气声 │战斗音效 │系统播报 │
│修炼BGM │昼夜声 │UI音效 │物品/状态描述 │
└──────────┴──────────┴──────────┴─────────────┘
层级规则
- BGM层:每个区域/状态一首BGM,进出时交叉淡入淡出(2秒)
- 氛围层:环境声循环播放,可叠加天气音效
- 音效层:即时触发,可并行播放最多3个音效
- 语音层:优先级队列播放,具体规则见下方"音频播报状态机"
6.2 语音播报规范
音频播报状态机
这是纯音频游戏的核心系统,必须行为明确。
语音层状态机:
┌─────────┐ 新消息入队 ┌─────────┐ 播完当前 ┌─────────┐
│ 空闲 │ ──────────→ │ 播放中 │ ─────────→│ 取下一条 │
└─────────┘ └────┬────┘ └────┬────┘
▲ │ │
│ P0消息到达 队列空?
│ ▼ 是↙ ↘否
│ ┌─────────┐ 回空闲 播放下一条
└──────────────────│ 打断播放 │
└─────────┘
播报优先级定义
| 优先级 | 类型 | 示例 | 被什么打断 |
|---|---|---|---|
| P0-紧急 | 战斗致命警告 | "小心!敌人发动了致命一击!" | 不可被打断 |
| P1-重要 | 战斗结算、状态突变 | "你受到了87点伤害" | 仅被P0打断 |
| P2-常规 | 移动描述、NPC对话 | "你来到了药材店" | 被P0/P1打断 |
| P3-补充 | 风味文本、详细描述 | "店里弥漫着淡淡的药草香气" | 被P0/P1/P2打断,也可被玩家操作打断 |
队列规则(完整定义,无歧义)
入队规则:
- P0 消息:立即打断当前正在播放的任何消息,插到队首
- P1 消息:插到队列中所有 P2/P3 消息之前(不打断当前播放)
- P2 消息:按到达顺序排到队尾
- P3 消息:按到达顺序排到队尾
队列溢出:
- 队列上限 5 条。超出时,从队尾开始丢弃最低优先级的消息
- 被丢弃的 P3 消息不做任何提示(风味文本丢失无影响)
玩家操作与播报的关系:
- 音效层(操作反馈音):手势触发后 立即播放,不进队列,不受语音层影响
- 浏览类操作(单击查看、上下滑切换技能/目标):在语音播报过程中 立即生效,对应音效立即播放
- 单击(查看状态):打断当前 P3 播报,不打断 P0/P1/P2;状态播报以 P2 优先级插入队列
- 确认类操作(双击出招/使用/购买等不可逆操作):受操作窗口约束(见下方)
- 新的操作产生的语音播报按正常优先级入队
操作窗口(防误确认机制):
核心问题:语音播报还没说完时,游戏状态可能已经更新(如敌方回合结算完毕、技能/目标已变化)。如果玩家此时双击,可能确认的是过时的技能或目标。
- 每次游戏状态变化(进入新回合、目标变化、可选项变化)时,服务端下发一个
state_version编号 - 客户端记录玩家最后一次浏览过的
state_version(通过单击查看或上下滑动切换时更新) - 双击确认时:如果玩家浏览过的版本 = 当前版本,立即执行;如果版本不一致(说明状态已变但玩家还没听到),则播放提示音 + 短语"状态已更新",不执行操作,等玩家重新浏览后再确认
- 简单来说:你听到了最新状态,才能确认操作;没听到就不能盲按
示例:
服务端:敌方回合结束,进入玩家回合 (state_version=7)
语音队列:正在播报"赤焰蟒对你造成89点伤害..."(版本6的结算)
玩家此时双击 → 检查:玩家最后浏览版本=6,当前版本=7 → 不一致
→ 播放提示音 + "状态已更新" → 不出招
玩家单击(查看状态)→ 更新浏览版本=7 → 播报"你的回合,当前技能:御剑术"
玩家再双击 → 版本一致 → 出招生效
核心原则:音效反馈永远即时(保证操作手感),语音播报按优先级排队(保证信息不混乱),浏览操作不阻塞(随时可查看/切换),确认操作需状态同步(防止误操作)。
语音拼装方案
语音采用预生成片段 + 动态拼接的方式:
模板:"你对{target}使用了{skill},造成{damage}点{type}伤害。"
预生成片段:
- "你对" (通用前缀)
- "{target}" (怪物/玩家名,按需生成)
- "使用了" (通用连接)
- "{skill}" (技能名,预生成全部技能名)
- "造成" (通用连接)
- "{damage}" (数字,预生成常用数字0-9999)
- "点" (通用)
- "{type}" (伤害类型:物理/火焰/冰霜/雷电/毒)
- "伤害" (通用后缀)
拼接规则:
1. 按模板顺序拼接音频片段
2. 片段间插入 50ms 静音过渡
3. 统一归一化音量
4. 缓存已拼装的完整音频(LRU缓存)
需预生成的语音库
| 类别 | 数量估算 | 生成工具 |
|---|---|---|
| 数字(零到九千九百九十九) | ~40 个基础数字片段 | VoxCPM2 |
| 通用连接词 | ~50 个 | VoxCPM2 |
| 技能名称 | ~60 个 | VoxCPM2 |
| 物品名称 | ~200 个 | VoxCPM2 |
| 怪物名称 | ~80 个 | VoxCPM2 |
| NPC名称 | ~30 个 | VoxCPM2 |
| 房间描述 | ~150 段 | VoxCPM2 |
| NPC对话 | ~500 段 | VoxCPM2(不同NPC用不同参考音色) |
| 系统提示语 | ~100 段 | VoxCPM2 |
| 主线剧情旁白 | ~200 段 | VoxCPM2 |
动态生成触发条件
- 新玩家注册时:生成该玩家名的语音片段(调用 VoxCPM2 API)
- 玩家自定义内容:公会名、自定义喊话等
- 生成后永久缓存,避免重复生成
6.3 音效设计清单
操作反馈音效(Web Audio API 实时合成)
| 音效 | 描述 | 触发条件 |
|---|---|---|
| 上滑确认 | 升调叮音 | 上滑操作 |
| 下滑确认 | 降调咚音 | 下滑操作 |
| 左滑确认 | 左划过音 | 左滑操作 |
| 右滑确认 | 右划过音 | 右滑操作 |
| 单击确认 | 轻滴音 | 单击操作 |
| 双击确认 | 双滴音 | 双击操作 |
| 操作无效 | 低沉嗡音 | 无效操作 |
| 菜单打开 | 翻书音 | 进入菜单 |
| 菜单关闭 | 合书音 | 退出菜单 |
| 列表切换 | 轻微刻度音 | 菜单项翻页 |
| 确认执行 | 清脆确认音 | 双击确认操作 |
| 错误提示 | 不和谐短音 | 操作失败 |
| 获得物品 | 叮铃收纳音 | 拾取物品 |
战斗音效(预生成,ACE-Step / Stable Audio)
| 音效 | 描述 | 时长 |
|---|---|---|
| 剑击 | 金属碰撞+剑气破空 | 0.5-1s |
| 拳击 | 沉闷肉体打击 | 0.3-0.5s |
| 火球 | 火焰呼啸+爆炸 | 1-1.5s |
| 冰锥 | 冰晶凝聚+碎裂 | 0.8-1s |
| 雷击 | 电弧+雷鸣 | 1-1.5s |
| 治愈 | 温暖光芒+叮铃 | 1-1.5s |
| 防御/格挡 | 金属盾击 | 0.3-0.5s |
| 闪避 | 快速位移风声 | 0.3s |
| 暴击 | 强化攻击音+震击 | 1s |
| 未命中 | 空气划过 | 0.3s |
| 中毒 | 冒泡腐蚀 | 0.5s |
| 战斗开始 | 剑鸣+鼓点 | 2s |
| 战斗胜利 | 胜利号角+灵光音 | 3s |
| 战斗失败 | 低沉悲鸣 | 2s |
| 怪物咆哮 | 各种怪物叫声 | 1-2s(每种怪物不同) |
环境/氛围音效(预生成,ACE-Step / Stable Audio)
| 音效 | 描述 | 循环 | 时长 |
|---|---|---|---|
| 山林清风 | 松风+鸟鸣+溪流 | 是 | 30s |
| 市集喧嚣 | 人声+吆喝+脚步 | 是 | 30s |
| 幽暗洞穴 | 水滴+回声+远处兽吼 | 是 | 30s |
| 沼泽瘴气 | 冒泡+蛙鸣+虫鸣 | 是 | 30s |
| 海岸波涛 | 海浪+海风+海鸥 | 是 | 30s |
| 火山灼热 | 岩浆翻涌+热风 | 是 | 30s |
| 仙门庄严 | 钟声+仙乐+鹤鸣 | 是 | 30s |
| 夜晚静谧 | 虫鸣+夜风+猫头鹰 | 是 | 30s |
| 雨天 | 雨声+雷声(远) | 是 | 30s |
| 雷暴 | 暴雨+近雷+强风 | 是 | 30s |
| 灵气潮汐 | 空气嗡鸣+能量涌动 | 是 | 30s |
| 修炼冥想 | 低频嗡鸣+心跳+呼吸 | 是 | 60s |
6.4 BGM设计清单
| BGM名称 | 场景 | 风格 | 时长 | 循环 |
|---|---|---|---|---|
| 苍玄主题 | 登录/主菜单 | 大气磅礴、古筝开篇 | 120s | 是 |
| 市井烟火 | 城镇区域 | 轻快、笛子为主 | 90s | 是 |
| 山林问道 | 野外探索 | 空灵、古琴为主 | 90s | 是 |
| 仙门晨钟 | 正道门派 | 庄严、钟磬为主 | 90s | 是 |
| 暗流涌动 | 邪道区域 | 阴沉、低音弦乐 | 90s | 是 |
| 碧波万顷 | 海域区域 | 悠扬、洞箫为主 | 90s | 是 |
| 烈焰熔炉 | 赤炎区域 | 激烈、打击乐为主 | 90s | 是 |
| 短兵相接 | 普通战斗 | 紧张、鼓点驱动 | 60s | 是 |
| 强敌来袭 | Boss战斗 | 激昂、管弦齐奏 | 90s | 是 |
| 生死对决 | PvP战斗 | 急促、琵琶扫弦 | 60s | 是 |
| 灵台清明 | 修炼/打坐 | 极简、空灵、低频 | 120s | 是 |
| 突破天堑 | 境界突破 | 渐进激昂、以爆发收尾 | 60s | 否 |
| 胜利凯旋 | 战斗胜利 | 明快、短旋律 | 15s | 否 |
| 故事讲述 | 剧情对话 | 舒缓、叙事感 | 90s | 是 |
七、战斗系统
7.1 回合制战斗流程
战斗开始
│
▼
┌─────────────────────────┐
│ 回合开始(播报回合数+双方状态摘要)│
└────────────┬────────────┘
▼
┌─────────────────────────┐
│ 玩家行动阶段 │
│ 上/下滑 = 切换技能 │
│ 左/右滑 = 切换目标 │
│ 单击 = 查看详细状态 │
│ 双击 = 确认出招 │
│ (10秒未操作 = 自动普攻) │
└────────────┬────────────┘
▼
┌─────────────────────────┐
│ 行动结算 │
│ 播报:技能名 → 命中判定 │
│ → 伤害数值 → 目标状态 │
└────────────┬────────────┘
▼
┌─────────────────────────┐
│ 敌方行动 │
│ 播报:敌人使用XX技能 │
│ → 命中/闪避判定 │
│ → 伤害/效果 │
└────────────┬────────────┘
▼
┌─────────────────────────┐
│ 回合结算 │
│ 持续效果结算(中毒、灼烧等)│
│ 状态摘要播报 │
│ 判定胜负 │
└────────────┬────────────┘
▼
胜负已分?
/ \
是 否 → 返回回合开始
│
▼
结算播报(经验、掉落物品)
7.2 战斗音频流示例
以一个完整回合为例:
[BGM: 短兵相接 持续播放]
语音:"第二回合。"
(0.5秒间隔)
语音:"你的回合。当前技能:御剑术。目标:赤焰蟒。"
--- 玩家操作阶段 ---
玩家下滑 → 音效:降调咚 → 语音:"火球术"
玩家双击 → 音效:双击确认 →
--- 行动结算 ---
音效:火焰呼啸
语音:"你施展火球术!"
音效:爆炸
语音:"命中赤焰蟒,造成156点火焰伤害!"
(0.3秒)
语音:"赤焰蟒气血降至23%。"
--- 敌方行动 ---
音效:怪物咆哮
语音:"赤焰蟒发动尾扫!"
音效:风声+打击
语音:"你受到89点伤害。气血降至71%。"
--- 回合结算 ---
(0.5秒)
语音:"回合结束。你:气血71%,灵力45%。"
7.3 战斗数值公式
伤害计算
基础伤害 = 技能系数 × (攻击力 - 目标防御力 × 0.5)
最终伤害 = 基础伤害 × 属性克制系数 × 暴击系数 × 随机浮动(0.9-1.1)
命中判定
命中率 = 基础命中(90%) + (攻方等级 - 守方等级) × 2% + 技能命中加成
闪避率 = 基础闪避(5%) + 身法加成
最终命中 = 命中率 - 闪避率(下限50%,上限99%)
属性克制
| 攻\守 | 金 | 木 | 水 | 火 | 土 |
|---|---|---|---|---|---|
| 金 | 1.0 | 1.3 | 0.7 | 1.0 | 1.0 |
| 木 | 0.7 | 1.0 | 1.0 | 0.7 | 1.3 |
| 水 | 1.3 | 1.0 | 1.0 | 1.3 | 0.7 |
| 火 | 1.0 | 1.3 | 0.7 | 1.0 | 1.0 |
| 土 | 1.0 | 0.7 | 1.3 | 1.0 | 1.0 |
克制伤害 ×1.3,被克制伤害 ×0.7。
7.4 PvE 怪物设计
怪物分级
| 等级 | 名称标识 | 战力 | 音效特征 |
|---|---|---|---|
| 普通 | 无前缀 | 同级玩家0.6倍 | 普通叫声 |
| 精英 | "凶" | 同级玩家1.2倍 | 更低沉/更响亮 |
| 头目 | "妖王/魔将" | 同级玩家2倍 | 独特Boss音效 |
| 世界Boss | 专有名号 | 需组队 | 专属BGM+音效 |
怪物列表(MVP版本)
| 区域 | 怪物 | 等级 | 属性 | 特色音效 |
|---|---|---|---|---|
| 清风镇郊外 | 野兔精 | 1-3 | 木 | 尖细叫声 |
| 清风镇郊外 | 灰狼 | 2-4 | 土 | 狼嚎 |
| 青云山外围 | 云雾蛇 | 5-8 | 水 | 嘶嘶声+水滴 |
| 青云山外围 | 落石傀儡 | 6-10 | 土 | 石头碰撞+碎裂 |
| 青云山外围 | 凶·山魈 | 8-10 | 木 | 诡异笑声 |
| 落星平原 | 盗匪 | 5-10 | 金 | 刀剑碰撞 |
| 落星平原 | 妖狐 | 8-12 | 火 | 妖媚笑声+火焰 |
| 幽冥沼泽 | 沼泽毒蛙 | 15-18 | 水/毒 | 粘腻跳跃+毒液 |
| 赤炎荒原 | 赤焰蟒 | 15-20 | 火 | 火焰吐息 |
7.5 PvP 对战规则
切磋模式(友好PvP)
- 双方玩家互相同意后进入
- 不损失物品/经验
- 胜者获得切磋积分(排行榜用)
- 语音:"[玩家A]向你发起切磋邀请。双击接受,左滑拒绝。"
自由PvP
- 仅在标记为"可PvP"的野外区域生效
- 攻击方先行(但被攻击方可选择逃跑)
- 败者损失少量灵石(不超过持有量的5%)
- 不掉落装备
- 有杀戮值系统防止恶意屠杀:
- 杀戮值随击杀累加
- 杀戮值高的玩家名字播报前会加"煞气浓重的"前缀
- 杀戮值过高会被NPC卫兵追杀
八、副本系统
8.1 副本类型
| 类型 | 人数 | 特点 |
|---|---|---|
| 秘境探索 | 1人 | 线性关卡,主打剧情+机关解谜 |
| 组队试炼 | 2-4人 | 多Boss,需要配合(输出+治疗+肉盾) |
| 门派大比 | 5v5 | PvP副本,门派间竞技 |
8.2 副本结构设计
以"青云山·古修士洞府"(单人秘境,等级10-15)为例:
入口 → 石门谜题 → 走廊(伏击战)→ 分岔路
│
┌───────────┼───────────┐
▼ ▼ ▼
藏经阁 丹房 密室
(功法奖励) (丹药奖励) (Boss战)
│ │ │
└───────────┼───────────┘
▼
宝库
(最终奖励)
音频流设计
[进入副本]
环境音切换:空旷洞穴回声+水滴
语音:"你踏入了一座古老的洞府。空气中弥漫着陈旧的灵气。前方有一扇刻满符文的石门。"
[石门谜题]
语音:"石门上有三个凹槽,分别刻着金、木、水的符文。请按照五行相生的顺序排列。"
(玩家通过上下滑动选择符文,双击确认,左滑重置)
正确 → 音效:石门缓缓开启
错误 → 音效:闷响 + 语音:"符文暗淡下去。再想想。"
[分岔路]
语音:"前方通道一分为三。左边传来翻书声,中间飘来药香,右边似有怪物的低吼。"
左滑:藏经阁方向
右滑:密室方向
上滑:确认前进
8.3 Boss机制的音频传达
纯音频游戏中Boss技能预警是关键设计:
| 机制 | 音频传达方式 | 玩家应对 |
|---|---|---|
| Boss蓄力 | 能量聚集的渐强音效 + 语音"它在蓄力!" | 在蓄力结束前使用防御技能 |
| Boss大招 | 独特前摇音效(如龙吟) + 语音预警 | 双击使用闪避身法 |
| Boss进入暴走 | BGM节奏加快 + 语音"它进入了狂暴状态!" | 提高输出/拉开距离 |
| Boss可打断 | 特殊音效(咳嗽/喘息) + 语音"它露出了破绽!" | 立即双击使用控制技能 |
| 场地危险 | 警告音效 + 语音"地面开始龟裂!" | 上滑选择闪避 |
8.4 组队副本的语音协调
组队副本中,系统会播报队友的关键行动:
语音:"[队友A]使用了金钟罩,为你抵挡了伤害。"
语音:"[队友B]使用了回春术,你恢复了120点气血。"
语音:"[队友C]被Boss击晕了!"
简化播报规则:
- 只播报对玩家有直接影响的队友行动
- 队友的普通攻击不播报
- 队友使用的增益/治疗技能播报
- 队友进入危险状态时播报
九、任务与剧情系统
9.1 主线剧情大纲
第一章:初入修途(等级1-10)
玩家初入苍玄大陆,在清风镇学习修炼基础,拜师入门,了解世界的基本规则。
关键节点:
- 清风镇遇到一位神秘老人(引导教程)
- 镇外遭遇妖兽(首次战斗教学)
- 发现身上携带的古玉碎片有异样(主线伏笔)
- 前往青云山拜师或加入散修联盟
- 第一次进入秘境(副本教学)
第二章:暗流涌动(等级10-20)
正邪两道势力冲突加剧,古修士遗迹接连被发现,各方势力暗中争夺。
关键节点:
- 门派内接到调查任务,发现邪修活动痕迹
- 在废弃矿洞中遭遇万魂殿弟子(首次与邪修交手)
- 古玉碎片引发异变,获得神秘能力
- 被卷入正邪势力争端,必须选择立场
- 大型剧情副本:正邪对峙于落星城
第三章:风云变幻(等级20-30)
上古秘境大量出现,灵气异变加剧,更大的阴谋浮出水面。
关键节点:
- 发现灵气异变的根源与古玉碎片有关
- 集齐碎片的线索分布在各大区域
- 遭遇各势力的阻拦或拉拢
- 揭露幕后黑手——一位即将渡劫的上古修士
- 大型副本:上古秘境·天元之地
第四章:天地大劫(等级30-50)
最终决战,玩家集结力量对抗终极Boss,决定苍玄大陆的命运。
(后续章节随版本更新扩展)
9.2 支线任务类型
| 类型 | 刷新 | 示例 | 奖励类型 |
|---|---|---|---|
| 日常任务 | 每日刷新 | "帮药师李婆婆采集5株灵草" | 经验+灵石 |
| 悬赏任务 | 告示牌随机 | "清剿镇北10只灰狼" | 灵石+随机物品 |
| 门派任务 | 每日3个 | "在青云峰顶打坐修炼30分钟" | 门派贡献+经验 |
| 奇遇任务 | 随机触发 | "你发现一只受伤的灵兽……" | 稀有物品/功法 |
| 连环任务 | 特定条件 | 一系列关联任务组成支线故事 | 剧情+稀有奖励 |
9.3 任务追踪与播报
[接取任务]
语音:"接取任务——清剿灰狼。前往镇北郊外,击败10只灰狼。"
音效:任务接取确认音
[任务进度]
(每击败一只灰狼后)
语音:"灰狼 3/10。"
(超过一半时)
语音:"灰狼 6/10。已过半。"
[任务完成]
音效:任务完成乐曲
语音:"任务完成——清剿灰狼。获得经验200点,灵石50枚。"
[查看进行中任务]
菜单态 → 任务列表:
语音:"当前任务3个。第一个:清剿灰狼,进度6/10。第二个……"
9.4 NPC对话系统
NPC对话采用对话树结构:
NPC: 张道长
├── 第一次见面 → 独立开场白 + 引导教程
├── 已认识后 → 日常问候
│ ├── [请教修炼] → 给予修炼建议/出售功法
│ ├── [询问近况] → 推进支线剧情
│ ├── [交易] → 打开交易界面
│ └── [告辞] → 退出对话
└── 特定剧情阶段 → 特殊对话内容
每个NPC有独立的声音风格(通过VoxCPM2的不同参考音频实现):
- 老者NPC:苍老沉稳的声音
- 年轻女NPC:清脆柔和的声音
- 商贩NPC:精明活泼的声音
- Boss NPC:低沉威严的声音
十、经济与物品系统
10.1 货币体系
| 货币 | 获取途径 | 用途 |
|---|---|---|
| 灵石 | 击怪、任务、交易 | 通用货币:购买物品、修理装备 |
| 门派贡献 | 门派任务、门派活动 | 门派商店:高级功法、专属物品 |
| 声望 | 各势力日常任务 | 解锁势力专属内容 |
不设充值货币(纯免费游戏)。
10.2 物品分类
装备
| 部位 | 说明 | 音效关联 |
|---|---|---|
| 武器 | 影响攻击力 | 攻击音效随武器类型变化(剑/拳/法杖) |
| 护甲 | 影响防御力 | 受击音效随护甲变化 |
| 法宝 | 特殊主动技能 | 有独立使用音效 |
| 饰品×2 | 属性加成 | 无独立音效 |
装备品质
| 品质 | 颜色概念 | 音频标识 | 属性加成 |
|---|---|---|---|
| 凡品 | 白 | 无特殊音效 | 基础属性 |
| 灵器 | 绿 | 获得时有轻微灵光音 | +10-20% |
| 宝器 | 蓝 | 获得时有明显灵光音 | +20-40% |
| 仙器 | 紫 | 获得时有华丽仙乐 | +40-70% |
| 太古神器 | 金 | 获得时有震撼天地音效 | +70-100%+特殊效果 |
消耗品
| 物品 | 效果 | 获取 |
|---|---|---|
| 回灵丹 | 恢复灵力 | 商店/炼丹 |
| 续命丹 | 恢复气血 | 商店/炼丹 |
| 突破丹 | 辅助突破 | 副本/炼丹 |
| 传送符 | 传送至指定城镇 | 商店 |
| 隐身符 | 短时间隐身(PvP逃跑用) | 商店/任务 |
材料
用于炼丹、炼器的基础材料,按品级分为1-5星。
10.3 交易系统
NPC商店
- 双击NPC进入对话 → 选择"交易"选项 → 进入商店态
- 商店态操作:上下滑动浏览商品,单击查看详情,双击购买
- 每次购买语音播报:"购买回灵丹×1,花费灵石20枚。剩余灵石:480枚。"
玩家交易
- 在同一房间的两个玩家可以发起交易
- 流程:
- 发起方:选中对方 → 双击 → 选择"交易"
- 接收方收到语音:"[玩家A]向你发起交易请求。双击接受。"
- 交易界面:双方各放入物品 → 确认
- 双方双击确认后交易完成
10.4 背包管理的音频方案
背包容量:初始30格,可通过任务/购买扩展至100格。
物品分类筛选(菜单态进入背包后):
右滑 → 切换分类:"全部" → "装备" → "丹药" → "材料" → "其他"
上/下滑 → 在当前分类内翻页
单击 → 播报物品详情
双击 → 使用/装备
物品满时获得新物品:
语音:"背包已满。获得铁剑。是否丢弃一件物品腾出空间?双击打开背包。左滑放弃此物品。"
十一、多人社交系统
11.1 玩家登录与账号系统
注册流程
- 打开游戏页面(全黑屏幕)
- 语音:"欢迎来到《听仙》。如果你是新修士,请双击开始你的修仙之旅。如果你已有道号,请单击登录。"
- 新用户 → 输入用户名/密码(唯一的文字输入环节)→ 进入角色创建
- 老用户 → 输入用户名/密码 → 登录进入游戏世界
登录态
- 支持游客登录(快速体验,数据临时保存)
- 账号密码登录
- 第三方登录(微信/手机号,后续扩展)
11.2 好友系统
| 操作 | 方式 |
|---|---|
| 添加好友 | 在同一房间,选中玩家 → 双击 → 选择"加为道友" |
| 好友列表 | 菜单 → 社交 → 道友列表(上下翻页,单击查看状态,双击发消息) |
| 好友消息 | 收到时语音:"道友[名字]传音:[消息内容]" |
| 好友定位 | 查看好友时播报其所在区域 |
11.3 门派/公会系统
创建门派
- 等级20+,消耗10000灵石
- 需要3名玩家联名
- 门派有独立的总坛房间(可自定义描述和氛围音)
门派功能
| 功能 | 说明 |
|---|---|
| 门派聊天 | 门派内广播消息 |
| 门派仓库 | 共享物品存储 |
| 门派任务 | 门派专属日常和周常 |
| 门派副本 | 需要门派成员协作 |
| 门派等级 | 通过门派任务升级,解锁更多功能 |
| 门派技能 | 门派等级解锁的被动加成 |
11.4 聊天系统
纯音频游戏中的聊天方案:
频道
| 频道 | 范围 | 播报方式 |
|---|---|---|
| 当前房间 | 同一房间玩家 | 自动播报 |
| 私聊 | 指定玩家 | 仅双方听到 |
| 门派 | 门派成员 | 门派成员听到 |
| 世界 | 全服 | 可选择开关 |
发送消息
- 玩家输入文字消息(调起键盘的唯一场景之一)
- 系统将文字通过TTS转为语音播报给接收方
- 接收方听到:音效提示 + "[频道标识][玩家名]说:[消息内容]"
快捷消息
预设一组常用消息,无需打字:
- "你好" / "谢谢" / "救命" / "组队吗" / "交易吗" / "告辞"
- 菜单 → 社交 → 快捷消息 → 上下选择 → 双击发送
11.5 玩家间互动
| 互动 | 触发方式 | 说明 |
|---|---|---|
| 查看 | 选中+单击 | 播报对方道号、境界、门派 |
| 切磋 | 选中+双击→切磋 | 友好PvP |
| 交易 | 选中+双击→交易 | 物品交易 |
| 组队 | 选中+双击→组队 | 邀请组队 |
| 加好友 | 选中+双击→加为道友 | 添加好友 |
| 攻击 | 选中+双击→攻击(PvP区域) | 自由PvP |
"选中"操作:在同一房间中,左右滑动在NPC/玩家/物品之间切换聚焦。
十二、AI游历修士系统
12.1 设计目标
在线玩家不足时(特别是测试阶段),AI控制的"游历修士"填充世界,让玩家感受到一个活跃的世界:
- 游历修士在城镇中走动、对话
- 游历修士在野外修炼、打怪
- 游历修士可以与玩家进行有限度的互动
- 明确标识为NPC:游历修士名字后带"(游历)"标记,不伪装为真人玩家。这既避免伦理问题,也让玩家对交互深度有合理预期
12.2 游历修士行为模型
每个游历修士有一个日程表驱动的行为循环:
05:00-08:00 起床修炼(在修炼室打坐)
08:00-10:00 采购物资(在商店区域活动)
10:00-14:00 外出历练(在野外区域打怪)
14:00-15:00 回城休整(客栈/修炼室)
15:00-18:00 外出历练(继续打怪或探索)
18:00-20:00 社交活动(在广场闲逛,与其他玩家/NPC互动)
20:00-22:00 修炼(在灵脉/修炼室)
22:00-05:00 休息(下线或待在安全区)
(时间为游戏内时间,一个游戏日=现实2小时,日程表按比例压缩)
12.3 游历修士人格系统
每个游历修士有随机生成的人格特征:
| 维度 | 可选值 | 影响 |
|---|---|---|
| 性格 | 热情/冷淡/话多/沉默/傲慢/谦逊 | 主动搭话频率、对话风格 |
| 目标 | 修炼狂/探索者/社交达人/财迷 | 日程权重调整 |
| 实力 | 菜鸟/普通/高手 | 战斗AI水平 |
| 阵营 | 正道/邪道/中立 | 活动区域、对话内容 |
对话模板
游历修士对话从预设模板库中选取,根据人格和上下文填充:
热情型·初次遇见:
"道友,初次见面!我是{name},在这{area}修行已有些日子了。你是刚来的吧?要不要一起去打{nearby_monster}?"
冷淡型·被搭话:
"嗯。有事?"
话多型·同区域闲聊:
"你也在这里修炼啊,这地方灵气还行,不过我听说{other_area}的灵脉更好。上次我去那边差点被{monster}给宰了,还好跑得快……"
12.4 动态填充策略
目标在线感知数 = max(10, 实际在线数 × 2) // 至少10,让世界不空旷
游历修士数量 = 目标在线感知数 - 实际在线数
分布策略:
- 50% 分布在玩家活跃区域(让玩家遇到人)
- 30% 分布在任务相关区域
- 20% 随机分布
12.5 游历修士与玩家的交互边界
| 可以 | 不可以 |
|---|---|
| 主动打招呼(带"游历"标识) | 主动发起PvP攻击 |
| 接受组队邀请 | 主动邀请组队(除非玩家在副本门口) |
| 参与组队战斗 | 恶意抢怪/抢物品 |
| 进行NPC式对话(玩家知道是AI) | 在世界频道刷屏 |
| 交易(以NPC价出售) | 欺诈交易 |
标识方式:查看游历修士时播报"游历修士·[名字],练气三层",其中"游历修士"前缀明确其NPC身份。
十三、技术架构概要
13.1 整体架构
┌─────────────────────────────────────────────────────────┐
│ 玩家手机浏览器 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │手势识别模块│ │音频播放引擎│ │网络通信模块│ │
│ │ Touch API │ │Web Audio │ │WebSocket │ │
│ └─────┬────┘ └─────┬────┘ └─────┬────┘ │
│ └──────────────┼──────────────┘ │
│ ┌────▼────┐ │
│ │游戏状态机│ │
│ └─────────┘ │
└──────────────────────┬──────────────────────────────────┘
│ WebSocket (JSON)
▼
┌──────────────────────────────────────────────────────────┐
│ 游戏服务器 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │连接管理 │ │世界模拟 │ │战斗引擎 │ │游历修士 │ │
│ │Session │ │Map/NPC │ │Turn-based│ │NPC Mgr │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │任务系统 │ │经济系统 │ │社交系统 │ │
│ │Quest │ │Economy │ │Social │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└──────────────────────┬──────────────────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌───────────┐ ┌──────────┐ ┌──────────┐
│ 数据库 │ │音频资源CDN│ │TTS服务 │
│ (持久化) │ │(静态文件) │ │(按需生成) │
└───────────┘ └──────────┘ └──────────┘
13.2 客户端技术栈
| 模块 | 技术 | 说明 |
|---|---|---|
| 手势识别 | Touch Events API / Pointer Events | 识别上下左右滑动、单击、双击 |
| 音频引擎 | Web Audio API | 4层混音、音量控制、音效合成 |
| 语音播放 | HTMLAudioElement + AudioBuffer | 语音队列管理、拼装播放 |
| 网络通信 | WebSocket | 双向实时通信 |
| 状态管理 | 有限状态机 | 管理探索/战斗/菜单/对话等状态 |
| 数据缓存 | IndexedDB | 缓存已下载的音频资源 |
| 页面 | 单页HTML | 全黑背景,无视觉元素 |
13.3 服务端技术栈
| 模块 | 技术建议 | 说明 |
|---|---|---|
| 游戏服务器 | Node.js / Go | WebSocket服务 + 游戏逻辑 |
| 数据库 | PostgreSQL / MongoDB | 玩家数据、世界状态 |
| 缓存 | Redis | 在线状态、会话、排行榜 |
| 音频资源 | 静态文件服务 / CDN | 预生成音频文件托管 |
| TTS服务 | VoxCPM2 REST API | 动态语音生成 |
| 任务队列 | Redis Queue | TTS生成任务排队 |
13.4 通信协议设计
客户端和服务器之间通过 WebSocket 传输 JSON 消息:
客户端 → 服务器
// 移动
{"type": "move", "direction": "north"}
// 战斗操作
{"type": "combat_action", "action": "use_skill", "skill_id": "fireball", "target_id": "mob_123"}
// 对话选择
{"type": "dialog_choice", "npc_id": "zhang_daochang", "choice_id": 2}
// 使用物品
{"type": "use_item", "item_id": "healing_pill", "slot": 3}
// 聊天
{"type": "chat", "channel": "room", "message": "你好"}
服务器 → 客户端
// 房间信息(进入新房间时)
{
"type": "room_enter",
"room": {
"name": "青云山·山门前",
"description_audio": "room_qingyun_gate.mp3",
"ambient_audio": "ambient_mountain.ogg",
"bgm": "bgm_mountain.ogg",
"exits": ["north", "south"],
"exit_descriptions": {
"north": "exit_desc_stone_stairs.mp3",
"south": "exit_desc_dirt_road.mp3"
},
"entities": [
{"type": "npc", "id": "zhang_daochang", "name_audio": "npc_name_zhang.mp3"},
{"type": "player", "id": "player_456", "name_audio": "player_name_456.mp3"}
]
}
}
// 战斗事件
{
"type": "combat_event",
"events": [
{"action": "skill_use", "actor": "player", "skill_audio": "skill_fireball.mp3", "sfx": "sfx_fire.mp3"},
{"action": "damage", "target": "mob_123", "amount": 156, "narration_audio": "combat_hit_156.mp3"},
{"action": "status", "narration_audio": "combat_status_mob_hp_23pct.mp3"}
]
}
// 语音播报(通用)
{
"type": "narration",
"priority": 2,
"audio_segments": ["seg_you_arrived.mp3", "seg_room_name_xxx.mp3", "seg_desc_xxx.mp3"],
"fallback_text": "你来到了青云山·山门前。"
}
13.5 音频资源管理
资源分级加载策略
| 级别 | 内容 | 加载时机 | 缓存策略 |
|---|---|---|---|
| L0-核心 | 操作音效、通用语音片段 | 游戏启动时预加载 | 永久缓存(IndexedDB) |
| L1-区域 | 当前区域BGM、氛围音 | 进入区域时加载 | LRU缓存(50MB上限) |
| L2-内容 | NPC对话、房间描述 | 进入房间/触发对话时加载 | LRU缓存 |
| L3-动态 | 动态生成的玩家名等 | 首次遇到时生成并缓存 | 永久缓存 |
音频格式
| 用途 | 格式 | 码率 | 原因 |
|---|---|---|---|
| BGM/氛围 | OGG Vorbis | 128kbps | 循环播放,体积优先 |
| 语音片段 | MP3 | 64kbps | 兼容性最好,单句语音对码率要求低 |
| 短音效 | WAV/PCM | 无压缩 | 延迟敏感,直接用AudioBuffer |
| UI音效 | Web Audio合成 | — | 无需文件,实时合成 |
13.6 数据存储方案
玩家数据(PostgreSQL)
players
id, username, password_hash, created_at, last_login
characters
id, player_id, name, origin, element,
level, exp, realm,
hp, max_hp, mp, max_mp,
str, int, agi, spi, luk,
current_room_id, current_state,
money, guild_id
inventories
id, character_id, item_id, quantity, slot, equipped
skills
id, character_id, skill_id, level, proficiency
quests
id, character_id, quest_id, status, progress_json
世界数据(JSON配置 + Redis运行时)
rooms.json — 静态房间定义
npcs.json — NPC定义和对话树
monsters.json — 怪物属性
items.json — 物品定义
skills.json — 技能定义
quests.json — 任务定义
Redis:
room:{id}:players — 房间内玩家列表
room:{id}:monsters — 房间内怪物实例
player:{id}:state — 玩家当前状态
combat:{id} — 战斗实例数据
wanderer:{id}:state — 游历修士状态
十四、内容生产管线与版本规划
14.1 音频资源生产流程
策划输出文本 → TTS批量生成 → 人工质检 → 音频后处理 → 打包上传
│ │ │ │ │
│ VoxCPM2 API 听取抽检 ffmpeg CDN/服务器
│ │ 修正重生 归一化音量
│ │ 格式转换
▼ ▼ 去底噪
同步生成 ACE-Step /
音效需求 Stable Audio
│ │
│ 音效/BGM生成
│ │
└──────────────┘
批量TTS生成脚本工作流
1. 准备文本清单(CSV格式):
id, text, voice_ref, priority
room_desc_001, "你来到了清风镇的中心广场...", narrator.wav, P2
npc_zhang_001, "少侠,初来乍到吧?", old_man.wav, P2
2. 调用 VoxCPM2 批量生成:
POST http://localhost:8000/tts
Body: { text, ref_audio, output_format: "mp3" }
3. 质检:随机抽取 20% 人工试听
4. 后处理:
ffmpeg -i input.wav -af "loudnorm=I=-16:TP=-1.5" -ar 22050 -b:a 64k output.mp3
5. 部署到音频服务器
14.2 对接本机工具链
| 工具 | 用途 | 调用方式 |
|---|---|---|
| VoxCPM2 (port 8000) | 全部语音播报 | REST API,支持批量 |
| CosyVoice2 | 高品质NPC音色(备选) | 手动启动,WebUI |
| ACE-Step 1.5 | BGM、长音效(>5s) | conda acestep,命令行 |
| Stable Audio Open | 短音效、高品质氛围 | conda stableaudio,Gradio/脚本 |
| ffmpeg | 后处理全流程 | 命令行批处理 |
14.3 MVP版本范围定义
设计原则:纯音频交互、移动浏览器限制、音频资产生产、多人实时系统——这四个风险同时上量会导致失控。MVP 必须做到"先验证纯音频核心体验",内容量最小化,不同时引入多人和游历修士。
MVP(最小可玩版本) 目标:验证"黑屏+手势+语音"这套交互模式是否成立。一位玩家能完成:打开游戏→移动→遇怪→战斗→领任务→完成任务。
| 模块 | MVP范围 |
|---|---|
| 区域 | 清风镇 3-5 个房间(广场、客栈、郊外) |
| 等级 | 1-3 |
| 境界 | 凡人 → 练气期1-3层 |
| 功法 | 3个基础技能(1攻击+1防御+1恢复) |
| 怪物 | 2种普通(野兔精、灰狼) |
| NPC | 1个(教程引导NPC兼任务发放) |
| 任务 | 1条教学任务线(引导移动→战斗→回城) |
| 副本 | 无 |
| 物品 | 5种(1武器+1防具+2丹药+1材料) |
| 多人 | 无(纯单机验证) |
| 游历修士 | 无 |
MVP音频资产清单
按"必需首包 / 首次进入区域 / 可按需生成"分类:
| 分类 | 类别 | 数量 | 说明 |
|---|---|---|---|
| 首包必需 | UI音效(Web Audio合成) | 13 | 6手势反馈+菜单音+确认音等,无需文件 |
| 首包必需 | 系统提示语音 | 20 | 教程引导、通用播报("你的回合""战斗胜利"等) |
| 首包必需 | 通用词汇片段 | 15 | 数字0-9、"点""伤害""恢复"等高频拼接词 |
| 首包必需 | 战斗音效 | 6 | 剑击、拳击、防御、闪避、命中、战斗开始 |
| 首包必需 | BGM | 2 | 城镇BGM、战斗BGM |
| 首次进入 | 房间描述语音 | 5 | 每个房间1段描述 |
| 首次进入 | 环境氛围 | 2 | 市集喧嚣、山林清风 |
| 首次进入 | NPC对话语音 | 15 | 教程NPC的对话树 |
| 首次进入 | 怪物名称+音效 | 4 | 2种怪物×(名称+叫声) |
| 首次进入 | 技能名称语音 | 3 | 3个技能名 |
| 首次进入 | 物品名称语音 | 5 | 5种物品名 |
| 合计预生成文件 | ~90 | 不含Web Audio合成的13个UI音效 |
14.4 版本迭代路线图(渐进验证)
核心策略:每个版本只引入一个新的风险维度,验证通过后再叠加下一个。
| 版本 | 新增风险维度 | 具体内容 | 验证目标 | 音频资产增量 |
|---|---|---|---|---|
| v0.1 纯单机原型 | 纯音频交互 | 黑屏+手势识别+音频播报队列+3-5个房间移动+状态播报 | 手势操作是否直觉、音频队列是否清晰、玩家能否理解所处环境 | ~40个文件 |
| v0.2 战斗原型 | 回合制战斗 | 2种怪+3个技能+完整回合制语音流+战斗结算 | 纯音频回合制是否可玩、操作节奏是否舒适 | +30个文件 |
| v0.3 内容原型 | 任务/对话系统 | 1个NPC+1条教学任务+物品/装备基础操作+菜单系统 | 能否通过音频完成"接任务→打怪→交任务"闭环 | +20个文件 |
| v0.4 联机原型 | 多人同步 | 登录+同房间玩家可见+房间聊天(文字转语音)+WebSocket | 多人状态同步+语音播报是否混乱 | +15个文件 |
| v0.5 内测MVP | 内容量+游历修士 | 扩展至15-20个房间+主线第一章前半+3-5个游历修士+日常任务 | 首次完整体验测试、留存观察 | +150个文件 |
| v0.7 社交扩展 | PvP+组队+副本 | 切磋系统+组队副本+好友+新区域 | 多人玩法验证 | +200个文件 |
| v1.0 正式版 | 完整内容 | 5大区域+主线前3章+门派+公会+完整经济系统 | 公开上线 | +1500个文件 |
附录A:音频资源总量估算
| 类别 | v0.1原型 | v0.3内容原型 | v0.5内测MVP | v1.0正式版 |
|---|---|---|---|---|
| 房间描述语音 | 5 | 5 | 20 | 150 |
| NPC对话语音 | 0 | 15 | 80 | 1500 |
| 技能名称语音 | 0 | 3 | 8 | 60 |
| 物品名称语音 | 0 | 5 | 20 | 200 |
| 怪物名称+音效 | 0 | 4 | 14 | 160 |
| 系统提示语音 | 10 | 20 | 40 | 100 |
| 通用词汇片段 | 5 | 15 | 30 | 80 |
| 数字语音 | 0 | 10 | 40 | 40 |
| 主线旁白 | 0 | 0 | 15 | 200 |
| 战斗音效 | 0 | 6 | 15 | 50 |
| 环境氛围 | 2 | 2 | 5 | 20 |
| BGM | 1 | 2 | 5 | 15 |
| UI音效 | 13(合成) | 13(合成) | 13(合成) | 13(合成) |
| 合计预生成文件 | ~23 | ~90 | ~292 | ~2575 |
各版本数字为累计值。UI音效通过 Web Audio API 实时合成,不计入预生成文件数。
附录B:完整手势映射速查表
| 状态 | 上滑 | 下滑 | 左滑 | 右滑 | 单击 | 双击 |
|---|---|---|---|---|---|---|
| 探索态 | 前进 | 打开菜单 | 切焦点(左) | 切焦点(右) | 查看状态 | 互动(不移动) |
| 战斗态 | 上一技能 | 下一技能 | 上一目标 | 下一目标 | 查看状态 | 出招 |
| 菜单态 | 上一项 | 下一项 | 返回 | 展开子菜单 | 查看详情 | 确认 |
| 对话态 | 上一选项 | 下一选项 | 结束对话 | 重听 | 当前选项 | 选择 |
| 背包态 | 上一物品 | 下一物品 | 返回 | 操作菜单 | 物品详情 | 使用/装备 |
| 商店态 | 上一商品 | 下一商品 | 返回 | 切分类 | 商品详情 | 购买 |
一致性规则:单击在所有状态下 = "告诉我现在的情况"(只读,不改变状态)。双击在所有状态下 = "确认/执行当前操作"。左滑在列表类状态下 = "返回/退出"。
附录C:术语表
| 术语 | 说明 |
|---|---|
| 房间 | MUD中的基本空间单元,一个场景/位置 |
| 出口 | 房间之间的连接通道 |
| 声景 | 一组环境音效组合,定义一个地点的听觉特征 |
| 语音拼装 | 将预生成的语音片段按模板拼接为完整句子 |
| 灵气潮汐 | 游戏内周期性灵气涨落事件 |
| 境界突破 | 修炼到一定程度后跨入更高修炼阶段的过程 |
| 奇遇 | 低概率触发的随机特殊事件 |