평평한 종이가 여러 주름을 따라 작은 덩어리로 구겨지고 다시 펼쳐지는 변형Flat paper folds along several creases into a small ball, then opens back out.
종이가 550ms 동안 주름 6개를 따라 구겨져 작은 덩어리가 되고 400ms에 다시 펼쳐지며 잔주름이 사라진다
주름이 한 방향으로만 접혀 단순 접기처럼 보이거나, 조명 법선이 갱신되지 않아 구겨져도 평평하게 보인다
기본값은 클립에 쓴 값Defaults are the values used in the clip
| 항목PARAM | 기본DEFAULT | 범위RANGE | 메모NOTE |
|---|---|---|---|
| 구김 시간 | 0.55s | 0.4~0.8s | 압축 |
| 복원 시간 | 0.4s | 0.3~0.7s | 펼침 |
| 주름 수 | 6 | 4~10 | 시드 고정 |
| 강도 | 0.85 | 0.6~1.0 | 최종 압축 정도 |
| 이징 | power3.in | 구김 in, 복원 out |
const p = { k: 0 };
tl.to(p, { k: 0.85, duration: 0.55, ease: 'power3.in', onUpdate: () => mat.uniforms.uCrumple.value = p.k }, 0.6);
tl.to(p, { k: 0, duration: 0.4, ease: 'power2.out', onUpdate: () => mat.uniforms.uCrumple.value = p.k }, 1.5);
// vertex: 주름축 6개(시드)에 대해 k만큼 접고 normal 재계산그대로 붙여 넣는다Paste as is
WebGL과 GSAP으로 <종이 이미지>가 구겨졌다 펴지는 연출을 만들어 줘. 평면 메시를 시드로 정한 주름 축 6개를 따라 접고 법선을 재계산해 조명이 보이게 해. 0.6초부터 0.55초 동안 power3.in으로 강도 0에서 0.85, 1.5초부터 0.4초 동안 power2.out으로 0까지 복원해. 복원 후에는 평면과 동일해야 하고 Math.random은 쓰지 마.
Use WebGL and GSAP to crumple and unfold <paper image>. Fold a plane mesh along 6 seeded crease axes and recompute normals so lighting shows. From 0.6 seconds over 0.55 seconds with power3.in raise strength from 0 to 0.85; from 1.5 seconds over 0.4 seconds with power2.out return it to 0. After restoring it must match the flat plane. No Math.random.
<파일>에 paper-crumple을 적용해. uniform uCrumple을 position 0.6, duration 0.55, ease power3.in으로 0→0.85, position 1.5, duration 0.4, ease power2.out으로 0.85→0 tween한다. 주름 축은 상수 6개. 0.5초는 평평, 1.1초는 덩어리, 2.0초는 원본과 픽셀 차이가 0인지 캡처로 확인해.
Apply paper-crumple in <file>. Tween uniform uCrumple 0 to 0.85 at position 0.6, duration 0.55, ease power3.in, then 0.85 to 0 at position 1.5, duration 0.4, ease power2.out. Crease axes are 6 constants. Capture 0.5s (flat), 1.1s (ball) and 2.0s (zero pixel diff against the original).
HyperFrames · ReelForge · Scrolline
개념 출처와 라이선스. 구현은 이 레포에서 새로 씀Concept sources and licenses. Implementations are original to this repo