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:
43
SlaveMatrix/Assets/Parts/BackHair0/x0y8.svg
Normal file
43
SlaveMatrix/Assets/Parts/BackHair0/x0y8.svg
Normal file
@@ -0,0 +1,43 @@
|
||||
<?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.245122456365314 0.235580768030074 0.2389452910220962 0.2582449981683262 0.23984746965066872 0.25531608152015056 C 0.2389452910220962 0.2582449981683262 0.2329450519520436 0.2696271114436592 0.23477585706922943 0.26893364839999273 C 0.2329450519520436 0.2696271114436592 0.2150614667736401 0.2636376380441483 0.2178778082444386 0.2636376380441483 C 0.2150614667736401 0.2636376380441483 0.19914895430246188 0.2682401853563264 0.20097975941964774 0.26893364839999284 C 0.19914895430246188 0.2682401853563264 0.19500596820963584 0.252387164871975 0.1959081468382084 0.2553160815201506 C 0.19500596820963584 0.252387164871975 0.18967407162999128 0.23199252921369645 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 id="お下げ左">
|
||||
<g transform="translate(0.32110341688472954,0.13544916735502502) rotate(0) scale(1,1) translate(-0.020184612282548316,-0.020184612282548316)"><path d="M 0.024406860262124797 0.018812720751604325 C 0.02462431799215053 0.019481986827336033 0.022224793314533378 0.02418990012175727 0.022794105042857154 0.023776270939437814 C 0.022224793314533378 0.02418990012175727 0.017005807793915705 0.023362641757118358 0.01757511952223948 0.023776270939437814 C 0.017005807793915705 0.023362641757118358 0.01617982203299757 0.018143454675872618 0.015962364302971835 0.018812720751604325 C 0.01617982203299757 0.018143454675872618 0.020888320279144397 0.015745078030657306 0.020184612282548316 0.015745078030657306 C 0.020888320279144397 0.015745078030657306 0.02462431799215053 0.019481986827336033 0.024406860262124797 0.018812720751604325 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.32110341688472954,0.13544916735502502) rotate(0) scale(1,1) translate(-0.02639292779899103,-0.02639292779899103)"><path d="M 0.0292679453377158 0.025458777973644302 C 0.0294160168841478 0.025914495334422145 0.02778213001484928 0.029120212610557656 0.02816978635617501 0.02883856379233355 C 0.02778213001484928 0.029120212610557656 0.024228412900481326 0.028556914974109445 0.024616069241807054 0.02883856379233355 C 0.024228412900481326 0.028556914974109445 0.023665981806698252 0.02500306061286646 0.023517910260266256 0.025458777973644302 C 0.023665981806698252 0.02500306061286646 0.026872097388778493 0.023369955462999453 0.02639292779899103 0.023369955462999453 C 0.026872097388778493 0.023369955462999453 0.0294160168841478 0.025914495334422145 0.0292679453377158 0.025458777973644302 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3182585573914811,0.13725898064642297) rotate(0) scale(1,1) translate(-0.16645487105255777,-0.16447013861067913)"><path d="M 0.16870635156326613 0.16401779130210858 C 0.16847353050831587 0.1653604535946437 0.16535381094263782 0.18297220781609022 0.16591249890386311 0.18012973881253008 C 0.16535381094263782 0.18297220781609022 0.16167622912228766 0.19962722605585526 0.1620020960285627 0.19812741934483025" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1620020960285627 0.19812741934483025 C 0.16192428956458133 0.19914293854525336 0.16107364874238575 0.21250290380620207 0.16106841846078612 0.21031364974990757 C 0.16107364874238575 0.21250290380620207 0.16214789615333935 0.22557220287623567 0.16206485940775833 0.22439846802036428" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16206485940775833 0.22439846802036428 C 0.16167160756473895 0.2228511697767117 0.15686221668104633 0.203113700668783 0.15734583729152557 0.2058308890965333 C 0.15686221668104633 0.203113700668783 0.15617104331454762 0.19062231670326307 0.15626141208200747 0.1917922068873608" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.15626141208200747 0.1917922068873608 C 0.1564751068285329 0.19067681971140216 0.1594818207541026 0.17624238069137196 0.15882574904031269 0.17840756077585726 C 0.1594818207541026 0.17624238069137196 0.16457664961475088 0.1647602529650105 0.1641342726474864 0.16581004587353718" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1641342726474864 0.16581004587353718 C 0.16443327517365322 0.16551160545963686 0.16810330953780334 0.1620794063591144 0.16772230296148835 0.16222876090673344 C 0.16810330953780334 0.1620794063591144 0.1687883556134143 0.16416687716838985 0.16870635156326613 0.16401779130210858" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.32391373566001425,0.13800332333299054) rotate(0) scale(1,1) translate(-0.17045543472430674,-0.16823329692941572)"><path d="M 0.17216410021891074 0.17095724360379805 C 0.172313209950261 0.17195121247788403 0.17409765247168435 0.1849751711259556 0.17395341699511385 0.1828848700928298 C 0.17409765247168435 0.1849751711259556 0.17389005168297694 0.19713718816034753 0.1738949259377567 0.19604085600130772" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1738949259377567 0.19604085600130772 C 0.17371129922713235 0.19733024725370163 0.1711555316348784 0.21424412142362648 0.17169140541026456 0.21151355103003464 C 0.1711555316348784 0.21424412142362648 0.16711219356836085 0.23024887986560788 0.16746444063312269 0.22880770072440995" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16746444063312269 0.22880770072440995 C 0.167494443870764 0.2274264648578775 0.16781529924374072 0.2097315550023263 0.16782447948481868 0.21223287032602067 C 0.16781529924374072 0.2097315550023263 0.16731509426146804 0.1976718373829154 0.16735427774018732 0.19879191684007735" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16735427774018732 0.19879191684007735 C 0.16736730502013547 0.19793397390159292 0.1676203001168115 0.18608630405324442 0.16751060509956509 0.18849660157826423 C 0.1676203001168115 0.18608630405324442 0.16876728568444252 0.16831599195330424 0.16867061794714425 0.16986834653983962" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16867061794714425 0.16986834653983962 C 0.16873552849396295 0.16956158371586968 0.1697406680316158 0.16627793407419691 0.1694495445089686 0.1661871926522004 C 0.1697406680316158 0.16627793407419691 0.17239031319473924 0.1713547478497645 0.17216410021891074 0.17095724360379805" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.32110341688472954,0.13544916735502502) rotate(0) scale(1,1) translate(-0.16708083618886968,-0.161146472941817)"><path d="M 0.1698255967385791 0.16271202691222622 C 0.16975751973230843 0.1640878909061021 0.16874846324854986 0.18225804195065465 0.16900867266333108 0.1792223948387367 C 0.16874846324854986 0.18225804195065465 0.16651095135269398 0.20079957537328355 0.16670308376120452 0.19913979225524148" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16670308376120452 0.19913979225524148 C 0.16658941669715993 0.20019251938313168 0.16513648422876753 0.21475122272547886 0.16533907899266934 0.21177251778992398 C 0.16513648422876753 0.21475122272547886 0.16418301889452566 0.2368102292895646 0.16427194659438288 0.23488425148189995" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16427194659438288 0.23488425148189995 C 0.16398167256737672 0.23287422032800523 0.16039194417322633 0.2072866916393176 0.16078865827030905 0.21076387763516327 C 0.16039194417322633 0.2072866916393176 0.1594049373593137 0.19169086468980095 0.15951137742939026 0.1931580195317519" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.15951137742939026 0.1931580195317519 C 0.15958233661226162 0.1919110827354021 0.16073458292550077 0.17558525540762515 0.1603628876238466 0.17819477797555436 C 0.16073458292550077 0.17558525540762515 0.16427245716802327 0.16048116294502196 0.16397172104924046 0.16184374871660137" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16397172104924046 0.16184374871660137 C 0.16424421622843535 0.16168117680701774 0.1677294861736906 0.15996524231790002 0.16724166319957903 0.15989288580159794 C 0.1677294861736906 0.15996524231790002 0.17004092453349579 0.1629469553381119 0.1698255967385791 0.16271202691222622" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g></g>
|
||||
<g id="お下げ右">
|
||||
<g transform="translate(0.3535834887726123,0.13544916735502496) rotate(0) scale(1,1) translate(-0.020184612282548316,-0.020184612282548316)"><path d="M 0.024406860262124797 0.018812720751604325 C 0.02462431799215053 0.019481986827336033 0.022224793314533378 0.02418990012175727 0.022794105042857154 0.023776270939437814 C 0.022224793314533378 0.02418990012175727 0.017005807793915705 0.023362641757118358 0.01757511952223948 0.023776270939437814 C 0.017005807793915705 0.023362641757118358 0.01617982203299757 0.018143454675872618 0.015962364302971835 0.018812720751604325 C 0.01617982203299757 0.018143454675872618 0.020888320279144397 0.015745078030657306 0.020184612282548316 0.015745078030657306 C 0.020888320279144397 0.015745078030657306 0.02462431799215053 0.019481986827336033 0.024406860262124797 0.018812720751604325 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3535834887726123,0.13544916735502496) rotate(0) scale(1,1) translate(-0.02639292779899103,-0.02639292779899103)"><path d="M 0.0292679453377158 0.025458777973644302 C 0.0294160168841478 0.025914495334422145 0.02778213001484928 0.029120212610557656 0.02816978635617501 0.02883856379233355 C 0.02778213001484928 0.029120212610557656 0.024228412900481326 0.028556914974109445 0.024616069241807054 0.02883856379233355 C 0.024228412900481326 0.028556914974109445 0.023665981806698252 0.02500306061286646 0.023517910260266256 0.025458777973644302 C 0.023665981806698252 0.02500306061286646 0.026872097388778493 0.023369955462999453 0.02639292779899103 0.023369955462999453 C 0.026872097388778493 0.023369955462999453 0.0294160168841478 0.025914495334422145 0.0292679453377158 0.025458777973644302 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3564283482658608,0.13725898064642292) rotate(0) scale(1,1) translate(-0.16645487105255777,-0.16447013861067913)"><path d="M 0.16420339054184935 0.1640177913021086 C 0.1642853945919975 0.16386870543582735 0.16556844571994214 0.1623781154543525 0.16518743914362716 0.16222876090673344 C 0.16556844571994214 0.1623781154543525 0.1690744719837959 0.1661084862874375 0.16877546945762908 0.16581004587353718" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16877546945762908 0.16581004587353718 C 0.16921784642489357 0.16685983878206384 0.17474006477859264 0.18057274086034256 0.17408399306480274 0.17840756077585726 C 0.17474006477859264 0.18057274086034256 0.17686202476963342 0.19290759406331942 0.17664833002310798 0.1917922068873608" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17664833002310798 0.1917922068873608 C 0.17655796125564815 0.1929620970714585 0.17508028420311073 0.2085480775242836 0.17556390481358997 0.2058308890965333 C 0.17508028420311073 0.2085480775242836 0.17045163085433768 0.22594576626401686 0.1708448826973571 0.22439846802036428" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1708448826973571 0.22439846802036428 C 0.17092791944293811 0.2232247331644929 0.171846553925929 0.20812439569361307 0.17184132364432936 0.21031364974990757 C 0.171846553925929 0.20812439569361307 0.17082983961257142 0.19711190014440713 0.1709076460765528 0.19812741934483025" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1709076460765528 0.19812741934483025 C 0.17058177917027775 0.19662761263380524 0.16643855524002707 0.17728726980896994 0.16699724320125237 0.18012973881253008 C 0.16643855524002707 0.17728726980896994 0.1639705694868991 0.16267512900957348 0.16420339054184935 0.1640177913021086" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.35077316999732766,0.13800332333299048) rotate(0) scale(1,1) translate(-0.17045543472430674,-0.16823329692941572)"><path d="M 0.1687467692297029 0.17095724360379802 C 0.1689729822055314 0.17055973935783156 0.17175244846229218 0.16609645123020386 0.17146132493964497 0.1661871926522004 C 0.17175244846229218 0.16609645123020386 0.17230516204828805 0.17017510936380956 0.17224025150146935 0.16986834653983962" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17224025150146935 0.16986834653983962 C 0.17233691923876762 0.171420701126375 0.1735099593662949 0.190906899103284 0.17340026434904848 0.1884966015782642 C 0.1735099593662949 0.190906899103284 0.1735696189883744 0.19964985977856178 0.17355659170842624 0.19879191684007735" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17355659170842624 0.19879191684007735 C 0.17351740822970696 0.1999119962972393 0.17307720972271692 0.21473418564971505 0.17308638996379486 0.21223287032602067 C 0.17307720972271692 0.21473418564971505 0.1734764320531323 0.23018893659094236 0.17344642881549094 0.22880770072440992" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17344642881549094 0.22880770072440992 C 0.1730941817507291 0.22736652158321197 0.16868359026296292 0.20878298063644277 0.1692194640383491 0.2115135510300346 C 0.16868359026296292 0.20878298063644277 0.16683231680023253 0.19475146474891378 0.16701594351085688 0.1960408560013077" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16701594351085688 0.1960408560013077 C 0.16701106925607712 0.19494452384226788 0.16710168793007027 0.180794569059704 0.16695745245349977 0.1828848700928298 C 0.16710168793007027 0.180794569059704 0.16889587896105315 0.16996327472971204 0.1687467692297029 0.17095724360379802" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.3535834887726123,0.13544916735502496) rotate(0) scale(1,1) translate(-0.16708083618886968,-0.161146472941817)"><path d="M 0.16433607563916033 0.16271202691222622 C 0.164551403434077 0.16247709848634054 0.16740783215227198 0.15982052928529586 0.16692000917816044 0.15989288580159794 C 0.16740783215227198 0.15982052928529586 0.17046244650769382 0.162006320626185 0.17018995132849896 0.16184374871660137" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17018995132849896 0.16184374871660137 C 0.17049068744728177 0.16320633448818078 0.174170480055547 0.18080430054348354 0.17379878475389282 0.17819477797555433 C 0.174170480055547 0.18080430054348354 0.17472125413122053 0.1944049563281017 0.17465029494834916 0.1931580195317519" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17465029494834916 0.1931580195317519 C 0.1745438548782726 0.19462517437370286 0.17297630001034764 0.21424106363100895 0.17337301410743036 0.21076387763516327 C 0.17297630001034764 0.21424106363100895 0.16959945175635044 0.23689428263579465 0.1698897257833566 0.23488425148189992" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1698897257833566 0.23488425148189992 C 0.16980079808349938 0.23295827367423527 0.16861999862116828 0.2087938128543691 0.16882259338507008 0.21177251778992398 C 0.16861999862116828 0.2087938128543691 0.1673449215524903 0.19808706512735128 0.1674585886165349 0.19913979225524148" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1674585886165349 0.19913979225524148 C 0.16726645620802436 0.1974800091371994 0.16489279029962714 0.17618674772681875 0.16515299971440836 0.1792223948387367 C 0.16489279029962714 0.17618674772681875 0.16426799863288966 0.16133616291835035 0.16433607563916033 0.16271202691222622" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
Reference in New Issue
Block a user