Files
Dansori_Characters/HANDOFF.md
T
2026-07-04 10:34:46 +09:00

88 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
> ⚠️ **아카이브** (소스 자산 생성 시기 기록, 이동된 소스 폴더 참조 포함). **현재 베이스 = `INTERACTIVE_RIG_HANDOFF.md` + `*_Profile/` + `README.md`.**
# HANDOFF — Dansori 캐릭터 자산 & Character Builder (세션 인수인계)
> 작성: 2026-07-02 (같은 날 저녁 갱신). 다른 세션에서 이어서 진행하기 위한 요약.
> **최신**: NewImage 88장을 각 `Images/`로 **이동 완료** · `Characters`/`Characters.Old` **삭제 예정** · 이미지 생성 계속 후 **내일(2026-07-03) 이어서**.
> 이 문서 = **캐릭터 자산 시스템(`Characters_Build_Docs`) + 조합 앱(`Character_Builder`)** 진행/계획.
> DansoriEQ **본체 앱 UI** 작업(메인화면 캐릭터 배치·전 창 네온·부유 동기화 등)은 `../docs/HANDOFF.md §8` 참조.
---
## 0. 한 줄 요약
Dansori 브랜드 마스코트(이소리·이단·듀오)를 **페이퍼돌 조립 방식**으로 관리하는 자산 체계와,
이를 **직접 보고 조합/저장(.md)** 하는 WPF 앱을 구축했다. **이미지 대량 생성은 진행 중**이며,
빌더 테스트는 **이미지가 충분히 생성된 뒤** 진행 예정.
## 1. 자산 시스템 구조 (`Characters_Build_Docs/`)
```
README.md # 브랜드 자산 규칙 + "새 캐릭터 추가 Playbook"(STEP 1~7) ← 단일 진실원
HANDOFF.md # (이 문서)
LeeSori/ # 이소리(민트/여)
LeeSori.md # 토대(정체성·조립규칙·네이밍·§8 새 베리에이션 절차·23 표준 바디 목록)
USAGE_FOR_DEV.md # 앱 통합 가이드(캐릭터 공통) — 조립/앵커/포터블 규칙
Reference/sori_sheet.png
Base/Base.md (+Images/) # 트랙슈트 헤드리스 바디: 파츠5 + 제스처18 = 23블록
Hair/Hair.md (+Images/) # 4모양(short/long/waveS/waveL) 개별블록 88 (머리+표정20+hairmask ×4)
Hair/Hair_{Long,Short,WaveS,WaveL}Neat.md # 단정·윤기 추가본 각 22 → 헤어 토큰 총 8종(원본4 + neat4)
Accessories/Accessories.md (+Images/) # 오버레이 11(착용7+소품4)
Variations/{DressShort,DressLong,Jeans,Tshirt,CeoPantsuit}/*.md (+Images/) # 각 23블록
LeeDan/ # 이단(시안/남) — LeeSori와 동일 구조
LeeDan.md · Reference/dan_sheet.png
Base/Base.md(23) · Hair/Hair.md(88: short/buzz/messy/slick ×22) · Accessories(3: headphones/smartwatch/cap)
Variations/{Suit,Casual,Club}/*.md(각 23)
LeeSori_and_LeeDan/ # 듀오(베이크드 장면, 리그 아님)
Duo.md · Reference/{combined_master_sheet,sori_sheet,dan_sheet}.png
Scenes/Scenes.md(+Images/) # 7장: backtoback·sidebyside·fistbump·present·wave·success·earbud_share
Character_Builder/ # WPF 조합 앱 (아래 §4)
```
- 구버전 레이어식 요청서는 `../docs/IMAGE_GEN_*`(및 `*.old`)에 **보존**(다른 세션 작업중, 건드리지 않음). 이 폴더는 그 내용을 캐릭터 중심으로 재정리한 독립본.
## 2. 페이퍼돌 조립 규칙 (모든 캐릭터 공통) — 상세 `README.md`
- 완성 캐릭터 = **헤드리스 바디(복장)** + **머리(헤어모양)** + **표정 프레임** + **악세서리(오버레이)** + **색상(코드 틴트)**.
- **정합 앵커**: 목(바디↔머리)·어깨·정수리/귀·목선·손목·발.
- **동작은 코드**(끄덕/갸웃/호흡/blink/talk = 트랜스폼+프레임 교체) — 이미지 아님.
- **색상은 코드**(hairmask로 hue-shift) — 색 변형 이미지 생성 안 함.
- 생성용 md = **영어 프롬프트 위주**, `Reference/<char>_sheet.png` 첨부 명시, 결과는 **각 md 옆 `Images/`**에 저장.
## 3. 이미지 생성 현황 (갱신 2026-07-02 저녁)
- **목표 총량 ≈ 516장**(md 이미지 블록 기준): 이소리 ~326 · 이단 183 · 듀오 7.
- **완료·배치됨: 88장(이소리)** — `Characters/NewImage`에서 각 `Images/`**이동 완료**(미일치 0):
- `LeeSori/Base/Images` **23**(트랙 바디 전부) · `LeeSori/Accessories/Images` **11**(전부) · `LeeSori/Hair/Images` **54**(short·long 완성 + waveS/waveL 일부)
- `Characters/NewImage` **잔여 0**.
- **미생성 ≈430**: 이소리 헤어 나머지(waveS/waveL 잔여 + **neat 4종 88**) + 복장변형 116 · **이단 183 전부** · **듀오 7**.
- **앞으로**: 생성물은 임시폴더 말고 **각 md 옆 `Images/`에 바로 저장**(분류 불필요). 순서 = 각 캐릭터 `_RUN_ORDER.md`.
## 4. Character Builder (WPF 앱) — `Character_Builder/`
- **상태**: **빌드 성공(오류0)**. `Character_Builder/bin/Debug/net8.0-windows/Character_Builder.exe`.
- 빌드: `dotnet build Characters_Build_Docs/Character_Builder/Character_Builder.csproj` (외부 패키지 없음, 오프라인 OK).
- **기능**: 캐릭터 리스트(시트 썸네일) → 선택 → 파츠 조합(바디/헤어모양/표정/헤어색/악세서리) →
**미리보기 합성****.md 저장(파일명 지정)/불러오기** → **제스처 미리보기**(포즈순환+깜빡임+부유).
- **자동 정렬**: `AlphaTools.cs` 가 알파(불투명) 분석으로 목 위치 검출 → 머리를 바디 목에 스냅 + 비율 스케일.
캐릭터/바디/헤어 변경 시 자동, [🎯 머리 자동 정렬] 버튼으로 재실행, 슬라이더로 미세조정.
- **.md(빌드파일) = Dansori 앱 개발용**: 좌표 규약(stage 520×680, 각 레이어 Height=680 Uniform·중심·center scale·(x,y)px)을
.md 헤더에 명시. 앱은 트랜스폼 직접 사용 또는 동일 정렬 알고리즘 재사용(`AlphaTools` 재활용).
- **테스트 보류**: 사용자가 **이미지가 충분히 생성된 뒤 테스트** 예정(내일).
- 현재 `LeeSori/{Base,Accessories,Hair}/Images`에 88장 배치됨 → **이소리 + short/long 헤어 + 트랙 바디 + 악세서리** 조합은 지금도 미리보기 가능.
## 5. DansoriEQ 본체 앱 (요약 — 상세 `../docs/HANDOFF.md §8`)
- 메인화면 EQ 그래프 좌측 배경에 **이소리(단독)** 크게 배치, 그래프 좌측이동/축소, 창 1600×980.
- 배경 이소리 **부유/말하기**를 아바타와 동기(`MainWindow.SetBgMascotTalking`).
- **전 팝업 창 모던 타이틀(FluentWindow+ui:TitleBar) + 파란 네온 프레임**, MainWindow 네온.
- 다음 코드작업: 배경 이소리 **통짜→헤드리스 리그 교체**(파츠 합성+표정프레임+고개회전+hairmask 틴트+악세 오버레이).
## 6. 앞으로 할 일 (우선순위)
1. **이미지 생성 계속** (사용자, 외부 이미지 AI): 각 `_RUN_ORDER.md` 순서로 **이소리 나머지 → 이단 전체 → 듀오**. 결과는 **각 md 옆 `Images/`에 바로 저장**(분류 불필요).
2.**NewImage → 각 `Images/` 분류 완료** (88장 이동, 미일치 0).
3. **구 자료 삭제**(사용자 직접, 예정): `../Characters`, `../Characters.Old`.
- 안전성 확인됨: 앱은 자체 `src/DansoriEQ.App/Assets/Characters`(13장) 사용, 시트는 Build_Docs에 백업.
- 유일본 손실 주의: Characters.Old의 구 파츠·흰배경 백업·추가포즈(새 파이프라인이 대체 예정).
4. **Character Builder 테스트**(이미지 후) → 자동정렬 정확도 튜닝(머리 스케일 비율 현재 0.32, 목밴드 6%),
필요 시 **드래그 이동**·색상 커스텀 추가.
5. **앱 통합**: `LeeSori/USAGE_FOR_DEV.md` 규칙대로 DansoriEQ(및 향후 Dansori 앱)에 리그 통합.
6. **폴더 이동**: `Characters_Build_Docs`를 Dansori 브랜드 루트로 이동(포터블 규칙 — 절대경로 없음, 통째 이동 가능).
## 7. 유지할 결정/제약
- 색상=코드(이미지X) · 절대경로 하드코딩 금지 · 헤드리스 바디+목 앵커 · 듀오=베이크드 장면 ·
생성 md=영어 프롬프트+시트 첨부 · 빌드 .md=앱 개발용(좌표규약 명시) · 모든 신규 이소리 베리에이션은 기본 리깅 상속.