Communitygithub.com

uttamongithb/편집형-릴-비디오

스위스 편집 타이포그래피, 키워드 배지 콜아웃, 깔끔한 기술 미학, 동적 장면 전환, 엄격한 타임라인, 발화 감정에 맞춘 발표자 컷아웃, 전문 오디오 믹싱 및 주제별 애니메이션을 활용한 바이럴 기술 설명 동영상 및 릴 제작 스킬 (HyperFrames, Playwright, FFmpeg 기반, 유료 API 불필요).

편집형-릴-비디오란 무엇인가요?

이 스킬은 AI 에이전트가 기술 주제(예: Tor 라우팅, 네트워킹, 데이터베이스, 시스템 아키텍처, Git, AI)에 대한 바이럴, 높은 유지율의 짧은 설명 동영상(릴)을 제작하도록 지시합니다. 사용자가 제공한 음성 스크립트를 기반으로 60초 정확도와 같은 엄격한 페이싱을 따르며, 스위스 편집 타이포그래피 시스템(왼쪽 정렬, 계층적 헤드라인, 키워드 배지), 동적 씬 전환(비스듬한 듀얼 밴드 와이프, 카메라 푸시인, 터미널 글리치 플래시), 발표자 캐릭터 컷아웃(감정 표현에 따라 9가지 포즈 매핑), 그리고 주제별 연속 애니메이션(패킷 라우팅, 계층 해체, 실시간 터미널 실행)을 활용합니다. 오디오는 TTS 속도 조절(160-180 WPM), 감정 태그([curious], [explaining] 등)에 따른 발화 변조를 통해 바이럴 템플릿을 따르며, 최종 출력은 -14 LUFS 통합 음량, True Peak <= -1.0 dBTP로 마스터링됩니다. 이 스킬은 Cursor, Claude Code, Codex 등 에이전트 플랫폼에서 사용할 수 있으며, SKILL.md에 정의된 파이프라인(PARAMS.json -> prepare.py -> ... -> qc.py)을 실행하여 최종 동영상을 생성합니다.

지원 대상~Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/uttamongithb/video-skill/tree/HEAD/skills/editorial-reel-video

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

개념 및 편집형 릴 비디오 스킬

이 스킬은 에이전트가 모든 주제(예: Tor Onion 라우팅, 네트워킹, 데이터베이스, 시스템 아키텍처, Git, AI)에 대해 바이럴하고 높은 유지율을 가진 기술 및 교육 설명 동영상을 제작하는 방법을 가르칩니다. 목표 페이싱(예: 60초 릴)을 엄격히 준수하며, 풍부한 장면 전환, 음성 표현 매핑, 발표자 컷아웃 및 지속적인 기술 애니메이션을 포함합니다.


1. 핵심 원칙 및 제작 요구 사항

A. 엄격한 페이싱 및 길이 준수 (60초 규칙)

  • 스크립트에 장면 타임스탬프(예: 0–7초, 7–16초, 16–27초, 27–42초, 42–50초, 50–60초)가 지정된 경우, 에이전트는 목표 지속 시간을 정확히 준수해야 합니다.
  • 기본 TTS 속도는 종종 너무 느립니다(~110 WPM). 생성기는 FFmpeg atempo(피치 보존)를 사용하여 오디오 재생 속도를 조정하여 바이럴 릴 속도(160–180 WPM)에 도달하고 지정된 정확한 60초 실행 시간에 고정해야 합니다.

B. 에이전트 TTS 실행 및 음성 표현 표준 (바이럴 유지 청사진)

내장 TTS 엔진(예: Edge-TTS, ElevenLabs, Azure Speech, OpenAI)을 갖춘 에이전트는 기본 평탄/단조 설정을 사용해서는 안 됩니다. 기본 TTS(110–120 WPM)는 처음 2초 이내에 짧은 형식 시청자를 잃습니다. 에이전트는 바이럴 페이싱 매개변수를 주입해야 합니다:

  • 속도 및 운율: 바이럴 릴 속도(160–180 WPM 또는 rate: +15% ~ +20%)를 적용합니다.
  • 피치 및 억양: 질문과 훅에 표현적인 피치 변화(pitch: +4Hz ~ +8Hz)를 주입합니다.
  • 마이크로 브레이크: 펀치라인 단어 바로 앞(예: "teen envelopes!" 앞)에 100–180ms 전술적 일시 중지(<break time="180ms"/>)를 삽입합니다.
  • 표현 태그 매핑:
    • [curious]: 빠른 시작(170 WPM), 의문형 종결 상승(pitch: +8%), 음모론적 호기심.
    • [explaining]: 절제된(155–165 WPM), 선명한 발음, 기술 용어 앞 60ms 일시 중지.
    • [dramatic]: 느린 속도(145 WPM), 피치 하강(chest voice -5%), 강렬한 스타카토 강조.
    • [confident]: 전방 추진 클립(165 WPM), 공명하는 가슴 톤, 상승 종결.
    • [excited]: 높은 속도(180 WPM), 피치 상승(+10%), 명사에 대한 날카로운 리듬감 있는 펀치.
    • [playful] / [laughing]: 대화형 클립(165 WPM), 들리는 웃음/미소 호흡, 건방진 톤.
  • 단어 수준 자막: TTS에서 단어 타임스탬프를 추출하여 하단 칩에서 춤추는 단어별 하이라이트(.word-active 노란색 빛 #FFE600)를 제공합니다.
  • 마스터 오디오 청사진:
    • 음성 해설 레벨: loudnorm=I=-16:TP=-1.5:LRA=7로 -16 LUFS 조정.
    • 배경 음악 볼륨 0.15(= -29 LUFS, 음성보다 정확히 13 LU 낮음). 사이드체인 덕킹 없음(13 LU 간격이 덕킹 역할).
    • 음향 효과 버스(0.20 게인): 모든 장면 컷에 pop.wav(0.50 게인), 큰 장면 전환 0.3초 전 riser.wav(0.28 게인), UI 요소 등장 시 click.wav(0.40 게인), 공개 시 chime.wav(0.38 게인), CTA에 notify.wav(0.35 게인).
    • 최종 내보내기: -14 LUFS integrated, True Peak <= -1.0 dBTP.
    • 전체 SSML 스니펫 및 엔진별 구성은 references/voice_audio_and_cutout_guide.md를 참조하세요.

C. 발표자 컷아웃 아키텍처 (앵커 5)

모든 장면은 오른쪽 하단에 고정된(top: 63.4%, x: 20.7% from right, 프레임 가장자리에 의해 허리에서 잘림, 칩 아래에 위치) 표현적인 발표자 캐릭터 컷아웃을 특징으로 합니다. 포즈는 음성 표현 태그에 직접 매핑됩니다:

  • [curious] ➔ p1_shrug.png (손바닥 위로, 눈 크게, 신난 미소)
  • [frustrated] ➔ p2_facepalm.png (손바닥으로 이마 감싸기, 찡그림)
  • [confident] ➔ p3_present.png (팔 활짝 열기, 타다 포즈, 자랑스러운 미소)
  • [explaining] ➔ p4_chin.png (턱 톡톡, 교활한 반 미소, 가르치는 포즈)
  • [analogy] / [recalling] ➔ p5_memory.png (머리 긁적, 작은 아하)
  • [excited] / [numbers] ➔ p6_thumbs.png (큰 엄지 척, 크게 기쁜 미소)
  • [playful] / [laughing] / [cta] ➔ p7_cta.png (시청자 가리키기, 건방진 미소)
  • [dramatic] / [look] ➔ p8_point.png (화면 밖 직접 손가락 가리키기)
  • [revelation] ➔ p9_idea.png (전구 손가락 위로, 눈 크게)
  • 전체 이미지 생성 프롬프트 및 알파 매팅 지침은 references/voice_audio_and_cutout_guide.md를 참조하세요.

D. 동적 장면 전환 (뻣뻣한 컷 없음)

모든 장면 전환은 능동적인 모션 전환을 사용해야 합니다:

  • 비스듬한 듀얼 밴드 와이프 (wipe.html): 시그니처 -11deg 각도 스윕, 도착 필드 배경 + 120px 악센트 가장자리 스트라이프, 수평 방향 교대(flip: 0 vs flip: 1).
  • 카메라 푸시인: 네트워크 노드 또는 아키텍처 레이어로의 줌 전환(scale: 0.85 -> 1.0).
  • 터미널 글리치 플래시: 코드/터미널 환경 진입 시 빠른 색수차 플래시.
  • 전체 지오메트리 및 GSAP 타임라인 사양은 references/v7_layout_and_transitions_guide.md를 참조하세요.

E. 지속적인 주제별 애니메이션

정적 다이어그램을 표시하지 마십시오. 모든 시각적 구성 요소는 지속적이고 반응하는 모션을 특징으로 해야 합니다:

  • 패킷 라우팅 및 계층 해체: Tor 및 네트워킹 설명 동영상에서 노드를 통해 실제로 이동하는 애니메이션 패킷을 표시하고, 진행됨에 따라 암호화 계층(녹색 Guard 셸, 노란색 Middle 셸, 빨간색 Exit 셸)을 벗겨냅니다.
  • 반응형 노드 조명: 패킷이 통과함에 따라 노드가 빛나고, 맥동하며, 상태 배지(WAITING → ACTIVE → DECRYPTED)를 전환합니다.
  • 대화형 터미널 창: 라이브 타이핑 명령 실행, 실시간 회로 로그, 깜빡이는 블록 커서.

F. 스위스 편집 타이포그래피 시스템

  • 엄격히 왼쪽 정렬, 깨끗한 여백.
  • 3단계 계층: 넓게 간격을 둔 킥커(#), 대규모 쌓인 헤드라인, 고대비 직사각형 키워드 배지 알약([...]).
  • 마스크된 슬라이드업 애니메이션(overflow: hidden).
  • 꽃 장식 없음. 깨끗하고 미니멀한 상단 기술 헤더 바.

2. 빠른 시작: 음성 스크립트에서 비디오로

사용자가 표현식이 포함된 스크립트를 제공할 때마다:

[HOOK — 0–7 sec | Curious + mysterious]
[curious] "야, Tor 브라우저가 어떻게 네 정체를 숨기는지 생각해본 적 있어? 너는 웹사이트를 열지만, 네 요청은 직접 웹사이트로 가지 않아!"

[ROUTE SELECTION — 7–16 sec | Excited + explanatory]
[explaining] "대신, Tor는 네트워크에서 세 대의 컴퓨터를 선택해 — Guard Node, Middle Node, 그리고 Exit Node. 그리고 이 세 개가 모여서 네 비밀 경로를 만드는 거야!"

에이전트는 다음 파이프라인을 실행합니다:

# 1. 섹션 구문 분석, 표현식 추출, 발표자 포즈 매핑
python scripts/process_vo.py

# 2. 7가지 법칙에 대한 디자인 검증 및 토큰 작성
python scripts/prepare.py

# 3. 장면 조립 및 마스터 index.html 컴파일
python scripts/build_index.py

# 4. 30 FPS로 결정적 프레임 렌더링
python scripts/render_video.py

# 5. VO(-16 LUFS)와 배경음(-29 LUFS) 및 SFX 믹싱, 먹싱
python scripts/mix_audio.py
python scripts/qc.py

3. V7 제작 아키텍처: 레이아웃 및 전환

이 스킬은 프로덕션 검증된 v7 릴 파이프라인(PARAMS.json -> prepare.py -> new_scene.py -> build_index.py -> mix_audio.py -> qc.py)을 채택합니다:

A. 레이아웃 및 모션의 일곱 가지 법칙

  1. 하나의 앵커 그리드, 하단 고정:
    • 앵커 1 (킥커): Y = 0.0667에 위치한 카테고리/컨텍스트 태그, 악센트 대시 <i></i> 포함.
    • 앵커 2 (히어로): Y = 0.1006에 위치한 Anton 폰트의 고임팩트 압축 표시 단어(1–3단어).
    • 앵커 3 (증명 본문): Y = 0.3010에 위치한 동적 증명 카드 (A: card-led), 주행 거리계 (B: stat-led), 또는 2줄 진술 (C: type-led).
    • 앵커 4 (칩): Y = 0.5875에 위치한 음성 문장 캡슐, 악센트 점 <b></b> 포함. 장면 간에 절대 이동하지 않음.
    • 앵커 5 (발표자): Y = 0.6340에 위치한 프레임 가장자리에 잘린 캐릭터, 적응형 후광 빛(#sX-glow) 포함. 장면 간에 절대 이동하지 않음.
  2. 히어로는 단어, 칩은 라인, 카드는 세부사항:
    • 히어로: 1–3단어(Anton, 프레임 너비의 17–25%, 줄 높이 0.88).
    • 칩: 3–6단어(모바일 시청자가 읽는 라인).
    • 카드: 구체적인 증명(파일 목록, 키워드 차이, 터미널, 업로드 진행률, 점수 측정기).
  3. 6필드 색상 순환:
    • accent → ground → ink → secondary → tertiary → quaternary. 연속된 두 장면은 배경을 공유할 수 없습니다.
  4. 증명, 장식이 아님:
    • 모든 카드는 실제 증명을 표시해야 합니다(카드의 55% 이상을 채우는 4–6행 또는 목업). 증명이 없으면 type-led(앵커 3C)를 사용하고 카드를 생략합니다.
  5. 프레임 0은 포스터 (data-cover="1") :
    • 장면 1은 t = 0.0s에 구성됩니다: 킥커, 히어로, 카드 및 발표자가 이미 보입니다. 칩은 0.65s에 나타납니다. 빈 도입 프레임이 없습니다.
  6. 조기 착지가 있는 변환 전용 모션:
    • 각 비트의 첫 1/3(0.24s – 0.34s, power3.out) 내에 등장이 착지합니다. 텍스트 콘텐츠나 innerHTML을 트윈하지 마십시오.
    • 긴 장면은 시각적 생동감을 유지하기 위해 미묘한 연속 드리프트(tl.to("#sX-hero", { y: -14, duration: 0.7 }))를 특징으로 합니다.
  7. 소리로서의 음향:
    • 절차적 SFX(모든 컷에 pop, UI 행에 click/key, 공개 시 chime, CTA에 notify). -14 LUFS 및 <= -1 dBTP로 마스터링.

B. 듀얼 밴드 비스듬한 와이프 전환 (wipe.html)

  • 지오메트리: -11deg로 비스듬한 듀얼 밴드 각도 스윕(transform: skewX(-11deg)).
  • 구조: #w-main(도착 장면의 배경색) + #w-edge(120px 악센트 스트라이프).
  • 방향 교대: 각 장면에서 수평으로 뒤집힘 (flip: 0 왼쪽에서 오른쪽으로, flip: 1 오른쪽에서 왼쪽으로).
  • 스케줄링: 각 컷 0.36s 전에 build_index.py에 의해 자동 실행되며, 지속 시간은 장면 길이에 맞게 적응적으로 조정됩니다(0.34s – 0.62s).

4. 참고 자료 및 문서

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬