문자 열이 위에서 아래로 떨어지고, 밝은 머리 뒤로 점점 흐려지는 꼬리가 남는다Columns of characters fall from the top, each led by a bright head with a fading tail behind it.
16px 간격의 열이 60~180px/s로 떨어지고, 머리는 흰색, 꼬리 12문자는 초록에서 투명으로 사라진다. 문자는 80ms마다 바뀐다
모든 열이 같은 속도로 동시에 떨어져 격자 애니메이션처럼 보이거나, 문자 밝기가 전부 같아 머리가 구분되지 않는다
기본값은 클립에 쓴 값Defaults are the values used in the clip
| 항목PARAM | 기본DEFAULT | 범위RANGE | 메모NOTE |
|---|---|---|---|
| 열 간격 | 16px | 12~24px | 1920 기준 120열 |
| 낙하 속도 | 60~180px/s | 열마다 시드로 고정 | 열별 속도 차이가 깊이감을 만듦 |
| 꼬리 길이 | 12문자 | 8~20문자 | 길수록 잔상이 길어짐 |
| 문자 갱신 | 80ms | 60~120ms | 머리에서 먼 문자일수록 느리게 |
const cols = Array.from({length: 120}, (_, i) => ({ x: i * 16, v: 60 + rng(i) * 120, y0: rng(i + 500) * -800 }));
const u = { t: 0 };
tl.to(u, { t: 6, duration: 6, ease: 'none', onUpdate: draw }, 0);
function draw() { cols.forEach(c => { const head = c.y0 + c.v * u.t; /* 머리 y, 꼬리는 head - k*16 */ }); }그대로 붙여 넣는다Paste as is
<대상> 영역 뒤에 디지털 문자비 배경을 canvas로 만들어줘. 열 간격 16px, 낙하 속도는 열마다 60~180px/s, 머리는 흰색과 꼬리 12문자는 초록에서 투명으로 사라지게, 문자는 80ms마다 바뀌게 해. 총 6초이고 시드 난수를 써서 seek해도 같은 그림이 나오게 해줘.
Build a digital rain background behind <target> on a canvas. Use a 16px column pitch, a per-column fall speed of 60 to 180px/s, a white head, a 12-character tail fading from green to transparent, and characters that change every 80ms. Run 6 seconds total and use seeded randomness so seeking gives identical frames.
<파일>에 digital-rain canvas 레이어를 추가해. 열 120개, 속도 60~180px/s, 꼬리 12, 갱신 80ms, 전체 밝기 0.35, 6초. Math.random 대신 mulberry32 시드를 쓰고 프레임 상태를 t로만 계산한다. 1초, 3초, 5.5초를 캡처해 열마다 머리 위치가 다르고 꼬리가 투명으로 사라지는지, 같은 t를 두 번 seek해도 픽셀이 같은지 확인해.
Add a digital-rain canvas layer to <file>: 120 columns, 60 to 180px/s, tail 12, refresh 80ms, overall brightness 0.35, 6 seconds. Use a mulberry32 seed instead of Math.random and compute every frame from t alone. Capture at 1s, 3s and 5.5s and verify head positions differ per column, tails fade to transparent, and seeking the same t twice gives identical pixels.
HyperFrames · ReelForge · Scrolline
개념 출처와 라이선스. 구현은 이 레포에서 새로 씀Concept sources and licenses. Implementations are original to this repo