Communitygithub.com

krishnagoswami52/stickman

코드로 시네마틱 스틱맨 스토리 비디오를 MP4로 제작합니다. ElevenLabs 음성 해설 스크립트, 무료 내장 오픈소스 음성(ElevenLabs 불필요), YouTube 제목 및 썸네일 프롬프트를 포함합니다. /stickman 또는 모든 스틱맨 애니메이션 요청에 사용합니다.

stickman란 무엇인가요?

이 스킬은 사용자가 제공한 주제를 완전한 스틱맨 애니메이션 영화로 변환합니다. 모든 그래픽, 카메라 움직임 및 사운드는 코드로 생성되며, 2D 플랫 캐릭터, 황혼 팔레트, 영화 스타일의 촬영 기법을 사용합니다. Claude Code, Cursor, Codex 등 코드 실행이 가능한 모든 AI 에이전트 플랫폼에서 작동하며, Claude 무료 요금제에서도 사용할 수 있습니다. ElevenLabs는 선택 사항이며, 오디오 파일이 없으면 스킬은 `scripts/tts.py` 스크립트를 통해 무료 오픈소스 음성으로 스크립트를 읽어주므로 추가 도구가 필요 없습니다. 이 스킬은 전체 패키지(비디오, 음성 해설, YouTube 제목 및 썸네일 프롬프트)를 제공하거나, 사용자가 요청한 개별 구성 요소(예: 스토리 아이디어, 음성 해설 스크립트, 썸네일 프롬프트)만 생성할 수 있습니다. 먼저 사용자에게 스타일(2D/3D), 길이, 음성 해설, 음향 효과, 배경 음악, 스토리보드 표시 여부를 묻고, 그다음 참조 문서를 읽고 비트 시트, 세계 설정, 샷 목록을 포함한 상세한 계획을 수립합니다. 마지막으로 `build.py` 명령어로 렌더링, 믹싱, 결합 및 감사를 수행하고, 접촉 시트를 시각적으로 확인한 후 최종 MP4를 전달합니다. 문제가 발생하면 번들 플레이어나 스크립트/제목/썸네일 프롬프트 같은 대체 방안을 제공합니다.

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

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

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

문서

/stickman

주제를 완전히 코드로 렌더링된 스틱맨 영화로 만듭니다: 평면 2D 캐릭터, 황혼 팔레트, 영화 스타일의 카메라 워크, 실제 사운드. 이 스킬은 비디오, 음성 해설 스크립트, YouTube 제목 및 썸네일 프롬프트의 네 가지 출력물을 다룹니다.

Claude가 코드를 실행할 수 있는 모든 곳(Claude 무료 요금제 포함)에서 작동합니다. 유료 도구가 필요 없으며, AI 이미지나 비디오 도구를 사용하지 않습니다. ElevenLabs는 선택 사항이며 음성 해설에만 사용됩니다. MP3가 없으면 스킬은 무료 오픈소스 음성(scripts/tts.py, references/free-voice.md 참조)으로 스크립트를 직접 읽어주므로, 해설 영화에 ElevenLabs가 전혀 필요하지 않습니다.

아래 모든 내용은 이 스킬의 폴더(이 파일이 있는 폴더)를 기준으로 합니다. 절대 경로를 한 번 찾아 모든 스크립트에 사용하십시오. Claude Code에서는 ${CLAUDE_SKILL_DIR}입니다. 아래 명령어에서는 SKILL이라고 부릅니다. python3를 사용하거나 Windows에서는 python을 사용합니다.

1단계: 요청된 내용 파악

사용자는 전체 패키지 또는 일부만 원할 수 있습니다. 요청된 것만 수행하십시오:

요청수행할 작업
스토리 아이디어아래 "스토리 아이디어"를 수행한 후 중단
비디오 제작2-6단계
음성 해설 스크립트 작성references/script-playbook.md를 읽고, 스크립트를 전달한 후 중단
스크립트를 음성 해설로 변환references/free-voice.md를 읽고, tts.py를 실행한 후 vo.mp3를 전달하고 중단
제목 또는 썸네일references/packaging-playbook.md를 읽고, 쌍을 전달한 후 중단
전체 패키지스크립트 작성 후 비디오 제작 후 제목 및 썸네일 프롬프트 생성

스토리 아이디어

길이가 명시되지 않은 경우, 먼저 비디오 길이를 물어보십시오. 그런 다음 5개의 아이디어를 번호와 함께 제공하여 사용자가 번호로 선택할 수 있도록 합니다. 각 아이디어는 짧은 이름, 무슨 일이 일어나는지 설명하는 한 문장, 그리고 결말을 포함합니다. 각 아이디어를 해당 길이에 맞추십시오: 20초 미만은 한 명의 캐릭터와 하나의 단순한 전환을 의미합니다. 아이디어는 references/engine.md에 있는 내용으로 쉽게 애니메이션화할 수 있어야 하며, 각각 독창적이어야 합니다. 이후 "아이디어 3번으로 만들어"라는 요청은 해당 아이디어를 의미합니다.

2단계: 제작 전 질문

요청에 이미 명확히 나와 있지 않은 한, 다음 질문들을 한 메시지에 함께 묶어서 하고, 가능한 경우 질문 도구를 사용하십시오. 이미 답변된 내용은 건너뛰십시오. 답변할 사람이 없으면 기본값을 사용하고 그렇게 말하십시오.

  1. 스타일: 2D 또는 3D? 기본값 2D. 둘 다 동일한 외관을 사용합니다. 3D는 장면 주위의 실제 카메라 이동을 추가합니다.
  2. 길이: 얼마나 길게? 기본값 30초. MP3가 있으면 음성 해설이 길이를 결정합니다.
  3. 음성 해설: 예 또는 아니요? MP3가 첨부된 경우 이 질문은 건너뜁니다. 예인 경우, 사용자가 MP3와 해당 스크립트 텍스트를 제공하거나, ElevenLabs용 스크립트를 작성하도록 요청하고 나중에 MP3를 가져오도록 합니다. SRT는 필요하지 않습니다. 또는 MP3가 없는 경우 기본값: 무료 내장 음성이 사용자의 스크립트나 작성한 스크립트를 읽어주므로 사용자가 채팅을 떠날 필요가 없습니다. 사용자가 신경 쓸 경우에만 어떤 음성을 사용할지 물어보십시오. references/free-voice.md에서 청취할 수 있습니다.
  4. 음향 효과: 예 또는 아니요? 기본값 예.
  5. 배경 음악: 예 또는 아니요? 기본값 아니요. 예인 경우, 업로드된 트랙이 있으면 그 트랙을 사용하고, 그렇지 않으면 코드로 만든 음악 배경을 사용합니다.
  6. 스토리보드: 먼저 스토리보드를 보고 싶습니까? 요청에 이미 명시되지 않은 한 항상 물어보십시오. 답변할 사람이 없으면 건너뜁니다.

음악, 효과 또는 음성을 가정하지 마십시오. 조용한 방 분위기는 음악이 아닙니다.

3단계: 설정

python3 SKILL/scripts/doctor.py
python3 SKILL/scripts/new_film.py film        # 3D용 --3d 추가

doctor.py는 누락된 것을 설치합니다. Chromium을 전혀 실행할 수 없으면 "렌더링이 불가능한 경우"로 이동하십시오.

무료 음성: 계획 전에 지금 만드십시오. 음성이 타이밍을 설정하기 때문입니다. 스크립트를 film/script.txt로 저장한 후 python3 SKILL/scripts/tts.py film film/script.txt --voice am_michael를 실행하고 film/audio_mix.py에서 VOICE = "vo.wav"로 설정하십시오. 자세한 내용은 references/free-voice.md를 참조하십시오.

그런 다음 다음 순서로 읽으십시오:

  1. references/style-bible.md: 외관과 절대 변하지 않는 규칙.
  2. references/production.md: 빠른 경로와 알려진 함정.
  3. references/engine.md: 도구 키트. 다시 그리는 대신 재사용합니다.
  4. references/film-craft.md: 무성 또는 단편 영화를 위한 스토리와 샷.

필요할 때 함께 읽으십시오: references/script-playbook.md(스크립트 작성), references/free-voice.md(무료 내장 음성), references/voiceover.md(MP3), references/sound.md(믹싱), references/symbolic-beats.md(약 1분 이상의 영화), references/3d.md(3D).

4단계: 영화 계획

그리기 코드를 작성하기 전에 다음을 작성하십시오. 코드 안에서 계획하면 슬라이드만 만들어지기 때문입니다:

  1. 산만한 시청자도 이해할 수 있는 한 문장.
  2. 각 비트에 동작, 느낌, 카메라, 사운드가 있는 비트 시트.
  3. 하나의 세계: 모든 캐릭터와 소품의 고정 위치 목록. 모든 샷은 그 세계에 대한 카메라일 뿐입니다.
  4. 초가 아닌 컷 프레임이 있는 샷 목록. 30초당 8-11개의 샷을 목표로 하고, 지리를 보여주는 와이드 샷을 포함하십시오.
  5. 패키지가 요청된 경우 실제 장면으로 존재할 썸네일 순간.

스토리보드가 요청된 경우 렌더링 전에 5단계의 "스토리보드"를 따르십시오.

5단계: 제작

  1. 엔진 파일을 유지하면서 film/film.js를 교체하십시오. 스타터 영화의 패턴부터 시작하십시오.
  2. 가장 바쁜 순간의 스틸을 확인하고 이미지를 보십시오: python3 SKILL/scripts/stills.py film sheet.jpg 1 4.5 9 .... 두 번의 라운드는 정상입니다.
  3. 스토리보드(요청된 경우). python3 SKILL/scripts/storyboard.py film을 실행합니다. film/storyboard.jpg를 작성하며, 최종 영화와 동일한 코드로 그려진 샷당 하나의 번호가 매겨진 미리보기가 있습니다. 사용자에게 샷당 한 행(샷, 시간, 설명, 카메라, 사운드)이 있는 테이블을 보여주고 이미지를 보여주거나 전송하십시오. 이미지를 여기에 표시할 수 없으면 파일을 보내거나 테이블만 제공하고 그렇게 말하십시오. 그런 다음 중단하고 기다리십시오. 사용자의 요청에 따라 영화를 변경하고, 많이 변경된 경우 스토리보드를 다시 실행한 후 승인 후에만 렌더링하십시오.
  4. film/audio_mix.py의 표시된 블록을 사운드 브리프에 맞게 편집하십시오.
  5. 하나의 명령어로 렌더링, 믹싱, 결합 및 감사:
python3 SKILL/scripts/build.py film --out my-film.mp4

환경이 명령 시간을 제한하는 경우 백그라운드에서 실행하고 폴링하십시오. 각 샷이 자체 파일이므로 동일한 명령을 다시 실행하면 재개됩니다. 수정 후 --shots 3 7을 사용하여 해당 샷만 다시 실행하거나 --audio-only를 사용하여 사운드를 리믹스하십시오.

6단계: 확인 후 전달

build.py는 감사로 끝납니다. 모든 ISSUE를 수정하거나 플래그가 지정된 순간이 의도된 것임을 명시하십시오. 그런 다음 인코딩된 파일에서 가져온 film/contact_sheet.jpg를 보십시오. 감사가 할 수 없으므로 직접 확인하십시오:

  • 얼굴이 의도된 감정으로 읽히고, 눈썹이 실수로 화나 보이지 않아야 합니다.
  • 손이 잡고 있는 것을 닿고, 얼굴을 가로지르는 것이 없어야 합니다.
  • 모든 걷기에서 팔이 올바른 방향으로 구부러져야 합니다.
  • 문이 먼저 열리고 그 다음 캐릭터가 들어가야 합니다.
  • 캐릭터가 샷 간에 물체와 같은 거리를 유지해야 합니다.
  • 장식용 원이 어디에도 없어야 합니다.

짧은 메모와 함께 MP4를 전달하십시오. 믹스를 들을 수 없다고 명확히 말하십시오: 측정했으므로 사용자가 들어봐야 합니다. 실행하지 않은 검사를 주장하지 마십시오. 사용자가 제목과 썸네일을 요청한 경우 패키징 플레이북의 쌍을 추가하십시오.

렌더링이 불가능한 경우

코드 실행이나 브라우저를 사용할 수 없는 경우, 가능할 때 python3 SKILL/scripts/bundle_player.py film을 실행하십시오. 그러면 영화를 재생하고 실시간 WebM을 기록하는 하나의 HTML 파일이 생성됩니다. 아무것도 실행할 수 없으면 무엇이 누락되었는지 말하고 렌더링이 필요 없는 스크립트, 제목 및 썸네일 프롬프트를 제공하십시오. WebM을 MP4로 이름을 바꾸지 마십시오.

독창성 규칙

사용자가 공유하는 참조 비디오, 제목, 썸네일 또는 대본은 일반적인 패턴(길이, 표현, 구조, 페이스)에만 사용하십시오. 다른 사람의 작업에서 특정 내용을 복사하거나 저장하지 말고, 전제, 캐릭터, 줄거리, 대사 또는 외관을 재사용하지 마십시오. 모든 영화는 고유한 스토리를 가집니다.

관련 스킬