樹冠標題
由紋理葉片組成的濃密樹冠,以淺景深掃過畫面,然後分開露出第一個標題;第二個批次則以深度提升的方式,將第二個標題帶到鏡頭前。少數葉片會停留在文字上,並保持輕微的微風。字型、字重、大小、字距、葉片數量、掃描速度以及保留葉片的微風強度皆為可變數。
組合 ID:canopy-part-title。持續時間:30 fps 下 12 秒,解析度 1920×1080。
檔案
canopy-part-title.html(57 KB)assets/leaf-surface-color.webp(64 KB)assets/leaf-surface-normal.webp(136 KB)
安裝
使用 npx hyperframes add canopy-part-title 安裝;預設情況下,上述檔案會放置在 compositions/canopy-part-title/ 目錄下。接著在主機 index.html 中掛載區塊:
<div
data-composition-id="canopy-part-title"
data-composition-src="compositions/canopy-part-title/canopy-part-title.html"
data-start="0"
data-duration="12"
data-track-index="1"
data-width="1920"
data-height="1080"
></div>
若要使用自訂值進行渲染,可直接指定組合檔案:
npx --yes [email protected] render 'compositions/canopy-part-title/canopy-part-title.html' --variables '{"headline1":"底層林","headline2":"慢行"}'
變數
在執行時期透過 window.__hyperframes.getVariables() 讀取;在組合根元素上宣告為 data-composition-variables(使用單引號屬性,內容為純 JSON)。
| id | 類型 | 預設值 | 標籤 / 範圍 |
|---|---|---|---|
headline1 | 字串 | "Understory" | 標題 1 |
headline2 | 字串 | "Move slowly" | 標題 2 |
font | 字串 | "Helvetica" | 標題字型 |
fontWeight | 數字 | 900 | 字型粗細 100–900 間隔 100 |
fontSize | 數字 | 1 | 字型大小(1 = 自動適應)0.3–2 間隔 0.01 |
letterSpacing | 數字 | 0.01 | 字距(em)-0.2–1 間隔 0.01 |
background | 顏色 | "#020805" | 背景 |
leafCount | 數字 | 170 | 每次掃描的葉片數量 40–320 間隔 1 |
stayCount | 數字 | 5 | 留在後方的葉片數量 0–20 間隔 1 |
sweepSpeed | 數字 | 1 | 掃描速度 0.3–3 間隔 0.05 |
retainedBreeze | 數字 | 1 | 保留葉片的微風強度 0–2 間隔 0.05 |
執行時期合約
- 一個暫停的 GSAP 時間軸,註冊為
window.__timelines["canopy-part-title"]。 - 在
hf-seek自訂事件發生時重新同步;每一幀皆為時間的封閉函數(僅使用種子 PRNG,無 rAF 迴圈,無 Date.now)。 - 渲染器:three.js 0.170.0、GSAP 3.14.2、Canvas 2D、後處理、種子 PRNG、陰影貼圖。每個即時實例約需 350 MB 記憶體;請一次只執行一個。
- 外部執行時期依賴項:
https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js、https://cdn.jsdelivr.net/npm/[email protected]/build/three.module.js、https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/postprocessing/EffectComposer.js、https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/postprocessing/RenderPass.js、https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/postprocessing/BokehPass.js。 - 來自 Google Fonts 的網路字型:Gelasio。
編輯規則(來自原始專案)
- 保持
data-composition-variables為單引號屬性,並使用純"JSON。切勿透過 Studio 的設計面板儲存。 - 不要在靜態標記中放置
<canvas>;應在執行時期建立。 - 保持每個視覺狀態為 t 的函數;尋址安全性是區塊可渲染性的關鍵。