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

2.2 KiB
Raw Blame History

Rig.md — 스켈레톤 정의 (rig.json) 설명

경량 리그의 뼈대. 뷰어(../07_Viewer/index.html)와 WPF 앱이 동일하게 읽는다.

본 계층 (부모 → 자식)

pelvis (root)
├─ chest
│  ├─ neck ─ head
│  ├─ upperarm_r ─ forearm_r ─ hand_r      (캐릭터 오른팔 = 화면 왼쪽)
│  └─ upperarm_l ─ forearm_l ─ hand_l      (캐릭터 왼팔 = 화면 오른쪽)
├─ thigh_r ─ shin_r ─ foot_r
└─ thigh_l ─ shin_l ─ foot_l

16 파츠. 각 관절이 실제로 접힌다(팔꿈치·무릎·손목·발목·목·허리).

필드 스키마 (bones[])

필드 의미
name 본 이름(= 애니메이션 트랙 키, = 파츠 파일 접두)
parent 부모 본 이름(root는 null). 배열은 부모가 먼저 오도록 정렬됨
pos [x,y] 부모 관절 기준 이 본 관절의 오프셋(휴지 자세, px)
angle 휴지 각도(deg, + = 시계방향). 팔은 살짝 벌린 춤-대기 자세로 프리셋
z 그리기 순서(작을수록 뒤). 화면 왼팔(캐릭터 오른팔)=뒤, 화면 오른팔=앞
image 파츠 PNG 파일명(imageBase + 이 값). 없으면 플레이스홀더
imgAnchor [ax,ay] 파츠 이미지 안에서 관절이 위치한 정규화 좌표(0~1)
imgScale 이미지 배율(기본 1)
col / ph / phW 플레이스홀더 색/도형(실제 아트 로드 전까지 사용)

좌표계

  • 캔버스 520×900, y-아래(+y = 화면 아래). 회전 + = 시계방향.
  • 본의 로컬 원점 = 그 본의 관절. 자식 pos는 이 원점 기준.

튜닝 가이드 (실제 아트가 오면)

  1. 뷰어에서 스켈레톤 오버레이 ON → 관절 점(분홍)이 아트 관절 위에 오도록:
    • 위치 어긋남 → pos 조정 / 파츠가 관절에서 어긋나 회전 → imgAnchor 조정 / 크기 → imgScale.
  2. 겹침 이상 → z. 목 이음새 벌어짐 → 머리 회전 폭↓ 또는 neck 피벗 내림.

강체 회전 한계상 큰 각도에서 관절이 벌어질 수 있음. 오버랩 파츠 + z가림으로 완화. 더 필요하면 ../02_Architecture/Limits_and_Mitigations.md 의 mesh-warp 승급.