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/x0y9.svg
Normal file
43
SlaveMatrix/Assets/Parts/BackHair0/x0y9.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.3237366584363228,0.13811746710788242) rotate(0) scale(1,1) translate(-0.16645487105255777,-0.16447013861067913)"><path d="M 0.16416576964393267 0.1631892598346399 C 0.16430279604074732 0.1630780901088516 0.16617386569920722 0.1621413825233496 0.16581008640570846 0.16185522312518036 C 0.16617386569920722 0.1621413825233496 0.168757874062602 0.167020501736628 0.1685311211659179 0.16662317261267048" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1685311211659179 0.16662317261267048 C 0.1686878156920809 0.16781522732023688 0.17040734173377856 0.18350404743088441 0.17041145547987413 0.18092782910346708 C 0.17040734173377856 0.18350404743088441 0.16832094794051244 0.19892195616152947 0.16848175621277103 0.19753779254167853" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16848175621277103 0.19753779254167853 C 0.16831877059772785 0.19840953865846597 0.16600827708887533 0.21022236235670536 0.16652592883225284 0.20799874594312778 C 0.16600827708887533 0.21022236235670536 0.16191526916390675 0.22557305980139966 0.16226993529224107 0.2242211895046095" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16226993529224107 0.2242211895046095 C 0.16232296081767245 0.22282197508961246 0.16293177694235875 0.20515351364597526 0.16290624159741765 0.20743061652464506 C 0.16293177694235875 0.20515351364597526 0.16254886925104406 0.19601806649689893 0.16257635943153434 0.19689595496057172" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16257635943153434 0.19689595496057172 C 0.16252557459932715 0.19545482680694853 0.16209939229608142 0.17679352585659905 0.16196694144504822 0.17960241711709338 C 0.16209939229608142 0.17679352585659905 0.16434900532717306 0.16182149672776877 0.16416576964393267 0.1631892598346399" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.31731694317659054,0.1370234819767626) rotate(0) scale(1,1) translate(-0.17045543472430674,-0.16823329692941572)"><path d="M 0.16807618569056804 0.17058877310373663 C 0.16839736599668365 0.17024025262205683 0.17227307839781206 0.1663765274042289 0.17193034936395526 0.16640652732357888 C 0.17227307839781206 0.1663765274042289 0.17221048282459084 0.17054729463386656 0.17218893409684963 0.17022877407153675" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17218893409684963 0.17022877407153675 C 0.17213082443192054 0.17102416059512035 0.17111615109610512 0.18211217066579533 0.17149161811770072 0.1797734123545401 C 0.17111615109610512 0.18211217066579533 0.1673659724810357 0.19983724559427102 0.16768332983770226 0.1982938738065994" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16768332983770226 0.1982938738065994 C 0.16733669711247134 0.19938991815263524 0.1625559800610388 0.21382931668400706 0.16352373713493126 0.21144640595902922 C 0.1625559800610388 0.21382931668400706 0.15544912060233107 0.22817566888527546 0.15607024495099261 0.22688880250633345" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.15607024495099261 0.22688880250633345 C 0.1563775173911238 0.22554869653551182 0.16024500807633343 0.20816490030685447 0.15975751423256673 0.21080753085647405 C 0.16024500807633343 0.20816490030685447 0.1621003924798285 0.19387471133210055 0.16192017107619297 0.1951772359108985" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16192017107619297 0.1951772359108985 C 0.1621420833627651 0.1938284266054349 0.16509611973292304 0.17694248567807183 0.16458311851505844 0.17899152424533532 C 0.16509611973292304 0.17694248567807183 0.1683672746218605 0.16988854384193675 0.16807618569056804 0.17058877310373663" 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.16386599457844414 0.16138466070957277 C 0.16414768065373703 0.16125921350123318 0.16776936450376045 0.1599571012778171 0.1672462274819589 0.15987929420949754 C 0.16776936450376045 0.1599571012778171 0.17038508978657177 0.16252159980606648 0.1701436388400631 0.16231834552940733" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1701436388400631 0.16231834552940733 C 0.17011600936723448 0.16377801121935365 0.16944418686103804 0.18293033716438067 0.16981208516611962 0.17983433380876304 C 0.16944418686103804 0.18293033716438067 0.1653885903468311 0.20110672346249017 0.16572885917908406 0.19947038579681886" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16572885917908406 0.19947038579681886 C 0.16537104655832627 0.2006771338277236 0.1606123249168335 0.21662382230853885 0.16143510772999045 0.21395136216767557 C 0.1606123249168335 0.21662382230853885 0.15539049522880155 0.23300561959713684 0.15585546542120068 0.2315399074871783" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.15585546542120068 0.2315399074871783 C 0.15602325409708462 0.22994407167900088 0.1581393767245114 0.20961205053353885 0.15786892953180795 0.21238987778904933 C 0.1581393767245114 0.20961205053353885 0.15920349025046138 0.19702398897371934 0.1591008317336419 0.19820598042105242" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1591008317336419 0.19820598042105242 C 0.15917806062103765 0.19652671672198962 0.16042467528612447 0.17498637272300901 0.16002757838239096 0.17805481603229897 C 0.16042467528612447 0.17498637272300901 0.1641858625947819 0.15999548109934558 0.16386599457844414 0.16138466070957277" 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.3509502472210191,0.13811746710788234) rotate(0) scale(1,1) translate(-0.16645487105255777,-0.16447013861067913)"><path d="M 0.1687439724611828 0.16318925983463986 C 0.16892720814442316 0.16455702294151098 0.1710752515111004 0.18241130837758773 0.1709428006600672 0.1796024171170934 C 0.1710752515111004 0.18241130837758773 0.1702825978413739 0.1983370831141949 0.17033338267358109 0.19689595496057172" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17033338267358109 0.19689595496057172 C 0.1703058924930908 0.1977738434242445 0.17002903585263887 0.20970771940331492 0.17000350050769777 0.20743061652464512 C 0.17002903585263887 0.20970771940331492 0.1706928323383057 0.22562040391960658 0.17063980681287433 0.22422118950460954" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17063980681287433 0.22422118950460954 C 0.17028514068454004 0.22286931920781938 0.16586616152948516 0.2057751295295502 0.16638381327286267 0.20799874594312778 C 0.16586616152948516 0.2057751295295502 0.16426500027730118 0.1966660464248911 0.16442798589234436 0.19753779254167855" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16442798589234436 0.19753779254167855 C 0.16426717762008577 0.1961536289218276 0.1624941728791457 0.17835161077604986 0.16249828662524127 0.1809278291034672 C 0.1624941728791457 0.17835161077604986 0.16453531546536057 0.16543111790510412 0.16437862093919756 0.1666231726126705" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16437862093919756 0.1666231726126705 C 0.16460537383588167 0.166225843488713 0.16746343499290572 0.16156906372701116 0.16709965569940696 0.1618552231251804 C 0.16746343499290572 0.16156906372701116 0.16888099885799746 0.16330042956042815 0.1687439724611828 0.16318925983463986" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g><g transform="translate(0.35736996248075137,0.13702348197676253) rotate(0) scale(1,1) translate(-0.17045543472430674,-0.16823329692941572)"><path d="M 0.1728346837580456 0.17058877310373666 C 0.17312577268933804 0.17128900236553654 0.1768407521514197 0.18104056281259878 0.17632775093355513 0.1789915242453353 C 0.1768407521514197 0.18104056281259878 0.17921261065899272 0.1965260452163621 0.1789906983724206 0.1951772359108985" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1789906983724206 0.1951772359108985 C 0.17917091977605612 0.19647976048969645 0.18164084905981356 0.21345016140609369 0.18115335521604686 0.2108075308564741 C 0.18164084905981356 0.21345016140609369 0.18514789693775216 0.22822890847715505 0.18484062449762098 0.22688880250633345" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.18484062449762098 0.22688880250633345 C 0.18421950014895944 0.22560193612739143 0.17641937523978982 0.20906349523405138 0.17738713231368228 0.21144640595902922 C 0.17641937523978982 0.20906349523405138 0.1728809068856804 0.19719782946056355 0.1732275396109113 0.19829387380659938" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.1732275396109113 0.19829387380659938 C 0.17291018225424476 0.19675050201892777 0.16904378430931716 0.1774346540432849 0.1694192513309128 0.1797734123545401 C 0.16904378430931716 0.1774346540432849 0.1686638256868348 0.16943338754795312 0.16872193535176389 0.17022877407153672" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16872193535176389 0.17022877407153672 C 0.1687434840795051 0.1699102535092069 0.1693232491185151 0.1664365272429289 0.16898052008465828 0.1664065273235789 C 0.1693232491185151 0.1664365272429289 0.1731558640641612 0.17093729358541648 0.1728346837580456 0.17058877310373666" 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.17029567779929528 0.16138466070957277 C 0.17061554581563304 0.16277384031979997 0.17453119089908203 0.1811232593415889 0.17413409399534852 0.17805481603229895 C 0.17453119089908203 0.1811232593415889 0.17513806953149333 0.1998852441201152 0.17506084064409758 0.19820598042105242" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17506084064409758 0.19820598042105242 C 0.17516349916091706 0.1993879718683855 0.1765631900386349 0.21516770504455981 0.17629274284593147 0.21238987778904933 C 0.1765631900386349 0.21516770504455981 0.17847399563242275 0.2331357432953557 0.17830620695653882 0.2315399074871783" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.17830620695653882 0.2315399074871783 C 0.17784123676413965 0.23007419537721974 0.17190378183459207 0.21127890202681227 0.17272656464774902 0.21395136216767555 C 0.17190378183459207 0.21127890202681227 0.1680750005778976 0.1982636377659141 0.16843281319865538 0.19947038579681883" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16843281319865538 0.19947038579681883 C 0.16809254436640242 0.19783404813114752 0.16398168890653825 0.1767383304531454 0.16434958721161982 0.17983433380876304 C 0.16398168890653825 0.1767383304531454 0.16399040406484774 0.160858679839461 0.16401803353767636 0.16231834552940733" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
<path d="M 0.16401803353767636 0.16231834552940733 C 0.16425948448418504 0.16211509125274817 0.1674385819175822 0.15980148714117795 0.16691544489578064 0.1598792942094975 C 0.1674385819175822 0.15980148714117795 0.17057736387458816 0.16151010791791237 0.17029567779929528 0.16138466070957277" fill="none" stroke="#000000" stroke-width="0.001"/>
|
||||
</g></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
Reference in New Issue
Block a user