Files
xianxia/docs/游戏策划案.md
T
2026-05-21 20:59:10 +08:00

1627 lines
67 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 《听仙》— 纯听觉仙侠MUD游戏策划案
> 版本:v1.1(修订版)
> 日期:2026-05-21
> 状态:修订策划(解决交互冲突、MVP收窄、技术架构前置、音频队列收敛)
---
## 目录
1. [游戏概述与核心设计理念](#一游戏概述与核心设计理念)
2. [世界观与背景设定](#二世界观与背景设定)
3. [交互设计 — 手势映射与UI流转](#三交互设计--手势映射与ui流转)
4. [角色与修炼系统](#四角色与修炼系统)
5. [地图与导航系统](#五地图与导航系统)
6. [音频系统设计](#六音频系统设计)
7. [战斗系统](#七战斗系统)
8. [副本系统](#八副本系统)
9. [任务与剧情系统](#九任务与剧情系统)
10. [经济与物品系统](#十经济与物品系统)
11. [多人社交系统](#十一多人社交系统)
12. [AI游历修士系统](#十二ai游历修士系统)
13. [技术架构概要](#十三技术架构概要)
14. [内容生产管线与版本规划](#十四内容生产管线与版本规划)
---
## 一、游戏概述与核心设计理念
### 1.1 游戏定位
| 项目 | 说明 |
|------|------|
| 游戏名称 | 《听仙》(暂定) |
| 类型 | 纯听觉多人在线MUD |
| 题材 | 仙侠(修真/修仙) |
| 平台 | HTML5 移动端浏览器 |
| 商业模式 | 纯免费 |
| 目标用户 | 仙侠爱好者、音频内容爱好者、视障玩家、通勤/睡前场景用户 |
### 1.2 核心体验承诺
> **"闭上眼,踏入修仙界。"**
玩家打开游戏后,屏幕全黑,只通过耳朵感知整个仙侠世界。风声、鸟鸣、市集喧闹、剑气破空——所有信息都通过声音传递。玩家用最简单的手势(滑动、点击)与世界互动,在语音引导下探索、修炼、战斗、结交道友。
### 1.3 与传统MUD的异同
| 维度 | 传统文字MUD | 《听仙》 |
|------|-----------|---------|
| 信息载体 | 文字描述 | 语音播报 + 音效氛围 |
| 输入方式 | 键盘打字指令 | 6种手势(4滑动+单击+双击) |
| 世界结构 | 房间/节点网络 | 相同,但每个房间有独立声景 |
| 多人交互 | 文字聊天 | 语音播报 + 文字转语音 |
| 战斗 | 文字指令回合制 | 手势选择回合制 |
| 沉浸感来源 | 文字描写的想象力 | 声音营造的空间感 |
### 1.4 纯音频游戏设计原则
1. **单线程信息原则**:同一时刻只有一条关键信息在播报,避免信息重叠导致混乱
2. **操作即时反馈原则**:每个手势操作必须在 200ms 内给出音效反馈,让玩家确认操作被接收
3. **上下文明确原则**:玩家在任何时刻都能通过单击获知"我在哪、我在做什么、我能做什么"
4. **渐进披露原则**:信息分层播报,先说关键信息,玩家可通过手势请求更多细节
5. **容错友好原则**:误操作不会造成不可逆后果,所有危险操作需要确认
6. **声景区分原则**:不同场景有明显不同的环境音,玩家通过氛围音即可感知位置变化
---
## 二、世界观与背景设定
### 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……" |
菜单项列表:
1. 角色信息(属性、境界、经验)
2. 背包(物品管理)
3. 功法(已学技能)
4. 装备(穿戴管理)
5. 任务(当前任务列表)
6. 社交(好友、门派、附近玩家)
7. 系统(设置、退出)
#### 对话态
与NPC或其他玩家对话时。
| 手势 | 功能 | 语音反馈示例 |
|------|------|------------|
| 上滑 | 上一个对话选项 | "选项一:请教修炼之法" |
| 下滑 | 下一个对话选项 | "选项二:询问附近情况" |
| 左滑 | 结束对话,返回探索态 | "你向张道长告辞。" |
| 右滑 | 重听当前NPC说的话 | (重播NPC最后一段语音) |
| 单击 | 播报当前选项内容 | "选项一:请教修炼之法" |
| 双击 | 选择当前对话选项 | (NPC回应语音) |
#### 背包/物品操作态
管理物品时的手势。
| 手势 | 功能 | 语音反馈示例 |
|------|------|------------|
| 上滑 | 上一个物品 | "回灵丹,数量3" |
| 下滑 | 下一个物品 | "铁剑,已装备" |
| 左滑 | 返回上一级 | (返回音效) |
| 右滑 | 物品操作子菜单 | "可用操作:使用、丢弃、查看详情" |
| 单击 | 查看物品详细信息 | "回灵丹:恢复50点灵力。品质:普通。描述:以灵草炼制的入门丹药。" |
| 双击 | 使用/装备当前物品 | "你服下回灵丹。灵力恢复50点,当前灵力:115/200。" |
### 3.4 状态切换规则
| 触发条件 | 从 | 到 | 音效提示 |
|---------|----|----|---------|
| 探索态中下滑 | 探索态 | 菜单态 | 菜单打开音效 |
| 菜单态中左滑 | 菜单态 | 探索态 | 菜单关闭音效 |
| 焦点为NPC时双击 | 探索态 | 对话态 | 对话开始音效 |
| 对话中左滑 | 对话态 | 探索态 | 对话结束音效 |
| 遭遇敌人 | 探索态 | 战斗态 | 战斗警戒音效(剑鸣+鼓点) |
| 战斗结束 | 战斗态 | 探索态 | 胜利/失败音效 |
| 菜单进入背包 | 菜单态 | 背包态 | 背包打开音效 |
### 3.5 操作容错机制
1. **防误触**:战斗中的逃跑、丢弃贵重物品等操作需要双击确认后再次双击
2. **状态播报**:任何状态下**单击**都可查看当前完整状态(这是单击在所有状态下的统一语义)
3. **超时回退**:菜单态/对话态超过60秒无操作,自动返回探索态并语音提示
4. **严格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. **出身自带**:根据灵根和出身获得1-2个初始技能
2. **门派传授**:完成门派任务后由师父NPC传授
3. **秘境获取**:探索秘境发现功法残卷
4. **玩家交易**:部分功法秘籍可交易
5. **自悟**:特定条件下触发"顿悟"事件(稀有奇遇)
#### 技能升级
- 技能通过反复使用获得熟练度
- 熟练度满后可"领悟"下一层级
- 最高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打断,也可被玩家操作打断 |
#### 队列规则(完整定义,无歧义)
**入队规则:**
1. P0 消息:**立即打断**当前正在播放的任何消息,插到队首
2. P1 消息:插到队列中所有 P2/P3 消息之前(不打断当前播放)
3. P2 消息:按到达顺序排到队尾
4. 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
玩家初入苍玄大陆,在清风镇学习修炼基础,拜师入门,了解世界的基本规则。
关键节点:
1. 清风镇遇到一位神秘老人(引导教程)
2. 镇外遭遇妖兽(首次战斗教学)
3. 发现身上携带的古玉碎片有异样(主线伏笔)
4. 前往青云山拜师或加入散修联盟
5. 第一次进入秘境(副本教学)
**第二章:暗流涌动**(等级10-20
正邪两道势力冲突加剧,古修士遗迹接连被发现,各方势力暗中争夺。
关键节点:
1. 门派内接到调查任务,发现邪修活动痕迹
2. 在废弃矿洞中遭遇万魂殿弟子(首次与邪修交手)
3. 古玉碎片引发异变,获得神秘能力
4. 被卷入正邪势力争端,必须选择立场
5. 大型剧情副本:正邪对峙于落星城
**第三章:风云变幻**(等级20-30
上古秘境大量出现,灵气异变加剧,更大的阴谋浮出水面。
关键节点:
1. 发现灵气异变的根源与古玉碎片有关
2. 集齐碎片的线索分布在各大区域
3. 遭遇各势力的阻拦或拉拢
4. 揭露幕后黑手——一位即将渡劫的上古修士
5. 大型副本:上古秘境·天元之地
**第四章:天地大劫**(等级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枚。"
#### 玩家交易
- 在同一房间的两个玩家可以发起交易
- 流程:
1. 发起方:选中对方 → 双击 → 选择"交易"
2. 接收方收到语音:"[玩家A]向你发起交易请求。双击接受。"
3. 交易界面:双方各放入物品 → 确认
4. 双方双击确认后交易完成
### 10.4 背包管理的音频方案
背包容量:初始30格,可通过任务/购买扩展至100格。
物品分类筛选(菜单态进入背包后):
```
右滑 → 切换分类:"全部" → "装备" → "丹药" → "材料" → "其他"
上/下滑 → 在当前分类内翻页
单击 → 播报物品详情
双击 → 使用/装备
```
物品满时获得新物品:
```
语音:"背包已满。获得铁剑。是否丢弃一件物品腾出空间?双击打开背包。左滑放弃此物品。"
```
---
## 十一、多人社交系统
### 11.1 玩家登录与账号系统
#### 注册流程
1. 打开游戏页面(全黑屏幕)
2. 语音:"欢迎来到《听仙》。如果你是新修士,请双击开始你的修仙之旅。如果你已有道号,请单击登录。"
3. 新用户 → 输入用户名/密码(唯一的文字输入环节)→ 进入角色创建
4. 老用户 → 输入用户名/密码 → 登录进入游戏世界
#### 登录态
- 支持游客登录(快速体验,数据临时保存)
- 账号密码登录
- 第三方登录(微信/手机号,后续扩展)
### 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 消息:
#### 客户端 → 服务器
```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": "你好"}
```
#### 服务器 → 客户端
```json
// 房间信息(进入新房间时)
{
"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 stableaudioGradio/脚本 |
| 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中的基本空间单元,一个场景/位置 |
| 出口 | 房间之间的连接通道 |
| 声景 | 一组环境音效组合,定义一个地点的听觉特征 |
| 语音拼装 | 将预生成的语音片段按模板拼接为完整句子 |
| 灵气潮汐 | 游戏内周期性灵气涨落事件 |
| 境界突破 | 修炼到一定程度后跨入更高修炼阶段的过程 |
| 奇遇 | 低概率触发的随机特殊事件 |