작은 밝은 점이 빠르게 튀어 나가 짧은 꼬리를 남기고 꺼지는 불티Small bright dots fly outward, leave short tails and go out.
충돌 지점에서 점 60개가 초기 속도 350px/s로 사방에 흩어져 450ms에 꺼진다
입자를 수백 개 오래 유지해 화면이 지저분해지거나, 매 렌더가 다른 배치다
기본값은 클립에 쓴 값Defaults are the values used in the clip
| 항목PARAM | 기본DEFAULT | 범위RANGE | 메모NOTE |
|---|---|---|---|
| 입자 수 | 60 | 30~100 | 캔버스 1920x1080 |
| 초기 속도 | 350px/s | 200~500px/s | 방사형 |
| 수명 | 450ms | 300~600ms | 점마다 ±15% |
| 합성 | lighter | lighter | 밝은 점이 겹칠 때 빛남 |
let s = 11; const r = () => (s = (s * 16807) % 2147483647) / 2147483647;
const P = Array.from({ length: 60 }, () => ({ a: r() * Math.PI * 2, v: 250 + r() * 200, l: 0.38 + r() * 0.14 }));
tl.to({ t: 0 }, { t: 1, duration: 0.8, ease: 'none', onUpdate() { draw(this.targets()[0].t * 0.8); } }, 0.4);그대로 붙여 넣는다Paste as is
GSAP과 canvas로 <대상> 충돌 지점에 불티 분사를 넣어줘. 시드 11 고정 난수로 입자 60개를 만들고 각 입자는 각도 랜덤, 초기 속도 250~450px/s, 수명 0.38~0.52초. draw(t)를 시각의 순수 함수로 짜서 위치는 v*t*(1-t/수명*0.5)로 계산하고 lighter 합성으로 그려. 0.4초 시작, paused 타임라인.
Add a spark spray at the collision point of <target> with GSAP and canvas. Build 60 particles from a seed-11 random with random angle, initial speed 250 to 450px/s and life 0.38 to 0.52s. Write draw(t) as a pure function of time, computing position as v*t*(1 - t/life*0.5), and draw with lighter blending. Start at 0.4s on a paused timeline.
<파일>의 <대상>에 spark-spray를 적용해. LCG seed 11로 60개 입자를 만들고 draw(t)를 순수 함수로 작성, globalCompositeOperation lighter. Math.random 금지. 0.5초·0.7초·1.0초를 캡처하고, 같은 시각을 두 번 렌더해 픽셀이 동일한지, 1.0초에 입자 수가 0인지 확인해.
Apply spark-spray to <target> in <file>. Build 60 particles from an LCG seeded 11, write draw(t) as a pure function, globalCompositeOperation lighter. No Math.random. Capture at 0.5s, 0.7s and 1.0s, render the same time twice to confirm pixel equality, and check the particle count is 0 at 1.0s.
HyperFrames · ReelForge · Scrolline
개념 출처와 라이선스. 구현은 이 레포에서 새로 씀Concept sources and licenses. Implementations are original to this repo