背景
多朝向的存储形状两侧都已就位,缺的是生成结果写进去这一步。
后端 CharacterActionSequence 带完整校验(同一动作不许重复方向、镜像方向不存独立帧、镜像帧数须与源方向一致),前端 ActionSequence 类型也在,且导出契约、asset-export、outfit-playback 三处都在消费 action.sequences。
生成结果自 #449 起就带 direction(CharacterActionOutput.direction,默认 east;实测 staging 近一天 10 个任务进出都带 east)。
问题
动作生成完成后,前端只把结果写进 action.frames,不写 action.sequences。于是同一个动作生成了多个朝向时,第二个朝向覆盖第一个,或者只留下一组帧 —— 这正是 #222 背景表里那句「一个动作只能保存一组帧,无法区分不同朝向」。
后端不能代做:写 character_data 是前端在更新角色时做的。
需要前端补的
- 动作生成结果落库时写
sequences:一条对应结果里的 direction,frame_count 与 frames 一致
- 同一动作再生成另一个朝向时,新增一条 sequence 而不是覆盖;重做已有朝向则替换那一条
- 四向项目里镜像方向(west 对 east、north-west 对 north-east 之类)按后端校验规则只写来源关系、不写帧:
mirror_x=true + source_direction + frame_count 与源一致,frames 留空。写了帧后端会拒
- 顶层
frames 的存量语义保持不变(旧资产视为 east),不要为了统一而迁移存量
不包含
验收
- 同一动作先生成 east 再生成 west,
character_data 里是两条 sequence,两组帧都在
- 镜像方向写成来源关系时后端接受;带上帧时后端拒绝,前端能显示拒绝原因
- 只有顶层
frames、没有 sequences 的旧资产仍能正常导出与播放
背景
多朝向的存储形状两侧都已就位,缺的是生成结果写进去这一步。
后端
CharacterActionSequence带完整校验(同一动作不许重复方向、镜像方向不存独立帧、镜像帧数须与源方向一致),前端ActionSequence类型也在,且导出契约、asset-export、outfit-playback三处都在消费action.sequences。生成结果自 #449 起就带
direction(CharacterActionOutput.direction,默认east;实测 staging 近一天 10 个任务进出都带east)。问题
动作生成完成后,前端只把结果写进
action.frames,不写action.sequences。于是同一个动作生成了多个朝向时,第二个朝向覆盖第一个,或者只留下一组帧 —— 这正是 #222 背景表里那句「一个动作只能保存一组帧,无法区分不同朝向」。后端不能代做:写
character_data是前端在更新角色时做的。需要前端补的
sequences:一条对应结果里的direction,frame_count与frames一致mirror_x=true+source_direction+frame_count与源一致,frames留空。写了帧后端会拒frames的存量语义保持不变(旧资产视为 east),不要为了统一而迁移存量不包含
CharacterActionSequence的校验规则验收
character_data里是两条 sequence,两组帧都在frames、没有sequences的旧资产仍能正常导出与播放