# Live2D 모션 설계 최종 모션은 Cubism Editor에서 `.motion3.json`으로 export한다. ## 파일 역할 | 파일 | 역할 | |---|---| | `live2d_motion_plan.json` | Live2D 파라미터 곡선 설계 | | `dance_idle.json` | 대기춤 곡선 데이터 | ## MVP 모션 | Motion ID | 용도 | 루프 | 우선순위 | |---|---|---|---| | `motion_idle_breath` | 기본 대기 호흡 | yes | 필수 | | `motion_idle_dance` | 가벼운 배경춤 | yes | 필수 | | `motion_no` | 오류/거절 | no | 필수 | | `motion_heart` | 성공/칭찬 | no | 필수 | | `motion_greet` | 인사 | no | 확장 | | `motion_present` | 안내 | no | 확장 | | `motion_thinking` | 생각중 | loop/short | 확장 | ## 모션 제작 원칙 - `ParamBodyAngle*`, `ParamAngle*`, `ParamBreath`를 중심으로 자연스러운 움직임을 만든다. - 대사는 mouth/caption/TTS 레이어에서 처리한다. - 표정은 `.exp3.json`으로 분리한다. - idle 계열은 첫 키와 마지막 키를 맞춘다. - 머리카락과 펜던트는 physics에 맡긴다. ## Cubism export 산출물 이름 ```text motions/ idle_breath.motion3.json idle_dance.motion3.json no.motion3.json heart.motion3.json greet.motion3.json present.motion3.json thinking.motion3.json expressions/ neutral.exp3.json smile.exp3.json love.exp3.json negative.exp3.json thinking.exp3.json ``` ## WPF 런타임 호출 ```text React("success") -> motion_heart + exp_love + caption "잘됐어요" React("error") -> motion_no + exp_negative + caption "안돼요" SetIdle("idle") -> motion_idle_dance loop ```