Skip to content

[Feature]: 前端把动作生成结果写进 sequences,多朝向才存得下 #530

Description

@johnnyzhang-eng

背景

多朝向的存储形状两侧都已就位,缺的是生成结果写进去这一步。

后端 CharacterActionSequence 带完整校验(同一动作不许重复方向、镜像方向不存独立帧、镜像帧数须与源方向一致),前端 ActionSequence 类型也在,且导出契约、asset-export、outfit-playback 三处都在消费 action.sequences。

生成结果自 #449 起就带 direction(CharacterActionOutput.direction,默认 east;实测 staging 近一天 10 个任务进出都带 east)。

问题

动作生成完成后,前端只把结果写进 action.frames,不写 action.sequences。于是同一个动作生成了多个朝向时,第二个朝向覆盖第一个,或者只留下一组帧 —— 这正是 #222 背景表里那句「一个动作只能保存一组帧,无法区分不同朝向」。

后端不能代做:写 character_data 是前端在更新角色时做的。

需要前端补的

  1. 动作生成结果落库时写 sequences:一条对应结果里的 direction,frame_count 与 frames 一致
  2. 同一动作再生成另一个朝向时,新增一条 sequence 而不是覆盖;重做已有朝向则替换那一条
  3. 四向项目里镜像方向(west 对 east、north-west 对 north-east 之类)按后端校验规则只写来源关系、不写帧:mirror_x=true + source_direction + frame_count 与源一致,frames 留空。写了帧后端会拒
  4. 顶层 frames 的存量语义保持不变(旧资产视为 east),不要为了统一而迁移存量

不包含

验收

  • 同一动作先生成 east 再生成 west,character_data 里是两条 sequence,两组帧都在
  • 镜像方向写成来源关系时后端接受;带上帧时后端拒绝,前端能显示拒绝原因
  • 只有顶层 frames、没有 sequences 的旧资产仍能正常导出与播放

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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