Skip to content

feat(generation): 四向八向改为全方向独立生成(Refs #222) #544

Description

@xyh202131

背景

#222 要求四向、八向新素材显式生成全部必需方向,不能用镜像或邻近方向冒充。但当前 main 虽已具备逐方向任务、审核、恢复和局部重试能力,实际方向合同仍是:

  • 四向:真实生成 east / north / southwest 镜像 east
  • 八向:真实生成 east / north / south / north_east / south_east,西侧三个方向使用镜像

这会让武器、眼罩、单肩配饰等非对称细节换手或换边,因此当前实现不能作为完整四向/八向能力交付。

Refs #222#530 中“动作结果未写入 sequences”的主体问题已部分落地,本 Issue 不重复该工作,只修正全方向独立生成合同及完整闭环。

已确认的现状

  1. Quick Start 自动创建项目时仍固定为 side + single,用户不能直接发起四向/八向制作。
  2. 前端方向配置仅将 3/5 个方向列为 sourceDirections
  3. 后端方向配置与 API 校验同样只允许 3/5 个真实源方向。
  4. 前后端角色资产校验均硬编码 west / north_west / south_west 必须为镜像,并拒绝这些方向保存独立母版或帧。
  5. 母版持久化与动作发布会主动生成 sourceDirection + mirrorX,清空镜像方向的独立数据。
  6. 工作流控制器、API、MQ Worker、执行器、逐方向候选审核、任务恢复和单方向重试已经存在,应在现有链路上扩展,不另建第二套流程。
  7. Playtest 已能消费显式方向序列;通用导出底层能处理多个 sequence,但当前渐进式导出模型仍会把动作压成 direction: default

产品规则

  • 单向项目继续兼容旧资产:允许 east → west 水平镜像。
  • 四向项目必须独立生成并保存 east / west / north / south
  • 八向项目必须独立生成并保存全部八个方向。
  • 新四向/八向资产不得自动创建镜像方向。
  • 旧资产已有镜像关系时仍可读取、播放和导出,但不得被推断为新的完整四向/八向资产。
  • 缺少任一必需方向时,不得标记动作完成,不得发布或正式导出。

实施范围

1. 统一方向合同

  • 前端按项目规格返回 1/4/8 个真实生成方向。
  • 后端使用同一规则校验生成请求。
  • 方向解析必须带项目规格上下文,不能再全局认定西向必然镜像。

2. 资产存储与兼容

  • 母版和动作 sequence 允许西向保存独立图片或帧。
  • 保留读取旧镜像结构的兼容路径。
  • 在角色所属项目层校验方向集合、重复方向、缺失方向和非法镜像关系。
  • 四向/八向发布时写入全部真实 sequence,不清空西向帧。

3. 用户入口与审核

  • Quick Start 可选择或继承视角与方向规格,不再固定创建单向项目。
  • Quick Start 与 Workflow Editor 展示全部必需方向的候选、进度、失败项和单方向重试。
  • 角色详情页可以逐方向查看母版和动作帧完整度。

4. 发布、Playtest 与通用导出

  • 发布后 Character 可以完整保存、读取和再次编辑 4/8 个真实方向。
  • Playtest 优先使用方向自身帧,不对新四向/八向资产自动镜像。
  • 渐进式导出读取 action.sequences,保留真实方向名、帧和元数据。
  • 任一必需方向缺失时,Playtest 给出不可用提示,正式导出明确阻止。

5. 调度与计费保护

  • 四向从 3 个真实任务增加到 4 个,八向从 5 个增加到 8 个;提交前应显示生成规模。
  • 保留已成功方向,局部重试不得重复创建或重复扣费其它方向。
  • 为八向并发提交补充背压或并发上限验收。

验收标准

  • 单向项目继续使用 east 实帧和 west 镜像,旧资产无回归。
  • 四向项目为 east、west、north、south 分别创建真实后端任务。
  • 八向项目为全部八个方向分别创建真实后端任务。
  • API 接受项目规格内的全部真实方向,拒绝未知方向和规格外方向。
  • Character 母版和动作可以保存、读取、更新西向独立图片与帧。
  • 四向/八向缺少任一方向时不能完成、发布或正式导出。
  • Quick Start 能创建并完成四向与八向流程。
  • Workflow Editor 能只重做一个指定方向,刷新后恢复全部方向状态。
  • Playtest 使用各方向自身素材,方向与按键对应正确。
  • 通用导出包含全部方向的 Sprite Sheet、逐帧图片和方向元数据。
  • 使用真实后端任务完成一名四向角色及 idle、walk 的完整验收。
  • 使用真实后端任务完成一名八向角色及 idle、walk 的完整验收。
  • 局部失败和重试场景确认未重复扣费已成功方向。

测试要求

  • 前后端方向配置、资产校验和兼容路径单元测试。
  • Quick Start、Workflow Editor、Character 发布、Playtest、通用导出的四向/八向集成测试。
  • Worker payload 往返、任务恢复、返回方向不一致、局部重试竞态测试。
  • 最终验收不得以 Mock、静态样例或单独实验脚本代替真实 Provider 任务。

不在本 Issue 范围

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions