Consolidate character profiles and image production docs

This commit is contained in:
eKeerar
2026-07-04 12:54:11 +09:00
parent 351c3d65ad
commit f8db111d71
1366 changed files with 3743 additions and 21740 deletions
+28 -45
View File
@@ -1,50 +1,33 @@
# 아키텍처 (Architecture)
# Architecture
## 레이어 모델
```
[상황 이벤트] 예: "error" / "success" / "idle"
[트리거 매퍼] reactions.json 상황키 → 반응 클립 이름
[반응 시퀀서] clips/<name>.json 타임라인으로 아래 레이어들을 조율
├─ Body 레이어 ── 리그 클립(rig.json+track) │ 또는 │ 베이크드 포즈 이미지
├─ Face 레이어 ── 표정 프레임 스왑(neutral/negative/love/…)
├─ Mouth 레이어 ── 말하기(talk 프레임 순환, 유사 립싱크)
├─ Transform 레이어 ── 리그 위에 덧입히는 잔모션(고개젓기·바운스)
└─ FX/Caption 레이어 ── 말풍선·효과음(옵션)
[컴포지터] 파츠 합성 + 표정 오버레이 + 앵커 정렬(AlphaTools 재활용)
[렌더러] Canvas(웹 프로토타입) / WPF(본체) — 60fps
```
LeeSori 패키지는 캐릭터 설정, 이미지 라이브러리, Live2D 파츠, 리그, 모션, 앱 통합 자료를 한 폴더 안에서 관리한다.
## 레이어 책임
- **Body**: 캐릭터 몸의 자세/모션. 두 모드.
- `rig` 모드 = 16파츠 리그를 클립으로 구동(앰비언트·열린 제스처·전환).
- `baked` 모드 = 통짜 포즈 이미지 1장(자기-가림 포즈: 팔짱·하트).
- **Face**: 감정 = 표정 프레임 교체(머리 이미지 스왑).
- **Mouth**: 말하기 = talk/neutral 프레임 순환(유사 립싱크). *정밀 립싱크는 mesh-warp 승급 시.*
- **Transform**: 리그 본에 delta를 더하는 잔모션(고개 좌우·호흡·바운스). Body가 baked여도 전체 트랜스폼은 적용 가능.
- **FX/Caption**: 말풍선 텍스트·효과음(옵션).
## 구성 계층
## 하이브리드 선택 규칙 (언제 무엇을)
| 상황 | Body 모드 | 근거 |
|---|---|---|
| 배경춤·유휴·호흡 | **rig** | 부드러운 앰비언트, 자산 최소 |
| 손 흔들기·가리키기·제시·박수 | **rig** | 열린 자세 → 리그로 자연스러움 |
| 고개 끄덕/젓기 | **rig**(Transform) | 작은 각도 + 가림 |
| 팔짱·핑거하트·볼하트 | **baked** | 손이 몸에 겹침 → 리그는 뚫림/어색 |
| 큰 감정 포즈(만세·좌절) | **baked** 또는 rig(joy/cheer) | 필요 정밀도에 따라 |
1. Character Identity
- 이름, 역할, 성격, 주요 시각 요소
2. Asset Library
- 헤드, 의상, 포즈, 액세서리, baked pose
3. Live2D Source
- PSD, 레이어 PNG, 레이어 manifest, 파츠 분리 기준
4. Rig
- bone hierarchy, pivot, z-order, deformation group
5. Motion
- idle, reaction, dance, transition, loop segment
6. Runtime Integration
- DansoriEQ 캐릭터 호스트, 상태 매핑, 제스처 레지스트리
## 전환 (transition)
- rig→rig: 트랜스폼 보간(부드럽게).
- rig↔baked: 짧은 **크로스페이드**(150~250ms) 또는 리그로 근사 진입 후 스냅.
- 반응 종료 후 `return` 지정 클립(보통 `idle`/`dance_idle`)으로 복귀.
## 최종 자산 원칙
## 데이터 재사용
- `rig.json`·클립·`reactions.json`·표정/포즈 이미지는 **웹 뷰어와 WPF가 동일하게** 사용(플랫폼 독립 데이터).
- 앵커 정렬은 기존 `Character_Builder/AlphaTools.cs`(알파 기반 목/어깨 검출) 로직을 재활용.
- 원본 제작 자산과 앱 런타임 자산을 같은 패키지에서 추적한다.
- 파일명은 캐릭터, 의상, 파츠, 상태, 방향을 식별할 수 있어야 한다.
- 파츠는 독립 회전/변형이 가능한 단위로 분리한다.
- 겹침이 필요한 영역은 z-order 이벤트나 보정 파츠로 관리한다.
## 주요 데이터
- `layer_manifest.json`: Live2D 레이어 구조
- `rig.json`: 앱/뷰어용 리그 정의
- `live2d_parameters.json`: Live2D 파라미터 정의
- `live2d_motion_plan.json`: 모션 설계 데이터
- `reactions.json`: 상태별 제스처 매핑