본문으로 건너뛰기

무료 텍스처 패커 · 브라우저에서 쓰는 TexturePacker 대안

"MaxRects + 트림"을 넘어서는 무료 패커입니다. 실제 프레임 세트 5개 모두에서 비교한 무료 패커 중 가장 작은 시트를 만들었고(회전 허용), 프레임이 픽셀 단위로 정확히 복원되며, Godot·Unity·Phaser·PixiJS·Spine·LÖVE가 실제로 불러온 형식으로 내보냅니다.

Nerulio의 패킹·내보내기는 브라우저에서 쓰는 무료 패커로, TexturePacker의 사각형 패킹 기능을 갖추고 있습니다. MaxRects, 트림 방식, 회전, 같은 스프라이트 합치기, 확장, 테두리·모양 간격, 여러 페이지, 배율 변형입니다. 실제 프레임 세트 5개로 TexturePacker Pro 8.3.0과 비교했을 때 회전을 허용하면 4개 세트에서 시트가 더 작았고 나머지 하나에서는 2.1% 컸으며, 두 도구 모두 모든 프레임을 정확히 복원했습니다. 폴리곤 패킹, GPU 텍스처 형식, 68개 데이터 형식, 빌드 파이프라인용 명령줄은 TexturePacker Pro가 앞섭니다.

패킹할 프레임 이미지, GIF 또는 .aseprite 파일을 끌어다 놓으세요
빈 Studio 열기
브라우저에서 처리하며 파일은 업로드되지 않습니다.
Studio 패킹·내보내기: 프레임마다 윤곽이 표시된 아틀라스 페이지, 사용 면적, 내보내기 대상
CC0 에셋(OpenGameArt)을 연 실제 Studio 화면입니다.
내보내기 대상
  • Godot 4검증됨· Godot 4.7.2
  • Unity 6검증됨· Unity 6000.5.3f1
  • Phaser 3 / 4검증됨· Phaser 3.90 + 4.2
  • PixiJS 8검증됨· PixiJS 8.21
  • Aseprite JSON검증됨· Phaser load.aseprite · PixiJS 8.21
  • .aseprite검증됨· Aseprite 1.3.18
  • Spine / libGDX검증됨· spine-canvas 4.2
  • Starling / Sparrow XML검증됨· Phaser 4.2
  • LÖVE검증됨· LÖVE 11.5
  • Defold빌드 확인· Defold bob.jar 1.13.1
  • GameMaker미검증
  • CSS sprites검증됨· Chromium
  • GIF / APNG디코딩 확인· Pillow

TexturePacker 대안이 갖춰야 할 것

TexturePacker의 설정은 몇 가지 결정으로 정리됩니다. 스프라이트를 어떻게 자를지(트림 방식), 얼마나 띄울지(테두리 간격, 모양 간격, 확장), 회전할지, 같은 스프라이트를 한 번만 저장할지, 페이지를 얼마나 크게 둘지, 어떤 데이터 형식으로 쓸지입니다. 이 사각형 설정마다 Nerulio에 대응 기능이 있으며 아래 표에 이름을 짝지어 두었습니다.

차이는 사각형 패킹 바깥에 있습니다. TexturePacker는 스프라이트 윤곽을 다각형으로 따서 패킹할 수 있고, 압축 GPU 형식과 줄인 픽셀 형식을 쓰며, 빌드 스크립트용 명령줄과 .tps 프로젝트 파일이 있습니다. Nerulio는 PNG만 쓰고 명령줄이 없습니다. 대신 애니메이션(태그, 프레임별 길이, 피벗, 히트박스)을 엔진 번들에 담으며, 그 번들은 실제 엔진에서 불러와 확인했습니다.

시트 크기는 어떤 페이지 모양을 받아들이느냐에 달려 있습니다. TexturePacker의 Best 모드는 페이지가 길쭉한 띠가 되어도 면적이 가장 작은 쪽을 고릅니다(한 세트에서 3551 × 102). Nerulio는 정사각형에 가까운 페이지에 점수를 더 줍니다. 그래서 측정에서는 두 도구 모두 정사각형 페이지를 강제한 경우도 비교했습니다.

측정: 같은 설정의 TexturePacker Pro 8.3.0과 Nerulio

트림 켬, 모양 간격 2, 최대 4096, 같은 스프라이트 합침, 양쪽 모두 최고 노력. Δ는 TexturePacker 대비 Nerulio 시트 면적이며, 음수면 Nerulio 쪽이 작습니다(docs/H2H-PAID.md, 2026-09-25).

세트(프레임 수)       회전 허용          회전 끔                         정사각형 페이지
ninja (6)             −17.7 %            −16.9 %                         −20.6 %
archer (10)            −3.6 %             +0.8 %  (TP: 3034 × 538 띠)      −2.6 %
samurai (60)           −5.8 %             −8.7 %                         −10.0 %
toon (45)              −2.0 %             +3.0 %  (TP: 3551 × 102 띠)      −3.6 %
spaceshooter (294)     +2.1 % (TP: 3575 × 256)  +1.2 %                    +0.8 %

2의 거듭제곱 페이지    다섯 세트 모두 같은 크기
정확히 복원된 프레임   모든 설정에서 두 도구 모두 415 / 415
폴리곤 모드(TP만)      spaceshooter 892,581 px² = Nerulio 최선보다 4.5% 작음,
                       캐릭터 세트 4개는 TP 자체 사각형보다 15–27% 큼

어느 도구도 모든 줄에서 이기지는 않습니다. 스프라이트 294개·크기 96종인 spaceshooter 세트와, 회전을 끄고 긴 띠 페이지를 허용한 두 세트에서는 TexturePacker가 앞서고, 캐릭터 세트와 정사각형 페이지에서는 Nerulio가 앞섭니다.

TexturePacker 설정과 Nerulio의 대응 기능

TexturePackerNerulio 패킹·내보내기메모
Trim mode None / Trim / Crop, keep position / Crop, flush positionnone / trim / crop-keep / crop, 알파 임계값 추가같은 네 가지 개념. crop-keep은 그림이 제자리에 있도록 피벗을 옮김
Trim mode Polygon, 알고리즘 Polygon—없음: 사각형만
알고리즘 MaxRectsMaxRects의 BSSF·BLSF·BAF·BL·CP와 Skyline·Guillotine. "모두 시도"는 가장 작은 페이지를 선택팩 모드 대신 노력 단계 fast / normal / best
Extrude, Border padding, Shape padding확장 0–32, 테두리 간격 0–64, 모양 간격 0–64(기본 2)뜻은 같음, 단위 픽셀
Allow rotation회전 허용. 엔진 프리셋이 정하고 내보낼 때 강제Godot·Unity·Phaser·LÖVE·XML·CSS에서는 거부
Detect identical sprites별칭(해시 + 바이트 비교), 기본 켬중복 테스트의 닌자 18프레임을 두 도구 모두 6개로 저장
Multipack, 최대 크기, POT 제약, 정사각형 강제최대 64페이지, 8–16384px, POT·정사각형·고정·배수—
배율 변형@0.5x, @1x, @2x, @3x, @4x최근접 이웃만. 부드러운 필터와 Scale2x/Hq2x 없음
텍스처·픽셀 형식(PVR, ETC, ASTC, DXT, Basis, WebP, RGBA4444 …)PNG만. 색이 256개 이하인 페이지는 인덱스 PNGGPU 형식이 필요하면 나중에 변환

이렇게 작동합니다

  • MaxRects(BSSF·BLSF·BAF·BL·CP), Skyline, Guillotine과 최선 탐색. 엔진이 읽을 수 있을 때만 회전.
  • 알파 임계값이 있는 트림·크롭 유지·크롭, 같은 프레임 중복 제거(해시+바이트 확인), 가장자리 확장, 테두리·도형 여백.
  • POT·정사각형·고정·배수 크기, 최대 64페이지, @0.5x~@4x 변형, 사전 곱셈 알파.
  • 실제 CC0 프레임 세트 5개로 CodeAndWeb 무료 웹 패커·GAPTools·free-tex-packer와 비교: 회전을 허용하면 5개 모두 가장 작은 시트, 모든 프레임이 정확.

사용 방법

  1. 프레임(또는 GIF·.aseprite 파일)을 끌어다 놓습니다.
  2. 엔진 프리셋을 고르고 트림·여백·크기를 조정합니다.
  3. 사용률과 프레임 목록을 확인합니다.
  4. 내보냅니다. 대상마다 누르기 전에 검증 방법이 표시됩니다.

다른 방법

방법이럴 때 더 낫습니다
TexturePacker ProPVRTC·ETC2·ASTC·Basis 텍스처가 필요한 모바일·콘솔 빌드, 폴리곤 패킹이 spaceshooter 세트에서 4.5% 줄인 것처럼 각진 모양의 스프라이트 팩, 명령줄과 .tps 파일로 돌리는 빌드 파이프라인, Nerulio에 대상이 없는 엔진(cocos2d, SpriteKit, Unreal Paper2D, MonoGame 등).
TexturePacker의 Godot 가져오기 플러그인이미 TexturePacker에서 퍼블리시하고 있고 바뀔 때마다 Godot가 다시 가져오길 원할 때. CodeAndWeb 설명에 따르면 스프라이트마다 AtlasTexture를, 10fps로 도는 AnimationLibrary를 만들며 SpriteFrames는 만들지 않습니다. TexturePacker를 Godot로에서 비교.
Nerulio 패킹·내보내기무료이고 설치가 없음. 프레임별 길이·피벗·박스가 있는 애니메이션을 Godot, Unity, Phaser, PixiJS, LÖVE, Spine으로 넘겨야 할 때. 내보내기마다 어떤 엔진 실행으로 확인했는지 누르기 전에 보고 싶을 때.
무료 웹 패커와 free-tex-packer무료 패커 비교에서 측정. free-tex-packer의 npm 코어는 빌드 스크립트 안에서 돌릴 수 있지만 Nerulio는 그렇지 못합니다.

엔진별 내보내기와 검증 방법

"검증됨"은 실제 CC0 에셋으로 내보낸 파일을 해당 엔진·도구가 직접 불러와 원본과 비교했다는 뜻입니다. 불러오지 않은 형식은 그렇게 표시합니다.

대상파일검증
Godot 4.tres SpriteFrames · .tscn AnimatedSprite2D · .png.import검증됨 Godot 4.7.2Godot가 불러와 모든 애니메이션 프레임을 그려 원본과 비교했습니다. 씬은 Nearest 필터를 쓰고 회전은 쓰지 않습니다.
Unity 6.unity.json · Editor/NerulioSpriteImporter.cs · AnimationClip검증됨 Unity 6000.5.3f1배치 모드에서 스프라이트 영역·피벗·픽셀·클립 키·길이를 확인했습니다.
Phaser 3 / 4atlas JSON (multiatlas) · .anims.json검증됨 Phaser 3.90 + 4.2두 버전 모두에서 프레임과 애니메이션을 그렸습니다.
PixiJS 8spritesheet JSON · animations · anchor · meta.scale검증됨 PixiJS 8.21회전·여러 페이지 아틀라스도 포함해 확인했습니다.
Aseprite JSONhash / array · frameTags · slices검증됨 Phaser load.aseprite · PixiJS 8.21태그의 방향과 반복 횟수가 유지됩니다.
.asepritelayers · tags · durations · slices검증됨 Aseprite 1.3.18Aseprite 명령줄로 열어 렌더링했습니다.
Spine / libGDX.atlas검증됨 spine-canvas 4.2Spine 런타임이 회전·트림 영역을 모두 그렸습니다. libGDX 자체는 실행하지 않았습니다.
Starling / Sparrow XMLXML per page검증됨 Phaser 4.2Phaser 3.90은 트림된 XML 프레임을 잘못 그립니다(Phaser 버그). "Sparrow XML (Phaser 3)" 프리셋은 트림을 끄며 3.90·4.2 모두 통과합니다.
LÖVELua quads · nerulio_atlas.lua · main.lua검증됨 LÖVE 11.5포함된 헬퍼로 모든 프레임을 그리고 모든 애니메이션을 재생했습니다.
Defold.atlas · .tilesource빌드 확인 Defold bob.jar 1.13.1Defold 명령줄 빌더로 빌드하고 빌드된 텍스처의 UV를 다시 읽어 확인했습니다.
GameMakerspr_<name>_stripN.png · gamemaker.json미검증GameMaker에서 불러오지 않았습니다(헤드리스 실행 불가). 스트립은 GameMaker 스트립 가져오기 방식대로 자릅니다.
CSS sprites.css · preview .html검증됨 Chromium포함된 스타일시트로 모든 클래스를 그렸습니다.
GIF / APNGone file per animation디코딩 확인 Pillow내보낸 뒤 모든 프레임과 지연 시간을 다시 디코딩했습니다. APNG는 원본과 동일합니다.

검증 근거

내보내기: 실제 CC0 에셋으로 실제 엔진에서 49회 실행해 47회 통과. 실패 2회는 Phaser 3.90의 트림 XML 버그이며 Phaser 3 프리셋으로 피합니다. 실제 프레임 세트 5개로 패커 비교(CodeAndWeb 무료 웹 패커, GAPTools, free-tex-packer): 회전 허용 시 5개 모두 가장 작은 시트, 회전 없이는 5개 중 4개. 모든 프레임이 픽셀 단위로 복원됩니다.

TexturePacker Pro와 비교해 Nerulio에 없는 것

  • 폴리곤 패킹이 없고 사각형만 됩니다. TexturePacker 폴리곤 모드는 자체 사각형 패킹보다 spaceshooter 세트에서 4.5% 작았고 캐릭터 세트 4개에서는 15–27% 컸습니다.
  • PNG 페이지만 씁니다. PVRTC, ETC1/2, ASTC, DXT, Basis, KTX, WebP, JPG가 없고, 디더링을 곁들인 RGBA4444·RGB565 같은 줄인 픽셀 형식도 없습니다.
  • 내보내기 대상 17개 대 TexturePacker 데이터 형식 68개. cocos2d, SpriteKit, Unreal Paper2D, MonoGame, Solar2D 출력이 없습니다.
  • 자동 빌드용 명령줄, 스마트 폴더, 프로젝트 파일이 없습니다. 패킹은 브라우저에서 합니다.
  • 배율 변형은 최근접 이웃 방식뿐입니다. 도트 그림에는 맞지만 필터링된 축소가 필요한 부드러운 그림에는 맞지 않습니다.
  • 패킹 속도는 공정하게 비교하지 못했습니다. 브라우저 워커 시간을 같은 다섯 세트로 재지 않았습니다.

한계

  • 폴리곤(메시) 패킹은 제공하지 않습니다. 검증한 엔진 중 내보낸 데이터로 메시 아틀라스를 그리는 엔진이 없기 때문입니다.
  • GameMaker 스트립은 GameMaker 자체에서 검증하지 않았습니다.
  • 배율 변형(@0.5x~@4x)은 최근접 이웃 방식만 씁니다.
  • 트림된 Starling XML은 Phaser 3.90에서 잘못 그려지므로 "Sparrow XML (Phaser 3)" 프리셋을 쓰세요.

버전과 출처

2026-09-25에 TexturePacker 8.3.0(Pro 체험판, 명령줄)과 Studio가 쓰는 것과 같은 모듈로 측정했습니다. 각 도구의 JSON으로 모든 프레임을 복원해 픽셀 단위로 비교했고, 엔진 확인은 Phaser 3.90.0·4.2.1, PixiJS 8.21.0, spine-canvas 4.2.120, Godot 4.7.2에서 했습니다. TexturePacker 설정 이름은 공식 문서를 따릅니다.

참고한 공식 문서

자주 묻는 질문

결과물을 상업적으로 써도 되나요?

네. 라이선스 등급이 없고 워터마크나 색 변경도 없습니다.

폴리곤 패킹도 되나요?

아니요. 검증에 쓴 엔진 중 내보낸 데이터로 메시 아틀라스를 그리는 엔진이 없어 확인할 수 없었으므로 사각형만 지원합니다.

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

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

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

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

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

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