집사 3종 — 게임스튜디오 파이프라인 (스토리·디자인·기술)
작성: 2026-06-29 · 위치: /Users/ef/CrownyOS/스튜디오/
개요
게임회사 모델을 차용해 CrownyOS 게임/마을 세계를 체계적으로 확장하는 3집사 파이프라인을 신설했다. 책을 쓰듯 스토리를 구체화(스토리집사) → 게임회사 공정으로 디자인(디자인집사) → 4모드 예산으로 최적구현(기술집사). 각 단계는 PSV 파일로 핸드오프한다.파이프라인
스토리바이블 → [스토리집사] → data/자산요청.psv
→ [디자인집사] → data/자산레지스트리.psv
→ [기술집사] → data/최적화계획.psv → village.js/sw.js 반영
1. 스토리집사 (1단계)
- 책 쓰듯 캐릭터 6요소(이름·성격·배경·외형·목소리·역할)+장소+소품 구체화 → 디자인팀이 "디자인만" 하면 되는 자산요청서.
- 완성도 게이트: 6요소 미달 캐릭터 차단(미달 0이어야 통과).
- 4모드 깊이(book.crowny.org 차용): 어린이=한문장쉬운말 … 고용량=다문단 깊은서사.
- 엔진:
스토리집사.한선· 스킬:~/.claude/skills/스토리집사/
2. 디자인집사 (2단계)
- 게임회사 4공정: 컨셉 → 2D 모델시트 → 블렌더 3D → 승인.
- 2D 캐릭터 + 블렌더 3D(OBJ/STL) + 캐릭터 확정 + 건물·소품.
- 정본=한선씨 파츠스키마(라이온27·인간9·주민·펫). 3D 수출:
캐릭터내보내기.한선모델OBJ/STL스트림. - 블렌더 역임포트(.blend→JSON)는 미구현 — 로드맵 P2.
- 엔진:
디자인집사.한선· 스킬:~/.claude/skills/디자인집사/
3. 기술집사 (3단계)
- 디자인 확정물을 4모드 예산으로 최적구현·고도화.
- 예산: 어린이(파츠20/렌더8) · 저용량(15/6) · 일반(31/14) · 고용량(무제한/27+).
- 레버: 뒷면컬링·근접 LOD·모드별 SW 프리캐시 분리·핫패스 WASM.
- 엔진:
기술집사.한선· 스킬:~/.claude/skills/기술집사/
실행
bashcd /Users/ef/CrownyOS/스튜디오
bash 파이프라인.sh all # 또는 story|design|tech
검증: 3집사 전부 컴파일 OK, end-to-end 실행 — 캐릭터3·건물2·소품1 → 모드축소필요 3건(레오/미라/오우는 31파츠라 어린이20·저용량15로 LOD).관련 파일
스튜디오/스토리집사.한선·디자인집사.한선·기술집사.한선·파이프라인.sh스튜디오/data/{자산요청,자산레지스트리,최적화계획}.psv~/.claude/skills/{스토리,디자인,기술}집사/SKILL.md- 정본 모델:
os-site/{라이온27,인간9,주민,펫,사자27}.한선
잔여 이슈 / 로드맵
- P0: village.html에 4모드 게이트 실제 적용(현재 게임 본체 미적용).
- P1: NPC 대사·퀘스트 4모드 텍스트(3layer), 모드별 SW 프리캐시 분리.
- P2: 블렌더 역임포트 변환기, 실시간 모델 에디터, 사자27 파라메트릭 UI, 장면3D.한선→village.html 자동빌드.
- 다음 큰 단계(사용자 지시): 세계·4모드 완료 후 → crownysolution.com 전체 패키지 "더블" 제작 + 가상서버 호스팅으로 경험축적. (crowny-solution:9735, crowny-bookagent:9931 이미 라이브)
한선씨 함정 (학습됨)
;는 문장 구분자 — 트레일링 코멘트 금지, 줄 첫글자;만 코멘트. 문자열에 PSV 구분자|금지.
추가: P0 마을 4모드 게이트 구현 완료 (2026-07-01)
기술집사 프로토콜로 village.js/village.html에 4모드 에셋 예산 게이트 실장·배포.MODES(어린이 파츠20/거주민8/인간4 · 저용량 15/6/3 · 일반 ∞/14/9 · 고용량 ∞/27/9) +localStorage crowny.mode.modeCfg()·lodParts(): 거주민/배경 캐릭터만 파츠 LOD 컷(주인공·히어로 인간은 풀파츠).drawResidents렌더 상한 = modeCfg().residents,drawCharacter(opts.lod)= 파츠컷,drawPeople인간 상한.- 독 버튼
🎚️ 모드(village.html) → 4모드 순환·즉시 렌더 반영·토스트. - 검증(헤드리스 fill/3프레임): 저용량 2651 < 어린이 3245 < 일반 4176 ≈ 고용량 4122 → 저용량이 일반 대비 37% 경량. (일반≈고용량은 현재 맵이 작아 반경내 거주민 ≤14, 세계 확장 시 고용량이 상회)
- 배포: SW
crownyos-v3-0701-1002범프 + cowork 동기화 완료. - 잔여: P1 NPC 대사 4모드 텍스트, 모드별 SW 프리캐시 분리.
추가: P1 대사 4모드 + SW 티어 프리캐시 (2026-07-02)
- NPC 대사 4모드: village.js
modeLines(base,modes)=modes[MODE]||base. DIALOGUE 5 NPC(토리/하나/바우/리나/모모)에 어린이(짧고 쉬움)·고용량(깊은 서사) 변형 작성, 저용량=일반=기본. 라이온 거주민은c.linesModes훅 준비(대량 27종은 haiku 글밥 후속). - 모드별 SW 프리캐시 분리: sw.js를 CORE(설치시 항상, 마을필수+7폰트 24개) + EXTRA_PAGES/EXTRA_FONTS(93)/KID_FONTS로 분리.
message{type:'precache-tier',tier}low(저용량=CORE만)/kid(어린이=+귀염폰트)/full(일반·고용량=전체). village.jspostSwTier()가 MODE→tier 통지(로드+모드변경 시). 설치 폰트 100→7개로 저사양 초기부하 대폭↓. - 배포: SW
crownyos-v3-0702-2147+ cowork 동기화. 검증: village.js/sw.jsnode --checkOK, DIALOGUE 5/5 4모드 보유, modeLines 계층 선택 확인. - 잔여(후속): 27 라이온 + 9 인간 4모드 대사 대량 작성(haiku 글밥, 정본 사자27.한선/인간9.한선).
추가: 27라이온+9인간 4모드 대사 + P2 도구 3종 (2026-07-09)
대사 글밥 (haiku Workflow 4배치, 110k토큰)
- 27 라이온 전원 어린이·고용량 대사 →
사자27.한선어린이대사들/고용량대사들배열 + emitlinesModes. 재컴파일 → raion27roster.js. - 9 인간(티옴타) base·어린이·고용량 →
인간9.한선각 인물 inlinelines/modes. village.jspersonTalk이modeLines(p.lines,p.modes)사용, PEOPLE에 lines/modes 전달. 재컴파일 → human9.js. - 검증: 라이온 27/27, 인간 9/9 4모드 보유(에덴고 6은 fallback). 함정: kid/high
|결합 전에 각 줄 clean(스토리집사 규칙).
P2 도구 (스튜디오/)
- 블렌더가져오기.한선: 블렌더 OBJ → 파츠 JSON 역임포트(o그룹 정점 bbox). raion27.obj 32파츠 복원 검증. 단방향 수출의 역방향 확보(블렌더 라운드트립).
- 장면3D.한선 + 씬빌드.sh: 마을 씬 정본(물체47·액터14) → scene.json → village.html
window.SCENE정규식 자동주입(수동복붙 병목 제거). 라운드트립 무결(objects/actors/camera 동일) 검증. - 캐릭터에디터.html: WYSIWYG 실시간 모델 에디터 — 오빗+뒷면컬링 3D 프리뷰, RAION27ROSTER/HUMAN9 로드, 파츠 추가/복제/삭제/이동/색,
파츠()한선씨 + JSON 내보내기. SW EXTRA_PAGES 등록. - 배포: SW
crownyos-v3-0709-1101+ cowork 동기화. - 한선씨 동반 주: 에디터/sw는 브라우저 네이티브(Canvas/SW API) — 정본은 데이터 파이프라인(라이온27/인간9/사자27/장면3D.한선), 에디터 내보내기가 파츠()한선씨로 회귀.