mcpField
G
glass-shard-title

glass-shard-title

github.com/heygen-com创意与媒体74.7k10.5k 次安装今天更新
代码仓库

关于 glass-shard-title

这是用于 Hyperframes 的玻璃碎片标题动画组合,旋转的碎片拼成标题轮廓后飞过镜头,适合突出玻璃拼片与纵深运动的短片标题动画。

主要功能

  1. 01Voronoi 碎片拼出标题轮廓
  2. 02碎片从纵深处旋转飞入
  3. 03玻璃片飞过镜头离场
  4. 04可调整拼片数量
  5. 0512.16 秒、1080p 组合

适用场景

  1. 01制作玻璃碎片标题揭示
  2. 02构建拼片式标题轮廓
  3. 03制作具有纵深感的碎片动画

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/heygen-com/hyperframes --skill glass-shard-title

安装后在 Claude Code 中输入/glass-shard-title确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

build-bundle.mjs
glass-shard-title.html
registry-item.json
assets/
glass-main.mjs
Three-LICENSE.txt
assets/fonts/
CormorantGaramond-OFL.txt
Geist-OFL.txt

详细介绍

玻璃碎片标题

Voronoi 切割的玻璃片从景深中飞入、旋转,最后拼成标题的平铺剪影,然后飞过镜头离开。每块碎片都是通过 Sutherland–Hodgman 算法将一个带抖动的 blob 裁剪到其 Voronoi 单元中得到的,因此碎片始终能覆盖文字。玻璃和 matcap 表面会逐片元应用雾效;Z 轴飞行与缓动效果相互独立,因此碎片会明显穿过这段距离。将 Tile count 设为 1 时会显示单块玻璃片。

合成 ID:glass-shard-title。时长为 12.16 秒,帧率为 30 fps,分辨率为 1920×1080。

文件

  • glass-shard-title.html(16 KB)
  • assets/ferndale_studio_01_1k.hdr(1.6 MB)
  • assets/fonts/Geist-Bold.ttf(65 KB)
  • assets/fonts/Geist-Regular.ttf(65 KB)
  • assets/fonts/Geist-SemiBold.ttf(65 KB)
  • assets/fonts/Geist-OFL.txt(4 KB)
  • assets/fonts/cormorant-garamond.woff2(37 KB)
  • assets/fonts/CormorantGaramond-OFL.txt(4 KB)
  • assets/glass-main.js(549 KB)
  • assets/Three-LICENSE.txt(1 KB)
  • assets/matcap-1.png(安装时从 CDN 获取)

安装

使用 npx hyperframes add glass-shard-title 安装;默认情况下,上述文件会放在 compositions/glass-shard-title/ 下。然后从宿主 index.html 挂载该区块:

<div
  data-composition-id="glass-shard-title"
  data-composition-src="compositions/glass-shard-title/glass-shard-title.html"
  data-start="0"
  data-duration="12.16"
  data-track-index="1"
  data-width="1920"
  data-height="1080"
></div>

若要使用自定义值进行渲染,请直接指定合成文件:

npx --yes [email protected] render 'compositions/glass-shard-title/glass-shard-title.html' --variables '{"headline":"Designed in glass","tileCount":8}'

变量

运行时通过 window.__hyperframes.getVariables() 读取;变量声明在合成根元素的 data-composition-variables 属性中(单引号属性,纯 JSON)。

id类型默认值标签 / 范围
headline字符串"Designed in glass"标题,最多 40 个字符
tileCount数字8平铺数量,1–400,步长为 1
roundness数字0.4圆度(0–1),步长为 0.01
bevel数字0.35倒角(0–1),步长为 0.01
meshSmooth数字0.6表面平滑度(0–1),步长为 0.01
flyInTime数字2.3飞入时长(秒),0.2–6,步长为 0.05
flyOutTime数字2.4飞出时长(秒),0.2–6,步长为 0.05
stagger数字0.27错开程度(0–1),步长为 0.01
flyInRotation数字5飞入旋转(0–60),步长为 0.1
flyOutRotation数字6飞出旋转(0–6),步长为 0.1
chaos数字0.25轮廓混乱度(0–1),步长为 0.01
padding数字1边缘留白(0–1),步长为 0.01
sizeVariance数字0.35尺寸变化(0–1),步长为 0.01
gap数字0.03平铺间隙,0–0.3,步长为 0.002
easePow数字10飞入位置缓动(1–10),步长为 0.1
sideDist数字3侧向飞行距离,0–60,步长为 0.5
zDist数字-42Z 轴飞入起点(负值),-400–0,步长为 2
zOut数字14Z 轴飞出终点(+ 表示经过镜头),-400–60,步长为 2
fog数字36雾效距离(0 = 关闭),0–400,步长为 2

运行时约定

  • 一个已暂停的 GSAP 时间轴,注册为 window.__timelines["glass-shard-title"]。
  • 在 hf-seek CustomEvent 上重新同步;每一帧都是时间的闭式函数(仅使用带种子的 PRNG,不使用 rAF 循环或 Date.now)。
  • 渲染器:three.js 0.181.2(已打包)、GSAP 3.14.2、Canvas 2D、GLSL 着色器、HDR 环境、Matcap、带种子的 PRNG、d3-delaunay、阴影贴图。每个运行实例的预算约为 350 MB;一次只运行一个实例。
  • 外部运行时依赖:https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js、https://cdn.jsdelivr.net/npm/[email protected]/dist/d3-delaunay.min.js。
  • 本地字体:assets/fonts/Geist-Regular.ttf、assets/fonts/Geist-SemiBold.ttf、assets/fonts/Geist-Bold.ttf。
  • 打包后的代码内联在合成中(assets/glass-main.js);编辑 .mjs 源文件后,使用 esbuild 重新构建并再次内联。

编辑规则(摘自源项目)

  1. 将 data-composition-variables 保持为单引号属性,JSON 使用普通的 "。切勿通过 Studio 的 Design 面板保存它。
  2. 不要在静态标记中放入 <canvas>;应在运行时创建。
  3. 让每个视觉状态都由 t 决定;确保可安全跳转时间,才能让区块正常渲染。

评论

支持 Markdown