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,45 @@
# 자산 전체 맵
이 폴더는 Live2D 제작에 필요한 입력 이미지, 레이어 명세, PSD 제작 자료를 관리한다.
## 입력 이미지
| 종류 | 위치 | 용도 |
|---|---|---|
| 정체성 시트 | `Reference/sori_sheet.png` | 얼굴, 헤어, 의상, 색상 기준 |
| A-pose 이미지 | `Parts/Images/sori_part_master_apose.png` | 전신 비율과 관절 위치 기준 |
| 표정 이미지 | `Library/Heads/` | Live2D expression 목표 설정 |
| 포즈 이미지 | `Library/BakedPoses/` | Live2D motion 키포즈 설정 |
| 머리 영역 이미지 | `Library/Hairmasks/` | 머리카락 레이어 분리 기준 |
| 액세서리 이미지 | `Library/Accessories/` | 헤드폰, 마이크, 소품 기준 |
## Live2D 제작 자산
| 산출물 | 위치 | 설명 |
|---|---|---|
| 레이어 명세 | `Live2D/Layer_Manifest.md` | PSD/PNG 레이어 제작 지시서 |
| 레이어 manifest | `Live2D/layer_manifest.json` | 레이어 파일명, 그룹, 필수 여부 |
| PSD 제작 워크플로 | `Live2D/AI_PSD_Workflow.md` | AI 생성과 PSD 조립 순서 |
| 자산 체크리스트 | `Live2D/Asset_Audit.md` | 제작 입력 자료와 산출물 확인 |
| 작업 PSD | `Live2D/sori_live2d_material_separation.psd` | 원화 편집용 PSD |
| import PSD | `Live2D/sori_live2d_import.psd` | Cubism import 대상 |
| 레이어 PNG 번들 | `Live2D/LayerPNGs/` | PSD 조립용 투명 PNG |
## PSD 요구사항
- 권장 캔버스: 1600x2800.
- 배경: 완전 투명.
- 색공간: sRGB.
- Cubism import PSD: RGB, 8bit/channel.
- 모든 import 레이어명은 고유해야 한다.
- 눈, 눈썹, 입, 머리카락, 액세서리, 팔, 손, 의상 겹침 부위를 별도 레이어로 만든다.
- 각 레이어에는 움직임으로 드러날 숨은 밑그림이 있어야 한다.
## 제작 우선순위
1. 고해상도 A-pose 원화.
2. 얼굴, 눈, 눈썹, 입, 머리카락 레이어.
3. 상체, 팔, 손, 의상 레이어.
4. Cubism import PSD.
5. 눈깜빡임, 입열림, 고개 회전, 호흡, 머리카락 물리.
6. 하트, 거절, 대기춤 motion.
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 KiB

@@ -0,0 +1,172 @@
{
"name": "LeeSoriDance",
"status": "leesori_solo3_dance_pose_parts_2026_07_04",
"canvas": {
"width": 773,
"height": 1448
},
"imageBase": "./Images/",
"note": "Solo Dance 3 inspired pose-part rig. Parts are broad overlapping masks for the CSS Live2DHost dance loop.",
"bones": [
{
"name": "base",
"parent": null,
"pivot": [
386.5,
839.8399999999999
],
"z": 0,
"image": "solo3_base.png"
},
{
"name": "pelvis",
"parent": "base",
"pivot": [
386.5,
695.04
],
"z": 2,
"image": "solo3_pelvis.png"
},
{
"name": "chest",
"parent": "base",
"pivot": [
386.5,
448.88
],
"z": 4,
"image": "solo3_chest.png"
},
{
"name": "upperarm_l",
"parent": "chest",
"pivot": [
231.89999999999998,
390.96000000000004
],
"z": 5,
"image": "solo3_upperarm_l.png"
},
{
"name": "forearm_l",
"parent": "upperarm_l",
"pivot": [
139.14,
622.64
],
"z": 6,
"image": "solo3_forearm_l.png"
},
{
"name": "hand_l",
"parent": "forearm_l",
"pivot": [
77.30000000000001,
868.8
],
"z": 7,
"image": "solo3_hand_l.png"
},
{
"name": "upperarm_r",
"parent": "chest",
"pivot": [
541.0999999999999,
390.96000000000004
],
"z": 5,
"image": "solo3_upperarm_r.png"
},
{
"name": "forearm_r",
"parent": "upperarm_r",
"pivot": [
633.86,
622.64
],
"z": 6,
"image": "solo3_forearm_r.png"
},
{
"name": "hand_r",
"parent": "forearm_r",
"pivot": [
695.7,
868.8
],
"z": 7,
"image": "solo3_hand_r.png"
},
{
"name": "thigh_l",
"parent": "pelvis",
"pivot": [
309.20000000000005,
810.8800000000001
],
"z": 2,
"image": "solo3_thigh_l.png"
},
{
"name": "shin_l",
"parent": "thigh_l",
"pivot": [
301.47,
1071.52
],
"z": 2,
"image": "solo3_shin_l.png"
},
{
"name": "foot_l",
"parent": "shin_l",
"pivot": [
301.47,
1332.16
],
"z": 2,
"image": "solo3_foot_l.png"
},
{
"name": "thigh_r",
"parent": "pelvis",
"pivot": [
463.79999999999995,
810.8800000000001
],
"z": 2,
"image": "solo3_thigh_r.png"
},
{
"name": "shin_r",
"parent": "thigh_r",
"pivot": [
471.53,
1071.52
],
"z": 2,
"image": "solo3_shin_r.png"
},
{
"name": "foot_r",
"parent": "shin_r",
"pivot": [
471.53,
1332.16
],
"z": 2,
"image": "solo3_foot_r.png"
},
{
"name": "head",
"parent": "chest",
"pivot": [
386.5,
231.68
],
"z": 10,
"image": "solo3_head.png"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 944 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

@@ -0,0 +1,45 @@
# 표정과 포즈
이 문서는 Live2D expression과 motion 제작 기준을 정의한다.
## Live2D 표정 프리셋
| Expression ID | 감정 | 주요 파라미터 |
|---|---|---|
| `exp_neutral` | 기본 | 모든 표정 파라미터 기본값 |
| `exp_smile` | 미소 | `ParamMouthForm +`, `ParamEyeLSmile/RSmile +` |
| `exp_positive` | 밝음 | smile + cheek |
| `exp_love` | 호감/성공 | smile + cheek + 눈 미소 |
| `exp_negative` | 불만/거절 | `ParamBrowLAngle/RAngle -`, `ParamMouthForm -` |
| `exp_pout` | 삐침 | mouth form -, cheek |
| `exp_confused` | 당황 | brow 비대칭, eye open 증가 |
| `exp_thinking` | 생각중 | brow 한쪽 상승, gaze side |
| `exp_surprised` | 놀람 | eye open 증가, mouth open |
| `exp_sleepy` | 졸림 | eye open 감소, brow 낮춤 |
## 말하기
Live2D 입 레이어를 파라미터로 움직인다.
- 기본: `ParamMouthOpenY` 0..1 볼륨 기반.
- 감정: `ParamMouthForm` -1..1.
- WPF/TTS 초기 연동: 음성 볼륨 또는 대사 타이밍에 맞춰 mouth open 구동.
- 확장: "아/이/우/에/오" morph 파라미터 추가.
## 포즈와 제스처
| Motion ID | 용도 |
|---|---|
| `motion_idle_breath` | 기본 호흡 |
| `motion_idle_dance` | 대기춤 |
| `motion_no` | 거절/오류 |
| `motion_heart` | 성공/칭찬 |
| `motion_greet` | 인사 |
| `motion_present` | 안내/제시 |
| `motion_thinking` | 생각중 |
## 제스처 원칙
- 손과 팔은 motion으로 제어한다.
- 자기 가림이 큰 포즈는 swap part를 활용할 수 있다.
- 표정은 `.exp3.json`, 몸 동작은 `.motion3.json`으로 분리한다.
Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 851 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 755 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 KiB

Some files were not shown because too many files have changed in this diff Show More