Communitygithub.com

scroll-cinematic — 一句话做 3D 滚动站

一句话生成获奖级 3D 滚动网站 — Claude Code + Higgsfield MCP。电影感英雄镜头与滚动逐帧,适合产品/作品集/机构。64★。README 含 banner 与真实 demo。

scroll-cinematic — 一句话做 3D 滚动站 是什么?

Site Building 步骤1(构图成片站):zubair-trabzada/scroll-cinematic-claude — 64★。一句话 → Higgsfield 电影镜头切成滚动逐帧 → 品牌站。相对昨晚 Video Localization(imlewc→ywwzwb→Perso)与 9/27 早 Launch Video 的新鲜主轴。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add zubair-trabzada/scroll-cinematic-claude

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Scroll-Cinematic — 一次提示 3D 产品站点

这到底是什么(请先阅读)

流行的“3D 滚动”效果不是 Three.js。它是一种画布图像序列擦洗: 将一段简短的电影剪辑导出为约 180 张编号的 JPG 图像,全部预加载,并 根据滚动进度选择绘制到 <canvas> 的帧。向前/向后滚动即可播放 剪辑。配合 Lenis 平滑滚动和与滚动同步的叠加文案,呈现出高级 3D 效果。 “3D”效果完全来自源视频——我们使用 Higgsfield 生成。

技术栈:纯 HTML + CSS + JS + Lenis(零构建,可在任何静态服务器上运行)。

前置条件

  • Higgsfield MCP 已连接并拥有积分(每个站点约 $1–2 美元)。这是用户必须设置的唯一内容。
  • ffmpeg — 不要要求用户安装。下面的步骤 0 会自动安装(无需 Homebrew)。
  • 此技能已安装到 ~/.claude/skills/scroll-cinematic/。

步骤 0 — 确保 ffmpeg(始终首先运行)

运行 bash ~/.claude/skills/scroll-cinematic/scripts/ensure-ffmpeg.sh。该脚本会使用系统中已有的 ffmpeg(如果存在), 否则会下载一个静态二进制文件到 /tmp/ffmpeg-bin/ffmpeg(适用于 macOS/Linux,无需 Homebrew)。 提取/压缩脚本已自动回退到该路径。切勿因 ffmpeg 而阻塞构建。

流程——从单个提示中运行所有这些

1. 确定简报(适用于任何站点——除非主题不明确,否则无需额外提问)

根据用户提示选择:站点类型、主体主题、风格/配色、品牌/名称 (如果未提供则自行发明),以及 2 个主体动作。主体主题就是站点所涉及的内容—— 产品、人物/创始人、建筑物/空间、菜肴、车辆或抽象视觉。 按站点类型的默认动作:

  • 产品(瓶子、小工具、鞋子、化妆品)→ 360° 旋转 + 爆炸/倾倒/展示。
  • 作品集 / 个人品牌 → 电影肖像或抽象液体/几何运动 + 慢速视差/轨道运动。
  • 机构 / 应用 / SaaS → 抽象 3D 形状/标志变形或太空中的 UI + 光流飞行穿越。
  • 承包商 / 家居服务 / 房地产 → 建筑物/家/工地的慢速轨道或飞行穿越 + 细节展示。
  • 餐厅 / 食品 → 菜肴 360° 旋转 + 食材/蒸汽运动或内部飞行穿越。
  • 健身 / 活动 / 旅行 → 主体(运动员、人群、风景)的运动 + 扫掠摄像机运动。 如果不确定,默认使用一个 主体轨道/飞行穿越 和一个 展示/视差 剪辑。

2. 生成主体关键帧(Higgsfield generate_image)

  • 模型:nano_banana_pro(顶级质量/清晰)。提示语描述站点主体 (产品、人物、地点、抽象),强调光影、有意向的背景,“超清晰、 逼真、8k、编辑/广告风格”。16:9 比例。(对于作品集,也可以使用品牌色彩的 抽象 3D 渲染,以避免肖像权/IP 问题。)
  • 轮询 job_display 直到 status:"completed";保留作业的 id(用作视频起始帧)。

3. 生成 1–2 个电影剪辑(Higgsfield generate_video)

  • 模型:seedance_2_0,resolution:"1080p",aspect_ratio:"16:9",duration:6, medias:[{role:"start_image", value:<关键帧 id>}]。始终传递 declined_preset_id:"24bae836-2c4a-48e0-89b6-49fcc0b21612"(如果提示建议预设);如果 建议不同的预设,则使用该预设的 id 在 declined_preset_id 中重试。
  • 动作提示模式(选择适合主题的):
    • 旋转台 — “平滑无缝的完整 360 度旋转,完整一圈,保持居中”。
    • 飞行穿越 — “缓慢连续的向前摄像机飞行穿越/围绕 [建筑物/空间/场景],平滑推轨,深度视差”。
    • 展示/爆炸 — “[内容/组件/元素] 爆炸式向外散开或组装并缓慢漂浮”(保持物体/场景语境——适合审核)。
    • 抽象 — “优雅慢速变形的液态金属/玻璃/粒子形态飘动并旋转”。
  • 同时生成两个剪辑(一条消息中调用两个工具),然后轮询 job_display。 1080p 渲染大约需要 3–8 分钟;在轮询之间后台休眠。
  • 费用: 使用 get_cost:true 预检一次;每个 1080p 剪辑约 54 积分。如果用户积分不足,请确认。

4. 处理渲染结果

  • completed → 使用 curl 下载 results.rawUrl。
  • nsfw 或 failed → 退款,重试。审核可能会误将抽象的“漂浮药丸/ 溶解人物”标记为违规;将其改为产品相关语境,或将该剪辑切换到 grok_video_v15 (resolution:"720p",更宽松)。产品旋转台/爆炸在 1080p 下能通过审核。
  • 告知用户任何重试;如果没有渲染成功,绝不声称剪辑已渲染。

5. 分割并压缩帧(ffmpeg)

  • scripts/extract-frames.sh <clip.mp4> frames/<name> 180 → 约 179 张编号的 JPG 图像。
  • scripts/compress-frames.sh frames/<name> 1600 88 → 宽度 1600px,质量 88(清晰,每节 <~15MB)。
  • 每个剪辑一个文件夹(例如 frames/spin、frames/explode)。

6. 从 templates/ 构建站点

  • 复制 templates/index.html、styles.css、scroll-cinematic.js 到项目。
  • 编辑 SCRUB_SECTIONS 配置(index.html 底部)——每个剪辑一个条目: { section:"#hero", frameCount:179, bg:"#0a0a12", framePath:(i)=> frames/spin/frame_${String(i).padStart(4,"0")}.jpg }。
  • 编写品牌文案、配色方案(CSS 变量)、优势/颜色变体/功能部分、统计信息、行动号召按钮。
  • 色调偏移技巧用于产品变体/颜色变体(无需额外生成): ffmpeg -i base.png -vf "hue=h=120:s=1.15" variant.png。

7. 在 localhost 上启动

  • 将 templates/Launch Demo.command 复制到项目,编辑 PORT 和名称,chmod +x 它。
  • 启动它(python3 -m http.server <port>),curl 页面和一个帧以确认 200 状态码,open URL。
  • 告诉用户 URL,以及双击 .command 文件可重新启动用于录制。

引擎规则(已包含在 templates/scroll-cinematic.js 中)

  • 预加载每一帧;首次加载时绘制第 0 帧;仅在帧索引发生变化时重新绘制。
  • 粘性舞台:外部部分 height: 420–600vh,内部 position:sticky; top:0; height:100vh。 进度 = clamp(-rect.top / (rect.height - innerH), 0, 1)。在 rAF 循环中节流。
  • 适应画布绘制 + HiDPI(devicePixelRatio,上限 2)。从 Lenis rAF 循环驱动更新 (对任何滚动源都稳健)。叠加文案根据每行 [in,out] 进度窗口淡入淡出。
  • 多部分:SCRUB_SECTIONS 数组;引擎跳过其元素缺失的部分。

已知问题

  • 更多/更大的帧 = 加载缓慢 → 保持 1600px / 质量 88 / 约 180 帧。
  • 仅限连续运动剪辑(无硬切——向后擦洗时看起来糟糕)。
  • 无头截图工具在滚动时会使粘性画布部分变空白;请使用像素采样验证, 并在真实浏览器中实时查看。
  • python http.server 预览在空闲时会关闭——.command 启动器是持久的演示方式。

文件

  • templates/index.html、styles.css、scroll-cinematic.js — 多部分擦洗站点。
  • templates/CinematicReveal.tsx — React/Next 直接使用(可选)。
  • templates/Launch Demo.command — 双击本地主机启动器。
  • scripts/extract-frames.sh、scripts/compress-frames.sh — ffmpeg 流程。

相关技能