최근들어 몇몇 프로젝트를 인공지능 서비스인 claude를 사용하여 진행하고 있다.
이종호 님의 강2026년 제주 발표가장 최근 작업은 claude code로 애니메이션 skill을 작성하여 영상물을 제작하는 작업인데, 이 작업을 진행하며 prompt 개발에 촛점을 맞추기 보다는 prompt 를 적절하게 쓸 수 있는 skill 개발에 힘을 쏟고 있다. skill을 개발한다는 의미는 Agent를 육성시킨다는 의미와도 같다. Agent 가 내 의도를 충분히 파악해서 원하는 결과물이 잘 나올 수 있게 규칙과 조건을 세팅하는 일 말이다.
지금 내가 개발한 Agent 는 baseball 관련 짧은 클립 영상을 만들기 위한 Agent 다. 내용을 우선 보면, 구글 드라이브에 잘 만든 야구 관련 이미지를 Agent에 입력하고, 이를 객체별로 분리한 후에 Animation Sequence의 source로 사용할 수 있도록 준비시킨다. 그렇게 이미지 애니메이션을 위한 영상 소스가 완성되면, 시간차를 두고 각 애니메이션 요소가 화면에 나타나고 없어지고, 크기가 커지고 작아지며 영상의 시퀀스가 진행되도록 세팅되어있다.
이렇게 Agent를 개발하고 훈련시키는 데에는 Claude Code와 대화가 가장 유효했으며, 만들어 놓은 영상 애니메이션을 보고 직접적인 수정안 피드백을 준 것이 가장 유효했었다.
# Animation Sequences — Episode 06-28
> 생성일: 2026-06-28
> 엔진: collage-animation-engine (`.claude/skills/collage-animation-engine.md`)
> 렌더링 모델: GPT Image 2 (이미지) / Seedance 2.0, Grok Video 1.5 (영상)
---
## ⚠️ NFT 포맷 필수 체크리스트
| 항목 | 권장값 | 비고 |
|------|--------|------|
| **포맷** | MP4 (H.264 + AAC) | 모든 주요 플랫폼 지원 |
| **해상도** | 1080p 이상 | 1:1 square = NFT 표준 |
| **종횡비** | **1:1 (square)** | OpenSea/Foundation/SuperRare 권장 |
| **파일 크기** | **10MB 이하** → Rarible 통과 / **50MB 이하** → 나머지 통과 | Rarible이 가장 엄격 |
| **길이** | 30초 이하 권장 | 플랫폼별 상이, 8-10초가 최적 |
| **메타데이터** | ERC-721 / ERC-1155 | `image` = PNG 썸네일, `animation_url` = MP4 |
| **스토리지** | IPFS 권장 | 탈중앙화 영구 보존 |
### NFT 메타데이터 JSON 템플릿
```json
{
"name": "작품명",
"description": "작품 설명",
"image": "ipfs://<PNG_CID>",
"animation_url": "ipfs://<MP4_CID>",
"attributes": [
{ "trait_type": "Style", "value": "Collage Animation" },
{ "trait_type": "Engine", "value": "collage-animation-engine" },
{ "trait_type": "Model", "value": "Seedance 2.0" }
]
}
```
---
## 2. Victory!! 야구 NFT
### 소스
- **Image 1:** 야구 경기장 실사 (PNG, 2944×1648) — Google Drive
- **Image 2:** 애니메이션 여성 배터 #11 (PNG, 2048×2048) — Google Drive
- **혼합 레퍼런스:** PIL로 두 이미지 합성 (2048×1024)
### 해체 파편 (collage-animation-engine Step 1)
| # | 파편 | 출처 | 상징 |
|---|------|------|------|
| 1 | 여성 배터 실루엣 (애니, #11) | Image 2 | 영웅 |
| 2 | 오렌지+블루 브러시스트로크 구름 | Image 2 | 서사적 에너지 |
| 3 | 도시 스카이라인 (저공 시점) | Image 2 | 세계를 내려다보는 시선 |
| 4 | 경기장 조명 + 관중 (실사) | Image 1 | 현실의 환호 |
| 5 | "Victory!!" 타이포 + 네트 라인 | 생성 | 승리 선언 |
---
### 2-A. Seedance 2.0 — Victory v1 (실사 단독)
> **파일:** `victory_nft_animation.mp4` (27MB) ⚠️ Rarible 초과 / 나머지 통과
**이미지 성격:** 혼합형
**애니메이션 전략:** 레이어 쌓기 + 독립 이동
**시퀀스:**
```
[LAYER STACK SEQUENCE]
Stack Order: 배경 → 선수 → 야구공/배트 → Victory!! → 폭죽
[LAYER 1 — 배경] (1.5s)
Royal blue→Navy 배경 + 종이 그레인 등장
[LAYER 2 — 선수 컷아웃] (1.5s)
크라프트지 선수가 좌하단→중앙 슬라이드인
하드 섀도 바닥에 찰싹, stop-motion 프레임 떨림
[LAYER 3 — 야구공 + 배트] (1s)
공 우상단에서 회전 착지, 배트 좌하단 튕겨오듯 등장
[LAYER 4 — "Victory!!" 타이포] (1s)
상단 밖에서 쾅 낙하 → 착지 충격 프레임 흔들림
마리골드 옐로우 크롬 반사 번쩍
[LAYER 5 — 폭죽/완성] (2s)
색종이+폭죽 전면 폭발 → 5레이어 완성 유지
[독립 동작]
- 야구공 제자리 자전
- Victory!! 텍스트 미세 진동
- 선수 배트 스윙 1회 반복
```
**스펙:** 8초 | 1080p | 1:1 ⭐ | 27MB | 오디오 포함
---
### 2-B. Seedance 2.0 — Victory v2 (anime+실사 혼합) ⭐ 추천
> **파일:** `victory_nft_v2_animation.mp4` (18MB) ⚠️ Rarible 초과 / 나머지 통과
**이미지 성격:** 혼합형 (누적형 + 충돌형)
**애니메이션 전략:** 레이어 쌓기 → 충돌 에너지 폭발 → 완성 정지
**시퀀스:**
```
[LAYER STACK SEQUENCE]
Stack Order: 네이비 배경 → 브러시스트로크 구름 → 도시 스카이라인
→ 경기장 관중 → 여성 배터 → "Victory!!" 타이포
[LAYER 1 — 배경] (1.5s)
Royal blue→navy 그라데이션 번짐, 필름 그레인 깜빡임
[LAYER 2 — 브러시스트로크 구름] (1.5s)
오렌지+블루 표현주의 구름이 트레이싱지처럼 하강
좌→우 소용돌이치며 반투명 안착
[LAYER 3 — 도시 스카이라인] (1s)
신문지 질감 도시 항공뷰 하단에서 슬라이드업
찢긴 신문 활자처럼 등장, 하드 섀도 안착
[LAYER 4 — 경기장 관중 플래시] (1s)
실사 경기장 조명+관중 실루엣 → 잡지 클리핑으로 우측 착지
스타디움 플래시 한 번 번쩍, stop-motion 지터
[LAYER 5 — 여성 배터 히어로 등장] (2s) ← 핵심
크라프트지 여성 배터 좌하단→저각도 슬라이드인
배트 스윙 모션 1회 (Open Stance → Impact → Manse Follow-Through), 머리카락 wind-blown 휘날림
스타디움 네트 연필선 자기 그리듯 뒤에 등장
[LAYER 6 — "Victory!!" 임팩트] (1.5s)
상단 밖에서 쾅 낙하 → 전체 프레임 1프레임 흔들림
마리골드 옐로우 크롬 번쩍 → 3D 베벨 섀도 고정
[CLIMAX — 충돌 폭발] (2s)
배터 배트 재스윙 → 구름 에너지 방사형 폭발
Victory!! 2x 펄스(커졌다→원래대로)
색종이+빛 파편 전면 폭발 → 시네마틱 정지 마무리
```
**NFT 최적화 포인트:** ⭐
- 1:1 square 포맷 — NFT 표준 완벽 부합
- 6레이어 점층 구조 → 정적 썸네일(PNG)과 강력한 차별화
- 오디오 포함으로 감상 완성도 극대화
- `image` = `victory_nft_v2_collage.png` / `animation_url` = `victory_nft_v2_animation.mp4`
**스펙:** 8초 | 1080p | **1:1** ⭐ | 18MB | 오디오 포함
---
## 플랫폼별 업로드 가이드
| 파일 | 크기 | OpenSea | Foundation | SuperRare | Rarible | Magic Eden |
|------|------|---------|------------|-----------|---------|------------|
| `victory_nft_v2_animation.mp4` | 18MB | ✅ | ✅ | ✅ | ❌ | ✅ |
| `victory_nft_animation.mp4` | 27MB | ✅ | ✅ | ✅ | ❌ | ✅ |
> Rarible 용 Victory 영상이 필요하면 ffmpeg으로 10MB 이하 재인코딩 필요.
> 명령어: `ffmpeg -i input.mp4 -crf 32 -preset slow output_rarible.mp4`
---
## 생성 파일 목록
```
dist/episodes/06-28/
└── victory/
├── victory_nft_collage.png (12MB) — v1 실사 단독
├── victory_nft_animation.mp4 (27MB) — v1 애니메이션
├── victory_nft_v2_collage.png (12MB) — v2 anime+실사 혼합
└── victory_nft_v2_animation.mp4 (18MB) — v2 애니메이션 ⭐ 추천
```