Community이미지github.com

스프라이트 생성기

참조 이미지나 생생한 설명을 바탕으로 Godot에 바로 사용할 수 있는 게임 스프라이트 에셋을 생성, 수리, 검증, 미리보기 및 패키징합니다.

스프라이트 생성기란 무엇인가요?

이 스킬은 게임 개발자가 개념, 참조 이미지, 또는 상세한 아트 디렉션 브리핑을 바탕으로 프로덕션 수준의 2D 스프라이트 에셋을 만들 수 있도록 설계된 전문 기술입니다. 이미지 생성은 환경의 이미지 생성 기능(예: Codex의 `$imagegen` 스킬 또는 ChatGPT의 네이티브 이미지 생성 도구)에 위임하며, 번들 스크립트는 프롬프트 계획, 크로마키 제거, 프레임 추출, 아틀라스 합성, QA, 미리보기 및 Godot 패키징과 같은 결정론적 후처리 단계에만 사용합니다. 이 스킬은 특정 스타일에 국한되지 않고 사용자가 제공하는 참조 이미지나 스타일 카드를 스타일 잠금의 진리값으로 사용하여 일관된 결과를 보장합니다. 최종 출력물은 예측 가능한 파일명, 투명 배경, 깨끗한 아틀라스, 프레임 메타데이터, QA 콘택트 시트, SpriteFrames 시작 리소스를 포함하여 Godot 프로젝트에 바로 통합할 수 있습니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Vel-Labs/Vel-Skills/tree/HEAD/skills/game/sprite-generator

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

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

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

문서

스프라이트 생성기은(는) 무엇을 하나요?

출력물

생성 및 검증된 스프라이트, 미리보기, Godot 통합 아티팩트.

비목표

로컬 드로잉 스크립트를 실제 이미지 생성의 대체 수단으로 사용하는 것.

목적

컨셉, 하나 이상의 참조 이미지, 또는 상세한 아트 디렉션 브리핑에서 프로덕션 지향 2D 게임 스프라이트를 생성합니다. 이 스킬은 의도적으로 스타일에 구애받지 않습니다. 사용자는 참조 이미지, 스타일 카드, 스크린샷, 또는 생생한 설명을 제공할 수 있으며, 워크플로우는 이를 프롬프트, 접지 이미지, 생성된 기본 참조, 애니메이션/상태 작업, 결정론적 추출, QA, Godot 시작 파일을 포함하는 재사용 가능한 스프라이트 생성 실행으로 전환합니다.

목표는 단순히 예쁜 이미지를 만드는 것이 아닙니다. 목표는 예측 가능한 파일명, 투명 배경, 깨끗한 아틀라스, 프레임 메타데이터, QA 콘택트 시트, SpriteFrames 시작 리소스를 사용하여 Godot 프로젝트에 배치할 수 있는 에셋을 생산하는 것입니다.

다음과 같은 요청에 이 스킬을 사용하십시오:

  • "깨끗한 버전과 더러운 버전이 있는 집 가구를 만들어 주세요."
  • "이 아트 스타일로 대기, 걷기, 가리키기, 청소 애니메이션이 있는 캐릭터를 만들어 주세요."
  • "이 참조와 동일한 스타일로 인형의 집 방 맵을 만들어 주세요."
  • "대체 복장/색상 변형을 생성하고 동일한 신체 비율을 유지하세요."
  • "이 물체 스케치를 게임에 바로 사용할 수 있는 투명한 소품 스프라이트로 변환해 주세요."

입력

다음 입력의 모든 조합을 허용합니다:

  • 참조 이미지: 스타일 시트, 기존 캐릭터, 소품, 스크린샷, 무드 보드, 팔레트, 이전 생성 스프라이트, 또는 게임 내 캡처.
  • 생생한 설명: 에셋 이름, 역할, 모양, 재질, 색상, 크기, 카메라 각도, 사용 목적, 스타일 형용사.
  • 에셋 유형: character, npc, player, furniture, prop, object, map, room, dollhouse, 또는 일반 sprite.
  • 애니메이션: 명명된 동작, 프레임 수, 방향, 루프/원샷 동작, 지속 시간 또는 FPS, 특수 포즈 노트.
  • 상태 및 변형: 깨끗함/더러움, 열림/닫힘, 건강함/시듦, 비어 있음/가득 참, 복장 A/B, 색상 세트, 손상 수준 등.
  • 통합 대상: Godot 버전, 셀 크기, 아틀라스 열 수, 배율, 탑다운/아이소메트릭/사이드뷰 카메라, 선호하는 임포트 경로.

사용자가 세부 정보를 생략하면 합리적인 기본값을 추론하고 출력을 쉽게 반복할 수 있도록 하십시오. 누락된 모든 세부 정보에 대해 차단하지 마십시오. 생략으로 인해 알 수 없는 스타일, 알 수 없는 캐릭터 정체성, 또는 필수 애니메이션 목록과 같이 비용이 많이 드는 잘못된 작업이 발생할 경우에만 명확한 질문을 하십시오.

시각적 생성 위임

실제 아트는 환경의 이미지 생성 기능을 사용하여 생성되어야 하며, 로컬 스크립트를 사용해서는 안 됩니다. Codex 스타일 스킬 환경에서는 설치된 $imagegen 스킬에 위임하십시오. ChatGPT에서는 사용자가 실제로 시각적 에셋을 생성하도록 요청할 때 네이티브 이미지 생성 도구를 사용하십시오. 번들 Python 스크립트는 결정론적 프로덕션 단계에만 사용됩니다.

허용되는 결정론적 단계:

  • 실행 폴더 및 프롬프트 파일 생성
  • 안정적인 참조를 실행 폴더에 복사
  • 레이아웃 가이드 이미지 생성
  • 선택된 생성 출력 기록
  • 평면 크로마키 배경 제거
  • 스트립을 프레임으로 분할
  • 프레임을 일관된 셀로 자르기, 크기 조정, 패딩, 중앙 정렬
  • PNG/WebP 아틀라스 구성
  • 콘택트 시트 및 GIF 미리보기 생성
  • JSON 매니페스트 및 Godot 시작 리소스 작성

하드 경계: Pillow, SVG, CSS, HTML 캔버스 또는 프로그래밍 방식의 도형을 사용하여 스프라이트 아트를 그리거나, 페인트하거나, 합성하거나, 타일링하거나, 왜곡하거나, 발명해서는 안 됩니다. 이는 이미지 생성의 대체 수단으로 사용될 수 없습니다. 스크립트는 생성된 이미지를 처리할 수 있지만, 숨겨진 아트 생성기로 사용될 수 없습니다.

스타일 캡처 및 스타일 잠금

스타일 참조가 제공되면 이를 진리값으로 취급하십시오. 다음 특성을 프롬프트 계획으로 추출하십시오:

  • 카메라 각도 및 원근: 정면, 측면, 탑다운, 아이소메트릭, 3/4, 인형집, 직교
  • 비율: 치비, 사실적, 쪼그림, 키 큼, 장난감 같음, 픽셀, 화가풍, 평면 벡터, 로우 폴리 렌더
  • 선 및 가장자리 처리: 외곽선 없음, 두꺼운 외곽선, 부드러운 렌더링 가장자리, 픽셀 가장자리, 셀 셰이딩 테두리
  • 재질 및 조명: 점토, 봉제, 플라스틱 장난감, 페인트된 3D, 평면 셀, 광택, 무광택, 수채화 등
  • 팔레트 및 채도
  • 그림자 정책: 투명 스프라이트의 경우 명시적으로 개체의 일부로 유지되지 않는 한 없음
  • 배경 정책: 추출을 위해 투명 또는 평면 크로마 키
  • 대상 셀 크기에서의 배율 및 가독성

관련 에셋이 대상 스타일이 아닌 다른 스타일로 보이면 행 또는 상태는 실패한 것입니다.

에셋 유형 기본값

캐릭터/NPC/플레이어

사용자가 애니메이션을 지정하지 않은 경우 기본 출력:

애니메이션프레임목적
idle4호흡/깜빡임 루프; 첫 번째 프레임은 정적 포즈로 사용됨
walk_down6앞/아래 이동
walk_up6뒤/위 이동
walk_left6왼쪽을 향한 측면 이동
walk_right6오른쪽을 향한 측면 이동

선택적 일반 동작: point, talk, pickup, carry, clean, use_item, sit, sleep, cry, celebrate, fail, interact, attack, cast, jump, push, pull.

가구/소품/물체

사용자가 상태를 지정하지 않은 경우 기본 출력:

상태프레임목적
clean1정상/정리된 상태
dirty1동일한 물체의 더럽고 지저분한 상태

선택적 일반 상태: empty, half_full, full, overflowing, open, closed, on, off, healthy, wilted, broken, repaired, selected, highlighted, locked, unlocked.

맵/방/인형집

기본 출력은 하나의 큰 map_base 스프라이트 또는 배경입니다. 방의 경우 단일 평면화된 아트 레이어가 필요한지 또는 floor, walls, furniture, interactables, path_overlay, collision_reference와 같은 별도의 레이어가 필요한지 지정하십시오. 별도의 오버레이로 요청되지 않는 한 프로덕션 맵 아트에 UI 레이블, 화살표, 경로선, 튜토리얼 오버레이를 포함하지 마십시오.

배경 및 투명도 규칙

이미지 도구가 안정적으로 실제 알파를 생성하지 못하는 경우 생성 시 평면 크로마키 배경을 선호하십시오. 기본 키는 #00ff00입니다. 최종 아틀라스는 추출 후 투명 PNG/WebP여야 합니다.

생성된 소스 이미지의 경우:

  • 전체 스트립 또는 개체 렌더링에 걸쳐 하나의 평면 배경색 사용
  • 에셋을 크로마 키와 시각적으로 분리 유지
  • 녹색 키를 사용할 때 녹색 하이라이트/재질을 피하고, 에셋에 녹색이 필요한 경우 대신 마젠타 또는 파란색 키 선택
  • 흰색 배경, 체커보드 배경, UI 패널, 레이블, 프레임 번호, 눈에 보이는 격자, 테두리, 또는 배경 없음
  • 캐스트 그림자, 바닥 그림자, 글로우, 부드러운 투명 후광, 먼지 구름, 속도선, 모션 트레일, 또는 느슨하게 분리된 효과 없음. 단, 작은 부착된 불투명 효과가 스프라이트의 일부로 명시적으로 포함된 경우는 제외
  • 모든 프레임은 완전하고, 분리되어 있으며, 잘리지 않고, 슬롯 안에 있어야 합니다.

애니메이션 프롬프팅 규칙

모든 애니메이션 행/스트립에 대해:

  • 선언된 프레임 수를 정확히 요청
  • 레이아웃 지정: 일반적으로 왼쪽에서 오른쪽으로 수평 스트립
  • 표준 기본 이미지와 참조 이미지를 접지 입력으로 사용
  • 정체성, 비율, 팔레트, 재질, 외곽선/가장자리 스타일, 카메라 각도를 일관되게 유지
  • 동작을 포즈 변화를 통해 전달하고, 블러, 속도선, 먼지 또는 그림자를 통하지 않음
  • loop=true인 경우 첫 번째와 마지막 프레임이 깔끔하게 반복되어야 함
  • 방향 애니메이션의 경우 방향을 명시적으로 요청하고 캐릭터에 측면별 액세서리가 있는 경우 우발적인 미러링된 세부 사항을 피하십시오.

기본에 비해 캐릭터의 얼굴, 몸체 모양, 복장, 소품 디자인, 재질 스타일 또는 배율을 변경하는 행은 수락하지 마십시오.

가시적 진행 계획

일반적인 에셋 실행의 경우 사용자에게 표시되는 체크리스트를 유지하십시오:

  1. 에셋 요청 준비.
  2. 표준 룩 생성.
  3. 상태 및 애니메이션 행 생성.
  4. Godot용 패키징.

각 단계의 의미:

  • 에셋 요청 준비: 에셋 이름, 에셋 유형, 스타일 소스, 출력, 셀 크기, 크로마 키, 실행 디렉토리를 설정합니다.
  • 표준 룩 생성: 정체성/스타일 잠금이 되는 기본 참조를 생성하거나 선택합니다.
  • 상태 및 애니메이션 행 생성: 기본 및 참조를 사용하여 각 출력 작업을 생성하고, 실패한 행/상태만 수리합니다.
  • Godot용 패키징: 프레임 추출, 아틀라스 구성, QA 콘택트 시트 생성, 매니페스트 작성, SpriteFrames 시작 리소스 작성, 파일 경로 보고.

실제 파일이나 결정이 있을 때만 단계를 완료로 표시하십시오.

워크플로우

1. 실행 폴더 준비

python3 ./scripts/prepare_sprite_run.py \
  --asset-name "Market Crate" \
  --asset-type prop \
  --description "readable wooden market crate with colorful contents" \
  --style-notes "match the supplied game art reference" \
  --reference /absolute/path/to/style_reference.png \
  --state full:1:"crate full of items":single:once \
  --state empty:1:"same crate empty":single:once \
  --cell-size 256x256 \
  --columns 2 \
  --output-dir /absolute/path/to/run

캐릭터의 경우:

python3 ./scripts/prepare_sprite_run.py \
  --asset-name "Player" \
  --asset-type character \
  --description "friendly player character with a clear silhouette" \
  --reference /absolute/path/to/style_reference.png \
  --animation idle:4:"gentle breathing and blink" \
  --animation walk_down:6:"walking toward camera" \
  --animation walk_up:6:"walking away from camera" \
  --animation walk_left:6:"walking left side view" \
  --animation walk_right:6:"walking right side view" \
  --cell-size 256x320 \
  --columns 6 \
  --output-dir /absolute/path/to/run

고급 실행은 JSON 구성 파일로 설명하고 --config로 전달할 수 있습니다.

2. 준비된 작업 검사

python3 ./scripts/sprite_job_status.py --run-dir /absolute/path/to/run

base 작업이 먼저 생성되어야 합니다. 종속 작업을 생성하기 전에 선택된 생성된 기본 이미지를 기록하십시오. 기록기는 references/canonical-base.png를 작성하며, 이후 작업에서 입력 이미지로 사용해야 합니다.

3. 각 시각적 작업 생성

준비된 각 작업에 대해 imagegen-jobs.json에 나열된 프롬프트 파일과 나열된 모든 입력 이미지를 사용하십시오. 최고의 원본 생성 이미지를 선택한 다음 기록하십시오:

python3 ./scripts/record_imagegen_result.py \
  --run-dir /absolute/path/to/run \
  --job-id job-id-from-status \
  --source /absolute/path/to/generated-output.png

수동 편집된 픽스쳐, 썸네일 또는 실행의 final/frames 폴더에서 소스 아트로 가져온 파일을 기록하지 마십시오. 선택된 원본 생성 출력을 기록하십시오.

4. 마무리

python3 ./scripts/finalize_sprite_run.py --run-dir /absolute/path/to/run

예상 출력:

run/
  asset_request.json
  imagegen-jobs.json
  prompts/
  references/
  decoded/
  frames/frames-manifest.json
  final/spritesheet.png
  final/spritesheet.webp
  final/validation.json
  qa/contact-sheet.png
  qa/previews/*.gif
  qa/run-summary.json
  godot/<asset>_spriteframes.tres
  godot/<asset>_animated_sprite_2d.tscn
  godot/godot_import_manifest.json
  godot/README_GODOT.md

5. Godot에 복사

python3 ./scripts/package_godot_assets.py \
  --run-dir /absolute/path/to/run \
  --project-dir /absolute/path/to/godot-project \
  --dest assets/sprites

패키징 후 godot/README_GODOT.md를 검토하십시오. 파일을 다른 res:// 위치에 복사하는 경우 생성된 .tres 파일 내부의 텍스처 경로를 업데이트하십시오.

수리 워크플로우

QA가 실패하면 가장 작은 범위부터 먼저 수리하십시오:

  1. 단일 잘못된 상태 또는 애니메이션 행.
  2. 이미지 도구가 프레임 수준 편집을 안정적으로 지원하는 경우에만 단일 잘못된 프레임.
  3. 정체성/스타일이 모든 곳에서 잘못된 경우에만 표준 기본.
  4. 최후의 수단으로만 전체 아틀라스.

일반적인 수리 프롬프트:

  • "walk_left만 다시 생성하고, 정확한 표준 캐릭터, 복장, 비율, 장난감 렌더 스타일을 유지하십시오."
  • "dirty만 다시 생성하고, clean과 동일한 소파여야 하지만 담요/베개가 지저분해야 합니다."
  • "정확히 6개의 프레임이 있고 프레임 번호나 레이블이 없는 스트립을 다시 생성하십시오."
  • "개체에 녹색 재질이 필요하므로 마젠타 크로마 키를 사용하십시오."

수리 이미지를 기록한 후 마무리를 다시 실행하십시오.

QA 평가 기준

다음 검사를 통과할 때까지 에셋을 수락하지 마십시오:

  • 생성된 기본이 요청된 스타일 또는 제공된 스타일 참조와 일치합니다.
  • 모든 상태/애니메이션이 동일한 에셋 정체성이며, 재설계가 아닙니다.
  • 정확한 프레임 수가 있습니다.
  • 투명 추출이 스프라이트의 중요한 부분을 제거하지 않습니다.
  • 프레임이 완전하고, 중앙에 정렬되고, 패딩 처리되고, 잘리지 않았습니다.
  • 프로덕션 아트에 레이블, 프레임 번호, 격자선, 워터마크, UI 패널 또는 배경이 유출되지 않았습니다.
  • 추출 후 원치 않는 그림자, 글로우, 먼지, 속도선, 블러 또는 분리된 효과가 남아 있지 않습니다.
  • 콘택트 시트가 대상 크기에서 시각적으로 올바르게 읽힙니다.
  • final/validation.json에 오류가 없고, 경고는 시각적으로 검토되었습니다.
  • Godot 매니페스트 이름이 코드에서 호출하려는 애니메이션 이름과 일치합니다.

승인 기준

완료된 실행에는 다음이 포함되어야 합니다:

  • references/canonical-base.png의 표준 기본 참조
  • imagegen-jobs.json에 기록된 선택된 생성 소스
  • 추출된 투명 프레임 PNG
  • final/spritesheet.png 및 지원되는 경우 final/spritesheet.webp
  • qa/contact-sheet.png
  • 다중 프레임 애니메이션용 GIF 미리보기
  • 오류가 없는 final/validation.json
  • godot/ 아래 Godot 시작 파일
  • 경고에도 불구하고 수리되거나 수동으로 승인된 행/상태를 명명하는 간단한 사용자 대상 보고서

규칙

  • 시각적 생성은 시각적 요소에 사용하고, 결정론적 처리에만 스크립트를 사용하십시오.
  • 다중 출력 에셋에는 항상 표준 기본을 사용하십시오.
  • 이미지 도구가 참조를 지원하는 경우 모든 종속 시각적 작업에 대해 참조를 첨부된 상태로 유지하십시오.
  • 장면 일러스트레이션보다 투명 또는 크로마키 호환 출력을 선호하십시오.
  • 별도의 오버레이 에셋으로 요청되지 않는 한 프로덕션 스프라이트에 UI 레이블, 안내 화살표, 경로선 또는 충돌 가이드를 넣지 마십시오.
  • Godot의 경우 애니메이션 이름을 안정적으로 유지하고 소문자로 유지하십시오.

파일 구조

run/
  asset_request.json          # 이 실행에 대한 완전한 사양
  imagegen-jobs.json           # 각 시각적 작업을 위한 프롬프트 및 입력 이미지 목록
  prompts/                     # 생성된 프롬프트 텍스트 파일
  references/                  # 캐노니컬 기본을 포함한 참조 이미지
  decoded/                     # 원본 생성 출력(참조용, 작업 시드)
  frames/                      # 추출된 투명 프레임
    frames-manifest.json
  final/                       # 최종 아틀라스 및 검증
    spritesheet.png
    spritesheet.webp
    validation.json
  qa/                          # 품질 보증 아티팩트
    contact-sheet.png
    previews/
      idle.gif
      walk_down.gif
      ...
    run-summary.json
  godot/                       # Godot 통합 파일
    README_GODOT.md
    <asset>_spriteframes.tres  # SpriteFrames 리소스
    <asset>_animated_sprite_2d.tscn  # AnimatedSprite2D 씬
    godot_import_manifest.json

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

관련 스킬