본문으로 건너뛰기

도트 팔레트 고정 · 모든 프레임에 하나의 팔레트

여러 도구에서 내보낸 프레임은 팔레트가 제각각입니다. 픽셀 랩은 모든 프레임에서 하나의 팔레트를 만들어 각 프레임을 고정하고, 내보낸 모든 색이 팔레트 안에 있음을 확인합니다.

스프라이트 프레임(PNG)을 끌어다 놓으세요. 여러 프레임이 하나의 팔레트를 씁니다
픽셀 랩 열기
브라우저에서 처리하며 파일은 업로드되지 않습니다.
픽셀 랩: 추출한 팔레트 하나에 고정된 CC0 스프라이트 프레임과 색별 픽셀 비율
CC0 에셋(OpenGameArt)을 연 실제 픽셀 랩 화면입니다.
출력
  • PNG frames측정 확인· Pillow
  • Palette측정 확인· re-import
  • pixel-lab.json미검증

이렇게 작동합니다

  • 모든 프레임에서 알파 가중 팔레트 하나를 만듭니다(Oklab 중앙값 분할, 2~256색). 게임보이·PICO-8·Sweetie 16·Endesga 32·NES 팔레트도 쓸 수 있습니다.
  • 디더: 없음, Floyd–Steinberg, Atkinson, Bayer 2×2/4×4/8×8. 순서형 디더는 프레임 사이에서 깜박이지 않으며, 오차 확산을 고르면 경고합니다.
  • 팔레트 편집: 명도·색상·채도·빈도로 정렬, 다시 추출해도 남는 색 고정.
  • PNG 프레임(1×~8× 최근접), .gpl 팔레트, JSON으로 내보냅니다.

사용 방법

  1. 프레임을 끌어다 놓습니다.
  2. 색 개수나 고전 팔레트를 고릅니다.
  3. 디더 방식을 고릅니다(애니메이션은 기본값 없음).
  4. ZIP으로 내보냅니다.

출력 파일과 검증 방법

"측정 확인"은 내려받은 파일을 페이지 밖에서(Pillow·numpy·별도 파서) 다시 열어 그 속성을 측정했다는 뜻입니다. 게임 엔진에서 불러오는 것은 시험하지 않았습니다.

대상파일검증
PNG framesanim_N.png · 1×–8× nearest측정 확인 Pillow내보낸 PNG를 다시 읽어 모든 색이 고정 팔레트 안에 있는지 확인했습니다.
Palette.gpl · .hex (Lospec) · .json측정 확인 re-import각 형식을 내보내고 UI로 다시 가져와 16 → 16색을 확인했습니다.
pixel-lab.jsongeneric frames + palette미검증일반 JSON이며 어떤 엔진에서도 불러오지 않았습니다.

검증 근거

안티앨리어싱된 프레임 8개 → 16색 팔레트 하나, 팔레트 밖 색 0개. 디더링 없음과 Bayer 4×4 모두에서 변하지 않은 영역이 8프레임 모두 동일. 안티앨리어싱 제거로 271색 → 16색, 실루엣 픽셀 이동 0. 정수 배율·오프셋·2.5배 비정수 배율을 정확히 감지.

한계

  • 4096 × 4096보다 큰 프레임은 거부합니다. 모든 처리가 메인 스레드에서 돌고 아직 취소 버튼이 없습니다.
  • 스프라이트 시트는 이미지 하나로 다룹니다. 먼저 프레임으로 자르세요(스프라이트 시트 자르기).
  • 디더링을 켜면 정리 개수에 디더 픽셀이 포함됩니다. 먼저 디더링을 없음으로 두세요.
  • 내보내는 JSON은 일반 형식이며 Godot·Unity 가져오기는 시험하지 않았습니다.

자주 묻는 질문

디더링 후 애니메이션이 깜박이는 이유는?

오차 확산은 오차를 이미지 전체로 넘기므로 한 픽셀만 움직여도 이후 결정이 바뀝니다. 순서형(Bayer) 디더는 위치에만 의존해 깜박이지 않으며, 랩의 기본값은 없음입니다.

Lospec 팔레트를 쓸 수 있나요?

네. Lospec HEX 목록, .gpl, JSON을 붙여 넣거나 가져오면 프레임이 그 팔레트에 고정됩니다.

무료인가요? 계정이 필요한가요?

이 페이지의 기능은 모두 무료이며 계정 없이 쓸 수 있습니다. 워터마크나 막혀 있는 내보내기가 없습니다.

스프라이트가 업로드되나요?

아니요. Studio는 이 브라우저 탭 안에서 디코딩·패킹·내보내기를 합니다. 프로젝트는 브라우저(IndexedDB)에 자동 저장되며 .nerulio 파일로 저장할 수 있습니다.

Aseprite나 엔진 플러그인을 설치해야 하나요?

아니요. .aseprite 파일은 브라우저에서 읽고 씁니다. 엔진별 번들에는 그 엔진에 필요한 것이 들어 있습니다(Godot는 가져오기 설정과 씬, Unity와 Godot 타일셋은 작은 편집기 스크립트).