6.8 KiB
name, description
| name | description |
|---|---|
| requirements-analysis | This skill should be used when the user or game-dev agent needs to "design a technical plan", "write a tech design document", "analyze requirements", "do requirements analysis", "做需求分析", "设计技术方案", "写技术设计文档", or "分析需求". Provides an 8-step structured requirements analysis workflow that produces a comprehensive technical design document from an execution document for UE5 game systems. |
需求分析 Skill
8 步结构化需求分析工作流,从执行文档(执行案)到技术设计文档。为 UE5 游戏系统的程序设计提供系统化的分析方法论。
触发条件
- 程序设计阶段自动触发:game-dev agent 进入程序设计时自动使用此 skill
- 用户手动触发:用户说"做需求分析"、"设计技术方案"、"写技术设计文档"等时触发
输入
按序阅读以下文档,获取完整的上下文信息:
- 执行文档 (
docs/design/<系统名>-执行案.md) — 行为规则细节(主要输入) - 配置表 (
GameConfig/) — 可调参数
8 步分析工作流
需求功能点罗列
从执行文档中提取每个行为规则作为功能点,按实现方式分为两大类:
UE 内置功能:使用 UE5 引擎原生能力即可覆盖的功能点。典型包括:
- Enhanced Input 输入映射与回调
- SpringArm 摄像机跟随、碰撞处理、Camera Lag
- CMC(CharacterMovementComponent)移动参数配置
- SetViewTargetWithBlend 摄像机切换
- 碰撞检测(SphereComponent / BoxComponent Overlap)
- UMG Widget 生命周期管理
- DataAsset / DataTable 数据配置
自定义实现:需要编写 C++ 或蓝图代码的功能点。包括:
- 自定义状态机与状态转换逻辑
- 跨系统协调与事件分发
- 自定义 UI 交互逻辑
- 特殊的游戏规则判定
以表格形式输出,每个功能点标注对应的执行案条目编号。分类原则:UE 内置能力覆盖 80% 以上需求且行为一致 → UE 内置;否则 → 自定义实现。
功能领域图
识别当前系统由哪些功能模块组成,以及模块之间的交互关系。
关键约束:只关注功能领域和领域之间的关系,不细分到类级别。这是自顶向下的模块级设计,在深入类设计之前先建立全局视图。
使用 Mermaid flowchart 绘制:
- 使用
subgraph划分层(如输入层、核心层、数据层、表现层) - 实线
-->表示主数据流 / 同步调用 - 虚线
-.->表示事件通知 / 异步通信 - 配合模块职责说明表格
类设计图
将功能领域图细化为具体的类设计。展示每个类的关键数据成员和关键接口,以及类之间的关系。
使用 Mermaid classDiagram 绘制,必须明确标注关系类型:
| 关系 | 箭头 | UE5 典型场景 |
|---|---|---|
| 继承 | <|-- |
ACharacter 的子类 |
| 实现 | ..|> |
UInterface 的实现类 |
| 组合 | *-- |
Character 持有 Component(生命周期绑定) |
| 聚合 | o-- |
引用其他 Actor/Component(非拥有) |
| 依赖 | ..> |
方法参数、临时引用 |
同时提供新增类表格、修改类表格、新增蓝图表格。类命名遵循 UE5 前缀规范(A/U/I/F/E)。
时序图(条件性)
⚠️ 仅当特性满足以下任一条件时绘制:涉及 3+ 个系统协调、有条件分支或循环流程、跨层级通信(UI ↔ 逻辑 ↔ 数据)。简单特性跳过。
使用 Mermaid sequenceDiagram 追踪复杂特性的跨系统调用流程:
- 从玩家输入或系统入口开始
- 经过哪些系统的哪些接口
- 到最终完成或返回
- 使用
activate/deactivate展示调用栈深度 - 标注关键判断分支
核心数据结构
定义系统所需的枚举、结构体、配置数据。
以 UE5 C++ 头文件风格书写:
- 使用
UENUM(BlueprintType)标记枚举 - 使用
USTRUCT(BlueprintType)标记结构体 - 使用
UPROPERTY(EditAnywhere, ...)标记可配置属性 - 每个字段提供中文注释说明和合理的默认值
- 区分"配置参数"和"运行时状态"
复杂接口描述(条件性)
⚠️ 仅当接口有 5+ 个决策分支或协调多个子系统状态时需要。简单接口(纯数据查询、简单赋值)跳过。
对复杂接口,选择最适合的方式描述其执行逻辑:
- 流程图(Mermaid
flowchart):适合有多条件分支和并行路径的逻辑 - 伪代码:适合有明确顺序步骤、需要展示具体判断条件的逻辑
- 鲁棒图:适合展示边界/控制/数据三种元素的交互
描述时必须包含:前置检查(快速失败)→ 核心逻辑 → 异步操作标注 → 边界情况处理。
技术难点/风险
识别并评估实现过程中可能遇到的技术难点和风险:
- 按等级分类:🔴 高(可能导致方案不可行)、🟡 中(需要额外工作但可控)、🟢 低(已知解法)
- 每个风险包含:风险描述、详细说明、缓解措施
- 特别关注:UE5 限制、性能瓶颈、跨系统时序问题、数据一致性
工期预估
给出工作量和实现拆分建议:
- 总工期:以天为单位(X-Y 天范围)
- 代码量:新增/修改的 C++ 行数 + 蓝图数量
- 实现拆分:推荐按系统/模块/功能点拆分为可独立验证的子任务,每个子任务标注预估时间、依赖关系、验证方式
拆分原则:每个子任务可在半天到一天内完成,有明确的验证标准,子任务之间依赖关系清晰。
输出
最终产出为技术设计文档,保存到 docs/technical/<系统名>-技术方案.md。
文档必须遵循 references/output-template.md 中定义的标准模板结构。8 步分析的结果整合到模板的对应章节中,同时保留现有的必要章节(美术资源需求、数据流、可调参数汇总、文件结构)。
简化规则:时序图和复杂接口描述可根据复杂度判定跳过(见条件步骤判定速查)。
条件步骤判定速查
| 步骤 | 激活条件 | 跳过条件 |
|---|---|---|
| 时序图 | 3+ 系统协调 / 有分支循环 / 跨层级通信 | 单系统内部 / 纯配置 |
| 复杂接口描述 | 5+ 决策分支 / 协调多子系统 / 有异步等待 | 简单查询 / 2-4 分支简单逻辑 |
详细判定启发式参见 references/diagram-guide.md 第 3 节。
参考文件
| 文件 | 内容 | 何时查阅 |
|---|---|---|
references/diagram-guide.md |
Mermaid 语法速查、项目约定、复杂度判定 | 绘制任何图表前查阅 |
references/output-template.md |
完整技术设计文档模板 | 开始写文档前查阅,确保结构完整 |
references/examples.md |
需求分析的注释示例(来自现有技术文档) | 需要参考输出效果时查阅 |