5.3 KiB
5.3 KiB
远期功能扩展笔记
以下功能在讨论中出现但暂不纳入实施计划,后续需要扩展时参考。
代码清理
- 移除 flag 机制 —
StateManager.flags/hasFlag/setFlag/clearFlag全部移除;Condition.op: 'hasFlag'和Effect.type: 'toggleFlag'删除; 统一用variable == 1/set: variable, value: 1替代; SaveSystem 存档移除flags字段;P8 不再需要defaultFlags变量机制完全能覆盖 flag 功能,flag 是早期过度设计
P7 全屏模式 - 扩展
- 自动进入全屏 — 点击"开始游戏"时同步
requestFullscreen(),利用用户手势 - UI 自动隐藏 — 播放中 3 秒无鼠标移动自动隐藏菜单按钮和光标(
pointer-events: none),鼠标移动恢复 - Pointer Lock —
requestPointerLock()锁定鼠标,防移出窗口,配合热区点击和 QTE - 移动端适配 — iOS Safari
webkitEnterFullscreen,Android Chrome 视口适配
P8 章节选择 - 扩展
- 章节缩略图懒加载
- 章节解锁动画
- 按进度百分比展示章节完成度
P9 跳过/倍速 - 扩展
- 智能跳过(仅跳过"对话"部分,保留"动作"部分)
- 快捷键自定义
- 2x/4x/8x 多档位
P10b 手柄导航 — 远期(Gamepad API)
以下功能在 P10a 键盘导航完成后,作为手柄支持的第二期实现:
手柄映射
| 操作 | 手柄按键 |
|---|---|
| 选项导航 | 左摇杆 / 方向键(↑↓←→) |
| 确认 | A 键(Xbox)/ × 键(PS) |
| 取消/菜单 | B 键(Xbox)/ ○ 键(PS) |
| QTE 按键 | A/B/X/Y 自动映射到 QTE 定义的 keys 顺序 |
| 跳过 | Start 键 |
| 倍速 | LB / RB 循环 |
QTE 设备感知
- 键盘连接时 QTE 提示显示键盘按键名称(空格、WASD)
- 手柄连接时 QTE 提示自动切换为手柄按钮图标(A/B/X/Y + 方向图标)
QTESystem升级:输入源切换 + 按键提示动态渲染
视觉反馈
- QTE Overlay 的中央圆圈根据设备动态渲染(键盘=方块内字母,手柄=圆形内图标)
- 手柄连接后自动隐藏鼠标光标,
inputMode = 'gamepad' - 手柄断连后自动恢复键盘模式,不再依赖手柄
实现要点
engine/systems/InputSystem.ts升级 —gamepadconnected/gamepaddisconnected事件监听- Gamepad API 轮询(rAF 中
navigator.getGamepads()读取摇杆/按键状态) - QTE 手柄映射逻辑:方向键/摇杆 →
keys[]中的方向匹配,按钮 → A/B/X/Y src/components/QTEOverlay.vue升级 — 根据 inputMode 渲染不同图标- 键位映射配置持久化(IndexedDB)
- 手柄震动反馈(
GamepadHapticActuator.pulse()) - 手柄热插拔检测 + 自动切换 inputMode
P11 多语言字幕 - 扩展
- 字幕字体/大小/颜色/背景自定义
- 语音语言独立轨道(语音和字幕可不同语言)
- 自动检测浏览器语言
P12 场景过渡特效 - 扩展
- 可自定义转场(JSON 中定义颜色/时长/曲线)
- 转场预览(编辑器中实时预览)
- 条件转场(根据 variables 选择不同转场类型)
P13 重玩驱动 - 扩展
- Steam Achievement API 集成
- 排行榜(最快通关、最少死亡等)
- 分享结局截图到社交媒体
P14 沉浸感 - 扩展
- SFX 空间化(3D Audio,Web Audio PannerNode)
- 对话轮动画曲线自定义
- 画面震动强度/频率可配置
- 动态字幕说话人识别(AI 自动标注)
P15 平台化 - 扩展
- PWA 支持(离线播放、安装到桌面)
- Web Monetization API 付费解锁章节
- 开发者 API(第三方创作工具接入)
通用扩展
- 性能监控面板(FPS、内存、网络)
- 自动化测试框架(剧情路径遍历、回归测试)
- 热更新支持(不刷新页面替换 JSON 和视频)
- WebSocket 多人同步(观察者模式、投票选分支)
AI化
在引擎的基础上深入融合AI,由AI去自动化完成引擎的使用。
AI的定位:一个对使用引擎降本增效的工具。懂业务的人还是主题,AI是辅助人的。
一个新技术的出现会帮助人类实现两种效果:突破式效果,帮助人类突破了一种以前从没有的能力,比如飞机帮助人类飞行,飞机之前人类无论如何都不能起飞的;降本增效式效果,改善了人类已有能力的效果,比如汽车帮助人类跑的更快了。
AI目前来看还是降本增效式效果,没有AI的帮助,人类也能做到现在AI能做的效果,只是成本高点、速度慢点。
无论一个工具如何强大,只要在懂业务的人的手里才能发挥效果。比如缝纫机的出现,并没有取代真正的衣服制作者,并不会让不懂衣服制作的所有人都能制作衣服,善于使用缝纫机的人还是本身就懂衣服制作的人,即使没有缝纫机,他也知道如何制作衣服,只是缝纫机更快更高质量的帮助他完成了衣服的制作。
AI工具也一样,一个不懂电影游戏制作的人,只靠AI是做不出高质量的东西的,只有本身就懂电影游戏制作的人,无论使用啥工具都能做出合格的产品。
本引擎就是帮助懂电影游戏制作的人更快更高质量的完成产品,AI是帮助引擎更容易使用,达到降本增效的效果。
引擎帮助人降本增效,AI帮助引擎更容易被使用和提升产出效率。