본문 바로가기
성공지식백과 로고성공지식백과

광고 · 이 글에는 제휴 링크가 포함되어 있으며, 링크를 통한 구매 시 수수료를 받습니다.

Artlist MCP로 좀비 선택형 영상 게임 만들기: 베이스 시나리오부터 단계별 프롬프트까지

Claude Haiku 5.5와 GPT-6.1 Terra에 같은 시나리오를 주고 Artlist MCP로 좀비 선택형 영상 게임을 만든 과정을, 베이스 시나리오부터 설계·이미지·영상·게임 조립·수정 프롬프트까지 정리했습니다.

ArtlistClaude Haiku 5.5GPT-6.1 TerraSeedance 2.5GPT Image 2.5 Sunburst게임 제작
글 정성준 12분 읽기
공유:
지하철 승강장 벽돌 기둥에 붙어 접은 우산을 쥔 노란 재킷 주인공에게 정장 차림 좀비 셋이 다가오는 게임 장면
Claude Haiku 5.5가 만든 〈밤을 달리다〉의 첫 선택 직전 장면입니다. 이 화면 위에 숨는다와 달린다 선택지가 뜹니다. · 성공지식백과 프로젝트 제작 자료
INFO
이 가이드에 담은 것

서울 지하철 시청역 승강장에서 시작해 출구 계단으로 탈출하는 좀비 선택형 영상 게임 〈밤을 달리다〉를 Claude Haiku 5.5와 GPT-6.1 Terra가 같은 시나리오로 한 편씩 만들었습니다. 두 모델은 Artlist MCP로 같은 Artlist 계정에 연결해 이미지는 GPT Image 2.5 Sunburst, 영상은 Seedance 2.5로 만들었습니다. 기준 자료는 2026년 10월 27일과 28일 제작 때 실제로 보낸 프롬프트 파일과 그 과정을 담은 녹화 영상입니다.

Artlist MCP를 연결한 코딩 에이전트에 프롬프트를 단계별로 보내면, 모델이 설계서를 쓰고 이미지와 영상을 생성한 뒤 브라우저 게임까지 조립합니다. 플레이어는 선택지와 타이밍 버튼만 누르고, 도망치고 싸우는 행동은 모두 생성한 영상으로 보여 줍니다. 아래 프롬프트는 실제로 보낸 원문에서 컴퓨터의 폴더 경로를 [내 작업 폴더], [참고 자료 폴더] 같은 자리표시자로 바꾸고, 두 모델 비교와 제작 관리에만 쓰인 문장을 뺀 것입니다. 절 제목의 시각은 영상 자막 기준입니다.

시작 전 준비: Artlist MCP 연결과 참고 자료 · 03:36

Artlist MCP가 도구 목록에 보이는 것과 실제로 생성 요청이 처리되는 것은 따로 확인합니다. 연결한 뒤 첫 프롬프트를 보내기 전에 Artlist 잔액이나 이미지 한 장의 견적을 물어 응답이 오는지 먼저 봅니다.

영상에서는 Artlist의 MCP 페이지에서 Claude를 골라 연결하는 과정을 보여 줍니다. Claude의 커넥터 메뉴에서 Artlist를 검색해 공식 커넥터로 설치해도 되고, ChatGPT도 비슷한 순서로 연결합니다.

1

Artlist MCP 페이지 열기

Artlist MCP 페이지에서 연결할 앱으로 Claude를 고릅니다.

2

Connect MCP 누르기

Claude 쪽에 연결 화면이 열리면 저장해 연결을 추가합니다.

3

Artlist 계정 연동하기

Artlist 계정으로 로그인해 연동을 마칩니다.

4

응답 확인하기

잔액이나 이미지 견적을 물어 Artlist 도구가 실제로 응답하는지 확인합니다.

이번 제작에서는 Claude Haiku 5.5를 Claude Code에서, GPT-6.1 Terra를 Codex에서 실행하고 두 앱을 같은 Artlist 계정에 MCP로 연결했습니다. 이미지와 영상 모델은 두 쪽을 같게 맞추고, 기획과 프롬프트 작성을 어느 모델이 맡느냐만 달랐습니다(영상 04:47). Claude 쪽 연결 과정은 Claude와 Artlist MCP로 쇼핑 쇼츠를 만든 가이드에도 정리돼 있습니다.

도구이번 제작에서 맡은 일
Claude Code와 Claude Haiku 5.5설계서 작성, 이미지·영상 프롬프트 작성과 생성 요청, 게임 조립
Codex와 GPT-6.1 Terra같은 단계를 별도 작업 폴더에서 진행
Artlist MCP두 모델을 같은 Artlist 계정의 생성 기능에 연결
GPT Image 2.5 Sunburst인물·소품·타이틀 이미지, Max 품질, 2K, 16:9
Seedance 2.5게임 영상, 16:9, 1080p, 오디오 생성 켬
ffmpeg확정한 영상의 마지막 프레임을 PNG로 추출

참고 자료 폴더에는 실제 장소 사진 3장과 그림체 기준 시트 1장을 넣습니다. 사진은 공간 배치의 기준으로만 쓰고 그림은 모두 그림체 시트의 화풍으로 새로 그리게 했습니다(영상 03:06). 이번 제작에서는 위키미디어 공용에 올라온 서울 지하철 시청역의 승강장 사진과 개찰구 사진(Mobius6, CC BY-SA 4.0), 9번 출구 계단 사진(Striker9498, CC0)을 썼습니다.

그림체 기준 시트는 GPT Image 2.5 Sunburst로 미리 만든 16:9 이미지 한 장입니다. 빈 승강장과 이야기와 관계없는 노인 한 명, 역 안의 물건을 굵은 잉크 외곽선과 평면 음영, 손으로 그린 듯한 빗금으로 그렸고, 모델에게는 시트의 그림체만 따르고 시트 속 인물과 물건은 게임에 쓰지 않게 했습니다.

빈 지하철 승강장, 보온병을 든 노인, 비상전화와 휴지통을 굵은 잉크 외곽선과 빗금으로 그린 그림체 기준 시트
두 모델에 똑같이 준 그림체 기준 시트입니다. 그림체만 따르고 시트 속 노인과 물건은 게임에 쓰지 않게 했습니다. · 성공지식백과 프로젝트 제작 자료

프롬프트에 나오는 스타일 킷 "밤을 달리다"는 이 시트와 색상표, 그림체 규칙 글을 묶어 Artlist에 미리 저장해 둔 것입니다. 스타일 킷을 만들지 않았다면 해당 줄을 지우고 그림체 시트 참조만 씁니다. 이번 제작의 두 모델도 최종 생성에서는 스타일 킷 대신 그림체 시트를 직접 참조로 넣었습니다.

이번 제작은 Windows에서 진행했고, 프롬프트의 경로도 Windows 형식으로 적었습니다.

시작 전 확인

0/6 완료

1. 베이스 시나리오로 설계서 받기 · 08:11

첫 프롬프트에는 참고 자료 정의, 설계서에 담을 11개 항목, 베이스 시나리오가 함께 들어 있습니다. 영상 02:53과 08:11에서 설명하듯 승강장에서 개찰구를 지나 계단으로 탈출하는 뼈대와 영상 8개의 자리만 주고, 인물·소품·좀비 같은 디테일은 모델에게 맡겼습니다.

Claude Code·Codex에 입력: 1단계 설계
지금부터 좀비 생존 선택형 영상 게임을 하나 만든다. 이 세션에서 기획, 이미지·영상 생성(아트리스트 MCP), 게임 코드까지 네가 맡는다.
플레이어는 선택과 타이밍 버튼만 누르고, 모든 행동은 영상으로 보여 준다.
아래 베이스 시나리오의 흐름과 영상 8개의 자리는 바꾸지 말고, 그 안의 디테일은 네가 정해.

폴더와 아트리스트 계정
- 작업 폴더: [내 작업 폴더]
  설계서, 에셋, 게임 등 모든 결과물은 이 폴더 안에만 만든다.
- 참고 자료 폴더: [참고 자료 폴더]
  여기 있는 파일만 보고 쓴다. 읽기만 하고 바꾸거나 지우거나 새 파일을 만들지 않는다.
- 스타일 킷 "밤을 달리다"는 읽기만 하고 고치지 않는다.

첨부 자료 (참고 자료 폴더 안에 있다. 이미지·영상을 만들 때는 이 파일을 아트리스트에 올려 레퍼런스로 쓴다)
- @img1 = [참고 자료 폴더]\01_station-platform.jpg: 서울 지하철 2호선 시청역 승강장 사진(왼쪽 스크린도어, 오른쪽 벽돌 기둥)
- @img2 = [참고 자료 폴더]\02_station-gates.jpg: 같은 역(시청역)의 개찰구 사진
- @img3 = [참고 자료 폴더]\03_station-exit-stairs.jpg: 같은 역(시청역) 9번 출구 계단 사진. 계단 위에서 내려다본 방향이고, 계단 아래쪽 입구에 셔터가 있다. 게임에서는 아래에서 위로 올라간다.
  @img1~@img3은 공간 배치의 기준이다. 그림은 이 사진을 그대로 쓰지 않고 @img4의 그림체로 다시 그린다.
- @img4 = [참고 자료 폴더]\04_style-reference.png: 그림체 기준 시트(빈 승강장, 노인 한 명, 역 안의 물건). 입체감 있는 인물과 공간 위에 굵은 잉크 외곽선, 평면 음영, 손으로 그린 듯한 그림자 빗금. 그림체만 따르고, 시트 속 인물·물건·장면은 이번 게임에 그대로 쓰지 않는다.
- 이미지와 새 장면 영상(V1·V3)은 아트리스트 스타일 킷 "밤을 달리다"를 적용한다. 실제 마지막 PNG를 시작으로 쓰는 분기 영상은 PNG 입력을 우선하고, MCP가 스타일 킷 동시 입력을 지원하지 않으면 스타일 킷을 보내지 않고 그림체·색을 텍스트로 고정한다.

이번 단계에서는 아무것도 생성하지 말고 설계서만 써줘.
사전 키프레임 생성·승인 단계는 없다. 인물·소품 참조를 준비한 다음 실제 영상 초안으로 판단한다. 이 게임은 실제 마지막 PNG를 다음 시작 프레임으로 등록하고 상태 텍스트도 함께 넘긴다. 영상은 아트리스트 Seedance 2.5, 16:9, generate_audio=true다. 이 게임의 6~12초·그래픽 노블·Artlist 조건을 지킨다.
1. 한 줄 콘셉트와 분위기 (3문장 이내)
2. 인물 디자인: 주인공, 동료, 좀비(몇 종류로 할지는 네가 정한다). 나이대, 체격, 옷, 신발, 머리, 색, 한눈에 구별되는 특징.
3. 소품 디자인: 인물이 입고 들고 쓰는 물건과 역 안에서 집어 드는 물건(무기, 겉옷, 가방 등). 물건마다 생김새, 색, 크기, 누가 어느 영상에서 쓰는지.
4. 역 공간 지도: @img1~@img3을 보고 승강장·개찰구·출구 계단의 위치와 이동 방향을 정리. 인물이 화면 어느 쪽에서 어느 쪽으로 가는지가 영상 내내 일관되어야 한다.
5. 영상 8개 연출표: V1~V5b마다 무슨 일이 일어나는지, 길이(6~12초), 시작 상태, 카메라의 위치·높이·방향, 등장하는 소품. 선택·타이밍 직전 영상(V1, V3, V4a)은 마지막 1~2초에 인물이 거의 멈춘 자세를 적는다.
6. 화면 문구: 선택지 문구, 타이밍 안내, 자막·대사(짧게), 엔딩 이름 2개, 게임 오버 문구.
7. 선택 A가 엔딩에 남기는 흔적 (영상을 더 만들지 않고).
8. 소리 계획: 배경음 1곡과 효과음 5개 이내의 분위기와 쓰는 자리. 아트리스트 카탈로그에서 고른다.
9. 만들 에셋 목록: 인물 전신·얼굴 근접·소품·타이틀 이미지와 영상의 파일 이름과 용도. 필요한 이미지 수는 네가 정한다. 장면별 사전 키프레임은 만들거나 검수하지 않는다.
10. 제작 계약: 고정 프롬프트 블록, 상대 조명 비율, 인물별 목소리·성격 고정값, 컷별 상태·톤·정확한 대사, 시작·끝 상태 각 인물 한 줄, 다음 영상의 첫 행동·첫 대사를 정한다. 카메라·공간·물리 설명은 필요한 만큼 간결하게 쓴다.
11. continuity-plan.json에 부모→마지막 PNG→두 자식의 연결표와 각 시작 상태를 저장한다. V2a·V2b 다음 V3는 새 장면 전환이다. 두 분기를 서로의 다음 영상으로 연결하지 않는다.

규칙
- 기존 게임의 이야기, 인물, 화면 디자인, 문구를 가져오지 않는다.
- 좀비는 특수분장 수준의 피와 상처까지 넣는다. 절단이나 내장 같은 신체 훼손, 피가 튀는 장면을 가까이 오래 보여 주는 것은 넣지 않는다.
- 격투와 타격을 넣는다. 밀치기, 발차기, 주변 물건으로 막고 치기. 맞는 쪽이 밀려나고 넘어지는 무게감이 보이게 한다.
- 간판과 표지판은 글자 없이 기호만.

설계서는 [내 작업 폴더]\design.md로 저장하고, 같은 내용을 [내 작업 폴더]\design.html로 만든다.
design.html은 브라우저에서 바로 열리는 단독 파일(doctype, charset, viewport 포함)로, 가독성 좋은 UI로 한눈에 읽히게 만든다. 순서는 콘셉트 → 인물 카드 → 소품 카드 → 역 공간 지도 → 영상 8개 연출표(갈래 구조가 그림으로 보이게) → 화면 문구 → 소리 계획 → 에셋 목록.
다 만들면 design.html의 경로를 알려 주고 멈춘다. 내가 "진행"이라고 하면 다음 단계로 간다.

베이스 시나리오

제목: 밤을 달리다
장르: 좀비 생존, 선택형 영상 게임 (플레이 5분 안팎). 그래픽 노블풍 셀 셰이딩 그림체(@img4). 좀비 특수분장 수준의 피·상처와 격투·타격 있음. 신체 훼손 없음.
장소: 서울 지하철 시청역 (@img1~@img3). 승강장 → 개찰구 → 출구 계단 → 새벽 거리.

인물
- 주인공: 막차에서 내린 사람.
- 동료: 역에서 만나는 낯선 사람 한 명.
- 좀비: 터널 쪽에서 올라오는 무리.

흐름
1. 오프닝: 자정, 막차가 떠난 승강장. 불이 깜빡이고 터널 쪽에서 무언가 다가온다.
2. 선택 A (5초): 숨는다 / 달린다. 어느 쪽이든 동료를 만난다.
3. 개찰구를 지나 출구 계단을 오르는데 좀비가 덮친다.
4. 타이밍 (3초): 성공하면 덮치는 좀비를 받아쳐 떨어뜨리고 계단 위로 빠져나가고, 실패하면 게임 오버(계단 장면부터 다시).
5. 출구 셔터가 내려가는 중에 동료가 뒤처지고 좀비가 붙잡는다.
6. 선택 B (5초): 좀비를 쳐내고 손을 잡는다 / 혼자 빠져나간다 → 엔딩 2개.
   선택 A의 결과는 엔딩의 자막이나 대사 한 줄에 남는다.

영상 8개
- V1 오프닝 → 마지막 프레임에서 선택 A
- V2a 숨는다 / V2b 달린다 (V1의 마지막 프레임에서 이어짐)
- V3 출구 계단 (새 장면) → 마지막 프레임에서 타이밍
- V4a 성공 / V4b 실패 = 게임 오버 (V3의 마지막 프레임에서 이어짐)
- V5a 함께 탈출 / V5b 혼자 탈출 (V4a의 마지막 프레임에서 이어짐)
인물과 소품(옷, 신발, 가방, 무기 등)은 모든 영상에서 같은 모습으로 보여야 한다.
전체 보기

모델은 design.md와 design.html을 만든 뒤 멈춥니다. 설계서를 읽고 다음 단계로 넘어갈 때는 "진행."으로 시작하는 2단계 프롬프트를 보냅니다.

다른 장소나 장르로 만들 때는 아래 줄을 바꿉니다.

바꿀 곳이번 예시바꿀 내용
첨부 자료 @img1~@img3시청역 승강장, 개찰구, 9번 출구 계단 사진내 장소 사진 3장의 파일 이름과 사진에 보이는 배치
첨부 자료 @img4그래픽 노블풍 그림체 시트내 그림체 시트의 파일 이름과 특징
베이스 시나리오의 제목·장르·장소밤을 달리다, 좀비 생존, 서울 지하철 시청역내 게임의 제목, 장르, 장소
베이스 시나리오의 인물과 흐름막차에서 내린 주인공, 승강장에서 새벽 거리까지사진 3장의 공간 순서에 맞춘 인물과 흐름
규칙의 수위 줄특수분장 수준의 피, 격투와 타격장르에 맞는 표현 수위

영상 8개의 자리와 선택·타이밍 위치를 유지하면 3·4단계 프롬프트의 연결 순서도 바꾸지 않고 쓸 수 있습니다. 좀비, 셔터, 특수분장처럼 장르에 묶인 낱말과 4단계 끝의 경로 이름(숨기/달리기 같은 것)은 2~4단계 프롬프트에서도 함께 바꿉니다.

2. 인물·소품·타이틀 이미지 만들기 · 09:21

설계서를 확인했으면 이미지를 만듭니다. 모든 이미지는 GPT Image 2.5 Sunburst로 만들고, 생성할 때마다 그림체 시트를 참조로 넣어 글 설명만으로 그림체를 맞추지 않게 했습니다.

인물은 전신과 얼굴 근접을 따로 만듭니다. 전신은 몸과 옷, 신발, 가방의 기준이고 얼굴 근접은 같은 인물인지 알아보는 기준이라 영상 단계에서 두 장을 짝지어 넣습니다. 영상의 이 구간에서는 두 모델이 같은 시나리오로 서로 다른 인물과 좀비, 소품을 설계해 그린 결과를 보여 줍니다.

Claude Haiku 5.5와 GPT-6.1 Terra가 2단계에서 만든 주인공·동료·좀비 전신 기준 이미지를 두 줄로 늘어놓은 모습
위 줄은 Haiku 5.5, 아래 줄은 Terra가 2단계에서 만든 인물 전신 기준 이미지입니다. 같은 시나리오를 받았지만 주인공과 동료, 좀비 구성이 서로 다릅니다. · 성공지식백과 프로젝트 제작 자료
Claude Code·Codex에 입력: 2단계 이미지
진행. 설계서대로 이미지를 아트리스트 MCP로 직접 생성해. 영상은 아직 만들지 않는다. 프롬프트는 네가 쓰고, 결과를 직접 열어 확인한 뒤 다음으로 넘어가.

작업 폴더: [내 작업 폴더]
모든 파일은 이 폴더 안에 만든다.

생성 조건 (바꾸지 말 것)
- GPT Image 2.5 Sunburst, Max, 2K, 16:9. 모든 이미지는 16:9로 만들고 다른 비율로 자르지 않는다.
- 모든 이미지 생성에 @img4(그림체 기준 시트)를 레퍼런스 이미지로 함께 넣는다. 그림체를 글로만 설명하지 않는다. 시트 속 인물·물건·장면은 따라 그리지 않고 그림체만 가져온다.
- 스타일 킷 "밤을 달리다"도 적용한다.
- 좀비의 피와 상처는 특수분장(분장용 가짜 피, 분장 상처)으로 표현한다. 신체 훼손은 그리지 않는다.
- 다시 뽑기는 이미지마다 1번까지. 비용이 큰 생성에서 승인을 물으면 내 답을 기다린다.

만들 것 (몇 장을 만들지는 네가 정한다)
1. 인물 기준 이미지: 전신은 체격·옷·신발·가방 기준, 별도 얼굴 근접은 정체성 기준으로 역할을 나눈다. 전신 누끼의 얼굴 세부를 의도적으로 줄인 영상 참조용 사본을 만들어 저해상도 얼굴을 그대로 복사하지 않게 하고, 같은 인물의 선명한 얼굴 근접 참조와 짝짓는다. 인물을 다른 사람으로 바꾸거나 실제 얼굴에 상처를 그리라는 뜻이 아니다. 원본 전신·얼굴은 보존하고, 이미 쓸 수 있는 이미지가 있으면 재사용하며 필요한 참조만 보충한다. 얼굴 근접 이미지도 16:9다.
2. 소품 기준 이미지: 설계서의 소품(무기, 겉옷, 가방 등)을 물건마다 단색 배경으로 만들고, 배경을 지워 누끼를 만든다. 인물 기준 이미지에 나온 옷·신발·가방과 같은 모양이어야 한다.
3. 타이틀 화면: 한글 제목 "밤을 달리다"가 정확히 들어간 이미지.
   타이틀에는 @img4에 더해 등장하는 인물·소품 기준 이미지도 레퍼런스로 넣는다.
장면별 사전 키프레임은 생성·검수하지 않는다. 다음 판단 대상은 실제 영상 초안이다.

만든 이미지는 다시 뽑은 것과 쓰지 않기로 한 것까지 전부 [내 작업 폴더]\assets\images 아래에 남긴다.
[내 작업 폴더]\assets\manifest.json에 이미지마다 파일 이름, 종류(전신·얼굴 근접·소품·타이틀), 원본/참조용 사본의 관계, 용도, 사용 모델과 설정, 아트리스트 생성 ID, 프롬프트 원문, 레퍼런스, 시도 번호, 사용 여부(쓰지 않으면 이유)를 기록한다.

다 만들면 [내 작업 폴더]\review-images.html을 만든다.
브라우저에서 바로 열리는 단독 파일(doctype, charset, viewport 포함)로, 가독성 좋은 UI로 만든다.
- 맨 위에 요약: 종류별 장수, 다시 뽑은 수, 쓰지 않기로 한 수
- 순서: 인물 전신·얼굴 근접 쌍 → 소품 → 타이틀 → 쓰지 않기로 한 이미지
- 이미지마다 크게 보기, 파일 이름, 용도, 시도 번호, 프롬프트 원문(접어 두기)
- 소품마다 누가 어느 영상에서 쓰는지 표시
- 인물 참조에는 전신/얼굴 역할과 같은 인물을 가리키는 짝을 표시. 참조 이미지 검토에 장면 키프레임 승인을 끼워 넣지 않는다
- 마음에 안 드는 부분도 솔직하게 적는다
review-images.html의 경로를 알려 주고 멈춘다. 내가 "영상 진행"이라고 하면 다음 단계로 간다.
전체 보기

모델은 만든 이미지를 다시 뽑은 것과 쓰지 않기로 한 것까지 manifest.json에 기록하고, review-images.html로 모아 보여 준 뒤 멈춥니다. 인물과 소품이 설계서와 같은 모양인지 확인한 다음 "영상 진행."으로 시작하는 3단계 프롬프트를 보냅니다.

3. 작업 지시서 8칸으로 영상 만들기 · 10:49

영상은 Seedance 2.5로 16:9 화면에 대사와 효과음까지 함께 생성합니다. 3단계 프롬프트는 모델이 영상마다 8칸 작업 지시서를 쓰게 하고, 앞 영상을 확정해 마지막 프레임을 뽑은 뒤에야 그 프레임에서 이어지는 영상을 만들게 합니다.

영상 08:06에서 말하듯 영상 클립은 생성 전에 견적을 받아 만들지 정했고, 프롬프트에도 비용이 큰 생성에서는 승인을 기다리라는 줄이 있습니다. 스타일 킷과 시작 프레임을 함께 넣을 수 없다는 MCP 제약 문장은 10월 27일 제작 당시 기준입니다.

Claude Code·Codex에 입력: 3단계 영상
영상 진행. 설계서와 인물·소품 기준 이미지로 영상 8개를 아트리스트 MCP로 직접 생성해. 사전 장면 키프레임 생성·검수는 하지 않는다. 실제 영상 초안을 보고 판단한다.

작업 폴더: [내 작업 폴더]
모든 결과물은 이 폴더 안에 만든다.

생성 조건 (바꾸지 말 것)
- 영상 모델은 Artlist Seedance 2.5만 사용한다. 16:9, generate_audio=true. 배경음악 없이 공간음·발소리·좀비 숨소리·타격음과 필요한 원문 대사를 함께 만든다.
- 480p 초안을 직접 확인한 뒤 쓸 것을 render_draft로 1080p 확정한다. 유효 기간이 지났거나 렌더 실패 시 그 상태를 기록하고 처리한다. 다른 모델로 자동 대체하지 않는다.
- 각 영상 길이는 설계서의 6~12초를 따른다.
- 처음부터 끝까지 그래픽 노블 셀 셰이딩, 굵은 잉크 외곽선·평면 음영·빗금을 유지한다. 실사로 바꾸지 않는다.
- 좀비 외형은 assets/images/[좀비 기준 이미지 파일]의 피·피부 수위를 유지한다. 회녹색 피부, 멍, 마른 피와 상처를 특수분장으로 표현한다. 신체 절단·노출 장기·피가 튀는 근접 장면은 넣지 않는다.
- 다시 뽑기는 영상마다 1번까지. 비용이 큰 생성에서 승인을 물으면 내 답을 기다린다.

프롬프트 고정 블록 (각 영상에서 이 순서 유지)
1. GLOBAL STYLE & TEXTURE: 해상도·비율·그림체, 초점 효과 하나, 자막·워터마크·배경음악 금지.
2. LIGHTING DESIGN: 광원 방향·색온도·그림자, 피부·천·주요 소품의 상대 강조 비율과 시간대별 강도. 비율은 실사 광택 대신 평면 음영 면적·밝기 관계로 해석한다. 정상 노출과 얼굴 가독성을 유지한다.
3. INPUT MODE & FIXED SPACE MAP: 새 장면/마지막 PNG 연결을 구분하고 고정 공간·이동 축을 짧게 쓴다. 실제 입력 목록을 그 호출에 업로드한 순서대로 @img1, @img2…로 매핑한다. @start는 실제 등록한 시작 PNG다.
4. SCENE, CAST, PROPS & START STATE: 허용된 인물·배경 인물·소품만 목록화한다. 인물마다 시작 상태 한 줄(화면 위치·자세·시선·어느 손의 소품·의상 상태), 카메라 위치·높이·방향·거리, 셔터 높이와 조명을 고정한다. 배경 좀비는 명시한 행동만 하고 주역 동작·대사를 빼앗지 않는다.
5. TIMED SHOTS: 각 시간 구간의 행동을 짧은 산문 한 단락으로 쓴다. 누가 어느 방향으로 치고 상대가 어디로 밀리며 무엇을 놓는지 원인→반응 순서로 쓴다. 불필요한 카메라 수사를 늘리지 않는다. 구간 합은 영상 길이와 같아야 한다.
6. DUBBING & PERFORMANCE: 목소리·음색·성격은 인물별 고정값, 감정 상태·말속도·어미는 컷별 변수다. 설계서의 한국어 대사를 글자 그대로 한 번 끝까지 말한다. 말의 특정 단어에 시선·손·표정 변화를 맞추고, 무대사는 none으로 적는다. 없는 대사를 지어 넣지 않는다.
7. FIXED FINAL STATE & NEXT HANDOVER: 인물마다 끝 상태 한 줄, 소품·카메라·조명·셔터 상태, 다음 갈래별 첫 행동·첫 대사를 미리 쓴다. 이 텍스트를 다음 프롬프트의 START STATE에 그대로 인계한다. 생성 결과가 다르면 실제 영상에 맞춘 인계본과 차이를 기록한다.
8. CORE LOCKS: 목록 밖 인물·물건·효과 추가 금지, 인물 정체성·의상·소품 유지, 배경은 조연, 간판은 글자 없이 기호만, 대사 원문 유지, 생성 영상에 자막·음악 없음.

레퍼런스와 시작 PNG
- 새 장면 V1·V3: 인물 전신(몸·옷)·얼굴 근접(정체성)·소품·해당 실제 역 사진·그림체 시트를 역할별로 넣는다. 서로 다른 인물의 얼굴을 섞지 않는다. 지원되는 참조 방식으로 스타일 킷 "밤을 달리다"를 적용한다.
- 연속 분기 V2a·V2b, V4a·V4b, V5a·V5b: 부모 확정 1080p에서 추출한 실제 마지막 PNG를 사용한다. PNG와 상태 텍스트를 함께 쓴다.
- 로컬 PNG 업로드 → confirm_upload → 반환 assetId를 input: { startFrame: { assetId: 실제_ID } }로 등록한다. 프롬프트에 @start라고 쓰기만 하거나 일반 레퍼런스 배열에 넣는 것으로 대신하지 않는다. 부모 영상 generationId를 정지 이미지 대신 넘기지 않는다.
- 현재 MCP에서 시작 프레임과 styleKitId·참조 배열을 함께 쓸 수 없으므로, 연속 분기는 시작 PNG를 우선하고 styleKitId와 추가 참조 배열을 넘기지 않는다. 그림체·색·신규 등장 인물의 얼굴·의상·목소리는 고정 텍스트로 유지하고 실제 결과를 대조한다. 이 제한 때문에 인물 동일성이 자동 보장된다고 기록하지 않는다.
- 첫 화면의 카메라·구도·인물 자세·소품·셔터·조명을 @start와 맞춘다. 측면/역방향 등 새로운 카메라는 첫 행동을 이어 받은 뒤에만 이동하거나 컷한다.

의존 순서 (8개를 한꺼번에 생성하지 않는다)
- V1 초안 → 검토 → 1080p 확정·다운로드 → assets/frames/V1_last.png → V2a·V2b.
- V2a·V2b 다음은 새 장면 V3. 두 V2의 끝을 하나의 시작 PNG로 합치지 않는다.
- V3 초안 → 검토 → 1080p 확정·다운로드 → assets/frames/V3_last.png → V4a·V4b.
- V4a 초안 → 검토 → 1080p 확정·다운로드 → assets/frames/V4a_last.png → V5a·V5b.
- 같은 갈래 쌍은 같은 PNG 파일과 SHA-256을 쓴다. V4b는 게임 오버, V5a·V5b는 엔딩이다.

마지막 프레임 추출·검수
- V1·V3·V4a는 마지막 1~2초를 자연스럽게 거의 멈춘 자세로 끝내고 암전·UI·자막을 넣지 않는다.
- 최종 파일을 디코딩해 실제 마지막 프레임 딱 1장을 원본 크기 PNG로 추출한다(ffprobe로 프레임 수/시각 확인, ffmpeg로 마지막 프레임 선택). 끝에서 대충 0.1초 앞을 잡거나 화면 캡처로 대신하지 않는다. 재그림·크롭·확대·색보정·글자 합성 없이 보존한다.
- 추출 뒤 PNG를 열어 확인한다. 이것은 생성 전 키프레임 검수가 아니라 완성 영상의 연결 프레임 확인이다. 검정/깨진 끝이면 원본을 보존하고 검수된 편집 확정본을 만든 뒤, 게임과 추출에 같은 확정본을 쓴다.
- 부모 마지막 화면·게임 정지 PNG·자식 첫 화면과 첫 동작을 대조한다. 세부 묘사의 작은 차이보다 인물·소품·방향·행동의 의미가 맞는지 우선 판단하고, 손가락·얼굴 붕괴 등 명확한 오류는 남기지 않는다. 특정 성공률을 보장하지 않는다.
- 부모 확정본을 바꾸면 PNG와 그 PNG를 쓴 자식들의 검수 상태를 다시 연다.

파일·기록
- 초안·확정본·탈락본은 assets/videos, 연결 PNG는 assets/frames, 별도 음원은 assets/audio에 남긴다. 기존 생성물은 지우지 않는다.
- 각 영상의 최종 영어 프롬프트를 assets/video-prompts/<V번호>.txt, 갈래별 텍스트 인계문을 assets/handovers/<부모>_to_<자식>.txt로 저장한다.
- assets/manifest.json에 모델·설정·생성 ID·프롬프트·실제 API input·시도·선택 여부를 기록한다. 부모 영상 경로/생성 ID/SHA-256, 마지막 프레임 번호·시각, PNG 경로/SHA-256/업로드 assetId, 자식 생성 ID를 연결해서 기록한다. 아직 없는 ID를 채워 넣지 않는다.
- 생성 영상의 원음부터 확인한다. 카탈로그 음악·효과음은 실제 편집에 필요한 것만 추가하고 대사·타격음을 중복시키지 않는다.

끝나면 영상 목록, 연결 검수 결과와 남은 문제를 정리하고 멈춘다.
전체 보기
Claude Haiku 5.5 게임의 좀비로 가득 찬 횡단보도 엔딩과 GPT-6.1 Terra 게임의 밤거리 엔딩을 나란히 놓은 모습
왼쪽은 Haiku 5.5 게임, 오른쪽은 Terra 게임의 마지막 장면입니다. 두 게임 모두 계단 위로 빠져나온 뒤 좀비로 무너진 시내를 보여 주며 끝납니다. · 성공지식백과 프로젝트 제작 자료

영상 프롬프트에서 챙길 다섯 가지 · 10:59

영상은 8칸 작업 지시서를 설명하면서 아래 다섯 가지를 따로 짚습니다. 다른 장소나 장르로 바꿔 쓸 때도 이 규칙들은 남겨 둡니다.

마지막 프레임을 다음 영상의 첫 프레임으로 · 10:59

선택지는 영상의 마지막 장면 위에 뜨고, 다음 영상은 그 장면에서 이어져야 합니다. 3단계 프롬프트는 확정한 영상에서 실제 마지막 프레임 한 장을 원본 크기 PNG로 뽑아 Artlist에 올리고, 그 PNG를 다음 영상의 시작 프레임으로 등록하게 합니다. 인물 위치와 소품, 카메라를 적은 끝 상태 문장도 다음 프롬프트의 시작 상태로 넘깁니다.

V1 영상의 마지막 프레임과 그 PNG에서 시작한 V2b 영상의 첫 프레임을 나란히 놓아 구도가 이어지는 모습
왼쪽은 V1 영상의 실제 마지막 프레임, 오른쪽은 그 PNG를 시작 프레임으로 등록해 만든 V2b 영상의 첫 프레임입니다. 인물 위치와 소품, 카메라가 그대로 이어집니다. · 성공지식백과 프로젝트 제작 자료

제일 센 장면을 앞 몇 초 안에 · 11:18

영상 하나하나가 늘어지면 게임 전체가 지루해져, 영상마다 제일 센 장면이 몇 초에 나오는지를 먼저 정했습니다. 첫 장면의 초안은 좀비가 6~7초가 지나서야 나왔고, 피드백 뒤에는 열차가 떠나자마자 불빛이 번쩍이고 곧바로 좀비가 등장하도록 바뀌었습니다.

이 규칙은 아래 한 줄로 3단계 프롬프트의 생성 조건 끝에 덧붙여 씁니다.

3단계 생성 조건에 덧붙이기: 임팩트 시점
- 영상마다 임팩트 초를 먼저 정해 TIMED SHOTS 맨 앞에 쓰고 이후 반응과 여운을 배치한다. 어떤 영상도 3초 넘는 정지 없이 의미 있는 움직임을 이어간다.

참조는 @번호로, 조명은 상대 비율로 · 11:47

영상에서 설명하듯 Artlist에서는 참조 이미지에 @ 태그로 번호를 붙여 프롬프트에서 부를 수 있습니다. 3단계 프롬프트는 그 호출에 올린 순서대로 @img1, @img2 번호를 매기고, 번호마다 전신·얼굴·소품·장소 같은 역할을 적게 합니다. 조명은 밝기를 절대값으로 주지 않고 상대 비율로 정했습니다. 영상에서는 우산 금속이 가장 밝고 그다음 피부, 그다음 옷 순서가 되도록 비율을 줬더니 이미지가 더 깔끔하게 나왔다고 설명합니다.

금지 대신 자리를 정하기 · 12:16

영상 프롬프트에는 금지 문장보다 원하는 자리를 정하는 문장을 더 많이 썼습니다. 열차를 금지하는 대신 "열차는 왼쪽 유리문 뒤 선로에만", "멀리 작은 빨간 불빛 두 개만"처럼 보일 자리와 모습을 정하는 식입니다. 영상은 Terra가 이 지시를 잘 지켰고, Haiku 5.5 쪽에서는 열차가 승강장 복도를 가로질렀다고 짚습니다.

선택 직전에 거의 멈춘 여유 두기 · 13:10

게임 선택지는 영상이 끝난 화면 위에 얹으므로, 선택 직전 영상의 끝에는 인물이 거의 멈춘 여유가 있어야 합니다. 1단계 프롬프트의 연출표 항목과 3단계 프롬프트의 마지막 프레임 규칙이 V1, V3, V4a의 마지막 1~2초를 거의 멈춘 자세로 끝내게 합니다.

4. 브라우저 게임으로 조립하기

영상과 연결 프레임이 모이면 게임을 조립합니다. 영상 07:55에서 말하듯 두 게임 모두 이미지와 영상 생성부터 게임 조립까지 대화 하나 안에서 진행했고, 결과는 index.html 하나와 assets 폴더만으로 인터넷 연결 없이 Chrome에서 열리는 브라우저 게임입니다.

선택과 타이밍 순간에는 앞 영상의 마지막 PNG를 띄우고 별도 UI 레이어로 선택지를 얹습니다. 다음 영상도 같은 PNG에서 시작하므로 정지 화면에서 영상으로 넘어갈 때 구도가 맞습니다.

Claude Code·Codex에 입력: 4단계 게임 조립
작업 폴더: [내 작업 폴더]
모든 파일은 이 폴더 안에 만든다.

이제 [내 작업 폴더]\assets의 에셋으로 브라우저 게임을 조립해.

- [내 작업 폴더]\index.html 하나와 [내 작업 폴더]\assets만으로 동작한다. 외부 라이브러리와 인터넷 연결 없이, 크롬에서 index.html을 열면 바로 실행된다.
- 화면은 16:9, 전체 화면 버튼, 한글 UI.
- 흐름: 타이틀 → "시작" → V1 → 선택 A → V2a 또는 V2b → V3 → 타이밍 → V4a 또는 V4b(게임 오버) → 선택 B → V5a 또는 V5b → 엔딩 화면.
- 선택·타이밍 순간: 부모 확정 영상이 끝나면 그 영상에서 추출해 다음 갈래의 시작 입력으로도 쓴 동일한 마지막 PNG를 표시한다. PNG 자체를 확대·수정하지 않고 별도 UI 레이어로 살짝 어둡게 하고 선택지를 띄운다. 선택은 5초 안에(시간이 다 되면 설계서에 정한 쪽으로), 타이밍은 3초 안에 스페이스 또는 화면 버튼.
- 다음 영상 첫 프레임이 준비될 때까지 PNG를 유지한다. PNG와 영상의 표시 크기·위치·크롭을 같게 하고 0.15초 겹쳐 넘긴다. 프리로딩을 쓰고 검정 화면·구도 점프를 확인한다. 전환 효과로 잘못된 시작 프레임을 숨기지 않는다. V2a·V2b→V3는 명시된 새 장면 전환이다.
- 게임 오버 → "다시 하기"는 V3부터.
- 선택 A를 기억해 엔딩의 자막이나 대사 한 줄을 바꾼다.
- 소리: Seedance로 만든 대사·공간음·타격음을 먼저 사용한다. 카탈로그 음악·효과음은 필요한 곳에만 추가하고 중복시키지 않는다. 정지 화면에서는 긴장음. UI 대기 중 셔터 하강 같은 사건 소리는 멈추고 소리 크기 균형을 맞춘다.
- 엔딩 화면: 엔딩 이름과 "처음부터" 버튼.
- 키보드와 마우스 모두 동작한다.
- 기존 게임의 화면 디자인이나 문구를 따라 하지 않는다.

다 만들면 모든 경로(숨기/달리기 × 성공/실패 × 함께/혼자)를 직접 확인하고, 확인한 것과 남은 문제를 정리해.
전체 보기

완성한 두 게임은 영상 04:55(Haiku 5.5)와 06:37(Terra)에서 처음부터 끝까지 플레이합니다.

두 게임의 타이틀 화면으로 왼쪽은 출구 계단을 오르는 두 사람, 오른쪽은 승강장에 선 주인공 옆에 밤을 달리다 제목이 들어간 모습
왼쪽은 Haiku 5.5, 오른쪽은 Terra 게임의 타이틀 화면입니다. 2단계 프롬프트로 만든 타이틀 이미지를 게임 시작 화면에 썼습니다. · 성공지식백과 프로젝트 제작 자료

5. 플레이해 보고 한 가지씩 고치기

게임을 직접 해 보고 가장 거슬린 곳부터 하나씩 고칩니다. 아래 양식의 대괄호 칸을 채워 보내면 모델이 가장 중요한 문제 하나를 골라 고칩니다. 다시 만드는 에셋은 2개까지로 묶어 두고, 무엇을 왜 바꿨는지 짧게 적게 합니다.

Claude Code·Codex에 입력: 5단계 수정
작업 폴더: [내 작업 폴더]
모든 파일은 이 폴더 안에 만든다.

플레이 테스트 메모
1. 가장 거슬린 장면과 이유: [ ]
2. 같은 인물·소품으로 안 보인 곳: [ ]
3. 게임이 이상하게 동작한 곳: [ ]

이 중 가장 중요하다고 보는 것 하나를 골라 고쳐. 다시 생성하는 에셋은 2개까지. 무엇을 왜 바꿨는지 짧게 써줘.

영상 12:40에서는 Terra 게임의 초반 장면을 고친 예를 보여 줍니다. 좀비가 다가오는데 두 사람이 걸어서 도망가 긴장감이 없어, 더 다급하게 해 달라고 다시 요청한 장면입니다.

두 모델의 단가와 결과에서 본 차이 · 13:43

오픈AI(OpenAI)의 GPT-6.1 Terra 모델 문서에 따르면 Terra의 표준 단가는 백만 토큰당 입력 1달러, 출력 5달러이고, 입력이 272K 토큰을 넘는 요청에는 요청 전체에 입력 2배·출력 1.5배 단가가 붙습니다. 앤트로픽(Anthropic)의 Claude Haiku 5.5 모델 문서는 프롬프트 10만 토큰 이하 요청에 입력 0.10달러·출력 0.50달러, 넘는 요청에 입력 0.50달러·출력 2.50달러를 적용합니다.

10만 토큰 이하 요청끼리 견주면 입력과 출력 모두 10배 차이입니다(영상 02:25). 이 단가는 언어 모델 사용료이고, Artlist의 이미지·영상 생성 크레딧은 따로 듭니다. 단가는 10월 29일 확인 기준입니다.

영상의 총평에서 Haiku 5.5는 목표로 한 애니메이션 질감을 처음부터 끝까지 유지했지만 중간의 화면 전환 로직이 어색했고, Terra는 마지막 프레임까지 장면을 잘 이어 전체 로직은 좋았지만 갈수록 실사 쪽으로 바뀌었다고 평가합니다. 모델 등급으로 보면 Terra가 크게 앞서야 하지만 결과는 꼭 그렇지 않았다는 것이 영상의 판단입니다. 같은 시나리오와 같은 이미지·영상 모델을 썼는데도 두 모델이 정한 인물과 좀비, 연출부터 서로 달랐습니다.

아래 표는 이번 한 번의 제작에서 영상이 짚은 설계 차이입니다.

항목Claude Haiku 5.5GPT-6.1 Terra영상 시각
도망 방향 설계좀비 반대쪽, 개찰구와 출구 쪽으로 도망. 화면 기준 방향은 정하지 않음좀비는 화면 왼쪽에서 오고 사람은 화면 오른쪽으로 도망. 이 부분은 Terra가 낫다는 평가08:32
인물과 좀비남자 주인공, 미화원 여자 동료, 정장·역무원 조끼·빨간 후드 좀비. 빨간 후드 좀비의 습격 장면이 인상적이라는 평가여자 주인공, 남자 조력자, 회색 후드·보라 재킷 좀비09:24
소품 사용우산, 밀대, 소화기, 안전콘을 장면 속 행동에 씀소품을 쓰는 장면은 없었지만 인물 디자인은 더 낫다는 평가10:16

영상은 두 모델이 한 번에 얼마나 잘 만드는지 보려고 중간중간 방향을 다시 잡아 주지 않았다고 밝힙니다(14:02). 실사 금지와 애니메이션풍을 프롬프트에 더 엄격하게 적었다면 Terra의 결과가 더 좋았을 수 있다는 것이 영상의 해석입니다(14:18).

Claude Haiku 5.5와 GPT-6.1 Terra가 만든 좀비 게임의 승강장 장면과 계단 습격 장면을 2행 2열로 비교한 모습
위 줄은 승강장 장면(V1), 아래 줄은 계단 습격 장면(V3)의 마지막 프레임이고 왼쪽이 Haiku 5.5, 오른쪽이 Terra 게임입니다. 영상에서 짚은 대로 Terra 쪽은 계단 장면에서 승강장 장면보다 실사에 가까워졌습니다. · 성공지식백과 프로젝트 제작 자료

자주 묻는 질문

다른 장소와 장르로 옮겨 쓸 때 걸리기 쉬운 범위와 비용 조건입니다. 답은 이번 제작과 영상에서 확인한 내용을 기준으로 합니다.

같은 프롬프트를 쓰면 영상과 같은 게임이 나옵니까?
같은 결과는 나오지 않습니다. 영상의 두 게임도 같은 시나리오와 같은 이미지·영상 모델로 만들었지만 주인공과 동료, 좀비, 카메라를 잡는 방식이 서로 다르게 나왔습니다. 생성 결과는 실행마다 달라질 수 있으므로 단계마다 결과를 열어 확인한 뒤 다음 단계로 넘어갑니다.
Artlist 크레딧은 얼마나 듭니까?
이미지와 영상 생성에는 모델 토큰 단가와 별도로 Artlist 크레딧이 듭니다. 생성 전에 Artlist MCP에 같은 모델과 설정으로 견적을 물어 확인하고, 3단계 프롬프트처럼 비용이 큰 생성에서는 승인을 기다리게 하면 견적을 보고 만들지 정할 수 있습니다.
Seedance 2.5 대신 다른 영상 모델을 써도 됩니까?
영상 04:42에서는 Kling 4.0 같은 다른 영상 모델을 써도 된다고 말합니다. 다만 3단계 프롬프트는 Seedance 2.5의 16:9, 오디오 생성, 시작 프레임 등록을 기준으로 쓴 것이라 모델 이름과 생성 조건 줄을 그 모델이 지원하는 설정에 맞게 바꿉니다.
Claude 앱이나 ChatGPT에서도 이 프롬프트를 쓸 수 있습니까?
Artlist MCP 연결 자체는 영상에서 Claude 앱으로 보여 주고, ChatGPT도 비슷하게 연결한다고 말합니다. 다만 이 프롬프트는 작업 폴더에 설계서와 HTML을 저장하고 ffmpeg로 마지막 프레임을 뽑아 게임 파일을 만드는 단계가 있어, 이번 제작처럼 파일과 명령을 다룰 수 있는 Claude Code나 Codex를 기준으로 합니다.
이어서 볼 글