[TIL] 2026-06-21 — Project A 기획 통합: 문서 충돌 해소 · 아트 방향 결정
Ch4 8조 팀 프로젝트 Project A(이삿짐 협동 게임)의 기획 통합 작업을 한 날. 여러 탭으로 흩어져 있던 Reverb 기획안을 하나의 게임 컨셉 문서로 통합하고, 합치는 과정에서 드러난 문서 간 충돌을 정리했다. 코딩보다 문서 정합성 확보·아트 방향 결정이 중심이었다.
오늘 한 일 요약
- 흩어진 기획안 8개 탭을 컨셉 문서 한 곳으로 통합 (
design/gdd/ch4-game-concept.md) - 통합 과정에서 드러난 문서 간 충돌 3건을 발견 → 임의로 덮지 않고 결정받아 해소
- 시안용 이미지 생성 프롬프트 3종 작성 (키아트 / 인게임 목업 / 캐릭터 시트)
- 아트 스타일 방향 결정 — 시안은 핸드페인티드, 실제 인게임은 셀셰이드
1. 게임 컨셉 문서 통합
Reverb 기획안의 8개 탭(콘셉트 / 게임 소개·흐름도 / 시스템(가구 운반) / 점수(정산) / 캐릭터 / 캐릭터 선택 / 튜토리얼 / 타이틀 / 역할분담)을 컨셉 문서 한 곳으로 합쳤다.
- 전체 게임 플로우 정리: 타이틀 → 캐릭터 선택 → (새 게임 시)튜토리얼 → 스테이지 선택 → 인게임 → 결과 정산
DT_FurnitureData에 운반 데이터 + 점수(Score) 컬럼을 통합하고, 역할별 네트워크 분담표를 반영
여러 문서를 합치는 작업은 단순 복붙이 아니었다. 흩어져 있을 때는 안 보이던 탭 간 불일치가 한 화면에 모으니 그대로 드러났다.
2. 문서 간 충돌 3건 — 드러내고 결정받기
기획안을 합치니 탭마다 말이 다른 부분이 나왔다. 가장 위험한 선택은 “조용히 한쪽으로 덮어버리는 것” — 그러면 나중에 팀원과 인식이 어긋난다. 그래서 [결정 필요]로 명시한 뒤, 사용자 결정으로 확정하고 양쪽 문서를 동기화했다.
| 충돌 | 결정 |
|---|---|
| 스코어 모델: StopWatch(시간) vs 내구도→돈($) | 돈($) 채택, 시간은 결과창 표시 지표. 향후 리썰 컴퍼니식 아이템 상점으로 확장 |
| 조작 키: 상호작용 F·앉기 Ctrl vs 잡기 E·던지기 F·앉기 C | E / F / C 채택 (캐릭터 기획.md 기준) |
| 스태미나: 에너지 게이지 vs 무제한 | 현재 무제한 (에너지 게이지는 보류, 추후 기획) |
3. 시안용 이미지 생성 프롬프트 작성
아트 레퍼런스를 잡기 위해 GPT 이미지 생성 프롬프트 3종을 작성했다.
- 톤앤매너 키아트 / 플레이 시안(인게임 목업) / 캐릭터 디자인 시트
- 콩알(bean) 캐릭터(Human: Fall Flat 풍) + 코지 카툰 톤 레퍼런스를 결합
- 실제 게임 UI(옮긴 가구 카운터 · StopWatch · 돈$)에 맞춰 레퍼런스 UI를 조정
① 톤앤매너 키아트 — 멜빵바지 콩알 캐릭터 + 이삿짐(가구·박스·핸드트럭) 배경으로 게임의 전체 톤을 잡았다.
② 캐릭터 디자인 시트 — 콩알 캐릭터의 기본 포즈와 박스 운반·이동 등 액션 베리에이션.
③ 인게임 플레이 시안 — 탑다운에 가까운 아이소메트릭 시점으로 코지한 집 안에서 소파를 옮기는 핵심 플레이를 목업했다. 들어 올린 가구와 놓을 위치를 발광 하이라이트로 표시.
4. 아트 스타일 방향 결정 — 시안과 구현 룩을 분리
핵심 판단은 “컨셉 시안용 그림”과 “실제 인게임에서 낼 룩”을 분리해서 정해야 한다는 것이었다.
- 시안 뽑기 = 핸드페인티드 — 손그림 동화책 카툰 레퍼런스를 재현
- 실제 인게임 목표 = 셀셰이드(+로우폴리 형태) — Unreal 실시간 3D로 코지 카툰을 현실적으로 재현하며, 8주 일정에도 맞음
- 회피한 방향: 픽셀아트(톤 불일치), 스타일라이즈드 PBR·저채도 판타지(너무 사실적)
핸드페인티드 일러스트를 그대로 엔진에서 재현하려는 건 과하다. 셀셰이드로 같은 감성을 현실성 있게 가져가는 쪽이 일정에도 맞다.
오늘 배운 것 정리
- 여러 출처 문서를 통합할 때, 충돌은 임의로 덮지 말고 드러내서 결정받자. 합치는 순간 가장 위험한 건 한쪽으로 조용히 덮어 나중에 팀원과 인식이 어긋나는 것.
[결정 필요]명시 → 결정 → 양쪽 문서 동기화 순서가 안전하다. - 로그인 보호 콘텐츠는 자동 fetch가 불가능하다. 외부 기획 링크가 로그인 페이지만 반환해 가져오기에 실패 →
.mdexport 파일을 직접 받아 처리하는 우회가 정답이었다. - 이미지가 임베드된 대용량
.md(4MB)는 전체 읽기 대신 grep으로 텍스트만 추출. 헤더·표·리스트 패턴만 뽑으면 핵심 기획 텍스트를 빠르게 회수할 수 있다. Unexpected token '<', "<!DOCTYPE "... is not valid JSON에러의 의미 = JSON이 와야 할 자리에 HTML(로그인·에러·점검 페이지)이 온 것.<는 JSON 문법상 올 수 없는 문자다. 십중팔구 세션 만료로 서버가 로그인 HTML을 돌려준 경우라, 재로그인이 1순위 해결책.- 컨셉 시안(2D)과 실제 구현 룩(실시간 3D)을 분리해서 정해야 한다. 핸드페인티드 일러스트를 그대로 엔진에서 재현하는 건 과함 → 셀셰이드로 같은 감성을 현실성 있게.
다음 할 일 / 이월
- 확정된 3건을 하위 문서(
furniture-carry-system.md등)·향후 분리 GDD에도 동기화 - 점수 · 캐릭터 · 튜토리얼 · 캐릭터선택 · 타이틀을 개별 GDD로 분리
- 스테이지 선택 방식 2안(탑다운 월드맵 vs 이삿짐 센터 허브) 택일
/setup-engine— Unreal 버전 핀 고정 + 에셋 접두사 네이밍 등록- 시안 이미지 실제 생성(핸드페인티드) → 아트 바이블 초안 착수


