Files
Genarrative/docs/technical/CREATION_WORK_SHELF_UNIFICATION_2026-04-25.md
高物 548db78ca7 Update Match3D/image-generation docs & code
Adds/updates documentation, assets and implementation for Match3D and puzzle image generation workflows. Key changes: decision logs and pitfalls updated to prefer VectorEngine Gemini for Match3D material sheets and to require edits (multipart) for 1:1 container reference images; guidance added for when to use APIMart vs VectorEngine. .env.example clarified APIMart/Responses config. Many new public assets and PPT visuals added. Code changes across frontend and backend: updated shared contracts, server-rs match3d/puzzle/image-generation handlers, VectorEngine/OpenAI image generation clients, and multiple React components/tests to handle UI/background/container image signing, edits workflow, and puzzle UI background resolution. Added src/services/puzzle-runtime/puzzleUiBackgroundSource.ts and related test updates. Includes notes about multipart HTTP/1.1 requirement and test/verification commands in docs.
2026-05-14 20:34:45 +08:00

3.4 KiB
Raw Blame History

作品货架统一 2026-04-25

背景

创作中心目前已经把 RPG、大鱼吃小鱼、拼图三类作品展示在同一个网格里但前端组件仍直接消费三类原始 works

  1. RPG 使用 statustitlesubtitlecanEnterWorld
  2. 大鱼使用 statustitle、资源完成度字段。
  3. 拼图使用 publicationStatuslevelNameauthorDisplayNamethemeTags

这导致筛选、计数、按钮文案、卡片标题、副标题、标签、删除忙碌态都在 UI 组件里做三套判断。后续再接新作品类型时,货架组件会继续膨胀。

目标

  1. 新增前端统一作品货架视图模型 CreationWorkShelfItem
  2. 由归一化函数把 RPG / Big Fish / Puzzle works 映射成统一字段。
  3. CustomWorldCreationHub 只负责筛选、空态和动作分发。
  4. CustomWorldWorkCard 只负责渲染统一字段,不再理解三类原始 schema。

非目标

  1. 本轮不新增后端统一 works 聚合接口。
  2. 不改变三类现有 works API contract。
  3. 不改变平台首页公开广场的 gallery 合并逻辑。
  4. 不改变删除、体验、恢复草稿的业务规则。

统一字段

CreationWorkShelfItem 至少包含:

  1. id:稳定货架 id。
  2. kindrpg | big-fish | puzzle
  3. statusdraft | published
  4. title / subtitle / summary / updatedAt
  5. coverImageSrc / coverRenderMode / coverCharacterImageSrcs
  6. badges:状态、类型、阶段、标签等展示徽标。
  7. metrics:角色数、地点数、素材完成度、游玩数等底部指标。
  8. openActionLabel:卡片无障碍文案与主动作语义。
  9. source:保留原始 work用于平台壳层执行动作。

验收

  1. 创作中心三类作品仍在同一个网格展示。
  2. 草稿 / 已发布筛选计数统一从 CreationWorkShelfItem.status 读取。
  3. 卡片渲染不再直接判断 publicationStatus 或不同 works schema 的标题字段。
  4. 统一货架按 updatedAt 倒序排序,兼容 ISO 字符串和 seconds.microsZ 后端时间文本。
  5. 作品卡片以 coverImageSrc 作为整卡背景;若 coverImageSrc 为空,允许从同一作品已有的关卡图、背景图或素材图兜底,避免草稿页退回普通面板视觉。
  6. 卡片不展示最后修改时间,updatedAt 只参与排序。
  7. 现有创作中心交互测试通过。

2026-05-14 封面兜底补充

  1. 货架视图模型仍只保存作品真实 coverImageSrc 或同作品真实素材兜底,不把玩法参考图写进数据模型,避免把 UI 兜底误认为作品资产。
  2. CustomWorldWorkCardCreationWorkShelfKindCustomWorldCoverArtwork 传入本地玩法参考图;ResolvedAssetImage 在私有资源换签失败、普通图片 404 或真实封面缺失时使用该参考图作为卡片背景。
  3. 兜底背景底色跟随百梦浅粉、暖白和珊瑚色调,不能继续使用深黑或暗蓝渐变作为草稿卡默认视觉。
  4. 拼图作品列表摘要必须下发 levels,草稿页优先用关卡 coverImageSrc,再用选中候选图或最后一张候选图作为真实作品封面兜底。
  5. 抓大鹅作品列表摘要必须保留 generatedBackgroundAssetgeneratedItemAssets 中的 imageObjectKeycontainerImageObjectKeyimageViews[].imageObjectKey;前端拿到 object key 后统一交给 ResolvedAssetImage 换签,不能因为缺少公开 URL 而退回黑卡。