그려야 할 아이콘
03 만드는 법
이 문서 안에서
아직 그려지지 않았거나, 그려졌지만 엉뚱한 것을 그리고 있는 그림의 목록입니다. 아이콘이 대부분이라 제목이 그렇게 붙었지만, 임시 그림으로 넘어간 배경(§3)과 연출 스프라이트(§4)도 여기 적습니다. 살아 있는 목록이라 내용이 늘고 줄어듭니다.
1. 이 문서를 쓰는 법
- 그려서 넣었으면 그 줄을 지웁니다. 이 문서에 남아 있다는 것은 아직 안 됐다는 뜻이고, 표가 비면 남은 것이 없다는 뜻입니다. 다 그렸다는 표시를 따로 남기지 마십시오 — 지운 것이 곧 표시입니다.
- 새로 필요해진 그림은 여기에 줄을 추가합니다. 기능을 붙이면서 임시 그림으로 넘어간 것이 있으면, 그 자리에서 이 표에 적어 두는 것이 규칙입니다.
- 파일은 두 곳에 넣어야 합니다. 한쪽만 넣으면 게임에 보이지 않거나 저작 트리에서 사라집니다.
| 어디 | 무엇 |
|---|---|
ui/ | 저작 트리. 작업대가 훑고, 계약 테스트가 스캔합니다 |
public/ | 실제로 서비스되는 곳. / URL이 여기서 나옵니다 |
- 규격: 32×32 PNG · 투명 배경 · 픽셀 아트. 화면에서 14~32px로 축소되어 쓰이므로 얇은 선과 작은 글자는 사라집니다.
- 깨진 이미지는 걱정하지 않아도 됩니다.
tests/assets-contracts.test.ts가 저작 문서에 적힌 모든/ui/…경로가public/에 실재하는지 검사합니다. 이 문서가 다루는 것은 없는 파일이 아니라 내용이 부족한 파일입니다. - 배경과 연출 스프라이트는 규칙이 다릅니다. §3·§4 을 보십시오 — 트리가 하나뿐이고, 32×32 도 아니고, §4 은 투명하기만 한 것이 아니라 회색으로만 그려야 합니다.
2. 그려야 할 아이콘 — 광장 구조물
| 경로 | 무엇이 필요한가 |
|---|---|
bld/ | 개선문(Lv.12 건물). 나머지 열네 장과 화풍이 다릅니다 |
건물이 아트 작업보다 늦게 생겨서 남은 줄입니다. 광장 타일 열네 장은 이미지 모델이 그린 그림을 키링한 것이고(scripts/process_kingdom_icons.py), 이 한 장은 python3 scripts/generate_arch_icon.py 가 코드로 그린 평면 픽셀아트입니다 — 14px 로 줄여도 문이라는 것은 읽히지만, 옆에 놓으면 칠이 다릅니다. 그림에 담긴 것은 건설비 세 줄입니다: 사암 아치(돌), 이맛돌의 수정, 기둥에 박은 엄니.
대신할 그림이 오면 tmp/kingdom-icons-raw/bld_arch_raw.png 로 넣고 저 처리 스크립트의 MANIFEST 에 한 줄을 더한 뒤, scripts/generate_arch_icon.py 와 이 표의 줄을 함께 지우십시오 — §1 의 규칙대로 지운 것이 곧 표시입니다.
3. 그려야 할 배경 — 작업 비네트
주민 상세의 작업 비네트(224×120, 아트와 LPC 캐릭터)는 직군마다 배경 한 장을 깔고 그 위에서 주민이 일합니다. assets/sprites/villager/backgrounds/ 에 18장이 있고, 쓰이는 것은 17장입니다 — 직군 자리 10장(전사는 대장간을 같이 씁니다)과 광산별 7장. 전부 그려진 그림입니다. bg-workshop.png (가구 장인)·bg-thicket.png(사냥꾼) 두 장은 직군이 배경보다 늦게 생겨 한동안 스크립트가 그린 임시 그림이었고, 2026-08-10 이미지 모델이 그린 픽셀아트로 교체되었습니다(원본 assets/raw/generated-ai/, 재현 python3 scripts/process_generated_art.py — vignette 임시 생성기는 git 히스토리에 있습니다).
- 규격: 1536×1024 PNG · 알파 없음 · 픽셀 아트. 그려진 15장이 그 크기이고, 씬이 무엇을 받든 224×120 으로 늘려 그립니다(가로세로비가 맞지 않아 눌리는 것은 15장 전부가 그렇습니다).
- 트리는 한 곳뿐입니다.
public/사본이 없습니다 — 아이콘과 달리 배경은 Vite 가 소스에서 직접 import 합니다(scenes/villager-scene.ts의BG_URL). 4 KiB 를 넘으면 해시 붙은 파일이 됩니다. - 비워 둬야 하는 자리가 있습니다. 배우는 x=88 · 발끝 y=108(가로 39%, 세로 90% 지점)에 서고, 산출물 아이콘이 x=116~148 · y=92~96 에서 튀어나옵니다. 그 자리에 벽이나 기둥을 두면 주민이 가구 뒤에 서 있게 됩니다.
bg-market.png 는 이 표에 없습니다. 그려져 있지만 아무도 쓰지 않는 배경입니다 — 은퇴한 직군(상인)의 자리였고, §5 의 정리 후보에 해당합니다. 지우기 전에 상점 화면이 언젠가 쓸지 판단이 필요해서 남겨 둡니다.
4. 그려야 할 연출 스프라이트 — 행사 잔치
왕국에서 행사를 열면 광장이 3.6초 동안 잔치를 벌입니다(화면 구성 의 왕국, scenes/festival-flourish.ts). 현수막이 왕궁에 내려오고, 만국기가 하늘을 가로지르고, 색종이가 떨어지고, 왕궁 위로 불꽃이 터지고, 주민들이 왕궁을 향해 만세를 부릅니다. 그 그림 네 장은 2026-08-10 이미지 모델이 그린 픽셀아트로 교체되었습니다 — 이 표에서 지워졌다는 것이 곧 교체 표시입니다. 교체 전에는 scripts/generate_festival_art.py(git 히스토리에 있음)가 그린 임시 그림이었습니다.
- 전부 흰색·회색으로 그려야 합니다. 씬이 행사마다 다른 색으로
setTint를 걸어 씁니다 — 로테이션 행사는 금색, 요일 행사는 초록, 명절은 붉은색(data/festival-show.ts의TONES). 만국기 한 줄이 4프레임 시트 하나에서 네 가지 색으로 나오는 것도 그 덕입니다. 색을 넣어 그리면 곱해져서 탁해집니다. 가장 밝은 픽셀이 "씬이 요청한 색 그대로"이고, 중간 회색이 "그 색의 그늘"입니다. - 트리는 한 곳뿐입니다.
public/사본이 없습니다 — §3 의 배경과 같고, 아이콘과 다릅니다. Vite 가 소스에서 직접 import 합니다(scenes/festival-flourish.ts상단). - 원본(그린 스크린 위에 그린 것, 키링 전)은
assets/raw/generated-ai/에, 재현은python3 scripts/process_generated_art.py에 있습니다 — 결정적이라 같은 raw 에서 같은 바이트가 나옵니다. 그린 스크린을 키링하고 회색조로 바꿔 시트를 짜는 스크립트이고, vignette 배경(bg-thicket.png) 도 같은 원본 폴더에서 처리합니다. 임시 그림을 다시 되살리지 마십시오 — 생성기 스크립트(generate_festival_art.py)는 git 히스토리에 있습니다. - 현수막의 medallion 자리는 처리 스크립트(
process_generated_art.py의MEDALLION)와 씬(BANNER_ICON_*) 양쪽에 적혀 있습니다. 자리를 옮기는 그림을 넣으면 두 곳을 같이 옮겨야 합니다.
5. 정리 후보 — 그림 작업이 아님
| 경로 | 왜 |
|---|
비어 있습니다 — 정리할 것이 남지 않았다는 뜻입니다(§1 의 규칙과 같습니다). shop.png 가 여기 있었고, 2026-08-09 에 두 트리에서 지웠습니다: 어디에서도 참조되지 않았고 seal_office.png 와 바이트가 같았습니다(상점 탭은 그쪽을 씁니다).
6. 어떻게 찾았는가
다음 사람을 위해 적어 둡니다. 파일 크기와 색 수는 판별 기준이 못 됩니다. 실제로 확인한 반례가 양쪽으로 있습니다.
| 파일 | 크기 | 색 수 | 실제 |
|---|---|---|---|
settings.png | 195 B | 3 | 제대로 된 톱니바퀴 |
작은 파일이 잘 그려져 있고 큰 파일이 안 그려져 있을 수 있으므로, 마지막 판단은 눈으로 봐야 합니다. 후보를 좁히는 데 쓸 수 있는 것은 세 가지입니다.
1) 왕국 배치의 임시 타일은 기계로 판별됩니다. tooling/kingdom-placeholder-icons.mjs 는 결정적이라, 같은 입력으로 다시 생성해 바이트를 비교하면 아직 임시인 것이 정확히 나옵니다. 지금은 88장 전부가 실제 그림으로 교체되어 일치하는 것은 없습니다.
2) 색 수로 후보를 좁힙니다. 평평한 도형은 색이 열 개를 넘지 않습니다. 그림이 있는데도 색이 적은 파일이 섞이므로 목록을 좁히는 데만 씁니다.
3) 중복을 찾습니다. 같은 그림이 두 이름으로 있으면 한쪽은 자리만 채운 것일 때가 많습니다.
7. 이어서 읽기
- 소리와 에셋 파이프라인 — 아이콘 생성 스크립트와 규격, 광장·왕실 배경을 색으로 칠해 둔 이유
- 아트와 LPC 캐릭터 — 주민 스프라이트 파이프라인과 작업 비네트가 무엇을 재생하는지
- 데이터 파일 규격 — 저작 트리와 계약 테스트