그물의 한 부분이 당겨지면 주변 점들이 뒤늦게 따라오다 스프링처럼 복원되는 격자Pulling one part of a net drags nearby points along late, then they spring back.
20px 격자의 한 점이 40px 당겨지고 주변 점이 감쇠 0.9로 1초에 걸쳐 따라와 원위치로 복원된다
감쇠가 없어 격자가 계속 진동하거나, 당김이 커서 선이 서로 겹쳐 엉킨다
기본값은 클립에 쓴 값Defaults are the values used in the clip
| 항목PARAM | 기본DEFAULT | 범위RANGE | 메모NOTE |
|---|---|---|---|
| 시간 | 1.0s | 0.7~1.6s | 당김+복원 |
| 격자 간격 | 20px | 16~32px | canvas |
| 당김 | 40px | 20~60px | 제어점 변위 |
| 감쇠 | 0.9 | 0.85~0.95 | 프레임당 곱 |
| 전파 지연 | 0.02s | 0.01~0.04s | 거리 비례 |
// 진행률 t의 순수 함수로 각 점 변위 계산 (프레임 누적 시뮬레이션 대신 폐쇄형)
const disp = (d, t) => 40 * Math.exp(-d / 60) * Math.exp(-4 * Math.max(0, t - d * 0.0008)) * Math.cos(9 * Math.max(0, t - d * 0.0008));
tl.to(s, { t: 1, duration: 1.0, ease: 'none', onUpdate: () => drawMesh(s.t) }, 0.2);그대로 붙여 넣는다Paste as is
Canvas와 GSAP으로 <대상> 배경에 탄성 그물을 만들어 줘. 20px 간격 격자에서 한 점을 40px 당기고, 주변 점은 거리에 비례한 지연으로 따라와 1초 안에 감쇠 진동하며 복원되게 해. 변위는 시간 t의 폐쇄형 감쇠 진동 수식으로 계산하고 프레임 누적 시뮬레이션은 쓰지 마. paused 타임라인에서 seek되게 해.
Use Canvas and GSAP to build an elastic mesh behind <target>. On a 20px grid pull one point 40px and let surrounding points follow with a delay proportional to distance, oscillating and restoring within 1 second. Compute displacement with a closed-form damped oscillation of time t rather than frame-accumulated simulation. Must be seekable on a paused timeline.
<파일>에 elastic-mesh를 적용해. disp(d,t)=40*exp(-d/60)*exp(-4*(t-d*0.0008))*cos(9*(t-d*0.0008))로 각 점의 변위를 계산하고 tween 객체 {t}를 position 0.2, duration 1.0, ease none으로 0→1, onUpdate에서 drawMesh(t)를 호출한다. 0.2초는 격자 정지, 0.5초는 당김과 전파, 1.3초는 거의 복원된 상태인지 캡처로 확인해.
Apply elastic-mesh in <file>. Compute per-point displacement disp(d,t)=40*exp(-d/60)*exp(-4*(t-d*0.0008))*cos(9*(t-d*0.0008)); tween an object {t} 0 to 1 at position 0.2, duration 1.0, ease none and call drawMesh(t) in onUpdate. Capture 0.2s (grid still), 0.5s (pull and propagation) and 1.3s (nearly restored).
HyperFrames · ReelForge · Scrolline
개념 출처와 라이선스. 구현은 이 레포에서 새로 씀Concept sources and licenses. Implementations are original to this repo