Files
2026-07-04 10:34:46 +09:00

3.7 KiB

확정 결정 로그 (Decisions)

논의를 통해 확정된 결정과 근거. 뒤집을 땐 여기에 사유와 함께 갱신.

D1. 표현 방식 = 하이브리드 (확정)

리그 + 베이크드 포즈 + 표정 프레임 스왑을 상황별로 조합.

  • 근거: 리그는 앰비언트/열린 제스처에 강하고, 팔짱·하트 같은 자기-가림 포즈는 베이크드 이미지가 자연스럽다. 각자의 강점만 사용.

D2. 구현 레벨 = 코드 네이티브 경량 리그 (확정, Live2D/Spine 배제)

  • 근거: Live2D/Spine의 리깅은 독점 GUI 에디터에서 사람이 하는 작업 → AI 자동화 목적과 상충. 우리 코드로 리그/모션/반응을 소유하면 데이터(JSON)만으로 자동화·반복이 가능.

D3. 분절 = 완전 해부학 16파츠 (확정)

head·neck·chest·pelvis + (상완·전완·손)×2 + (허벅지·종아리·발)×2.

  • 근거: 팔꿈치·무릎·손목·목·허리가 실제로 접혀야 제스처/춤이 자연스럽다.

D4. 얼굴 = 표정 프레임 스왑 (확정)

20종 표정 이미지 교체 + 말하기 = talk 프레임 순환(유사 립싱크).

  • 한계 인지: 눈+입이 세트로 고정 → "감정+정밀 립싱크 동시"는 불가. 필요 시 D7로 승급.

D5. 자기-가림 포즈 = 베이크드 이미지 (확정)

팔짱(armscross)·하트(heart) 등은 리그 보간 대신 통짜 포즈 이미지로. (기존 표준 18제스처 자산 재사용.)

D6. 투명 알파 필수 (확정)

모든 파츠/프레임 = 32-bit RGBA(Format32bppArgb), 배경 alpha=0. 24-bit·매트 배경 금지.

D7. mesh-warp(그리드 변형) = 옵션·후속 (보류)

목/얼굴 국소 mesh-warp(WebGL)로 목 이음새·정밀 립싱크·중간 각도 고개돌림을 승급.

  • 승급 조건: 강체 리그로 목/얼굴이 실제로 부족할 때, 그 부위에만 국소 도입. 전신 적용 안 함.

D8. 이미지 = ChatGPT 자동생성 (확정)

사람이 안 그림. 생성용 .md 스펙을 우리가 제공.

D9. 색상·모션 = 코드/데이터 (확정)

색 변형 = hairmask hue-shift. 모션 = 리그 클립. 반응 = 시퀀서 데이터.

D10. 프로필 구조 (확정)

LeeSori_Profile 구조를 복제해 Haruka_Profile 로 운용(캐릭터별 자료 구조 표준). 시트 표준 위치 = 03_Assets/Reference/haruka_sheet.png.

D11. 리그 파츠 생성 = 마스터-슬라이스 우선, 개별생성 폴백/attachment (확정)

  • 핵심 16파츠는 마스터 1장 → 로컬 슬라이스(같은 좌표계 → 관절 자동 정합, 접합 오차↓)가 1순위. 파츠 개별 생성은 그 폴백(같은 16파츠를 만드는 대체 방법 — 둘 다 만들 필요 없음).
  • 슬라이스 출력 = 풀캔버스: 각 파츠는 크롭 없이 마스터와 동일한 520×900 캔버스에 제자리 배치(그 외 투명). 16장 스택 시 마스터 복원 → 위치정보 보존, 앵커 튜닝 불필요. (타이트 크롭하면 위치정보가 사라져 정합이 깨짐.)
  • 단 마스터에 없는 변형 파츠(핑거하트·주먹·가리킴 등 대체 손 attachment)는 개별 생성으로만 가능 → 그 용도엔 개별 생성이 별도로 필요.
  • 근거: 슬라이스는 좌표 정합에 강함(반복 수정 원인 제거). 생성 AI는 픽셀 좌표를 못 맞추므로 접합 좌표는 생성 후 이미지에서 측정(정규화 앵커 imgAnchor)해 rig.json에 저장.

열린 결정 (미확정)

  • O1. 최종 런타임 호스트: 프로토타입=웹(Canvas). 본체=WPF. WPF에 동일 리그/시퀀서를 이식(C#) 할지, 아니면 WebView2로 웹 런타임을 임베드할지 → ../08_Roadmap/App_Integration.md 에서 결정 예정.
  • O2. 대사 표시: 말풍선 캡션 vs TTS 음성 vs 둘 다.