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,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1">
<g transform="translate(0.3373403974394918,0.40419038501528964) rotate(0) scale(1,1) translate(-0.11919468730772295,-0.11388483716227914)"><path d="M 0.11919468730772298 0.11384005818697988 C 0.11925293452469497 0.11384005818697988 0.11964922509755846 0.11448973012316262 0.11954417060955491 0.11427762014833799 C 0.11964922509755846 0.11448973012316262 0.120514710248054 0.11674267910291863 0.1204553411637655 0.11638537788487545 C 0.120514710248054 0.11674267910291863 0.12026168963304112 0.11896536340591106 0.12025659962101704 0.11856523476485627 C 0.12026168963304112 0.11896536340591106 0.12048941225585574 0.1216719587163677 0.12051642130805457 0.12118692157753293 C 0.12048941225585574 0.1216719587163677 0.11994300272745792 0.12496178619936084 0.11993249099463107 0.12438568043087346 C 0.11994300272745792 0.12496178619936084 0.12069612278469133 0.12868086515627 0.1206425621019768 0.12810019079938145 C 0.12069612278469133 0.12868086515627 0.12061412369482832 0.13192334358620322 0.12057521918720551 0.1313537727135361 C 0.12061412369482832 0.13192334358620322 0.12114829172887187 0.13559005469507956 0.12110941619345053 0.1349350412713869 C 0.12114829172887187 0.13559005469507956 0.12098947069381268 0.13997398352587961 0.12104172561226151 0.13921393379784835 C 0.12098947069381268 0.13997398352587961 0.12048225772389803 0.1451072436117089 0.12048235717206457 0.1440556380077621 C 0.12048225772389803 0.1451072436117089 0.12108176439213632 0.15303149341744154 0.12104053223426314 0.15183320104521003 C 0.12108176439213632 0.15303149341744154 0.12101561041795836 0.1589464152671682 0.12097714306654272 0.15843514647454043 C 0.12101561041795836 0.1589464152671682 0.12184396443694104 0.1581478445626078 0.12150214045125082 0.15796842655674342 C 0.12184396443694104 0.1581478445626078 0.12487538353357991 0.16104707672620855 0.1250790308948254 0.16058816254491287 C 0.12487538353357991 0.16104707672620855 0.11805187007741326 0.16348004581694767 0.11905837211630499 0.1634753967322916 C 0.11805187007741326 0.16348004581694767 0.11281608800169798 0.1601830023511326 0.11300100642812469 0.16064395156078554 C 0.11281608800169798 0.1601830023511326 0.11721342198067927 0.15775663955197408 0.1168393509991846 0.1579440062164562 C 0.11721342198067927 0.15775663955197408 0.11753945520101369 0.1580250075278629 0.11748985820606078 0.15839555158699992 C 0.11753945520101369 0.1580250075278629 0.11741826215801981 0.15258836162741976 0.11743451493861945 0.15349747750681197 C 0.11741826215801981 0.15258836162741976 0.11731878914728455 0.14636777333354645 0.11729482483886519 0.1474861610342933 C 0.11731878914728455 0.14636777333354645 0.11773638175771835 0.13911903166735864 0.11772208663965186 0.14007682509784986 C 0.11773638175771835 0.13911903166735864 0.11747061872712561 0.13531387277694884 0.11746636625566304 0.13599263986839882 C 0.11747061872712561 0.13531387277694884 0.11775935487589739 0.13121713927879525 0.11777311629720266 0.13193162000045022 C 0.11775935487589739 0.13121713927879525 0.11729830169270276 0.12675925836352625 0.1173012291999998 0.12741887120853923 C 0.11729830169270276 0.12675925836352625 0.11775297944580315 0.12349799990078464 0.11773798620963816 0.12401626586029453 C 0.11775297944580315 0.12349799990078464 0.11750578353033077 0.1207146933376272 0.11748114803397983 0.12119967969442051 C 0.11750578353033077 0.1207146933376272 0.11806491794977202 0.11775123628766701 0.11803361216584948 0.11819642957877487 C 0.11806491794977202 0.11775123628766701 0.11792445009438705 0.11553079274858985 0.11785681744105025 0.11585736020112626 C 0.11792445009438705 0.11553079274858985 0.11895669316144711 0.11410951164715913 0.11884520400589105 0.11427762014833799 C 0.11895669316144711 0.11410951164715913 0.11925293452469497 0.11384005818697988 0.11919468730772298 0.11384005818697988 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3329136691574252,0.4502666611481156) rotate(0) scale(1,1) translate(-0.007632439264170959,-0.011489070732754177)"><path d="M 0.004321113334866218 0.007999929276104788 C 0.004534854255098533 0.007999929276104788 0.0059394159230129456 0.009012749766298195 0.005603558856260111 0.00867303860973915 C 0.0059394159230129456 0.009012749766298195 0.008244527675784073 0.012244740488221925 0.00835139813590023 0.012076463154813335 C 0.008244527675784073 0.012244740488221925 0.003878385807997226 0.010520932787491777 0.004321113334866218 0.010692366610642233 C 0.003878385807997226 0.010520932787491777 0.0029317973533561667 0.009850979943599278 0.0030386678134723243 0.010019257277007868 C 0.0029317973533561667 0.009850979943599278 0.003145538273588482 0.00850476127633056 0.0030386678134723243 0.00867303860973915 C 0.003145538273588482 0.00850476127633056 0.004534854255098533 0.007999929276104788 0.004321113334866218 0.007999929276104788 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3418881577111969,0.44979364179084946) rotate(0) scale(1,1) translate(-0.009274318487558978,-0.011539567016504784)"><path d="M 0.014338951511954306 0.00843489160088072 C 0.014456776194232362 0.008620417360963691 0.01422112682967625 0.01010462344162745 0.014338951511954306 0.009919097681544479 C 0.01422112682967625 0.01010462344162745 0.012436948226244554 0.01085020651189974 0.012925055324617634 0.010661200721876363 C 0.012436948226244554 0.01085020651189974 0.008363841649199294 0.012001641401742036 0.00848166633147735 0.012187167161825007 C 0.008363841649199294 0.012001641401742036 0.011881441553375987 0.008060360050774372 0.011511159137280963 0.00843489160088072 C 0.011881441553375987 0.008060360050774372 0.013160704689173746 0.00769278856054883 0.012925055324617634 0.00769278856054883 C 0.013160704689173746 0.00769278856054883 0.014456776194232362 0.008620417360963691 0.014338951511954306 0.00843489160088072 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3409682216547612,0.4465120310809557) rotate(0) scale(1,1) translate(-0.008434564811809,-0.010934425164257432)"><path d="M 0.009251038347951584 0.012088161521655106 C 0.009106852579363906 0.012201180602353149 0.007870800984964201 0.01225368910366991 0.008031499842691536 0.012310998851825385 C 0.007870800984964201 0.01225368910366991 0.007291071407300378 0.01122179190731499 0.007322652055223571 0.011400444543789412 C 0.007291071407300378 0.01122179190731499 0.00779671783620091 0.010054148133434283 0.007652532067613221 0.010167167214132328 C 0.00779671783620091 0.010054148133434283 0.009228647694786712 0.010109849131189261 0.009052881278275842 0.010044215575412883 C 0.009228647694786712 0.010109849131189261 0.009778242154883312 0.011125098712302382 0.009761729065743668 0.010954769883448864 C 0.009778242154883312 0.011125098712302382 0.009106852579363906 0.012201180602353149 0.009251038347951584 0.012088161521655106 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.33603821385114047,0.4494163851223475) rotate(0) scale(1,1) translate(-0.007887010811670887,-0.011755036522883896)"><path d="M 0.0062022354011980994 0.007249426760502921 C 0.0063989849556533316 0.007332941991469629 0.007296150294851444 0.008814054133905716 0.0071197279584018745 0.00837011855481774 C 0.007296150294851444 0.008814054133905716 0.008155177468983416 0.012689796196203924 0.008319303438592936 0.012576653709558638 C 0.008155177468983416 0.012689796196203924 0.004809668017028531 0.009397035302118497 0.005150216323087622 0.009727828394561187 C 0.004809668017028531 0.009397035302118497 0.004200100181038135 0.008410478882634369 0.004232723765883847 0.008607136600246364 C 0.004200100181038135 0.008410478882634369 0.004922859274548607 0.00725479329657195 0.0047587333049390855 0.007367935783217237 C 0.004922859274548607 0.00725479329657195 0.0063989849556533316 0.007332941991469629 0.0062022354011980994 0.007249426760502921 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.33070793164386253,0.4442630987931344) rotate(0) scale(1,1) translate(-0.008434564811809,-0.010934425164257432)"><path d="M 0.009251038347951584 0.012088161521655106 C 0.009106852579363906 0.012201180602353149 0.007870800984964201 0.01225368910366991 0.008031499842691536 0.012310998851825385 C 0.007870800984964201 0.01225368910366991 0.007291071407300378 0.01122179190731499 0.007322652055223571 0.011400444543789412 C 0.007291071407300378 0.01122179190731499 0.00779671783620091 0.010054148133434283 0.007652532067613221 0.010167167214132328 C 0.00779671783620091 0.010054148133434283 0.009228647694786712 0.010109849131189261 0.009052881278275842 0.010044215575412883 C 0.009228647694786712 0.010109849131189261 0.009778242154883312 0.011125098712302382 0.009761729065743668 0.010954769883448864 C 0.009778242154883312 0.011125098712302382 0.009106852579363906 0.012201180602353149 0.009251038347951584 0.012088161521655106 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g></svg>

After

Width:  |  Height:  |  Size: 8.9 KiB