오토타일 타일셋 편집기 · Godot·Tiled·Unity 지형 비트
피어링 비트를 손으로 찍는 일을 끝내세요. 시트를 넣으면 Studio가 공개된 12가지 배치 중 무엇인지 인식하고, 모든 조합이 있는지 점검하고, Godot 규칙 그대로 테스트 맵을 칠하고, 엔진에서 불러와 확인한 파일로 내보냅니다.
오토타일 시트는 각 타일이 어느 이웃과 이어지는지 적혀 있기 전까지는 그냥 그림입니다. 고도 엔진은 이것을 지형 피어링 비트, Tiled는 Wang ID, 유니티는 룰 타일의 이웃 규칙으로 저장합니다. 타일 작업실(Nerulio Studio의 타일 작업 공간)은 PNG 시트의 격자를 재고, 타일 사이 이음새를 보고 공개된 배치 12가지 중 어느 것인지 알아낸 뒤 비트를 적고, 빠진 조합을 찾고, 고도나 Tiled 규칙으로 테스트 맵을 칠합니다. 내보낸 파일은 Godot 4.7.2, Tiled 1.12.2, Unity 6000.5.3f1에서 실제로 불러와 칠해 봤고, LDtk 파일은 1.5.3 스키마와 공식 로더로 확인했습니다.

- Godot 4 TileSet검증됨· Godot 4.7.2
- Tiled검증됨· Tiled 1.12.2
- Unity 6 Rule Tile검증됨· Unity 6000.5.3f1 + 2D Tilemap Extras 8.0.3
- LDtk일부 검증· LDtk 1.5.3 schema + loader
픽셀에서 배치를 알아내는 방법과 실패하는 경우
배치란 시트의 칸마다 그 타일이 나타내는 이웃 마스크를 적은 표입니다. 같은 블롭 47장도 서로 호환되지 않는 순서가 적어도 다섯 가지(cr31 오름차순 8×6, wang blob 7×7, caeles, 게임메이커, 고도 3의 12×4 템플릿)나 되고, PNG 안에는 어느 순서인지 적혀 있지 않습니다. 표를 잘못 고르면 모든 타일이 엉뚱한 규칙에 들어갑니다.
그래서 작업 공간은 표마다 그림과 맞는지 시험합니다. 어떤 배치가 "A는 오른쪽이 이어지고 B는 왼쪽이 이어진다"고 하면 A와 B를 붙였을 때 이음새가 보이지 않아야 하고, 한쪽만 이어진다고 하면 끊겨 보여야 합니다. 이웃한 모든 쌍에서 맞닿는 가장자리 픽셀 차이를 재고(양 끝 모서리 구간과 가운데를 따로), "매끄러워야 할 쌍"이 "끊겨야 할 쌍"보다 실제로 더 매끄러울 확률로 점수를 매깁니다. 이것이 ROC AUC이며 1.0은 완벽, 0.5는 픽셀이 아무 정보도 주지 못한다는 뜻입니다. 가장자리 픽셀만 보므로 템플릿에 인쇄된 번호는 영향을 주지 않습니다.
작은 시트에서는 모든 위치에, 칸이 400개를 넘는 시트에서는 그 배치의 블록 격자에만 대 보며, 표본으로 빠르게 한 번 훑은 뒤 위치별 상위 6개만 전체를 다시 잽니다. 신뢰도는 AUC 0.97 이상이고 빈 칸이 없으며 다른 해석보다 0.03 이상 앞설 때 높음, AUC 0.88 이상이고 빈 칸이 하나 이하면 중간, 나머지는 낮음입니다. 적용을 누르기 전에는 아무것도 기록하지 않습니다.
실패하는 곳도 정해져 있습니다. 모든 조각이 똑같아 보이는 이음새 없는 그림(알만툴 A2 바닥은 0.5), 질감이 강한 그림(64px 동굴 세트는 0.964였지만 47장 모두 맞음), 목록에 없는 배치(Tilesetter의 출력 순서는 공개되지 않음), 애초에 오토타일 세트가 아닌 시트입니다. 이럴 때는 비트를 직접 칠하거나 픽셀에서 비트를 제안받아 미리보기로 확인합니다.
- 피어링 비트
- 고도 4에서 타일이 8방향 이웃 자리마다 기대하는 지형. Tiled는 같은 개념을 Wang ID로, 유니티는 룰 타일의 이웃 규칙으로 저장합니다.
- 배치(레이아웃)
- 시트가 타일을 담는 순서. 어느 칸에 어느 이웃 마스크의 타일이 있는지.
- 이음새 AUC
- 배치가 "이어진다"고 한 쌍이 "끊긴다"고 한 쌍보다 가장자리 픽셀 차이가 얼마나 확실히 작은지. 1.0 완벽, 0.5 정보 없음.
- 매칭 모드
- 어느 이웃을 볼지: 모서리와 변(블롭 47), 변만(변 타일 16), 모서리만(모서리·듀얼 그리드 16).
실제 시트에서 나온 인식 결과
2026-09-23 코퍼스 실행(docs/STUDIO-TILE.md). 힌트 없이 픽셀만으로 격자와 배치를 찾았습니다.
시트 인식 결과 신뢰도 이음새 AUC 맞은 비트
GameMaker 47 템플릿 GameMaker 47 높음 1.000 47/47
caeles 템플릿 7×7 caeles 7×7 높음 1.000 49/49
Tiled wangblob 예제 wang blob 7×7 높음 1.000 49/49
동굴 플랫포머 47 (64px 실제 그림) GameMaker 47 중간 0.964 47/47
Wang S-V2 (모서리 템플릿) corner16 cr31 높음 1.000 16/16
coolschool A2 (이음새 없는 바닥) 픽셀로는 알 수 없음 낮음 0.5 크기 힌트 → 조립
Kenney tiny dungeon (오토타일 아님) 낮음, 또는 "시트 일부만 설명함: 타일 N개 중 9개" 경고가 붙은 3×3 박스
내보낸 세트를 Godot 4.7.2로 칠한 결과: 블롭 세트마다 테스트 칸 485개 중 485개가 Studio 예측과 같음.동굴 세트가 전형적인 실제 사례입니다. 바위 질감 때문에 가장자리가 거칠어 AUC가 0.97 아래로 내려가 중간으로 표시되지만 타일은 모두 맞았습니다. 신뢰도는 "얼마나 더 확인할지"로 읽고, 테스트 맵으로 확인하세요.
이렇게 작동합니다
- 이음새 연속성으로 배치 인식: 블롭 47(cr31, wang blob 7×7, caeles, GameMaker, Godot 3 12×4), 변 16, 모서리 16·듀얼 그리드, 3×3 박스, RPG 만들기 A2·A4 소스.
- 비트 도구, 3×3 비트 편집기, 회전·뒤집기, 비트 복사·붙여넣기, 알파 기반 충돌 모양.
- 측정한 뒤에만 "완료"라고 말하는 점검: 빠진 조합은 반투명 타일로, 중복, 그림과 비트의 모순.
- RPG 만들기 A2·A4 또는 2×3 기본 블록으로 블롭 47·듀얼 그리드 세트를 조립하는 생성기.
사용 방법
- 타일셋을 끌어다 놓습니다.
- 제안된 격자를 쓰고 가장 좋은 배치 후보를 적용합니다(Enter).
- 점검 패널을 읽고 빠진 것을 고치거나 생성합니다. 테스트 맵(M)을 칠해 봅니다.
- Godot 4·Tiled·Unity·LDtk로 내보냅니다(Ctrl+E).
내보내기 전에 결과 확인하기
- 점검 패널: 모든 조합에 타일이 있고, 열린 변 뒤에 모서리 비트가 있는 타일이 없고, 그림과 비트 점검을 실제로 재서 문제가 없을 때만 완료라고 표시합니다. "측정 못 함"은 체크 표시가 아니라 그대로 적힙니다.
- 빠진 조합은 마스크와 함께 반투명 타일로 보입니다. 그 타일만 그리거나 타일셋 생성기로 만드세요.
- M을 눌러 시작 섬을 고도 규칙과 Tiled 규칙으로 번갈아 봅니다. 윤곽선이 쳐진 칸은 엔진이 비워 두거나 다른 타일로 대신할 곳입니다(윤곽선의 의미).
- 내보낸 뒤 엔진에서 같은 모양을 칠해 봅니다. 고도 4에서는 함께 온
nerulio_tileset_import.gd를 실행(File › Run)하고, 저장된nerulio-tileset.tres를 TileMapLayer에 지정해 Terrains 탭으로 칠합니다. 자세한 내용은 고도 4 오토타일.
문제 해결
| 증상 | 유력한 원인 | 확인 방법 | 해결 |
|---|---|---|---|
| 첫 배치 후보의 신뢰도가 낮거나 명백히 틀림 | 이음새 없는 그림, 질감이 강한 그림, 또는 알려진 12가지에 없는 배치 | 이음새 AUC와 "시트 일부만 설명함" 경고를 읽기 | 비트 도구(B)로 직접 칠하거나, 가득 찬 타일을 고른 뒤 픽셀에서 비트 제안을 받아 미리보기를 적용 |
| 후보 타일 크기가 실제의 두 배나 절반 | 실제 타일의 배수도 같은 경계를 설명함(16×16 타일 여덟 장으로 된 64×32 칸) | 점선 격자가 그려진 타일을 가로지르거나, 열×행이 8×6·7×7·4×4·12×4가 아님 | 배치와 열×행이 맞는 후보를 고르거나 타일 크기를 직접 입력 |
| 점검에 "열린 변 뒤의 모서리 비트"가 뜸 | 두 변 중 하나가 열린 모서리에 비트를 칠함. 어떤 맵도 그 타일을 쓰지 않음 | 목록의 타일을 누르면 3×3 비트 편집기에 모서리와 열린 변이 보임 | 모서리 비트를 지우거나 변을 이음. 각각 한 번 클릭, 되돌리기 한 단계 |
| 그림 점검이 정확히 타일 두 장을 지적함 | 배치와 비교해 시트에서 두 타일이 뒤바뀜 | 그림 점검이 두 타일의 위치를 알려 줌. 각 타일의 그려진 테두리가 자기 비트와 어긋남 | 비트를 서로 바꾸거나(비트 복사·붙여넣기) 시트 순서를 고쳐 다시 가져오기 |
| 알만툴 시트에서 배치가 하나도 안 나옴 | A2·A4 시트는 타일이 아니라 타일을 조립할 조각을 담음. 이음새 없는 바닥은 0.5 | 크기 힌트가 뜸(예: 768×576 = 48px 알만툴 A2) | "이 블록으로 조립"을 사용. 알만툴 오토타일을 고도로 참고 |
다른 방법
| 방법 | 이럴 때 더 낫습니다 |
|---|---|
| 고도 자체 TileSet 편집기에서 Select 모드로 타일을 골라 Terrain Peering Bits를 손으로 설정 | 나만 쓰는 특이한 배치의 작은 세트일 때. 설치할 것이 없고 고도의 화면을 익히는 데도 좋습니다. |
| Tiled의 지형 세트 편집기 | 레벨을 Tiled에서 만들고 어차피 거기서 Wang 색을 표시할 때. 내보내기가 무엇을 쓰는지는 Tiled Wang 세트에 있습니다. |
| LDtk 오토 레이어 규칙 | 레벨을 LDtk에서 만들고, 타일별 비트보다 IntGrid 레이어에 거는 규칙 편집기가 편할 때. LDtk 오토타일 규칙 참고. |
| Blobsmith 같은 기본 블록 생성기, 또는 Nerulio 생성기 | 아직 47장을 그리지 않았을 때. 2×3 기본 블록만 그리고 나머지는 조립합니다(타일셋 생성기). |
엔진별 내보내기와 검증 방법
"검증됨"은 실제 CC0 에셋으로 내보낸 파일을 해당 엔진·도구가 직접 불러와 원본과 비교했다는 뜻입니다. 불러오지 않은 형식은 그렇게 표시합니다.
| 대상 | 파일 | 검증 |
|---|---|---|
| Godot 4 TileSet | PNG · nerulio-tileset.json · nerulio_tileset_import.gd | 검증됨 Godot 4.7.2포함된 가져오기 스크립트가 지형 피어링 비트가 설정된 TileSet을 만듭니다. set_cells_terrain_connect로 칠한 맵이 9개 코퍼스 시트의 모든 칸에서 Studio 미리보기와 같았습니다. |
| Tiled | .tsx Wang set · sample.tmx | 검증됨 Tiled 1.12.2Tiled 자체 읽기 기능이 모든 Wang ID를 그대로 읽고 샘플 맵이 픽셀 단위로 동일하게 렌더링됩니다. 지형 브러시 자체는 실행하지 않았습니다. |
| Unity 6 Rule Tile | nerulio-ruletile.json · Editor/NerulioRuleTileImporter.cs | 검증됨 Unity 6000.5.3f1 + 2D Tilemap Extras 8.0.3블롭·변 타일셋: 칠한 Tilemap의 모든 칸이 예측한 스프라이트와 같습니다. 모서리/듀얼 그리드 타일셋은 Unity로 내보내지 않습니다. |
| LDtk | .ldtk (1.5.3) · rules · sample level | 일부 검증 LDtk 1.5.3 schema + loaderLDtk JSON 스키마와 공식 로더가 받아들이고 규칙을 다시 실행하면 내보낸 타일과 같습니다. LDtk 앱에서 열어 보지는 않았습니다. |
검증 근거
타일 코퍼스에서 픽셀만으로 배치를 인식: 블롭 47 템플릿 4개와 Wang 템플릿 2개는 높은 신뢰도, 실제 64px 동굴 타일셋은 중간 신뢰도로 모든 타일의 비트가 정확. Godot 4.7.2가 모든 테스트 칸을 Studio 예측대로 칠함(블롭 세트마다 485/485, 지형 4개 듀얼 그리드 팩 251/251). Tiled 1.12.2가 모든 Wang ID를 다시 읽음. Unity 6000.5에서 블롭·변 세트의 칠한 모든 칸 일치.
한계
- 아이소메트릭·육각 타일, 애니메이션 타일, 대체 타일, 차폐·내비게이션 레이어는 다루지 않습니다.
- Tiled의 지형 브러시, LDtk 앱, 고도 편집기의 칠하기 도구를 직접 조작하지는 않았습니다. 점검은 파일 읽기 도구와
set_cells_terrain_connect로 했습니다. - 세 가지 이상의 지형이 한 점에서 만나는 규칙은 그림이 갖춘 만큼만 완성됩니다.
- Tiled 지형 브러시, LDtk 앱, Godot 편집기의 칠하기는 실행하지 않았습니다. 검증은 엔진의 읽기 기능과 set_cells_terrain_connect로 했습니다.
- Unity로는 블롭·변 타일셋만 내보냅니다. 지형이 여러 개면 서로 이어지지 않는 Rule Tile 여러 개가 됩니다.
- 아이소메트릭·육각 타일, 애니메이션 타일, 오클루전·내비게이션 레이어는 지원하지 않습니다.
- 알려진 배치 없이 비트를 제안하려면 기준이 되는 "가득 찬" 타일이 필요합니다. 변만 있는 길 템플릿은 그 타일을 선택하기 전까지 추측이 틀릴 수 있습니다.
버전과 출처
Nerulio 검증(docs/STUDIO-TILE.md, 2026-09-23, Windows 11): Godot 4.7.2.stable.official가 함께 온 가져오기 스크립트로 TileSet을 만들고 코퍼스의 모든 맵을 Studio 예측과 똑같이 칠했습니다. Tiled 1.12.2는 모든 Wang ID를 쓴 그대로 읽었고, Unity 6000.5.3f1 + 2D Tilemap Extras 8.0.3은 룰 타일을 만들어 모든 칸이 일치했습니다. LDtk는 1.5.3 JSON 스키마와 공식 로더로만 확인했습니다. 위의 엔진 개념은 링크한 공식 문서를 따릅니다.
참고한 공식 문서
기존 도구
심리스 텍스처 점검, 완성된 타일셋의 가장자리 확장, 타일 PNG ZIP은 아직 기존 타일 작업실에 있습니다.
기존 도구 열기 →자주 묻는 질문
알려진 배치가 아닌 시트도 쓸 수 있나요?
네. 비트 도구로 직접 칠하거나, Studio가 픽셀에서 비트를 제안하게 한 뒤(미리보기) 받아들이면 됩니다.
Godot 내보내기에 지형 피어링 비트가 들어가나요?
네. 포함된 가져오기 스크립트가 모든 타일의 지형 피어링 비트가 설정된 TileSet을 만들며, 그 결과를 Godot 4.7.2에서 칠해 확인했습니다.
무료인가요? 계정이 필요한가요?
이 페이지의 기능은 모두 무료이며 계정 없이 쓸 수 있습니다. 워터마크나 막혀 있는 내보내기가 없습니다.
스프라이트가 업로드되나요?
아니요. Studio는 이 브라우저 탭 안에서 디코딩·패킹·내보내기를 합니다. 프로젝트는 브라우저(IndexedDB)에 자동 저장되며 .nerulio 파일로 저장할 수 있습니다.
Aseprite나 엔진 플러그인을 설치해야 하나요?
아니요. .aseprite 파일은 브라우저에서 읽고 씁니다. 엔진별 번들에는 그 엔진에 필요한 것이 들어 있습니다(Godot는 가져오기 설정과 씬, Unity와 Godot 타일셋은 작은 편집기 스크립트).