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:
49
SlaveMatrix/Assets/Parts/BackHair0/x0y1.svg
Normal file
49
SlaveMatrix/Assets/Parts/BackHair0/x0y1.svg
Normal file
@@ -0,0 +1,49 @@
|
||||
<?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.07847599559563229) rotate(0) scale(1,1) translate(-0.2178778082444383,-0.21061995408824444)"><path d="M 0.2456020006120999 0.23378664862188522 C 0.24529247248894492 0.23493027155705123 0.24073248845225406 0.2494909368722861 0.24188766313423996 0.2475101238438775 C 0.24073248845225406 0.2494909368722861 0.2297390831874525 0.2587673083827231 0.23173990442826928 0.25755640496278853 C 0.2297390831874525 0.2587673083827231 0.2155674588804668 0.2620409648830925 0.2178778082444386 0.2620409648830925 C 0.2155674588804668 0.2620409648830925 0.2020148908197911 0.25634550154285407 0.2040157120606079 0.25755640496278864 C 0.2020148908197911 0.25634550154285407 0.19271277867265127 0.24552931081546894 0.19386795335463716 0.24751012384387755 C 0.19271277867265127 0.24552931081546894 0.18984408775362221 0.23264302568671918 0.1901536158767772 0.23378664862188522" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1901536158767772 0.23378664862188522 C 0.1904631439999322 0.23264302568671918 0.19502312803662308 0.2180823603714842 0.1938679533546372 0.22006317339989281 C 0.19502312803662308 0.2180823603714842 0.20601653330142475 0.20887326934581574 0.20401571206060795 0.21001689228098178 C 0.20601653330142475 0.20887326934581574 0.22018815760841043 0.20633969817790035 0.21787780824443864 0.20633969817790035 C 0.22018815760841043 0.20633969817790035 0.2337407256690861 0.21116051521614781 0.23173990442826933 0.21001689228098178 C 0.2337407256690861 0.21116051521614781 0.24304283781622593 0.22204398642830142 0.24188766313424004 0.22006317339989281 C 0.24304283781622593 0.22204398642830142 0.2459115287352549 0.23493027155705126 0.2456020006120999 0.23378664862188522" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.33734345282867095,0.12428215862934613) rotate(0) scale(1,1) translate(-0.19551282657519264,-0.15725534279570835)"><path d="M 0.19551282657519264 0.2491770976372723 C 0.19538877912759423 0.24712295845960375 0.1937761623088146 0.22046248687408027 0.19402425720401145 0.22452742750524957 C 0.1937761623088146 0.22046248687408027 0.19241164038523187 0.19838700860973982 0.1925356878328303 0.20039781006324056" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1925356878328303 0.20039781006324056 C 0.19248668759503604 0.19905869840642043 0.19194589840615459 0.18065157436812918 0.19194768497929923 0.1843284701813991 C 0.19194589840615459 0.18065157436812918 0.192561462619744 0.15393727614755162 0.1925142489550944 0.15627506030400143" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.19851140419529087 0.15627506030400143 C 0.19855861785994047 0.15861284446045124 0.19907618159794144 0.18800536599466905 0.19907796817108608 0.1843284701813991 C 0.19907618159794144 0.18800536599466905 0.19844096507976075 0.2017369217200607 0.198489965317555 0.20039781006324056" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.198489965317555 0.20039781006324056 C 0.19836591786995655 0.2024086115167413 0.19675330105117692 0.22859236813641887 0.19700139594637378 0.22452742750524957 C 0.19675330105117692 0.22859236813641887 0.19538877912759423 0.25123123681494086 0.19551282657519264 0.2491770976372723" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3315941297101035,0.12302840530544282) rotate(0) scale(1,1) translate(-0.17182654921449536,-0.1626271006073876)"><path d="M 0.1747139434286262 0.1626271006073876 C 0.17475250227575354 0.1648365970958273 0.17515576294029492 0.19303918799591038 0.1751766495941541 0.18914105846866394 C 0.17515576294029492 0.19303918799591038 0.17440385808132947 0.21109328797315155 0.174463303582316 0.20940465493434482" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.174463303582316 0.20940465493434482 C 0.17437035650371924 0.2111684361906806 0.17310385421191493 0.23432401096326588 0.17334793863915482 0.23057003001037432 C 0.17310385421191493 0.23432401096326588 0.17138315310679433 0.25644262606559926 0.17153429045543744 0.25445242636904347" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17153429045543744 0.25445242636904347 C 0.17144141357773998 0.2524622266724877 0.170223197626842 0.22681604905748276 0.17041976792306798 0.23057003001037432 C 0.170223197626842 0.22681604905748276 0.16907175348219708 0.20764087367800904 0.1691754469007256 0.20940465493434482" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1691754469007256 0.20940465493434482 C 0.16903938478286767 0.2077160218955381 0.16752301049473356 0.1852429289414175 0.16754270148643033 0.18914105846866394 C 0.16752301049473356 0.1852429289414175 0.16905552612652566 0.16041760411894793 0.1689391550003645 0.1626271006073876" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3279408233169804,0.1204963061541541) rotate(0) scale(1,1) translate(-0.17172616467872354,-0.16464542498289636)"><path d="M 0.1745117662633915 0.16472025555908756 C 0.17453482795603673 0.1666816550905765 0.1746732695557127 0.19222695045035282 0.1747885065751343 0.18825704993695475 C 0.1746732695557127 0.19222695045035282 0.17299062331826526 0.21436756270177373 0.17312892203033212 0.21235906171986457" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17312892203033212 0.21235906171986457 C 0.17298371800839152 0.21420528790094542 0.1710345335049229 0.2382096960005804 0.17138647376704483 0.23451377589283476 C 0.1710345335049229 0.2382096960005804 0.16869890264468776 0.25855979693947706 0.16890563888486906 0.2567101030128123" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16890563888486906 0.2567101030128123 C 0.1688440810392188 0.2547758809201305 0.16810147352533697 0.22979230472448775 0.16816694473706587 0.2334994379006309 C 0.16810147352533697 0.22979230472448775 0.16811607097804354 0.2104515938156331 0.16811998434412218 0.21222450489909447" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16811998434412218 0.21222450489909447 C 0.16804978045893953 0.21021040283999776 0.1673459192844251 0.1840841209822347 0.16727753772193066 0.1880552801899338 C 0.1673459192844251 0.1840841209822347 0.16907914854173264 0.16261353725810274 0.16894056309405556 0.16457059440670513" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.32219150019841303,0.11486552260992469) rotate(0) scale(1,1) translate(-0.17220112318371358,-0.1645055777824458)"><path d="M 0.17546626481932254 0.16441786515646095 C 0.17549439757268942 0.16637125614461476 0.17574492900966782 0.19185441694806185 0.17580385785972497 0.18785855701430668 C 0.17574492900966782 0.19185441694806185 0.17467205701521285 0.21441065330712433 0.17475911861863686 0.21236818436152297" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17475911861863686 0.21236818436152297 C 0.17453341215322937 0.21449567890024843 0.17153184804011778 0.24176201840517858 0.17205064103374718 0.23789811882622844 C 0.17153184804011778 0.24176201840517858 0.16824051616686211 0.2604713843491492 0.16853360269508405 0.25873497930892453" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16853360269508405 0.25873497930892453 C 0.16856941435288028 0.2568503216712361 0.16897741884657064 0.23226874645747347 0.1689633425886388 0.2361190876566634 C 0.16897741884657064 0.23226874645747347 0.16868078239040185 0.21056520135714415 0.16870251779026624 0.21253088491864564" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16870251779026624 0.21253088491864564 C 0.16862777653587166 0.21049276253902363 0.16782507805068447 0.18407861682066373 0.16780562273753127 0.18807341636318164 C 0.16782507805068447 0.18407861682066373 0.16903017811565235 0.16263661324553463 0.16893598154810457 0.16459329040843057" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.31644217707984557,0.10970774271469325) rotate(0) scale(1,1) translate(-0.17149933224096225,-0.16424072920864125)"><path d="M 0.17451441354652203 0.16424072920864125 C 0.1745901729649076 0.16622887801516106 0.175399228776772 0.1922465321172311 0.1754235265671486 0.1880985148868789 C 0.175399228776772 0.1922465321172311 0.17412278285324065 0.21617680439670012 0.1742228400620028 0.21401693597286772" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1742228400620028 0.21401693597286772 C 0.17395221142167394 0.2160634023245805 0.1703103716136264 0.24228454794229734 0.1709752963780563 0.2385745321934208 C 0.1703103716136264 0.24228454794229734 0.1658494467647426 0.26020067435654987 0.16624374288884364 0.2585371249593861" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16624374288884364 0.2585371249593861 C 0.16637327074126507 0.2565309883270205 0.16797404443597194 0.23073890390431712 0.16779807711790065 0.23446348537099876 C 0.16797404443597194 0.23073890390431712 0.16840179017134904 0.2121237025248905 0.16835535070569915 0.2138421473592065" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16835535070569915 0.2138421473592065 C 0.1682878971646218 0.2116968446531792 0.16755664989857957 0.1839650633743318 0.16754590821277096 0.1880985148868789 C 0.16755664989857957 0.1839650633743318 0.16856244616228844 0.16225258040212143 0.16848425093540248 0.16424072920864125" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3130281152203159,0.10164269012927307) rotate(0) scale(1,1) translate(-0.17343256089445602,-0.16866918493841992)"><path d="M 0.1767588888908717 0.16866918493841992 C 0.17670925333262266 0.17010211322320912 0.1760229198208578 0.18938487751300417 0.17616326219188302 0.18586432435589026 C 0.1760229198208578 0.18938487751300417 0.1749840736257927 0.2130034476961117 0.1750747804385689 0.21091582282378699" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1750747804385689 0.21091582282378699 C 0.17479239357692336 0.2136669809039513 0.17088177169929158 0.2485509142313085 0.17168613809882263 0.24392971978575875 C 0.17088177169929158 0.2485509142313085 0.16490040410631082 0.26824019253576953 0.16542238364419634 0.26637015617038406" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16542238364419634 0.26637015617038406 C 0.16565955937955146 0.2642671206656654 0.1686355073467078 0.2363668784901588 0.16826849246845768 0.24113373011375958 C 0.1686355073467078 0.2363668784901588 0.1699564013260925 0.2065041205682926 0.1698265621831975 0.20916793668717468" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1698265621831975 0.20916793668717468 C 0.169845962890366 0.20722596899290097 0.1700826765621229 0.18248942837682736 0.17005937066921933 0.18586432435589026 C 0.1700826765621229 0.18248942837682736 0.17011013808377545 0.16723625665363073 0.17010623289804036 0.16866918493841992" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3430927759472383,0.12302840530544282) rotate(0) scale(1,1) translate(-0.17182654921449536,-0.1626271006073876)"><path d="M 0.17471394342862617 0.1626271006073876 C 0.17483031455478737 0.1648365970958273 0.17609070595086368 0.19303918799591038 0.17611039694256042 0.18914105846866394 C 0.17609070595086368 0.19303918799591038 0.17434158941040717 0.21109328797315155 0.1744776515282651 0.20940465493434482" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1744776515282651 0.20940465493434482 C 0.17437395810973658 0.2111684361906806 0.17303676020969672 0.23432401096326588 0.1732333305059227 0.23057003001037432 C 0.17303676020969672 0.23432401096326588 0.1720259310958558 0.25644262606559926 0.17211880797355325 0.25445242636904347" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17211880797355325 0.25445242636904347 C 0.17196767062491014 0.2524622266724877 0.17006107536259601 0.22681604905748276 0.17030515978983587 0.23057003001037432 C 0.17006107536259601 0.22681604905748276 0.169096847768078 0.20764087367800904 0.16918979484667476 0.20940465493434482" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16918979484667476 0.20940465493434482 C 0.16913034934568824 0.2077160218955381 0.16845556218097743 0.1852429289414175 0.16847644883483662 0.18914105846866394 C 0.16845556218097743 0.1852429289414175 0.16897771384749188 0.16041760411894793 0.16893915500036455 0.1626271006073876" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3467460823403615,0.1204963061541541) rotate(0) scale(1,1) translate(-0.17172616467872354,-0.16464542498289636)"><path d="M 0.1745117662633916 0.16457059440670513 C 0.17465035171106869 0.16652765155530752 0.17624317319801094 0.19202643939763292 0.1761747916355165 0.1880552801899338 C 0.17624317319801094 0.19202643939763292 0.17526214112814242 0.2142386069581912 0.17533234501332504 0.21222450489909447" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17533234501332504 0.21222450489909447 C 0.1753284316472464 0.21399741598255584 0.17521991340865245 0.23720657107677406 0.17528538462038135 0.2334994379006309 C 0.17521991340865245 0.23720657107677406 0.1744851326269279 0.25864432510549407 0.17454669047257818 0.2567101030128123" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17454669047257818 0.2567101030128123 C 0.17433995423239687 0.2548604090861475 0.17171391532828045 0.23081785578508912 0.17206585559040238 0.23451377589283476 C 0.17171391532828045 0.23081785578508912 0.1701782033051744 0.21051283553878372 0.17032340732711504 0.21235906171986457" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17032340732711504 0.21235906171986457 C 0.17018510861504818 0.2103505607379554 0.1685485857628912 0.18428714942355667 0.16866382278231282 0.18825704993695475 C 0.1685485857628912 0.18428714942355667 0.16896362478670093 0.16275885602759863 0.1689405630940557 0.16472025555908756" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3524954054589289,0.11486552260992469) rotate(0) scale(1,1) translate(-0.17220112318371358,-0.1645055777824458)"><path d="M 0.17546626481932254 0.16459329040843057 C 0.17556046138687031 0.1665499675713265 0.17661607894304912 0.19206821590569956 0.17659662362989592 0.18807341636318164 C 0.17661607894304912 0.19206821590569956 0.17562498732276632 0.21456900729826764 0.1756997285771609 0.21253088491864564" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1756997285771609 0.21253088491864564 C 0.17567799317729652 0.21449656848014712 0.17545298003672022 0.23996942885585332 0.17543890377878837 0.2361190876566634 C 0.17545298003672022 0.23996942885585332 0.17590445533013943 0.26061963694661294 0.1758686436723432 0.25873497930892453" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1758686436723432 0.25873497930892453 C 0.17557555714412126 0.2569985742686999 0.1718328123400506 0.2340342192472783 0.17235160533368002 0.23789811882622844 C 0.1718328123400506 0.2340342192472783 0.1694174212833828 0.2102406898227975 0.16964312774879028 0.21236818436152297" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16964312774879028 0.21236818436152297 C 0.16955606614536628 0.2103257154159216 0.16853945965764508 0.1838626970805515 0.16859838850770223 0.18785855701430668 C 0.16853945965764508 0.1838626970805515 0.16896411430147149 0.16246447416830714 0.16893598154810463 0.16441786515646095" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3582447285774963,0.10970774271469325) rotate(0) scale(1,1) translate(-0.17149933224096225,-0.16424072920864125)"><path d="M 0.174514413546522 0.16424072920864125 C 0.17459260877340796 0.16622887801516106 0.1754634979549622 0.192231966399426 0.17545275626915358 0.1880985148868789 C 0.1754634979549622 0.192231966399426 0.17457586023514804 0.21598745006523382 0.17464331377622538 0.2138421473592065" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17464331377622538 0.2138421473592065 C 0.17468975324187525 0.21556059219352253 0.17537655468209512 0.2381880668376804 0.17520058736402383 0.23446348537099876 C 0.17537655468209512 0.2381880668376804 0.1768844494455023 0.2605432615917517 0.17675492159308087 0.2585371249593861" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17675492159308087 0.2585371249593861 C 0.17636062546897982 0.2568735755622223 0.17135844333943825 0.23486451644454429 0.17202336810386817 0.2385745321934208 C 0.17135844333943825 0.23486451644454429 0.1685051957795929 0.21197046962115496 0.16877582441992175 0.21401693597286772" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16877582441992175 0.21401693597286772 C 0.1686757672111596 0.21185706754903533 0.16755084012439928 0.18395049765652668 0.16757513791477588 0.1880985148868789 C 0.16755084012439928 0.18395049765652668 0.16856001035378804 0.16225258040212143 0.16848425093540248 0.16424072920864125" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.361658790437026,0.10164269012927307) rotate(0) scale(1,1) translate(-0.17343256089445602,-0.16866918493841992)"><path d="M 0.17675888889087168 0.16866918493841992 C 0.17676279407660678 0.17010211322320912 0.17682905701259632 0.18923922033495316 0.17680575111969274 0.18586432435589026 C 0.17682905701259632 0.18923922033495316 0.17705796031288315 0.2111099043814484 0.17703855960571466 0.20916793668717468" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17703855960571466 0.20916793668717468 C 0.17716839874860965 0.21183175280605676 0.17896364419870453 0.24590058173736035 0.17859662932045445 0.24113373011375958 C 0.17896364419870453 0.24590058173736035 0.18167991388007093 0.26847319167510275 0.18144273814471581 0.26637015617038406" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.18144273814471581 0.26637015617038406 C 0.18092075860683027 0.2645001198049986 0.17437461729055836 0.239308525340209 0.1751789836900894 0.24392971978575875 C 0.17437461729055836 0.239308525340209 0.17150795448869766 0.20816466474362266 0.17179034135034318 0.21091582282378699" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17179034135034318 0.21091582282378699 C 0.171699634537567 0.20882819795146226 0.1705615172260038 0.18234377119877634 0.17070185959702902 0.18586432435589026 C 0.1705615172260038 0.18234377119877634 0.17005659733979134 0.16723625665363073 0.1701062328980404 0.16866918493841992" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g></svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
Reference in New Issue
Block a user