포스트

[TIL] 2026-06-21 — Project A 기획 통합: 문서 충돌 해소 · 아트 방향 결정

[TIL] 2026-06-21 — Project A 기획 통합: 문서 충돌 해소 · 아트 방향 결정

Ch4 8조 팀 프로젝트 Project A(이삿짐 협동 게임)의 기획 통합 작업을 한 날. 여러 탭으로 흩어져 있던 Reverb 기획안을 하나의 게임 컨셉 문서로 통합하고, 합치는 과정에서 드러난 문서 간 충돌을 정리했다. 코딩보다 문서 정합성 확보·아트 방향 결정이 중심이었다.

오늘 한 일 요약

  1. 흩어진 기획안 8개 탭을 컨셉 문서 한 곳으로 통합 (design/gdd/ch4-game-concept.md)
  2. 통합 과정에서 드러난 문서 간 충돌 3건을 발견 → 임의로 덮지 않고 결정받아 해소
  3. 시안용 이미지 생성 프롬프트 3종 작성 (키아트 / 인게임 목업 / 캐릭터 시트)
  4. 아트 스타일 방향 결정 — 시안은 핸드페인티드, 실제 인게임은 셀셰이드

1. 게임 컨셉 문서 통합

Reverb 기획안의 8개 탭(콘셉트 / 게임 소개·흐름도 / 시스템(가구 운반) / 점수(정산) / 캐릭터 / 캐릭터 선택 / 튜토리얼 / 타이틀 / 역할분담)을 컨셉 문서 한 곳으로 합쳤다.

  • 전체 게임 플로우 정리: 타이틀 → 캐릭터 선택 → (새 게임 시)튜토리얼 → 스테이지 선택 → 인게임 → 결과 정산
  • DT_FurnitureData운반 데이터 + 점수(Score) 컬럼을 통합하고, 역할별 네트워크 분담표를 반영

여러 문서를 합치는 작업은 단순 복붙이 아니었다. 흩어져 있을 때는 안 보이던 탭 간 불일치가 한 화면에 모으니 그대로 드러났다.

2. 문서 간 충돌 3건 — 드러내고 결정받기

기획안을 합치니 탭마다 말이 다른 부분이 나왔다. 가장 위험한 선택은 “조용히 한쪽으로 덮어버리는 것” — 그러면 나중에 팀원과 인식이 어긋난다. 그래서 [결정 필요]로 명시한 뒤, 사용자 결정으로 확정하고 양쪽 문서를 동기화했다.

충돌결정
스코어 모델: StopWatch(시간) vs 내구도→돈($)돈($) 채택, 시간은 결과창 표시 지표. 향후 리썰 컴퍼니식 아이템 상점으로 확장
조작 키: 상호작용 F·앉기 Ctrl vs 잡기 E·던지기 F·앉기 CE / F / C 채택 (캐릭터 기획.md 기준)
스태미나: 에너지 게이지 vs 무제한현재 무제한 (에너지 게이지는 보류, 추후 기획)

3. 시안용 이미지 생성 프롬프트 작성

아트 레퍼런스를 잡기 위해 GPT 이미지 생성 프롬프트 3종을 작성했다.

  • 톤앤매너 키아트 / 플레이 시안(인게임 목업) / 캐릭터 디자인 시트
  • 콩알(bean) 캐릭터(Human: Fall Flat 풍) + 코지 카툰 톤 레퍼런스를 결합
  • 실제 게임 UI(옮긴 가구 카운터 · StopWatch · 돈$)에 맞춰 레퍼런스 UI를 조정

① 톤앤매너 키아트 — 멜빵바지 콩알 캐릭터 + 이삿짐(가구·박스·핸드트럭) 배경으로 게임의 전체 톤을 잡았다.

톤앤매너 키아트 — 멜빵바지 콩알 캐릭터와 이삿짐 배경

② 캐릭터 디자인 시트 — 콩알 캐릭터의 기본 포즈와 박스 운반·이동 등 액션 베리에이션.

캐릭터 디자인 시트 — 콩알 캐릭터 포즈·액션 베리에이션

③ 인게임 플레이 시안 — 탑다운에 가까운 아이소메트릭 시점으로 코지한 집 안에서 소파를 옮기는 핵심 플레이를 목업했다. 들어 올린 가구와 놓을 위치를 발광 하이라이트로 표시.

인게임 플레이 시안 — 코지 카툰 룸에서 소파를 옮기는 콩알 캐릭터

4. 아트 스타일 방향 결정 — 시안과 구현 룩을 분리

핵심 판단은 “컨셉 시안용 그림”과 “실제 인게임에서 낼 룩”을 분리해서 정해야 한다는 것이었다.

  • 시안 뽑기 = 핸드페인티드 — 손그림 동화책 카툰 레퍼런스를 재현
  • 실제 인게임 목표 = 셀셰이드(+로우폴리 형태) — Unreal 실시간 3D로 코지 카툰을 현실적으로 재현하며, 8주 일정에도 맞음
  • 회피한 방향: 픽셀아트(톤 불일치), 스타일라이즈드 PBR·저채도 판타지(너무 사실적)

핸드페인티드 일러스트를 그대로 엔진에서 재현하려는 건 과하다. 셀셰이드로 같은 감성을 현실성 있게 가져가는 쪽이 일정에도 맞다.

오늘 배운 것 정리

  1. 여러 출처 문서를 통합할 때, 충돌은 임의로 덮지 말고 드러내서 결정받자. 합치는 순간 가장 위험한 건 한쪽으로 조용히 덮어 나중에 팀원과 인식이 어긋나는 것. [결정 필요] 명시 → 결정 → 양쪽 문서 동기화 순서가 안전하다.
  2. 로그인 보호 콘텐츠는 자동 fetch가 불가능하다. 외부 기획 링크가 로그인 페이지만 반환해 가져오기에 실패 → .md export 파일을 직접 받아 처리하는 우회가 정답이었다.
  3. 이미지가 임베드된 대용량 .md(4MB)는 전체 읽기 대신 grep으로 텍스트만 추출. 헤더·표·리스트 패턴만 뽑으면 핵심 기획 텍스트를 빠르게 회수할 수 있다.
  4. Unexpected token '<', "<!DOCTYPE "... is not valid JSON 에러의 의미 = JSON이 와야 할 자리에 HTML(로그인·에러·점검 페이지)이 온 것. <는 JSON 문법상 올 수 없는 문자다. 십중팔구 세션 만료로 서버가 로그인 HTML을 돌려준 경우라, 재로그인이 1순위 해결책.
  5. 컨셉 시안(2D)과 실제 구현 룩(실시간 3D)을 분리해서 정해야 한다. 핸드페인티드 일러스트를 그대로 엔진에서 재현하는 건 과함 → 셀셰이드로 같은 감성을 현실성 있게.

다음 할 일 / 이월

  • 확정된 3건을 하위 문서(furniture-carry-system.md 등)·향후 분리 GDD에도 동기화
  • 점수 · 캐릭터 · 튜토리얼 · 캐릭터선택 · 타이틀을 개별 GDD로 분리
  • 스테이지 선택 방식 2안(탑다운 월드맵 vs 이삿짐 센터 허브) 택일
  • /setup-engine — Unreal 버전 핀 고정 + 에셋 접두사 네이밍 등록
  • 시안 이미지 실제 생성(핸드페인티드) → 아트 바이블 초안 착수
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.