SRT 기반 화이트보드 애니메이션
SRT 기반 화이트보드 애니메이션은 자막의 시간과 서사 순서를 장면·그림 요소·필기 궤적에 연결해, 선이 그려지고 색이 채워지는 과정을 MP4로 만드는 제작 방식이다.
개요
geeklee/srt-whiteboard-animation은 SRT 자막을 따뜻한 종이 바탕의 손그림 설명 영상으로 변환하는 에이전트 스킬이다. 단순히 완성 이미지를 마스크로 한 번에 드러내는 대신, 자막에 나타난 사건 순서대로 화면 영역을 배치하고 각 영역 안에서 선을 연속적으로 그린 뒤 제한된 색을 더한다. 지식 설명, 이야기형 내레이션, 강의 자막, 짧은 영상 문안을 시각화하는 용도를 목표로 한다.
이 프로젝트가 강조하는 원칙은 “자막 구동”과 “단계별 확인”이다. 장면 분할, 선화, 주석, 영역·방향 검사, 최종 렌더링 사이에 사람의 확인 지점을 둔다. 따라서 초기에 잘못 잡은 분할이나 그림 구성을 끝까지 렌더링하는 비용을 줄이고, 내레이션이 말하는 대상과 실제로 그려지는 대상의 순서를 맞출 수 있다.
핵심 구조/작동 방식
자막에서 장면으로
parse_srt.py는 SRT를 읽어 장면 분할안을 만든다. README는 한 장면의 권장 길이를 25~35초로 제시하며, 기본 예시는 목표 30초와 최소·최대 범위를 함께 넘긴다. 각 장면은 한 가지 핵심 의미를 표현하도록 명확한 스토리보드와 그림 전략을 먼저 정한다. 시간만 일정하게 자르는 것이 아니라 등장 대상, 행동, 반응과 결과가 자연스럽게 이어지는지 확인하는 단계가 필요하다.
선화와 의미 주석
장면별 PNG와 같은 이름의 .annotation.json이 한 쌍을 이룬다. 주석에는 캔버스 크기, 장면 근거, 지속 시간과 요소 목록이 들어간다. 각 요소는 sequence, 연결 자막인 subtitle, 서사 역할인 narrativeRole, 픽셀 단위 region, 노출 시작 시점과 지속 시간을 담은 reveal, 손의 시작·끝과 완화 방식을 담은 handPath를 가진다. 권장 순서는 배경 설정, 핵심 인물이나 사물, 행동·변화, 반응·결과이다.
서로 겹치는 대상은 먼저 그릴 요소의 protectedRegions에 나중에 보여야 할 범위를 기록한다. 이 보호 영역이 없으면 뒷순서 대상의 선이나 색이 마스크 경계에서 일찍 드러날 수 있다. direction과 handPath는 미리보기의 사각형 대리 표현에 쓰이고, 최종 영상의 실제 필기는 스트리밍 렌더러가 생성한다.
미리보기와 렌더링
브라우저의 assets/preview.html에서 장면 폴더를 열면 영역, 순서, 시점과 자막 연결을 편집할 수 있다. render_annotation_preview.py는 영역 검사 이미지를 만든다. 확정된 장면은 render_stream_whiteboard.py가 먼저 ink 선을 놓고 뒤이어 color를 채우는 방식으로 MP4를 만든다. 선 경로에는 격자 방식과, 선화가 충분히 깨끗할 때 선택할 수 있는 skeleton 방식이 있다. 여러 장면은 merge_scenes.py로 순서대로 합친다.
시각 규격은 #F5EBD7 계열의 따뜻한 미색 종이, 짙은 회색 스케치 선, 소량의 빨강·주황·파랑 포인트를 권한다. 장면 안 문자·라벨, 사진 같은 질감, 3차원 효과와 복잡한 배경은 피하고 여백을 확보한다. 이 제한은 여러 장면의 스타일을 유지하고 필기 과정이 읽히도록 하기 위한 프로젝트의 명시적 규칙이다.
활용
강의 녹음에서 얻은 SRT를 짧은 주제 단위로 나누고, 각 주제의 핵심 개념을 한 장면으로 설명할 수 있다. 이야기형 자막에서는 인물·물건·행동·주변 반응을 sequence로 배치해 내레이션과 시선을 함께 이동시킬 수 있다. 여러 장면을 따로 승인하고 렌더링하므로, 한 장면만 다시 그리거나 시점을 수정한 뒤 전체 영상을 재결합하는 작업에도 적합하다. 완성 MP4를 에이전트 기반 비디오 편집의 타임라인에 넣어 음성, 음악, 제목과 결합하는 후속 흐름도 구성할 수 있다.
한계 및 주의점
좋은 SRT가 곧 좋은 스토리보드를 보장하지 않는다. 한 자막 안에 여러 사건이 있거나 대명사가 많으면 사람의 의미 확인과 재분할이 필요하다. 캔버스 크기와 원본 이미지가 다르거나 영역 좌표가 화면 밖이면 마스크와 손 위치가 어긋난다. 첫 프레임에 선이 미리 보이지 않는지, 중간 프레임에서 미시작 영역이 노출되지 않는지, 마지막 완성 화면이 최소 0.5초 유지되는지 장면별로 검사해야 한다.
이 저장소는 범용 비선형 편집기보다 특정 손그림 양식과 승인 흐름에 집중한다. 사진 기반 영상, 장면 내 많은 텍스트, 복잡한 카메라 움직임에는 그대로 적용하기 어렵다. 첫 실행 때 프로젝트의 prepare_env.py로 독립 Python 환경을 준비하고, 출력한 전용 인터프리터를 후속 렌더링에 사용해야 한다. 저장소의 스크립트와 예시가 바뀔 수 있으므로 주석 형식과 명령 옵션은 사용 시점 README와 SKILL.md를 다시 확인해야 한다.
함께 보기
출처
- geeklee/srt-whiteboard-animation README — 전체 제작 흐름, 주석 형식, 명령과 품질 점검표. 2026년 8월 16일 확인.
- srt-whiteboard-animation SKILL.md — 저장소가 제공하는 공식 스킬 지침. 2026년 8월 16일 확인.