一键导入
webtoon-shot-planning
한 회차의 시놉시스를 받아 세로 스크롤 웹툰의 컷 리스트(shot_list.json)로 분해하는 스킬. 시각 시그니처 의무 출현, 스크롤 호흡 분배, 임팩트 컷 배치, 침묵 컷 삽입을 모두 처리한다. scene-director 에이전트가 호출한다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
한 회차의 시놉시스를 받아 세로 스크롤 웹툰의 컷 리스트(shot_list.json)로 분해하는 스킬. 시각 시그니처 의무 출현, 스크롤 호흡 분배, 임팩트 컷 배치, 침묵 컷 삽입을 모두 처리한다. scene-director 에이전트가 호출한다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
codex의 image-to-image 기능으로 기존 컷 이미지에 손그림 말풍선·효과음을 직접 박아 진짜 웹툰 스타일 임팩트를 만드는 스킬. shout·큰 SFX·강조 dialogue만 처리하는 하이브리드 분담. CSS 말풍선의 어색함을 넘어설 때 반드시 사용. bubble-artist 에이전트가 호출한다.
한국 웹툰 스타일의 풍부한 대사를 작성하는 스킬. shot_list의 빈약한 텍스트 메타를 6가지 텍스트 타입(대사·생각·외침·속삭임·내레이션·효과음)으로 풍성하게 채워 shot_list_enriched.json을 만든다. 회차 추가 작성·기존 회차 대사 보강·대사 부족 피드백·웹툰 풍부화 요청 시 반드시 사용. dialogue-writer 에이전트가 호출한다.
시즌 전체 회차의 서사 흐름을 진단하고 빠진 장면·약한 인과·일관성 깨짐을 식별하여 보완 컷을 처방하는 스킬. 회차 추가·기존 회차 보완·서사 검증·연결성 점검 요청 시 반드시 사용. narrative-doctor 에이전트가 호출한다.
생성된 컷 이미지와 shot_list의 텍스트 메타를 결합하여 마우스/터치 스크롤로 읽을 수 있는 단일 세로 스크롤 웹툰 HTML 페이지(index.html)를 만드는 스킬. 말풍선·내레이션·시스템 UI·글리치를 모두 HTML/CSS로 오버레이한다. panel-assembler 에이전트가 호출한다.
systemless-player 시나리오를 토대로 세로 스크롤 웹툰을 회차 단위로 제작하는 오케스트레이터 스킬. 8인 전문가 팀(character-designer / scene-director / dialogue-writer / narrative-doctor / image-prompt-engineer / image-generator / panel-assembler / consistency-qa)을 조율하여 캐릭터 일관성 보장된 마우스 스크롤 가능한 HTML 웹툰을 출력한다. 트리거 - "웹툰 그려줘", "1화 그려줘", "에피소드 N 제작", "시즌 1 시작", "캐릭터 시트 만들어줘", "다시 그려줘", "재실행", "수정", "보완", "대사 보강", "대사 추가", "장면 추가", "서사 보완", "갭 채우기", "연결성 점검", "{회차}의 {특정 컷}만 다시", "이전 결과 기반으로 개선", "다음 화 작업" 등 시스템리스 플레이어 웹툰 제작 관련 모든 요청에 사용. 단, 시나리오/줄거리 자체를 새로 쓰는 것은 이 스킬의 범위가 아니다.
웹툰 캐릭터의 시각 레퍼런스 시트(외형 JSON + 정면/측면/표정/포즈 이미지)를 만들어 시즌 내내 캐릭터 일관성을 보장하는 스킬. 새 캐릭터 셋업, 기존 캐릭터 외형 변형(예: 부상으로 의상·신체 변화) 추가, 시트 갱신이 필요할 때 사용. character-designer 에이전트가 호출한다.
| name | webtoon-shot-planning |
| description | 한 회차의 시놉시스를 받아 세로 스크롤 웹툰의 컷 리스트(shot_list.json)로 분해하는 스킬. 시각 시그니처 의무 출현, 스크롤 호흡 분배, 임팩트 컷 배치, 침묵 컷 삽입을 모두 처리한다. scene-director 에이전트가 호출한다. |
systemless-player/02_episodes.md의 회차 섹션 + systemless-player/03_visual.md의 해당 시퀀스(있으면)_workspace/episodes/ep{NN}/shot_list.json| 컷 유형 | scroll_length | 회차당 개수 |
|---|---|---|
| 침묵/인서트 | 1 | 1-2개 (충격 컷 직전 의무) |
| 일반 와이드/대사 | 2 | 5-8개 (회차의 본문) |
| 큰 임팩트/클로즈업 정점 | 3 | 1-2개 (마디 회차 2-3개) |
| 시즌 단일 컷 최대 | 4 | 회차당 0-1개, 시즌 전체 4-5컷 한정 |
비트별로 컷 종류(wide·close-up·silence)와 scroll_length를 분배. 임팩트 컷은 비트 사이 경계가 아닌 비트 내부 정점에 배치.
임팩트 컷 직전에 scroll_length:1 침묵 컷(흰 칸 또는 단색 + 점 하나)을 의무 삽입.
각 컷의 text_overlay 필드에 narration_doh_yun / dialogue / onomatopoeia / system_ui_text / operator_text 분리 작성. 이미지에 텍스트를 그려 넣지 않는다 — panel-assembler가 HTML로 처리.
1·5·15·23·28·29·30화는 03_visual.md에 컷 단위 정답이 이미 있다. 그 컷 흐름을 90% 이상 보존, 창작 여지 5컷 이내. 베끼되 shot_list.json 스키마로 변환.
03_visual.md 시퀀스 1을 그대로 변환:
{
"episode": 1,
"title": "F급은 미끼다",
"act": 1,
"magenta_glitch_quota": 1,
"cuts": [
{"cut_id": 1, "purpose": "도시 부감 오프닝", "shot_type": "high_angle_wide", "aspect_ratio": "9:16", "scroll_length": 2, "location": "새벽 서울 부감", "characters": [], "key_visual": "빌딩 창문에서 새어 나오는 청록 빛 — 도시의 별처럼", "palette": ["void_black", "system_cyan"], "signatures_used": ["cyan_grid"], "text_overlay": {"narration_doh_yun": "이 도시에선 다섯 명 중 한 명이 시스템을 본다."}, "glitch": false},
{"cut_id": 2, "purpose": "거리 헌터 뒷모습", "shot_type": "wide", "scroll_length": 2, "location": "출근 시간 횡단보도", "characters": [], "key_visual": "행인 5명 중 1명 뒤통수 옆 청록 격자 1조각", "palette": ["void_black", "system_cyan"], "signatures_used": ["cyan_grid"], "text_overlay": {"narration_doh_yun": "그들은 세계를 정답으로 본다.", "onomatopoeia": ["ping —"]}, "glitch": false},
{"cut_id": 3, "purpose": "헌터 어깨 너머 UI 노출", "shot_type": "medium", "scroll_length": 1, "location": "같은 거리", "characters": [], "key_visual": "헌터 어깨 너머 청록 UI 'QUEST: OKSUDONG-31 / REWARD +180pt'", "palette": ["system_cyan"], "signatures_used": ["cyan_grid"], "text_overlay": {"system_ui_text": "QUEST: OKSUDONG-31 / REWARD +180pt"}, "glitch": false},
{"cut_id": 4, "purpose": "도현 시점 첫 노출 (시그니처 #1)", "shot_type": "high_angle_wide", "aspect_ratio": "9:16", "scroll_length": 2, "location": "같은 횡단보도", "characters": ["han-do-hyun"], "key_visual": "시야 좌상단 텅 빔, 어떤 UI도 격자도 없다", "palette": ["void_black"], "signatures_used": [], "text_overlay": {"narration_doh_yun": "나는 안 보인다. 시스템도, 나도."}, "glitch": false},
{"cut_id": 5, "purpose": "침묵 컷", "shot_type": "silence", "aspect_ratio": "1:1", "scroll_length": 1, "location": "공허", "characters": [], "key_visual": "완전한 검정 한 칸 + 작은 흰 점 정중앙", "palette": ["void_black"], "signatures_used": [], "text_overlay": {}, "glitch": false},
{"cut_id": 6, "purpose": "도현 얼굴 클로즈업", "shot_type": "close_up", "scroll_length": 2, "location": "거리", "characters": ["han-do-hyun"], "key_visual": "23세 도현 정면 클로즈업, 후드, 다크서클, 손목 빨간 밴드", "palette": ["void_black", "anger_brown_red"], "signatures_used": [], "text_overlay": {"onomatopoeia": ["지직—"], "dialogue": [{"speaker": "phone_notification", "text": "빚 잔액: 14,000,000원 / 다음 납기 D-3"}]}, "glitch": false},
{"cut_id": 7, "purpose": "미끼조 집결 와이드", "shot_type": "wide", "scroll_length": 2, "location": "옥수동 31번 게이트 앞", "characters": ["han-do-hyun", "park-jae-jun"], "key_visual": "한 채 집만 한 청록 게이트 앞 미끼조 5인 등 보임", "palette": ["system_cyan", "void_black"], "signatures_used": ["cyan_grid"], "text_overlay": {"dialogue": [{"speaker": "park-jae-jun", "text": "오늘만 살아 돌아와라."}]}, "glitch": false},
{"cut_id": 8, "purpose": "4분할 시점 비교 정착", "shot_type": "split_panel", "aspect_ratio": "1:1", "scroll_length": 2, "location": "게이트 내부", "characters": ["han-do-hyun"], "key_visual": "4분할 헌터 A·B·C·D 청록 UI 풀세트 + 중앙 도현 시점 청록 0%", "palette": ["system_cyan", "void_black"], "signatures_used": ["cyan_grid"], "text_overlay": {"system_ui_text": "ENTERING SAFE ROUTE", "narration_doh_yun": "근데 저기서 누가 운다."}, "glitch": false}
],
"production_notes": "컷 4·8이 시점 비교 대구. 컷 5 침묵 컷이 스크롤 호흡 잡음."
}