Files
SlaveMatrix-SDL/SlaveMatrix/Assets/Parts//x2y0.svg
REDCODE 58f3bf6884 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
2026-06-13 17:56:01 +02:00

38 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1">
<g transform="translate(0.3373434528286707,0.10039800795060094) rotate(0) scale(1,1) translate(-0.012112918716738431,-0.012112918716738433)"><path d="M 0.012112918716738384 -0.04449237845474071 C 0.012306725305229667 -0.04295698187489885 0.014826210955616339 -0.023921297994307575 0.014438597778633778 -0.026067619496638397 C 0.014826210955616339 -0.023921297994307575 0.016958083429020398 -0.01812559550428186 0.01676427684052912 -0.018736520426770827" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.01676427684052912 -0.018736520426770827 C 0.01663347039593384 -0.017525924547837246 0.01537700570631871 -0.0009708221521108726 0.015194599505385742 -0.004209369879567842 C 0.01537700570631871 -0.0009708221521108726 0.019266363897252982 0.0221540041512362 0.018953151251724733 0.02012605230271281" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.018953151251724733 0.02012605230271281 C 0.018733798047561877 0.020489818074910265 0.015750893423854953 0.02506523145197798 0.016320912801770476 0.024491241569082264 C 0.015750893423854953 0.02506523145197798 0.011411586369233095 0.027013930897461395 0.012112918716738436 0.027013930897461395 C 0.011411586369233095 0.027013930897461395 0.007334905253790863 0.023917251686186556 0.00790492463170639 0.02449124156908227 C 0.007334905253790863 0.023917251686186556 0.005053332977589272 0.01976228653051537 0.005272686181752128 0.020126052302712825" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.005272686181752128 0.020126052302712825 C 0.005585898827280377 0.01809810045418944 0.009213644129024081 -0.007447917607024802 0.009031237928091114 -0.004209369879567831 C 0.009213644129024081 -0.007447917607024802 0.007330754148352456 -0.019947116305704404 0.007461560592947738 -0.01873652042677082" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.007461560592947738 -0.01873652042677082 C 0.007655367181439016 -0.019347445349259786 0.010174852831825633 -0.02821394099896922 0.009787239654843079 -0.026067619496638397 C 0.010174852831825633 -0.02821394099896922 0.01230672530522966 -0.046027775034582566 0.012112918716738384 -0.04449237845474071" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g id="器官左">
<g transform="translate(0.33425240833117903,0.10361072900911159) rotate(0) scale(1,1) translate(-0.06790510541082928,-0.06790510541082931)"><path d="M 0.06682842964914458 0.0663019968855992 C 0.06685711302683539 0.0663010742795526 0.06724498911987378 0.06632211916873801 0.06717263018143436 0.06629092561304017 C 0.06724498911987378 0.06632211916873801 0.06774041247116624 0.06670843571571768 0.06769673691041764 0.06667631955397325" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06769673691041764 0.06667631955397325 C 0.06774544804325952 0.06673813137392504 0.06837099348466064 0.06755165377049706 0.06828127050452025 0.06741806139339455 C 0.06837099348466064 0.06755165377049706 0.06881442451940083 0.0683512086363541 0.06877341267210232 0.06827942807920337" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06877341267210232 0.06827942807920337 C 0.0687934404272534 0.06834216250520173 0.06903110977561613 0.06913464001258833 0.06901374573391517 0.06903224119118366 C 0.06903110977561613 0.06913464001258833 0.06897911745906386 0.0695478783314657 0.06898178117251397 0.06950821393605938" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06898178117251397 0.06950821393605938 C 0.06895309779482316 0.06950913654210597 0.0685652217017848 0.06948809165292053 0.06863758064022422 0.06951928520861836 C 0.0685652217017848 0.06948809165292053 0.06806979835049236 0.06910177510594091 0.06811347391124097 0.06913389126768534" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06811347391124097 0.06913389126768534 C 0.06806476277839908 0.06907207944773355 0.06743921733699791 0.0682585570511615 0.0675289403171383 0.06839214942826402 C 0.06743921733699791 0.0682585570511615 0.06699578630225776 0.06745900218530446 0.06703679814955626 0.06753078274245519" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06703679814955626 0.06753078274245519 C 0.06701677039440519 0.06746804831645684 0.06677910104604241 0.06667557080907023 0.06679646508774338 0.0667779696304749 C 0.06677910104604241 0.06667557080907023 0.06683109336259468 0.06626233249019288 0.06682842964914458 0.0663019968855992" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3336927471784809,0.10724109350196503) rotate(0) scale(1,1) translate(-0.06790510541082928,-0.06790510541082931)"><path d="M 0.06682842964914458 0.0663019968855992 C 0.06685711302683539 0.0663010742795526 0.06724498911987378 0.06632211916873801 0.06717263018143436 0.06629092561304017 C 0.06724498911987378 0.06632211916873801 0.06774041247116624 0.06670843571571768 0.06769673691041764 0.06667631955397325" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06769673691041764 0.06667631955397325 C 0.06774544804325952 0.06673813137392504 0.06837099348466064 0.06755165377049706 0.06828127050452025 0.06741806139339455 C 0.06837099348466064 0.06755165377049706 0.06881442451940083 0.0683512086363541 0.06877341267210232 0.06827942807920337" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06877341267210232 0.06827942807920337 C 0.0687934404272534 0.06834216250520173 0.06903110977561613 0.06913464001258833 0.06901374573391517 0.06903224119118366 C 0.06903110977561613 0.06913464001258833 0.06897911745906386 0.0695478783314657 0.06898178117251397 0.06950821393605938" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06898178117251397 0.06950821393605938 C 0.06895309779482316 0.06950913654210597 0.0685652217017848 0.06948809165292053 0.06863758064022422 0.06951928520861836 C 0.0685652217017848 0.06948809165292053 0.06806979835049236 0.06910177510594091 0.06811347391124097 0.06913389126768534" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06811347391124097 0.06913389126768534 C 0.06806476277839908 0.06907207944773355 0.06743921733699791 0.0682585570511615 0.0675289403171383 0.06839214942826402 C 0.06743921733699791 0.0682585570511615 0.06699578630225776 0.06745900218530446 0.06703679814955626 0.06753078274245519" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06703679814955626 0.06753078274245519 C 0.06701677039440519 0.06746804831645684 0.06677910104604241 0.06667557080907023 0.06679646508774338 0.0667779696304749 C 0.06677910104604241 0.06667557080907023 0.06683109336259468 0.06626233249019288 0.06682842964914458 0.0663019968855992" fill="none" stroke="#000000" stroke-width="0.001"/>
</g></g>
<g id="器官右">
<g transform="translate(0.3404344973261623,0.10361072900911157) rotate(0) scale(1,1) translate(-0.06790510541082928,-0.06790510541082931)"><path d="M 0.06898178117251397 0.0663019968855992 C 0.06898444488596407 0.0663416612810055 0.06899638169221418 0.06688036845187957 0.06901374573391515 0.0667779696304749 C 0.06899638169221418 0.06688036845187957 0.0687533849169513 0.06759351716845355 0.06877341267210237 0.06753078274245519" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06877341267210237 0.06753078274245519 C 0.06873240082480385 0.06760256329960593 0.06819154752437984 0.06852574180536654 0.06828127050452024 0.06839214942826402 C 0.06819154752437984 0.06852574180536654 0.06764802577757567 0.06919570308763712 0.06769673691041755 0.06913389126768534" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06769673691041755 0.06913389126768534 C 0.06765306134966896 0.06916600742942976 0.06710027124299495 0.06955047876431619 0.06717263018143436 0.06951928520861836 C 0.06710027124299495 0.06955047876431619 0.06679974627145377 0.0695072913300128 0.06682842964914458 0.06950821393605938" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06682842964914458 0.06950821393605938 C 0.06682576593569448 0.06946854954065307 0.06681382912944438 0.06892984236977899 0.06679646508774341 0.06903224119118366 C 0.06681382912944438 0.06892984236977899 0.06705682590470728 0.06821669365320501 0.06703679814955621 0.06827942807920337" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06703679814955621 0.06827942807920337 C 0.06707780999685471 0.06820764752205263 0.0676186632972787 0.06728446901629205 0.06752894031713831 0.06741806139339455 C 0.0676186632972787 0.06728446901629205 0.0681621850440828 0.06661450773402147 0.06811347391124091 0.06667631955397325" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06811347391124091 0.06667631955397325 C 0.06815714947198952 0.06664420339222883 0.06870993957866364 0.06625973205734234 0.06863758064022422 0.06629092561304017 C 0.06870993957866364 0.06625973205734234 0.06901046455020478 0.06630291949164578 0.06898178117251397 0.0663019968855992" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.34099415847886044,0.10724109350196503) rotate(0) scale(1,1) translate(-0.06790510541082928,-0.06790510541082931)"><path d="M 0.06898178117251397 0.0663019968855992 C 0.06898444488596407 0.0663416612810055 0.06899638169221418 0.06688036845187957 0.06901374573391515 0.0667779696304749 C 0.06899638169221418 0.06688036845187957 0.0687533849169513 0.06759351716845355 0.06877341267210237 0.06753078274245519" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06877341267210237 0.06753078274245519 C 0.06873240082480385 0.06760256329960593 0.06819154752437984 0.06852574180536654 0.06828127050452024 0.06839214942826402 C 0.06819154752437984 0.06852574180536654 0.06764802577757567 0.06919570308763712 0.06769673691041755 0.06913389126768534" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06769673691041755 0.06913389126768534 C 0.06765306134966896 0.06916600742942976 0.06710027124299495 0.06955047876431619 0.06717263018143436 0.06951928520861836 C 0.06710027124299495 0.06955047876431619 0.06679974627145377 0.0695072913300128 0.06682842964914458 0.06950821393605938" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06682842964914458 0.06950821393605938 C 0.06682576593569448 0.06946854954065307 0.06681382912944438 0.06892984236977899 0.06679646508774341 0.06903224119118366 C 0.06681382912944438 0.06892984236977899 0.06705682590470728 0.06821669365320501 0.06703679814955621 0.06827942807920337" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06703679814955621 0.06827942807920337 C 0.06707780999685471 0.06820764752205263 0.0676186632972787 0.06728446901629205 0.06752894031713831 0.06741806139339455 C 0.0676186632972787 0.06728446901629205 0.0681621850440828 0.06661450773402147 0.06811347391124091 0.06667631955397325" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06811347391124091 0.06667631955397325 C 0.06815714947198952 0.06664420339222883 0.06870993957866364 0.06625973205734234 0.06863758064022422 0.06629092561304017 C 0.06870993957866364 0.06625973205734234 0.06901046455020478 0.06630291949164578 0.06898178117251397 0.0663019968855992" fill="none" stroke="#000000" stroke-width="0.001"/>
</g></g>
<g transform="translate(0.3373434528286707,0.06954856880709169) rotate(0) scale(1,1) translate(-0.004037639572246146,-0.008075279144492287)"><path d="M 0.00403763957224615 0.034579780913962375 C 0.00403763957224615 0.0326108583830615 0.004037639572246147 0.008504216112474382 0.004037639572246147 0.010952710543151854 C 0.004037639572246147 0.008504216112474382 0.004037639572246149 0.002811740293613596 0.0040376395722461446 0.0051978477458327205 C 0.004037639572246149 0.002811740293613596 0.0040376395722462 -0.019587114435920167 0.004037639572246196 -0.017680578883477637" fill="none" stroke="#000000" stroke-width="0.001"/>
</g></svg>