
AI 에셋 생성 워크플로우: 2D 아이템 텍스처와 스킬 아이콘 자동화, 스타일 가이드 고정하기
생성형 AI로 2D 아이템 텍스처와 스킬 아이콘을 만들 때 결과의 일관성을 유지하는 실무형 워크플로우를 정리한다. 프롬프트 템플릿, 검수 기준, Unity 임포트 자동화까지 단계별로 다룬다.
자동화의 목표는 생성 횟수가 아니라 일관성이다
AI 이미지 생성은 빠르지만 그대로 게임 에셋 파이프라인에 넣기에는 변수가 많다. 아이콘마다 광원 방향이 다르거나 외곽선 두께가 달라지면 인벤토리와 스킬 바에서 통일감이 무너진다. 따라서 자동화의 핵심은 이미지를 많이 생성하는 일이 아니라 정해진 규칙 안에서 재생성 가능한 결과를 만드는 일이다.
특히 2D 아이템 텍스처와 스킬 아이콘은 작은 해상도로 표시되는 경우가 많다. 세밀한 묘사보다 실루엣, 명도 대비, 테두리, 배경 분리가 플레이 중 인식성에 더 큰 영향을 준다.
먼저 스타일 가이드를 데이터로 고정한다
스타일 가이드를 문서로만 두면 프롬프트를 작성할 때마다 해석이 달라진다. 생성에 필요한 값을 명시적인 필드로 관리하면 모델이나 생성 도구가 바뀌어도 기준을 유지하기 쉽다.
다음은 아이콘용 스타일 가이드 예시다.
canvas:
width: 512
height: 512
transparent_background: true
visual:
camera: "front three-quarter view"
light_direction: "upper left"
outline: "dark navy, 6px at 512px"
shadow: "soft contact shadow, lower right"
detail_level: "medium"
style: "clean hand-painted fantasy game icon"
constraints:
subject_count: 1
no_text: true
no_frame: true
silhouette_margin: "8 percent"
여기서 중요한 점은 6px처럼 기준 해상도에서 측정 가능한 값을 적는 것이다. 실제 게임에서는 128px 또는 64px로 축소하더라도 원본 기준을 정해 두면 외곽선과 여백을 일관되게 보정할 수 있다.

에셋 정의와 프롬프트를 분리한다
에셋마다 달라지는 내용과 모든 에셋에 공통으로 적용되는 스타일을 한 문장에 섞으면 유지보수가 어렵다. 아이템 데이터는 대상의 의미를 설명하고 스타일 템플릿은 화면 표현을 책임지도록 분리하는 편이 좋다.
{
"id": "item_frost_orb",
"type": "item",
"name": "서리 구슬",
"subject": "a small glass orb containing swirling pale-blue frost",
"palette": ["ice blue", "white", "deep navy"],
"rarity": "rare",
"must_include": ["visible glass rim", "bright frost core"],
"must_exclude": ["character", "letters", "multiple objects"]
}
이 데이터를 템플릿에 끼워 넣어 프롬프트를 만든다. 도구마다 문법과 성능이 다르므로 특정 키워드에 지나치게 의존하기보다 원하는 화면 조건을 반복해서 명시하는 방식이 안정적이다.
Create one game inventory icon.
Subject: {subject}.
Palette: {palette}.
Composition: centered subject, clear silhouette, 8 percent empty margin.
Render style: {style}.
Lighting: {light_direction}.
Outline: {outline}.
Background: transparent or plain neutral background for later removal.
Must include: {must_include}.
Do not include: {must_exclude}.
rare 같은 희귀도는 단순히 프롬프트에 넣기보다 팔레트, 광택 강도, 장식 밀도 같은 규칙으로 변환하는 편이 낫다. 예를 들어 희귀 아이템은 차가운 색의 테두리 광택을 추가하고 전설 아이템은 배경 효과 대신 중심 물체의 대비를 높이는 식이다. UI 아이콘에서는 과한 입자 효과가 오히려 식별을 방해할 수 있다.
생성부터 임포트까지의 흐름
생성 결과는 곧바로 게임에 넣지 말고 후보 생성, 정규화, 검수, 임포트 단계를 둔다. 이 구간을 분리해야 재생성이 필요할 때 원인을 추적할 수 있다.
flowchart LR
A[에셋 정의 JSON] --> B[프롬프트 템플릿 조합]
B --> C[후보 이미지 생성]
C --> D[배경 제거와 캔버스 정규화]
D --> E[축소 검수와 스타일 검사]
E -->|통과| F[PNG 또는 WebP 저장]
E -->|실패| G[실패 사유 기록]
G --> B
F --> H[Unity 임포트 설정]
후보 이미지는 한 번에 여러 장을 생성하되 최종 선택 기준을 미리 정해야 한다. 선택자가 바뀌어도 결과가 크게 흔들리지 않도록 아래 항목을 체크리스트로 관리한다.
- 64px로 축소했을 때 대상의 종류를 구별할 수 있는가
- 광원이 좌상단이라는 규칙을 지키는가
- 외곽선이 끊기거나 배경과 섞이지 않는가
- 텍스트, 워터마크, 의도하지 않은 물체가 없는가
- 기존 같은 등급 에셋과 채도 및 명도 범위가 지나치게 다르지 않은가
스킬 아이콘은 아이템보다 동작과 속성을 전달해야 한다. 불꽃 투사체, 방패, 회복처럼 의미가 다른 아이콘은 중심 형태를 명확히 구분하고 속성 색상은 보조 신호로 사용한다. 예를 들어 화염은 삼각형에 가까운 위쪽 실루엣, 방패는 안정적인 대칭 실루엣처럼 형태 자체로도 구분되게 설계한다.

이미지 정규화 규칙을 자동화한다
도구에서 받은 이미지의 크기와 알파 채널 상태는 제각각일 수 있다. 최소한 다음 작업은 스크립트나 이미지 처리 도구로 고정하는 것이 좋다.
- 투명 배경을 만들거나 배경색을 제거한다.
- 가장자리의 불필요한 투명 여백을 계산한다.
- 대상의 비율을 유지한 채 안전 여백 안에 맞춘다.
- 최종 캔버스를 512×512로 저장한다.
- 128px와 64px 미리보기를 만들어 검수한다.
이 과정에서 원본을 바로 덮어쓰지 않는 것이 중요하다. 생성 원본, 정규화 결과, 게임에 반영한 최종본을 구분하면 스타일 가이드가 바뀌었을 때 일괄 재처리하기 쉽다.
Unity 임포트 설정도 에셋 종류별로 고정한다
아이콘은 대개 UI에서 확대와 축소를 반복하므로 아트 스타일에 맞는 임포트 설정이 필요하다. 손그림 스타일의 부드러운 아이콘은 Bilinear 필터가 자연스럽고 픽셀 아트는 Point 필터와 정수 배율을 유지해야 한다.
다음 AssetPostprocessor는 Assets/Art/Icons 아래 PNG에 기본 설정을 적용하는 예시다.
using UnityEditor;
using UnityEngine;
public class IconImportPostprocessor : AssetPostprocessor
{
void OnPreprocessTexture()
{
if (!assetPath.StartsWith("Assets/Art/Icons/"))
return;
var importer = (TextureImporter)assetImporter;
importer.textureType = TextureImporterType.Sprite;
importer.spriteImportMode = SpriteImportMode.Single;
importer.alphaIsTransparency = true;
importer.mipmapEnabled = false;
importer.filterMode = FilterMode.Bilinear;
importer.wrapMode = TextureWrapMode.Clamp;
importer.textureCompression = TextureImporterCompression.CompressedHQ;
importer.maxTextureSize = 512;
}
}
이 설정은 모든 프로젝트에 정답은 아니다. 아이콘에 반투명 그라데이션이 많다면 압축 결과를 반드시 확인해야 하며 플랫폼별 메모리 예산에 따라 maxTextureSize와 압축 포맷을 조정해야 한다. 또한 아트 팀이 개별 예외를 둘 수 있도록 예외 폴더나 파일명 접두사를 정해 두는 편이 안전하다.
실패 사유를 다음 생성의 입력으로 남긴다
AI 에셋 파이프라인은 한 번 잘 만든 프롬프트보다 실패 기록이 쌓일수록 강해진다. 예를 들어 “중심 물체가 너무 작음”, “파란 외곽선이 배경과 겹침”, “보석처럼 보여서 물약으로 읽히지 않음”처럼 관찰 가능한 문장으로 기록한다.
실패 기록은 다음 생성에서 두 가지로 사용한다. 첫째, 프롬프트 제약을 보강한다. 둘째, 생성 모델의 문제가 아니라 스타일 가이드 자체가 모호한지 검토한다. 재생성을 반복해도 같은 문제가 나오면 “작은 물약” 같은 설명보다 병의 목, 액체 색, 코르크 마개처럼 구별 단서를 구체화해야 할 가능성이 크다.
마무리
AI는 아트 디렉션을 대신 결정하지 않는다. 대신 잘 정의된 스타일 가이드와 에셋 데이터를 바탕으로 후보를 빠르게 넓히고 반복 작업을 줄이는 데 유용하다. 대상 정의, 화면 규칙, 정규화, 축소 검수, 엔진 임포트를 분리해 두면 아이콘 수가 늘어나도 품질 기준을 지키며 운영할 수 있다.


