Skip to content

feat(export): 新增 Cocos Creator 2D 一键导入 - #494

Open
xyh202131 wants to merge 20 commits into
1024XEngineer:mainfrom
xyh202131:feat/directional-generation-backend
Open

feat(export): 新增 Cocos Creator 2D 一键导入#494
xyh202131 wants to merge 20 commits into
1024XEngineer:mainfrom
xyh202131:feat/directional-generation-backend

Conversation

@xyh202131

@xyh202131 xyh202131 commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

改动概述

为 Windup 增加 Cocos Creator 3.8.8 2D 资产一键导入能力:

  • 网页端新增 Cocos Creator 导出目标、配对、进度展示和失败后下载回退。
  • 提供 Creator 扩展,在本机通过六位连接码完成授权,并把资产事务式写入当前工程。
  • 生成 Creator 可识别的纹理、SpriteFrame、AnimationClip、Prefab 与稳定 .meta
  • 增加 ZIP 完整性、路径穿越、容量上限、来源校验、任务幂等和失败回滚保护。
  • 保留命令行导入方式,并提供可重建、可校验的扩展源码和打包脚本。
  • 修复旧版资产显示名与实际导出目录不一致时的导入失败,兼容方向与重名后缀。

验收结果

  • 使用真实“网站看板娘-46-默认造型”2D 资产在 Cocos Creator 3.8.8 中连续导入 2 次。
  • 每次导入均得到 64 张 256×256 RGBA8 帧、2 个动画和 1 个 Prefab。
  • 重复导入更新同一目录,动画时序、引用、锚点和资源 UUID 校验通过。
  • 前端:70 个测试文件、943 项测试通过。
  • 覆盖率:语句 92.65%、分支 87.42%、函数 94.87%、行 95.56%。
  • 导入器 51 项测试、Creator 扩展 31 项测试通过。
  • 格式检查、静态检查、类型检查、生产构建和扩展安装包校验通过。

范围说明

本 PR 不修改后端。未包含内部过程文档、构建压缩包、本地记忆文件和测试临时输出。

Closes #94

@vercel

vercel Bot commented Aug 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
windup Ignored Ignored Preview Aug 21, 2026 3:18am

@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown

✅ 此 PR 已关联 issue,之前的提醒已自动标记为已解决。

@codecov

codecov Bot commented Aug 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.61977% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...ntend/src/features/export-package/export-panel.tsx 98.95% 0 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

本次重点核对了网页桥接、导出清单、旧包兼容路径、Creator 扩展的事务/回滚以及生成资产引用。扩展与清单的聚焦测试通过,但旧版通用包转换在带方向或需清洗名称的动作上会构造错误的帧目录,导致导入直接失败。

验证:扩展/清单/规划/UUID 共 65 项测试通过;最小复现返回 IMPORT_SOURCE_MISSING: frames/Walk / Forward/Walk-Forward-south_000.png。完整前端测试因当前工作区依赖可执行权限问题未能运行。

View job run

return {
id: String(action.id ?? `legacy-action-${index}`),
name: String(action.name ?? `action-${index}`),
export_name: String(action.name ?? `action-${index}`),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] 从旧版实际路径恢复 export_name

这里把旧版 meta.json 的显示名直接当成 export_name,但旧导出器实际用经过清洗并附加方向的名称创建目录(例如动作名 Walk / Forward、方向 south 会落到 frames/Walk-Forward-south/)。随后 planImport() 会查找 frames/${export_name}/${frame.file},因此所有非默认方向或名称含空格/斜杠的旧包都会报 IMPORT_SOURCE_MISSING,与本函数声明的旧包兼容目标冲突。请从 atlas.file/帧文件名恢复原始导出目录名,或按旧导出器的命名规则重建并覆盖重复名场景。

@huyanxius

Copy link
Copy Markdown
Collaborator

建议拆几个 PR,这个没法review

@huyanxius
huyanxius self-requested a review August 20, 2026 12:34
@vercel

vercel Bot commented Aug 20, 2026

Copy link
Copy Markdown

Deployment failed for project windup with the following error:

Resource is limited - try again in 24 hours (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/huyan-s-projects1?upgradeToPro=build-rate-limit

@@ -0,0 +1,117 @@
# Cocos Creator 一键导出实现计划

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

文档删掉

@@ -0,0 +1,139 @@
# Cocos Creator 网页一键导入设计

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里也是

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

怎么还有压缩包?

@huyanxius

huyanxius commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

@fennoai 扫描一下本次提交还夹带了什么与代码无关内容,如文档和压缩包

@fennoai

fennoai Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

扫描结果

已按固定范围 0b1e5acd6fa62988dff453161cb09773ecdc0731...0577c89aadeeb13efc697df278940fe41576f6c7 检查本次 PR 的 52 个文件。

  • 设计/过程文档(3 个)
    • docs/superpowers/plans/2026-08-20-cocos-one-click-export.md(8.3 KB)
    • docs/superpowers/plans/2026-08-20-cocos-web-one-click-import.md(19.1 KB)
    • docs/superpowers/specs/2026-08-20-cocos-web-one-click-import-design.md(8.1 KB)
    • 其中 cocos-one-click-export.md 文件内明确标注“已被取代”,属于早期“下载 ZIP + CLI 导入”方案的历史计划;如果只保留当前方案文档,它是最明显的可清理项。其余两份直接对应本 PR 的设计和实施过程。
  • README(2 个)frontend/src/features/export-package/README.mdtools/cocos-importer/README.md,内容均为当前功能的使用/架构说明,不属于无关文档。
  • 压缩包(1 个)tools/cocos-importer/dist/windup-cocos-importer.zip,大小 75,310 bytes,包含 16 个 Cocos 扩展安装文件。它是生成的可直接安装扩展包,与 PR 描述中的“附带可直接安装的扩展包”一致,不是无关文件;但它属于二进制发布产物,会增加审查和仓库体积负担,可考虑改为 Release/CI 产物。
  • tools/cocos-importer/extension/package.jsontools/cocos-importer/package.json 是功能所需的包元数据,不算夹带内容。
  • 未发现其他图片、字体、日志、coverage、构建目录或测试临时输出;其余 .ts/.tsx/.js/.mjs 及测试文件均直接服务于该功能。

已运行扩展包校验:verify-package.mjs 报告 OK,压缩包结构完整。

@huyanxius

Copy link
Copy Markdown
Collaborator

扫描结果

已按固定范围 0b1e5acd6fa62988dff453161cb09773ecdc0731...0577c89aadeeb13efc697df278940fe41576f6c7 检查本次 PR 的 52 个文件。

  • 设计/过程文档(3 个)

    • docs/superpowers/plans/2026-08-20-cocos-one-click-export.md(8.3 KB)
    • docs/superpowers/plans/2026-08-20-cocos-web-one-click-import.md(19.1 KB)
    • docs/superpowers/specs/2026-08-20-cocos-web-one-click-import-design.md(8.1 KB)
    • 其中 cocos-one-click-export.md 文件内明确标注“已被取代”,属于早期“下载 ZIP + CLI 导入”方案的历史计划;如果只保留当前方案文档,它是最明显的可清理项。其余两份直接对应本 PR 的设计和实施过程。
  • README(2 个)frontend/src/features/export-package/README.mdtools/cocos-importer/README.md,内容均为当前功能的使用/架构说明,不属于无关文档。

  • 压缩包(1 个)tools/cocos-importer/dist/windup-cocos-importer.zip,大小 75,310 bytes,包含 16 个 Cocos 扩展安装文件。它是生成的可直接安装扩展包,与 PR 描述中的“附带可直接安装的扩展包”一致,不是无关文件;但它属于二进制发布产物,会增加审查和仓库体积负担,可考虑改为 Release/CI 产物。

  • tools/cocos-importer/extension/package.jsontools/cocos-importer/package.json 是功能所需的包元数据,不算夹带内容。

  • 未发现其他图片、字体、日志、coverage、构建目录或测试临时输出;其余 .ts/.tsx/.js/.mjs 及测试文件均直接服务于该功能。

已运行扩展包校验:verify-package.mjs 报告 OK,压缩包结构完整。

@删除掉无关文档,直接在本 PR 上修改

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

导出产物契约与 Cocos 适配(Refs #37 §3.9)

2 participants