DevLikeBeaver

PROJECT NOTE · AI ASSET PIPELINE

AI 이미지를 게임 자산 파이프라인으로.

실제 전투 화면에 들어갈 자산을 빠르게 만들기 위해 AI 생성 이미지를 검수, 원본 보존, WebP 변환까지 이어지는 자산 파이프라인으로 정리했습니다. 핵심은 많은 이미지가 아니라 실제 앱에 반복해서 얹을 수 있는 구조였습니다.

PROBLEM

생성보다 어려운 일은
게임 안에서 계속 같은 톤으로 보이게 하는 것이었습니다.

01

AI 이미지는 곧바로 게임 자산이 아니었습니다.

한 장씩 보면 괜찮아 보여도 전투 화면에 올리면 스타일 차이, 투명 배경 실패, 손가락 오류, 무기 파지 오류가 바로 드러났습니다. 생성보다 화면 기준 검수가 먼저 필요했습니다.

02

그림체 기준이 없으면 적 초상이 흩어집니다.

적 초상은 종류가 늘어날수록 그림체가 갈라졌습니다. 그래서 산속 멧돼지처럼 실제 화면에서 잘 맞은 이미지를 기준으로 삼고, 풀별 변주를 그 기준 안에 묶었습니다.

03

카드는 한 장씩 그리면 규칙이 흔들립니다.

카드마다 따로 생성하면 숫자 위치, 문양 크기, 여백, 코너 인덱스가 조금씩 달라집니다. 그래서 생성형 AI는 원천 파트를 만들고, 반복 규칙은 코드가 합성하게 했습니다.

책사록 실제 전투 화면

DECISION FLOW

모델을 고르고, 기준 이미지를 잠근 뒤,
자산을 확장했습니다.

모델 선택은 생성 품질만 보는 일이 아니었습니다. 탐색 단계에서는 비용을 낮추고, 최종 자산 단계에서는 투명 배경, 스타일 유지, 앱 투입 가능성을 우선했습니다. 기준 이미지를 잠근 뒤 적 초상, 카드 파트, 런타임 파일을 같은 조건으로 확장했습니다.

  1. 01

    저렴한 탐색과 최종 생성을 분리했습니다.

    초기 탐색은 gpt-image-1-mini low로 비용을 낮췄고, 최종 자산은 투명 배경을 안정적으로 다룰 수 있는 gpt-image-1.5 high로 잠갔습니다.

  2. 02

    잘 나온 한 장을 기준 이미지로 삼았습니다.

    산속 멧돼지가 전투 화면 안에서 가장 먼저 톤이 맞았습니다. 이후 적 초상은 더 화려한 그림보다 이 기준을 반복하는 쪽으로 검수했습니다.

  3. 03

    개별 생성보다 규칙을 먼저 고정했습니다.

    카드는 전체 52장을 뽑지 않고 22개 파트를 만든 뒤 합성 로직으로 조립했습니다. 숫자, 문양, 여백, 코너 위치는 코드가 반복했습니다.

책사록 탐색 단계 배경 자산
책사록 기준 이미지 산속 멧돼지
책사록 코드 합성 카드

ENEMY PORTRAITS

산속 멧돼지에서 확인한 화면 톤을 기준으로
적 초상의 그림체를 맞췄습니다.

산속 멧돼지가 가장 먼저 화면에 잘 맞았습니다. 그래서 이후 적 초상은 더 화려한 개별 그림을 찾는 방식이 아니라, 멧돼지에서 확인한 굵은 외곽, 카툰 붓질, 낮은 명암 대비, 중앙 실루엣을 기준으로 같은 전투 화면 안에 묶이도록 만들었습니다.

책사록 산속 멧돼지 적 초상
Style anchor 산속 멧돼지

이 이미지는 단순히 초반 적 하나가 아니었습니다. 실제 전투 UI에 올렸을 때 배경과 카드보다 튀지 않고, 작은 화면에서도 덩어리로 읽혔기 때문에 이후 적 초상을 판단하는 기준점으로 썼습니다.

책사록 회색 늑대 적 초상
SLOT 1 회색 늑대
책사록 산호랑이 적 초상
SLOT 1 산호랑이
책사록 권법 산적 적 초상
POOL 2 권법 산적
책사록 쌍권 무인 적 초상
POOL 5 쌍권 무인
책사록 혈교 호법 적 초상
POOL 7 혈교 호법
책사록 마교 총사령 적 초상
BOSS 마교 총사령

CARD SYSTEM

52장을 따로 만들지 않고
카드 규칙을 코드로 합성했습니다.

카드는 단일 이미지가 아니라 포커 카드처럼 숫자, 문양, 코너 인덱스, 뒤집힌 방향에서도 보이는 정보가 모두 일정해야 합니다.

검 10 카드 도 무극 카드 권 절세 카드 장 7 카드
Frame 1

종이 질감, 모서리, alpha mask는 로컬 PIL 렌더로 고정했습니다.

Back 1

공통 카드 뒷면은 별도 원본으로 관리했습니다.

Suit 4

검·도·권·장 문양은 모든 숫자 카드와 UI에 재사용했습니다.

Ace 4

무극 메달리온은 카드 중앙 장식으로 따로 생성했습니다.

Court 12

J/Q/K 인물은 무공별 자세와 도구 규칙을 다르게 잠갔습니다.

RUNTIME

원본 품질과 앱 로딩 비용을
서로 다른 문제로 다뤘습니다.

적 초상

Source
44 PNG · 127MB
Runtime
44 WebP · 14.9MB

수정 가능한 원본과 앱에서 읽는 축소본을 분리했습니다.

배경

Source
12 PNG · 43MB
Runtime
12 WebP · 5.4MB

전투 화면 크기에 맞춰 미리 줄여 런타임 다운샘플링을 피했습니다.

카드

Source
핵심 파트 22개 + stamp 원본
Runtime
59 WebP · 13.3MB

52장 카드, 뒷면, 히든 카드, 프리뷰 자산을 포함합니다.

UI

Source
10 PNG · 14.6MB
Runtime
29 WebP · 0.58MB

아이콘과 9-slice는 투명도가 중요해 lossless WebP로 처리했습니다.

NOTE

AI 생성 뒤에는
결정론적인 정리 과정이 필요했습니다.

책사록에서는 생성 결과를 그대로 쓰지 않고, 기준 이미지와 head-box 좌표, 카드 합성 규칙, WebP 변환 단계를 분리해 앱에 넣을 수 있는 자산으로 정리했습니다.