线框传送门标题
从捆绑的 Geist 字体出发,通过 TTF 加载器和多边形偏移技术构建出立体线框字母,然后经由一个混乱程度可调的传送门爆裂效果揭示。第二波动画将字母切换为替代短语,支持单词换行和自动字号调整,并配以可调节的缓动曲线和稳定后的毛刺效果,可选深度雾效。
合成 ID:wireframe-portal-title。时长 8 秒,30 fps,1920×1080。
文件
wireframe-portal-title.html(63 KB)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)
安装
使用 npx hyperframes add wireframe-portal-title 安装;默认情况下上述文件会放置在 compositions/wireframe-portal-title/ 目录下。然后在宿主 index.html 中挂载该区块:
<div
data-composition-id="wireframe-portal-title"
data-composition-src="compositions/wireframe-portal-title/wireframe-portal-title.html"
data-start="0"
data-duration="8"
data-track-index="1"
data-width="1920"
data-height="1080"
></div>
通过直接指向合成文件并使用自定义值渲染:
npx --yes [email protected] render 'compositions/wireframe-portal-title/wireframe-portal-title.html' --variables '{"title":"BREAKTHROUGH","replacementPhrase":"Lets do this sir!"}'
变量
运行时通过 window.__hyperframes.getVariables() 读取;在合成根元素上声明为 data-composition-variables(单引号属性,纯 JSON)。
| id | 类型 | 默认值 | 标签 / 范围 |
|---|---|---|---|
title | string | "BREAKTHROUGH" | 标题最多 18 个字符 |
replacementPhrase | string | "Lets do this sir!" | 3D 替换短语(自动布局) |
phraseDuration | number | 1.85 | 短语过渡持续时间(秒)0.65–2.9 步长 0.05 |
phraseEasing | number | 8 | 过渡缓动(1 平滑 – 8 弹跳)1–8 步长 0.25 |
settleGlitch | number | 0.2 | 字母稳定后毛刺强度 0–4 步长 0.05 |
depthFog | boolean | true | 深度雾效(早期淡出始终开启) |
subtitle | string | "HYPERFRAMES PORTAL TITLE" | 副标题最多 48 个字符 |
accent | color | "#F5C518" | 强调色 |
burstChaos | number | 1 | 爆裂混乱程度(0-2)0–2 步长 0.01 |
运行时约定
- 一个暂停的 GSAP 时间线注册为
window.__timelines["wireframe-portal-title"]。 - 在
hf-seekCustomEvent 时重新同步;每一帧都是时间的封闭函数(仅使用种子伪随机数生成器,无 rAF 循环,无 Date.now)。 - 渲染器:three.js 0.181.2,GSAP 3.14.2,Canvas 2D,GLSL 着色器,后处理,种子伪随机数生成器,Clipper。每个活动实例大约占用 350 MB 内存;建议同时只运行一个实例。
- 外部运行时依赖:
https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js,https://cdn.jsdelivr.net/npm/[email protected]/clipper.js,https://cdn.jsdelivr.net/npm/[email protected]/build/three.module.js,https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/。 - 本地字体:assets/fonts/Geist-Regular.ttf,assets/fonts/Geist-SemiBold.ttf,assets/fonts/Geist-Bold.ttf。
编辑规则(来自源项目)
- 保持
data-composition-variables为单引号属性,内部为纯"引号的 JSON。切勿通过 Studio 的设计面板保存它。 - 不要在静态标记中放置
<canvas>;应在运行时创建。 - 保持每个视觉状态为 t 的函数;可跳跃性是使区块可渲染的关键。