화면에 생명 불어넣기 — 그리고 AI가 AI에게 그림을 시켰다
기능은 다 되는데, 심심하다
3부까지 게임기는 기능적으로 완성됐다. 레버를 당기면 맥주가 차고, 버튼을 치면 블랙잭이 돌아간다. 그런데 화면을 가만히 보고 있으면 뭔가 아쉽다. 정확하게 동작하는 화면과 살아있는 화면은 다르다. 오락실 기계의 절반은 촐싹대는 연출이다.
그래서 하루를 통째로 연출에 썼다.
애니메이션 다섯 종 세트
HMI 화면은 매 프레임 코드가 컨트롤 속성을 바꿀 수 있어서, 엔진 확장 없이 코드만으로 애니메이션이 된다. 다섯 개를 한 번에 넣었다.
- 판정 펀치 — PERFECT가 화면에 그냥 뜨지 않고, 60% 커진 채 등장해서 스르륵 제자리를 찾는다. 종이에 도장 찍는 맛.
- 목표 근접 점멸 — 수위가 목표선 ±5%에 들어오면 목표선이 깜빡이기 시작한다. “지금 놔!” 하는 신호. 손에 땀이 나는 구간이 생겼다.
- 점수 카운트업 — 최종 점수가 0부터 드르륵 올라간다. 끝에서 감속하는 이징까지. 숫자가 구르는 동안은 다들 화면만 본다.
- 거품 — 따르는 동안 수면 위에 크림색 거품층이 부풀고, 잠그면 서서히 가라앉는다. 맥주의 절반은 거품이니까.
- 줄기 분출 — 밸브를 여는 순간 줄기가 꼭지에서 아래로 쭉 뻗고, 따르는 동안 주파수가 다른 사인파 두 개를 섞어 콸콸 넘실댄다. 기계적 반복이 없는 출렁임이다.
전부 “값이 바뀐 프레임에만 대입”하는 기존 성능 원칙 안에서 돌아간다.
술집이 되다
배경도 손봤다. 어두운 나무 판벽, 좌우 선반의 술병들, 천장의 펜던트 램프 세 개, 그리고 화면 하단을 가로지르는 바 카운터. 이제 맥주잔이 허공이 아니라 카운터 위에 올라앉아 있다.

이 배경은 이미지 에디터가 아니라 코드로 그렸다. 판자 폭, 병 배치(시드 고정 랜덤), 조명 글로우, 비네트까지 전부 스크립트 파라미터라 “램프 하나 더” 같은 수정이 코드 한 줄이다.
캐릭터 수난기 — 도형 곰 4대의 몰락
원작 〈Root Bear〉에는 따르는 걸 지켜보는 곰 손님이 있다. 우리도 넣기로 했다. 따르는 양에 따라 표정이 변하는 캐릭터 — 목표에 다가가면 눈을 반짝이고, 넘치면 식은땀을 흘리고, 판정에 웃거나 우는.
문제는 그림이었다. 코드로 도형을 조립해 곰을 그리기 시작했는데…

네 번을 다시 그렸다. 플랫 도형 곰 → 왕눈 코믹 곰 → 전신 곰 → 베지어 곡선 곰. 버전마다 나아지긴 했는데, 평은 한결같았다.
“도형으로만 끼워맞춘 캐릭터잖아.”
맞는 말이었다. 원과 사각형과 곡선을 아무리 정성껏 쌓아도 일러스트는 안 된다. 곰을 접고 바텐더(술집이니까)로 컨셉을 바꿔 SVG로 한 번 더 그렸지만 —

여전히 도형 사람이었다. 코드 드로잉의 한계를 인정할 시간이었다.
AI가 브라우저를 열고, 다른 AI에게 그림을 시켰다
여기서 이 프로젝트에서 제일 이상한 장면이 나온다. 화면을 만들던 AI가 직접 크롬을 열고, Gemini에게 그림을 주문했다.
프롬프트의 핵심은 “같은 캐릭터로 표정 5개를 한 장에 그려줘”였다. 따로따로 생성하면 캐릭터가 매번 달라지는데, 한 장의 스프라이트 시트로 요청하면 일관성이 저절로 보장된다. 생성된 원본을 내려받아 배경을 자동으로 벗겨내고, 다섯 조각으로 잘라 게임에 꽂는 것까지 — 사람이 한 건 “응, 그거 좋네” 한마디였다.

한 장으로 뽑은 바텐더 스프라이트. 왼쪽부터 잔 닦기(대기) · 눈 반짝(목표 근접) · 진땀(넘침) · 엄지척(성공). 실패했을 때의 시무룩한 얼굴은 아래 게임 화면에 나온다.
콧수염 바텐더가 바 카운터 뒤에 상체만 내밀고 서서, 내가 따르는 걸 지켜본다. 목표에 다가가면 눈이 반짝이고(✦), 넘치면 수건으로 진땀을 닦고, 성공하면 엄지를 치켜들고, 망치면 눈물 한 방울과 함께 시무룩해진다.
실제 게임 화면에서는 이렇다. 따르는 동안은 잔을 닦으며 곁눈질하다가 —

BAD가 뜨는 순간, 같이 운다.

도형 곰 네 마리의 명복을 빈다. 너희의 희생으로 워크플로우가 완성됐다.
내친김에 화면 전부
같은 Gemini 대화에서 배경까지 전부 뽑았다. 타이틀은 햇살 드는 라운지 (블러와 크림 베일을 얹어 UI가 앞으로 튀게), 블랙잭은 샹들리에와 슬롯머신 실루엣이 있는 카지노 홀. 세 화면이 각자의 공기를 갖게 됐다.


베팅 화면. 카드가 깔리기 전이라 배경이 그대로 보인다 — 샹들리에, 커튼, 안쪽의 슬롯머신 실루엣. 아래쪽은 펠트 테이블 위다.

판이 시작되면 그 위로 카드가 깔린다. 3부에서 만든 색상 배지(BUST=빨강)도 그대로.
여담 하나. 블랙잭용으로 딜러 캐릭터까지 뽑았었는데 — 날카로운 인상에 팔짱 끼고, 내가 이기면 화들짝 놀라고 지면 씩 웃는 얄미운 친구였다 — 화면에 세워 보니 카드와 자리 싸움이 나서 최종 탈락했다. 생성은 몇 분이라 이런 시도와 폐기가 부담이 없다. 그게 이 워크플로우의 진짜 힘이다.
오늘의 교훈
- 연출은 기능의 장식이 아니라 게임의 절반이다. 같은 로직인데 거품 하나, 점멸 하나에 손맛이 달라진다.
- 도구마다 잘하는 게 다르다. 배경처럼 기하학적인 그림은 코드가 빠르고, 캐릭터처럼 유기적인 그림은 생성 AI가 압도적이다. 네 번 그려보고 나서야 인정했다.
- AI가 AI를 쓰는 건 이제 워크플로우다. 에이전트가 브라우저를 조작해 생성 모델에 외주를 주고, 결과물을 후처리해 제품에 꽂는 파이프라인이 대화 몇 마디로 돌아간다.
다음 편
화면은 살아났으니 이제 실물 차례다. 터치 패널 재배포, 3D 프린트 버튼 케이스 조립, 그리고 ERM 진동 레버 — 손끝의 하드웨어가 이 화면과 만나면 시리즈 완결이다.
▶️ 5부(완결): 떨리는 레버, 두 번의 헛다리 — 그리고 측정이 이겼다
댓글
로그인 없이 이름만 적고 남기실 수 있어요. 남긴 댓글은 바로 게시됩니다.
댓글을 불러오는 중…