Initial Dansori character workspace

This commit is contained in:
eKeerar
2026-07-04 10:34:46 +09:00
commit 5a419816ff
2480 changed files with 38692 additions and 0 deletions
@@ -0,0 +1,96 @@
# 아키텍처
## 전체 파이프라인
```text
[입력 이미지와 캐릭터 기준]
|
v
[AI Live2D 원화 분리]
- material PSD
- 투명 PNG 레이어 번들
- 숨은 부위 보강
|
v
[Cubism import PSD]
- 고유 레이어명
- RGB, 8bit/channel, sRGB
- 먼지/프린지/마스크 잔여물 제거
|
v
[Live2D Cubism Editor]
- ArtMesh
- Warp/Rotation Deformer
- Parameter
- Physics
- Motion/Expression
|
v
[Embedded Export]
- .moc3
- .model3.json
- texture atlas PNG
- .motion3.json / .exp3.json / .physics3.json
|
v
[WPF Runtime Host]
- WebView2
- Cubism SDK for Web
|
v
[앱 이벤트 반응]
- error / success / idle / greet / explain / thinking
```
## 제작 레이어
| 레이어 | 책임 | 주요 파일 |
|---|---|---|
| Source Art | AI가 만드는 분리 원화 | `03_Assets/Live2D/Layer_Manifest.md`, `layer_manifest.json` |
| Cubism Model | 리깅, 파라미터, 물리 | `04_Rig/live2d_parameters.json` |
| Motion | idle, no, heart, greet 등 | `05_Animation/live2d_motion_plan.json` |
| Reaction | 앱 상황키 매핑 | `06_Reactions/reactions.json`, `clips/*.json` |
| WPF Host | 모델 로드와 앱 브리지 | `08_Roadmap/App_Integration.md` |
## AI 원화 분리 규칙
- 최종 PSD의 각 파츠는 Cubism에서 하나의 ArtMesh가 될 수 있도록 단일 레이어로 정리한다.
- 눈, 눈썹, 입은 좌우와 세부 요소를 분리한다.
- 머리카락은 앞머리, 옆머리, 뒷머리, 잔머리, 하이라이트를 분리한다.
- 몸과 의상은 Rotation Deformer와 Warp Deformer 적용을 고려해 분리한다.
- 손하트, 팔짱, 손흔들기 같은 제스처는 손과 팔 파츠를 충분히 확보한다.
## Cubism 파라미터 계층
```text
ParamBaseX/Y
ParamBodyAngleX/Y/Z
ParamAngleX/Y/Z
Face / Eyes / Brows / Mouth
Arms / Hands
Hair physics
```
기본 파라미터 범위는 `04_Rig/live2d_parameters.json`을 따른다.
## WPF 통합 구조
WPF는 WebView2를 띄우고 Live2D 런타임 HTML/JS에 메시지를 보낸다.
```text
WPF
-> WebView2.PostWebMessageAsJson({ type: "react", key: "success" })
-> Live2D runtime
-> reactions.json
-> StartMotion + SetExpression + caption/TTS event
```
## 공식 기준 확인 항목
- PSD import.
- ArtMesh.
- Deformer.
- Parameter.
- Physics.
- Embedded export.
- Cubism SDK for Web.
@@ -0,0 +1,61 @@
# 한계와 완화
## L1. AI 원화와 Cubism 리깅의 역할 분리
AI는 원화 분리와 보강에 강하고, Cubism Editor는 ArtMesh, Deformer, Physics, Motion 검수에 필요하다.
**완화**
- AI 산출물은 PSD/PNG 레이어와 manifest 기준으로 검수한다.
- Cubism 작업은 파라미터, 디포머, 물리, 모션 단위로 검수한다.
- 반복 작업은 레이어명, 파라미터명, 모션명, 체크리스트로 관리한다.
## L2. Live2D 세부 레이어 필요
정밀한 Live2D 표현에는 눈꺼풀, 눈동자, 눈 하이라이트, 입 안쪽, 치아, 혀, 눈썹, 앞머리, 옆머리, 뒷머리, 옷 주름 레이어가 필요하다.
**완화**
- `03_Assets/Live2D/layer_manifest.json`의 required 레이어를 모두 만든다.
- 얼굴, 머리카락, 손 파츠를 우선 제작한다.
- 숨은 피부, 머리, 의상 밑그림을 충분히 채색한다.
## L3. 누락 부위 보강
고개 회전, 팔 움직임, 머리카락 흔들림에는 피부, 머리, 의상 밑그림이 필요하다.
**완화**
- AI 프롬프트에 "Paint hidden areas underneath overlaps"를 명시한다.
- 목 뒤, 귀 뒤, 헤어 안쪽, 어깨 뒤, 소매 안쪽, 손목, 허리 주변을 별도 확인한다.
- Cubism에서 큰 회전 각도는 자연스러운 범위로 제한한다.
## L4. 립싱크
정밀 립싱크에는 입 레이어와 파라미터 설계가 필요하다.
**완화**
- 입은 `mouth_inside`, `mouth_line`, `upper_lip`, `lower_lip`, `teeth`, `tongue`로 분리한다.
- `ParamMouthOpenY``ParamMouthForm`을 기본으로 만든다.
- WPF/TTS 연동은 볼륨 기반 mouth open으로 시작한다.
- 음소 표현이 필요하면 입 morph 파라미터를 추가한다.
## L5. WPF 통합 비용
WPF 통합에는 모델 로드, WebView2 메시지 브리지, 리소스 경로, 배포 구성이 필요하다.
**완화**
- WebView2 + Cubism SDK for Web을 1차 경로로 사용한다.
- 메시지는 JSON 형식으로 통일한다.
- 앱 리소스 구조는 `08_Roadmap/App_Integration.md`를 따른다.
## L6. 라이선스와 배포 조건
Live2D Cubism Editor와 SDK 사용 조건을 확인해야 한다.
**완화**
- 앱 배포 전 Live2D 공식 라이선스와 SDK 사용 조건을 확인한다.
- 리소스와 SDK 배포 범위를 체크리스트로 관리한다.