한두 줄짜리 자막이 화면 하단 고정 위치에서 발화 구간에 맞춰 통째로 교체되는 방식One or two lines of caption swap wholesale in a fixed bottom slot, timed to each utterance.
한 페이지가 최대 2줄, 줄당 16자 이내로 발화 시작에 80ms 페이드인되고 끝나면 80ms 페이드아웃된 뒤 다음 페이지가 같은 자리에 나온다
문장이 3줄로 넘어가거나 페이지마다 위치가 달라 눈이 자막을 찾아다닌다
기본값은 클립에 쓴 값Defaults are the values used in the clip
| 항목PARAM | 기본DEFAULT | 범위RANGE | 메모NOTE |
|---|---|---|---|
| 페이드 | 80ms | 60~120ms | 들어옴·나감 각각 |
| 최대 줄 수 | 2 | 1~2 | 줄당 16자 이내 |
| 하단 여백 | 화면 높이 8% | 6~10% | safe zone |
| 최소 노출 | 1.0s | 0.8~1.2s | 짧은 문장은 앞뒤로 붙임 |
cues.forEach(c => {
tl.fromTo('.cap', {opacity:0}, {opacity:1, duration:0.08, ease:'none', onStart(){ el.textContent = c.text; }}, c.start)
.to('.cap', {opacity:0, duration:0.08, ease:'none'}, c.end - 0.08);
});
// 페이지 텍스트는 사전에 줄바꿈 확정(\n) 후 white-space:pre그대로 붙여 넣는다Paste as is
<대상> 영상에 페이지 교체 자막을 붙여줘. 각 대사(<큐 배열>)를 최대 2줄, 줄당 16자 이내로 어절 경계에서 나누고, 화면 하단 여백 8% 고정 위치에 발화 시작에서 80ms 페이드인, 끝 80ms 전에 페이드아웃으로 교체해. 페이지 노출은 최소 1.0초, 읽기 속도는 초당 8음절 이하.
Add page-swap captions to the video in <target>. Break each cue (<cues>) into at most 2 lines of 16 characters on word boundaries, in a fixed slot at 8% bottom margin. Fade in 80ms at utterance start and out 80ms before its end. Minimum on-screen 1.0s, reading speed at most 8 syllables per second.
<파일>에 caption page swap을 적용해. 큐마다 미리 만든 .page 요소의 opacity를 start에서 0에서 1(0.08초), end-0.08에서 1에서 0. 줄바꿈은 사전에 \n으로 확정. 각 큐 중간 시점과 큐 경계 직전·직후를 캡처해 두 페이지가 겹쳐 보이지 않는지, 텍스트가 하단 8% 안전 영역 안인지 확인해.
Apply caption page swap in <file>. Pre-build one .page element per cue and animate opacity 0 to 1 (0.08s) at start and 1 to 0 at end-0.08. Fix line breaks with \n in advance. Capture mid-cue and just before/after each boundary to verify no two pages overlap and text stays inside the 8% bottom safe zone.
HyperFrames · ReelForge · Scrolline
개념 출처와 라이선스. 구현은 이 레포에서 새로 씀Concept sources and licenses. Implementations are original to this repo