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,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1">
<g transform="translate(0.33734345282867056,0.29793286629307747) rotate(0) scale(1,1) translate(-0.05000000000000001,-0.05000000000000001)"><path d="M 0.049999999999999906 0.10161244581347881 C 0.046907692212327365 0.09824381599857529 0.009611996616005834 0.05531715764182836 0.012892306547929415 0.06118888803463657 C 0.009611996616005834 0.05531715764182836 0.010448278672665902 0.028648580521875584 0.010636280816916942 0.031151681099780275" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.010636280816916942 0.031151681099780275 C 0.01391659074884053 0.03073526171756867 0.056560619863847195 0.026154648513241032 0.05000000000000002 0.02615464851324102 C 0.056560619863847195 0.026154648513241032 0.09264402911500667 0.031568100481992 0.08936371918308308 0.031151681099780386" fill="none" stroke="none" stroke-width="0"/>
<path d="M 0.08936371918308308 0.031151681099780386 C 0.08917571703883202 0.03365478167768506 0.0838273835201467 0.06706061842744473 0.0871076934520703 0.06118888803463654 C 0.0838273835201467 0.06706061842744473 0.04690769221232737 0.10498107562838233 0.049999999999999906 0.10161244581347881" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g id="染み">
<g transform="translate(0.33734345282867045,0.3114994273492831) rotate(0) scale(1,1) translate(-0.04157563614542801,-0.041575636145428016)"><path d="M 0.06537483775841921 0.03484685685843153 C 0.06660056405024753 0.04011792129237764 0.053075358554456956 0.061142990106701295 0.05628435164736788 0.05912021062606516 C 0.053075358554456956 0.061142990106701295 0.023657927550577176 0.05709743114542902 0.026866920643488102 0.05912021062606516 C 0.023657927550577176 0.05709743114542902 0.01900216082426511 0.029575792424485423 0.017776434532436786 0.03484685685843153 C 0.01900216082426511 0.029575792424485423 0.04554216974759321 -0.004132562581288143 0.04157563614542801 -0.004132562581288143 C 0.04554216974759321 -0.004132562581288143 0.06660056405024753 0.04011792129237764 0.06537483775841921 0.03484685685843153 Z" fill="#cccccc" stroke="none" stroke-width="0"/>
</g><g transform="translate(0.33734345282867045,0.3114994273492831) rotate(0) scale(1,1) translate(-0.04157563614542801,-0.041575636145428016)"><path d="M 0.05511236948160029 0.03064353542534161 C 0.05580954958980014 0.03454109859744018 0.048116556224278684 0.05008758544624501 0.04994179744382623 0.048591889290790904 C 0.048116556224278684 0.05008758544624501 0.03138423362748223 0.0470961931353368 0.033209474847029775 0.048591889290790904 C 0.03138423362748223 0.0470961931353368 0.028736082917455576 0.026745972253243037 0.028038902809255722 0.03064353542534161 C 0.028736082917455576 0.026745972253243037 0.04383175836812339 0.0018211312256080669 0.04157563614542801 0.0018211312256080669 C 0.04383175836812339 0.0018211312256080669 0.05580954958980014 0.03454109859744018 0.05511236948160029 0.03064353542534161 Z" fill="#cccccc" stroke="none" stroke-width="0"/>
</g></g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB