← Lab 목록

TOOL / WINDOWS

Text Atlas Exporter

고정 문장을 투명 PNG 아틀라스와 UV 정보를 담은 JSON으로 내보내는 Windows 개발 도구.

PowerShellWinFormsPythonPillowTexture Atlas

고정 문장을 게임 UI 텍스처로

메뉴나 안내 문구처럼 미리 정해진 문장을 이미지로 만들어 게임에서 사용할 수 있습니다. WinForms GUI에서 글꼴과 문장을 편집하고 Python·Pillow로 아틀라스를 생성합니다. 문장 ID를 유지하면 텍스트를 수정하거나 번역한 뒤에도 같은 ID로 결과를 찾을 수 있습니다.

DirectX 12 프로젝트에서 텍스트를 표시하기 위해 만든 도구입니다. 출력물은 PNG와 JSON이므로 다른 엔진이나 그래픽스 API에서도 활용할 수 있습니다. 사용하는 환경에 맞게 JSON을 읽고 UV 좌표와 알파 블렌딩 설정을 적용하면 됩니다.

주요 기능

문장 편집과 관리

ID와 문장을 표에서 편집하고 TXT·JSON으로 가져오거나 내보냅니다. 여러 줄 문장과 프로젝트 저장·불러오기를 지원합니다.

아틀라스 배치

글자에 맞춘 영역 또는 고정 크기 영역을 선택하고, 정렬과 패딩을 설정합니다. 페이지 높이를 넘으면 여러 텍스처로 분할합니다.

미리보기와 검사

중복 ID, 잘못된 값, 영역을 벗어나는 글자 등을 생성 전에 검사하고 페이지별 결과를 미리 확인합니다.

렌더링 옵션

Straight·Premultiplied Alpha, 1~4배 품질 배율, 개별 문장 PNG와 PNG 밉맵 체인 출력을 지원합니다.

실행 방법

Windows와 Python 3.10 이상이 필요합니다. python 명령으로 Python을 실행할 수 있어야 하며, 최초 Pillow 설치에는 인터넷 연결이 필요합니다. 저장소를 내려받아 로컬에서 실행하는 도구입니다.

  1. 저장소의 run.bat을 실행합니다. 처음 실행하면 Pillow 의존성을 설치합니다.
  2. 폰트와 출력 폴더를 선택하고 표에 ID와 문장을 입력합니다.
  3. 미리보기 + 검사로 페이지와 입력 오류를 확인합니다.
  4. PNG + JSON 생성으로 결과를 저장합니다.

출력과 게임 연동

  • atlas_N.png: 투명 RGBA8 텍스처 페이지
  • atlas.json: 문장 ID별 페이지 번호, UV, 논리 크기와 렌더링 설정
  • sprites/ID.png: 개별 문장 PNG 옵션을 켰을 때 생성되는 이미지

게임에서는 ID로 문장 정보를 찾고, texture_index의 텍스처와 좌측 상단을 원점으로 하는 UV를 사용해 사각형을 그립니다. 품질 배율을 높여도 화면상의 크기는 logical_widthlogical_height로 유지할 수 있습니다. 블렌드 설정은 선택한 알파 방식에 맞춰 적용합니다.

저장소의 PNG·JSON 출력 예제 보기 ↗

구현 구성

PowerShell GUI, GUI가 호출하는 Python CLI, 검사·배치·이미지 생성을 담당하는 생성 엔진으로 구성됩니다. 소스 코드와 문서는 MIT 라이선스이며, 기본 제공 폰트에는 각각 SIL Open Font License 1.1이 적용됩니다.

기능과 실행 조건은 공개 저장소 README를 기준으로 정리했습니다.