feat(welcome): 影策首页 - 新增三主题电影卷轴与公开入口

This commit is contained in:
kinoko
2026-09-10 09:11:16 +08:00
parent cb8b874f1f
commit e3a941dff9
32 changed files with 796 additions and 1 deletions

View File

@@ -1550,3 +1550,15 @@ v2(用户反馈首版难看后重做):菜单改用 antd Dropdown(placeme
- [ ] 让 AI 回复含多行代码(如 markdown 围栏 ```ts```):代码块顶部有语言标签 + 复制按钮,点复制后变「已复制」,粘贴内容正确(不含语言标记行)。
- [ ] 代码块圆角/边框/底色在明暗主题均可辨;长代码横向滚动不破版;流式输出中代码块容器稳定不跳动、复制按钮可用。
- [ ] 消息中的行内代码(如 `const x`)样式不受影响;画布 Agent 消息里的代码块同样获得新外壳。
## 影策品牌首页
- 新增 `/welcome` 独立公开首页、六幕电影卷轴、工作台截图切换和创作入口,保留既有工作台路由。
- 用户已确认品牌名影策,保留 Spring(默认)、Charge、Wing It! 三个素材版本;没有竹影选项或专用素材。
- 首屏影像背景随滚动渐隐为黑底,返回顶部时恢复;故事章节保留九张电影画面和三张叠字镜头。
- 来源、作者署名、CC BY 4.0 许可和改编说明见 `/welcome/credits.html`,不将第三方电影素材宣称为影策生成案例。
- 设计与实现说明:[影策品牌首页](../../../design/story-creation-homepage.md)。
- [x] 上游基线独立分支的完整前端构建(指定 Go 1.25.0 工具链)、素材与启动清理专项测试通过;生产预览通过 1440px、390px 三版本切换、六幕滚动、非空画布与动画、Charge 视频、历史返回、减少动态效果与署名页检查,无页面异常、资源 HTTP 错误或后端 API 请求。
- [ ] iOS Safari 真机地址栏变化、长时间浏览帧率与设备发热。
- [ ] Wing It! 部分低分辨率色彩分镜后续升级为高清成片镜头。
- [ ] 是否将品牌首页设为根路径入口,由项目维护者另行决定。

View File

@@ -0,0 +1,51 @@
# 影策品牌首页
## 定位与入口
新增公开首页 `/welcome`,产品名为「影策」,核心文案是「让一个故事,从文字走向银幕」。首页讲述一个创作过程,并提供进入实际工作台的入口。
现有 `/`、`/create` 创作页与 `/home` 项目概览仍按原路由运行。工作台左上品牌菜单新增「品牌首页」链接。新首页通过独立 React 入口加载,以普通链接进入工作台,避免等待登录恢复、加载模型目录或连接本机 Agent。账户认证与业务权限继续由工作台负责。
## 内容与视觉
| 幕 | 主标题 | 素材与镜头 |
| --- | --- | --- |
| 序幕 | 影策 | 同一故事的影像组成旋转卷轴,首屏保留全屏影像背景 |
| 故事 | 一念,成故事。 | 九张电影画面与三张叠字剧本镜头交错,摄影机升高 |
| 角色 | 让想象,有了面孔。 | 当前故事中的人物与环境参考 |
| 分镜 | 字里行间,皆是镜头。 | 黑白影像卡,标记 SHOT、景别与运镜 |
| 生成 | 这一刻,动起来。 | 摄影机靠近;Charge 版本的部分画面播放对应影片片段 |
| 画布 | 一个世界,一张画布。 | 同一批画面展开成节点矩阵与连线 |
六幕后进入真实工作台截图,提供自由画布、即时创作、项目工作台三个可切换视图与对应业务入口。页尾收束为「你的故事,现在开始」,提供开始创作、GitHub 和 MIT License 链接。
第二版以中性近黑与白为底,图片承担主要色彩。摄影机拉近,卷轴略微倾斜并占满主画面;首屏品牌移到左下,保留一句主张,主入口集中于顶部。每幕后只保留一句标题,去掉英文眉题、解释段落和影片角标;底部导航改为可点击刻度,悬停显示章节名称。下方删除三栏功能说明,保留工作台实景。全屏场景无装饰性容器,中文字号按断点设置,不随视口线性缩放。文字为真实 DOM,场景为 Three.js;动画可暂停。手机缩短滚动距离并调整摄影机,减少动态效果和 WebGL 不可用时使用静态画面。标题与 CTA 在资源加载前即可显示。
## 素材
提供 Spring(默认)、Charge、Wing It! 三个素材版本,使用 `?look=spring|charge|wing-it` 直接打开,菜单切换保留滚动位置并支持浏览器前进、后退。首屏背景随向下滚动渐隐为黑底,返回顶部时恢复,而不是在 WebGL 加载后立即消失。
素材保存在 `web/public/welcome/`:Spring 官方五张剧照、Charge 五张预览与截帧、Wing It! 六张绘画与裁图分别循环编排为十二个卷轴位置。Charge 有对应的静音预告片节选;其他版本不混用视频,也不显示无内容的播放入口。Wing It! 部分彩稿分辨率较低,适合方向预览,最终上线可继续补充高清成片镜头。
这些素材来自 Blender 开放电影,资源页采用 CC BY 4.0;完整作者、来源、许可和裁剪处理说明在 `/welcome/credits.html`,入口同时出现在版本菜单下方与页尾。应用代码的 MIT 许可不覆盖这些第三方素材。剧本为本页原创演示文字,黑白分镜为图片处理,不宣称是影策生成的作品,也不宣称是原片剧本。
自由画布、项目工作台截图来自仓库 `assets/`;即时创作使用用户提供并确认的工作台截图,保留完整比例。
## 实现
- `web/src/main.tsx`:精确匹配公开入口,仍保留启动 URL 清理流程。
- `web/src/welcome-application.tsx`:独立 React 挂载。
- `web/src/pages/welcome/index.tsx`:内容、滚动进度、章节导航、视频弹窗与实景切换。
- `web/src/pages/welcome/story.ts`:文案与素材清单。
- `web/src/pages/welcome/story-reel.tsx`:Three.js 影像卷轴、阶段材质、视频、轨迹与节点展开。
- `web/src/pages/welcome/welcome.css`:仅作用于本页的视觉 token 和响应式布局。
设计参考 [Codrops Demo 1](https://tympanus.net/Tutorials/Cinematic3DScroll/) 与 [源码](https://github.com/JosephASG/codrops-cinematic-scroll-animations)。原 Demo 使用 OGL + GSAP;本实现使用已有 Three.js 与原生滚动进度,无新增依赖,不复制其图片、字体、全局 CSS 或广告脚本。
## 验收
需覆盖:无后端访问、三版本切换、六幕跳转、影片弹窗、工作台标签切换、业务跳转、桌面与移动端、低动态偏好、纹理加载失败、WebGL 丢失、卸载后的资源释放。用户已确认保留三组素材并使用影策品牌;真机性能仍需确认。
第二版已通过 TypeScript 检查、Vite 打包,以及 Chromium 375、390、1440、1920 宽度下的浏览器检查:六幕切换、非空画面与动画像素变化、影片播放和关闭、工作台标签切换、无横向溢出、无后端 API 请求,以及减少动态效果、图片失败和 WebGL 创建失败的降级。真机性能与最终视觉接受度仍待确认。
最终三版本在上游主线的独立 PR 分支再次通过完整前端构建(`GOTOOLCHAIN=go1.25.0 bun run build`)、素材与启动清理专项测试(`bun test test/welcome-story.test.ts test/local-runtime-bootstrap.test.ts`)。生产预览验证了 1440px、390px 的三版本切换、六幕滚动、画布像素与运动、Charge 视频、刷新与历史返回、减少动态效果及署名页,未出现页面异常或后端 API 请求。

View File

@@ -4,6 +4,8 @@
## 设计沉淀
- [影策品牌首页](design/story-creation-homepage.md):六幕电影卷轴、公开入口、故事素材、工作台预览与响应式降级。
- [创作 Agent 第一期版本基线](design/creative-agent-phase-one-checkpoint.mdx):用户基本体验验收反馈、已实现范围、执行与资源边界核对、待验收项及代码恢复说明。
- [通用创作 Agent 动态规划与画布协作需求设计](design/creative-agent-dynamic-planning.mdx):基于原会话的专业角色、动态问答与计划、创意方案和执行批次分离、统一画布与费用授权、历史恢复及分期验收(待审阅,未实施)。