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.3373434528286706,0.2649004817027368) rotate(0) scale(1,1) translate(-0.11919468730772295,-0.11388483716227914)"><path d="M 0.1194742739491885 0.1142778414345273 C 0.11955652763178898 0.11442218306530688 0.12023662249756778 0.1158509792448611 0.12018173149892863 0.11557213252874314 C 0.12023662249756778 0.1158509792448611 0.12018027661075516 0.11804267537304015 0.12013296593285824 0.11762400202794271 C 0.12018027661075516 0.11804267537304015 0.12075630695546843 0.12107210092277333 0.1207494596336916 0.12059621266991244 C 0.12075630695546843 0.12107210092277333 0.12019479781962608 0.12389108048461674 0.12021513379418014 0.12333466106227342 C 0.12019479781962608 0.12389108048461674 0.12055853536855902 0.1279750601774182 0.12050542793904281 0.1272732457380322 C 0.12055853536855902 0.1279750601774182 0.12088494972334637 0.13244174134633654 0.12085242294837469 0.13175643433490522 C 0.12088494972334637 0.13244174134633654 0.12085590129198698 0.1361737778589916 0.12089574923870307 0.13549692987520823 C 0.12085590129198698 0.1361737778589916 0.12036429348263245 0.1408798066976175 0.12037424758778166 0.1398786101403057 C 0.12036429348263245 0.1408798066976175 0.12078014202347077 0.14865750613839884 0.12077629997691249 0.14751128856294957 C 0.12078014202347077 0.14865750613839884 0.12040908850486912 0.15454233266927037 0.12042035214648114 0.15363322104569693 C 0.12040908850486912 0.15454233266927037 0.12069601996157418 0.1587819286489834 0.12064113627756815 0.15842062804583074 C 0.12069601996157418 0.1587819286489834 0.12138703293607558 0.15812800399576132 0.12107895635455365 0.15796882828352898 C 0.12138703293607558 0.15812800399576132 0.12419050413853332 0.1607301342159955 0.12433805525583125 0.1603307365926187 C 0.12419050413853332 0.1607301342159955 0.11847171790539411 0.16275758443151273 0.11930834294697854 0.16276159976405052 C 0.11847171790539411 0.16275758443151273 0.11413525324397832 0.15988519115364028 0.11429855475681813 0.16028255260216495 C 0.11413525324397832 0.15988519115364028 0.11763102331417846 0.15784040285109863 0.11734872479290066 0.15799326238175435 C 0.11763102331417846 0.15784040285109863 0.11774517703462574 0.15797747272464535 0.11768613701215178 0.15844823823429616 C 0.11774517703462574 0.15797747272464535 0.11807798540508282 0.15121128096737307 0.11805720506258817 0.1523440762659447 C 0.11807798540508282 0.15121128096737307 0.1179003284154674 0.14366941712232356 0.11793550112208757 0.1448546946514364 C 0.1179003284154674 0.14366941712232356 0.11764663812868684 0.13722562214485187 0.11763513258314608 0.13812074591659054 C 0.11764663812868684 0.13722562214485187 0.11813526157360833 0.13352422799577893 0.11807356766857673 0.13411320939057225 C 0.11813526157360833 0.13352422799577893 0.11836030822200824 0.13051468939950933 0.1183754594435253 0.13105296917907078 C 0.11836030822200824 0.13051468939950933 0.1178757812583319 0.12706614647080544 0.11789175301037205 0.12765385203583493 C 0.1178757812583319 0.12706614647080544 0.11820168840258166 0.12341059804621955 0.11818379841904351 0.12400050239871693 C 0.11820168840258166 0.12341059804621955 0.1181359243427312 0.12009219524406949 0.11810643281282986 0.12057499980586633 C 0.1181359243427312 0.12009219524406949 0.11855530410365354 0.1178332188474715 0.11853769677785951 0.1182068476571548 C 0.11855530410365354 0.1178332188474715 0.11834917104639149 0.11576403690444764 0.11831772072235833 0.1160914540896666 C 0.11834917104639149 0.11576403690444764 0.11898818121503782 0.1140902230070041 0.11891510066625743 0.1142778414345273 C 0.11898818121503782 0.1140902230070041 0.11924128508130054 0.11384003295938816 0.11919468730772295 0.11384003295938816 C 0.11924128508130054 0.11384003295938816 0.11955652763178898 0.11442218306530688 0.1194742739491885 0.1142778414345273 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3416488862758152,0.3105272388612497) rotate(0) scale(1,1) translate(-0.007632439264170959,-0.011489070732754177)"><path d="M 0.011307456424729996 0.009236245034342156 C 0.011392952792822923 0.009370866901069029 0.01122196005663707 0.010447841834884003 0.011307456424729996 0.010313219968157131 C 0.01122196005663707 0.010447841834884003 0.009927317986119679 0.010988854493584986 0.010281500007614875 0.010851707435064622 C 0.009927317986119679 0.010988854493584986 0.006971775798694713 0.011824362803674632 0.007057272166787639 0.011958984670401504 C 0.006971775798694713 0.011824362803674632 0.009524229243902031 0.00896447610909492 0.009255543590499762 0.009236245034342156 C 0.009524229243902031 0.00896447610909492 0.010452492743800728 0.008697757567434666 0.010281500007614875 0.008697757567434666 C 0.010452492743800728 0.008697757567434666 0.011392952792822923 0.009370866901069029 0.011307456424729996 0.009236245034342156 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3334750703052507,0.3103565295667666) rotate(0) scale(1,1) translate(-0.009274318487558978,-0.011539567016504784)"><path d="M 0.006353729017912096 0.00846214425174002 C 0.006542248509556993 0.00846214425174002 0.0077810719006574935 0.00935545192409061 0.007484845967781477 0.009055826684005532 C 0.0077810719006574935 0.00935545192409061 0.009814180466601843 0.01220606774082734 0.009908440212424291 0.012057647132760963 C 0.009814180466601843 0.01220606774082734 0.005963243339213631 0.010685669348783346 0.006353729017912096 0.010836873980802048 C 0.005963243339213631 0.010685669348783346 0.005128352322220267 0.010094770940470163 0.005222612068042715 0.01024319154853654 C 0.005128352322220267 0.010094770940470163 0.0053168718138651636 0.008907406075939156 0.005222612068042715 0.009055826684005532 C 0.0053168718138651636 0.008907406075939156 0.006542248509556993 0.00846214425174002 0.006353729017912096 0.00846214425174002 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.33361640219308797,0.30701543643304735) rotate(0) scale(1,1) translate(-0.008434564811809,-0.010934425164257432)"><path d="M 0.007372833408661317 0.010950700939610578 C 0.007386043879973035 0.010814437876527763 0.008080524771844344 0.01016975064856069 0.007939911638635644 0.010222257493181792 C 0.008080524771844344 0.01016975064856069 0.009175539622035869 0.010411034068715784 0.009060191007165723 0.010320618804157349 C 0.009175539622035869 0.010411034068715784 0.009298830498738841 0.011450162777062553 0.009324095017077396 0.011307240667883016 C 0.009298830498738841 0.011450162777062553 0.008628457700921207 0.012081531912836174 0.008757016787103071 0.012035684114311794 C 0.008628457700921207 0.012081531912836174 0.007666037368024888 0.011766998985617137 0.0077813859828950345 0.011857414250175571 C 0.007666037368024888 0.011766998985617137 0.007386043879973035 0.010814437876527763 0.007372833408661317 0.010950700939610578 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.338717673696988,0.30990701832297224) rotate(0) scale(1,1) translate(-0.007887010811670887,-0.011755036522883896)"><path d="M 0.010389632817056325 0.00824535593115057 C 0.010520933592743944 0.0083358699204668 0.010784341580423937 0.009394042758863467 0.010810440448300509 0.00923671658477387 C 0.010784341580423937 0.009394042758863467 0.009804007757690181 0.01039790449417988 0.01007644640253746 0.010133270020225729 C 0.009804007757690181 0.01039790449417988 0.007409875934445549 0.01232181628290746 0.007541176710133168 0.01241233027222369 C 0.007409875934445549 0.01232181628290746 0.008641974963445698 0.00869195368516059 0.008500837094286038 0.009047102148430972 C 0.008641974963445698 0.00869195368516059 0.009392230783613275 0.008083736528205751 0.009234831140049084 0.008150548712979117 C 0.009392230783613275 0.008083736528205751 0.010520933592743944 0.0083358699204668 0.010389632817056325 0.00824535593115057 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3428348436561636,0.30554329113342205) rotate(0) scale(1,1) translate(-0.008434564811809,-0.010934425164257432)"><path d="M 0.007372833408661317 0.010950700939610578 C 0.007386043879973035 0.010814437876527763 0.008080524771844344 0.01016975064856069 0.007939911638635644 0.010222257493181792 C 0.008080524771844344 0.01016975064856069 0.009175539622035869 0.010411034068715784 0.009060191007165723 0.010320618804157349 C 0.009175539622035869 0.010411034068715784 0.009298830498738841 0.011450162777062553 0.009324095017077396 0.011307240667883016 C 0.009298830498738841 0.011450162777062553 0.008628457700921207 0.012081531912836174 0.008757016787103071 0.012035684114311794 C 0.008628457700921207 0.012081531912836174 0.007666037368024888 0.011766998985617137 0.0077813859828950345 0.011857414250175571 C 0.007666037368024888 0.011766998985617137 0.007386043879973035 0.010814437876527763 0.007372833408661317 0.010950700939610578 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g></svg>

After

Width:  |  Height:  |  Size: 8.9 KiB