Phase 0.3-0.5: SVG export + YAML sidecars + asset catalog

- Add hair class KeyMap entries (基髪→BaseHair, 前髪→FrontHair, 胸毛→ChestHair)
- Implement cardinal spline → cubic Bezier SVG export for all 175 body parts
- Generate YAML sidecar files (part.yaml) per part with metadata
- Write Catalog.yaml index for runtime asset loading
- Output to SlaveMatrix/Assets/Parts/{EnglishName}/ structure
- Each part directory contains part.yaml + x{x}y{y}.svg morph variants
- 838 SVGs across 324 morph variants, 175 sidecars, 1 catalog
- Extraction tool now serves as the asset build pipeline step
This commit is contained in:
2026-06-13 17:56:01 +02:00
parent fb0ff502f0
commit 58f3bf6884
1070 changed files with 83799 additions and 32 deletions

View File

@@ -0,0 +1,202 @@
id:
original_key:
resource: 肢左
morph_x: 12
morph_y: 1
variants:
- x: 0
y: 0
file: x0y0.svg
- x: 1
y: 0
file: x1y0.svg
- x: 2
y: 0
file: x2y0.svg
- x: 2
y: 1
file: x2y1.svg
- x: 2
y: 2
file: x2y2.svg
- x: 3
y: 0
file: x3y0.svg
- x: 3
y: 1
file: x3y1.svg
- x: 3
y: 2
file: x3y2.svg
- x: 4
y: 0
file: x4y0.svg
- x: 4
y: 1
file: x4y1.svg
- x: 4
y: 2
file: x4y2.svg
- x: 5
y: 0
file: x5y0.svg
- x: 5
y: 1
file: x5y1.svg
- x: 5
y: 2
file: x5y2.svg
- x: 6
y: 0
file: x6y0.svg
- x: 6
y: 1
file: x6y1.svg
- x: 6
y: 2
file: x6y2.svg
- x: 7
y: 0
file: x7y0.svg
- x: 7
y: 1
file: x7y1.svg
- x: 7
y: 2
file: x7y2.svg
- x: 8
y: 0
file: x8y0.svg
- x: 8
y: 1
file: x8y1.svg
- x: 8
y: 2
file: x8y2.svg
- x: 9
y: 0
file: x9y0.svg
- x: 9
y: 1
file: x9y1.svg
- x: 9
y: 2
file: x9y2.svg
- x: 10
y: 0
file: x10y0.svg
- x: 10
y: 1
file: x10y1.svg
- x: 10
y: 2
file: x10y2.svg
- x: 11
y: 0
file: x11y0.svg
- x: 11
y: 1
file: x11y1.svg
- x: 11
y: 2
file: x11y2.svg
fields:
- name:
- name: 耳線
joints:
- position: [
0.062244153005334604,
0.05767490163654067
]
- position: [
0.06061312203725514,
0.05798867158373068
]
- position: [
0.06094179895539896,
0.05777782504306677
]
- position: [
0.06133873784815525,
0.05763193562135896
]
- position: [
0.060732492831010836,
0.05780818818977257
]
- position: [
0.06120455731349464,
0.05765078175818154
]
- position: [
0.06176046203781577,
0.05758279737572961
]
- position: [
0.11157279005149721,
0.10091877948054874
]
- position: [
0.1096975736785607,
0.08929274283476431
]
- position: [
0.10828324205569771,
0.0948735211346526
]
- position: [
0.10749409176529023,
0.09496693764072228
]
- position: [
0.1105943038397159,
0.10048202801262578
]
- position: [
0.10854414577566458,
0.09024537579228015
]
- position: [
0.1096158176279346,
0.1000452765447028
]
- position: [
0.10739071787276847,
0.09119800874979597
]
- position: [
0.05875302421763107,
0.05790159015788745
]
- position: [
0.06391120212007742,
0.0586831976090447
]
- position: [
0.058745777154212704,
0.056863024207825845
]
- position: [
0.06401849909139842,
0.05944711851134952
]
- position: [
0.059679055443858466,
0.05541145577071726
]
- position: [
0.06375723116718138,
0.06045694518378308
]
- position: [
0.06067594367040712,
0.05784576118269755
]
- position: [
0.06117329976719475,
0.05766110681866893
]
- position: [
0.06166293386164137,
0.05758640045182952
]