- 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
38 lines
16 KiB
XML
38 lines
16 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.2196617175186727,0.42439729251110114) rotate(0) scale(1,1) translate(-0.06237022722412017,0.009694024805183783)"><path d="M 0.07643154600244739 -0.005036483564067061 C 0.07592845392626263 -0.0041332509380799295 0.06821010926483341 0.008349866089592482 0.07039444108823018 0.005802307947778514 C 0.06821010926483341 0.008349866089592482 0.04885233471529224 0.02810710878856886 0.050219564121686246 0.025534214137700545 C 0.04885233471529224 0.02810710878856886 0.054301698552320074 0.037605612893239805 0.053987688211502086 0.03667704375819832" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.053987688211502086 0.03667704375819832 C 0.053100862970435814 0.03669634398841513 0.041783511934465015 0.03778673615948507 0.04334578531870678 0.03690864652079994 C 0.041783511934465015 0.03778673615948507 0.03381931879652468 0.05030913767914761 0.03524040760060085 0.04721411942241991 C 0.03381931879652468 0.05030913767914761 0.026824259042709263 0.07941425577449708 0.02629271966979274 0.07404886560153233 C 0.026824259042709263 0.07941425577449708 0.044166590184093434 0.11663932597925208 0.04161888007559911 0.11159880149799695 C 0.044166590184093434 0.11663932597925208 0.05979043066704895 0.1382971343838568 0.05686524097172463 0.134535159376594 C 0.05979043066704895 0.1382971343838568 0.07837581604013814 0.15859311343586352 0.07672115641949095 0.1567425015851505" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.07672115641949095 0.1567425015851505 C 0.07434311204853862 0.15530942112201473 0.04390582471066013 0.1360399949460236 0.048184623968063 0.13954553602752148 C 0.04390582471066013 0.1360399949460236 0.021780616498150423 0.10925943147594719 0.025375565330656547 0.11467600860717585 C 0.021780616498150423 0.10925943147594719 0.004005826311698962 0.06795642310494049 0.005045237977989503 0.07454661045277751 C 0.004005826311698962 0.06795642310494049 0.014857997147131064 0.02961205428570463 0.01290262533517006 0.035593760433131685 C 0.014857997147131064 0.02961205428570463 0.03146022331407347 -0.0013959738562998331 0.028509699721521564 0.0027661366836528494 C 0.03146022331407347 -0.0013959738562998331 0.04995884250614889 -0.01577804127379662 0.04830890844579294 -0.014351566046300506" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04830890844579294 -0.014351566046300506 C 0.048659960956304864 -0.014885454978136146 0.05344355594053135 -0.02157895728267686 0.052521538571935984 -0.02075823322832818 C 0.05344355594053135 -0.02157895728267686 0.06058196936004574 -0.024450013894749923 0.059373116868937335 -0.024200254698484688 C 0.06058196936004574 -0.024450013894749923 0.06819954503009748 -0.02336721514675128 0.06702776846523688 -0.02375534358351101 C 0.06819954503009748 -0.02336721514675128 0.07425515970161324 -0.018620696088772606 0.07343443564726455 -0.019542713457367973 C 0.07425515970161324 -0.018620696088772606 0.07712621631368631 -0.011482282669258213 0.07687645711742107 -0.012691135160366622 C 0.07712621631368631 -0.011482282669258213 0.07639447007619958 -0.0043985959310420975 0.07643154600244739 -0.005036483564067061" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g id="輪">
|
|
<g transform="translate(0.17296046911844365,0.5083890553434398) rotate(0) scale(1,1) translate(-0.011152769902399133,-0.011152769902399133)"><path d="M -0.003155641326928501 0.006313925377571979 C -0.0019632737244845316 0.006313925377571979 0.01353750510728707 0.006313925377571974 0.011152769902399133 0.006313925377571975 C 0.01353750510728707 0.006313925377571974 0.026653548734170716 0.006313925377571972 0.025461181131726747 0.006313925377571972" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.025461181131726747 0.006313925377571972 C 0.02546118113172675 0.006717162421307568 0.025461181131726775 0.011959243989870322 0.025461181131726775 0.01115276990239913 C 0.025461181131726775 0.011959243989870322 0.025461181131726743 0.016394851470961886 0.025461181131726747 0.01599161442722629" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.025461181131726747 0.01599161442722629 C 0.024268813529282778 0.01599161442722629 0.008768034697511196 0.01599161442722629 0.011152769902399133 0.01599161442722629 C 0.008768034697511196 0.01599161442722629 -0.00434800892937247 0.01599161442722629 -0.003155641326928501 0.01599161442722629" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M -0.003155641326928501 0.01599161442722629 C -0.003155641326928501 0.015588377383490695 -0.003155641326928501 0.010346295814927948 -0.003155641326928501 0.011152769902399141 C -0.003155641326928501 0.010346295814927948 -0.003155641326928501 0.005910688333836382 -0.003155641326928501 0.006313925377571979" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.16928553234113086,0.5083890553434398) rotate(0) scale(1,1) translate(-0.00775832499658671,-0.0077583249965867095)"><path d="M 0.013629832129833527 0.014158267771825744 C 0.012689175803983653 0.014044507321119087 0.0014012998937851496 0.011840245684846002 0.002341956219635025 0.01279314236334585 C 0.0014012998937851496 0.011840245684846002 0.0032826125454848967 0.0017706109513277155 0.0023419562196350216 0.0027235076298275634 C 0.0032826125454848967 0.0017706109513277155 0.014570488455683398 0.001244621770641018 0.013629832129833524 0.0013583822213476754" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.013629832129833524 0.0013583822213476754 C 0.013629832129833524 0.0014480858025500577 0.013629832129833524 0.0025604102094595976 0.013629832129833524 0.0024348251957762622 C 0.013629832129833524 0.0025604102094595976 0.013629832129833524 0.0029012838180286545 0.013629832129833524 0.0028654023855477014" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.013629832129833524 0.0028654023855477014 C 0.012838540085227647 0.0029518440183427244 0.0033430355499571122 0.004631747448132789 0.00413432759456299 0.0039027019790879762 C 0.0033430355499571122 0.004631747448132789 0.004925619639168868 0.012342993483130265 0.00413432759456299 0.011613948014085452 C 0.004925619639168868 0.012342993483130265 0.014421124174439406 0.012737689240420761 0.013629832129833527 0.012651247607625737" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.013629832129833527 0.012651247607625737 C 0.013629832129833527 0.012687129040106689 0.013629832129833527 0.013207409811080498 0.013629832129833527 0.013081824797397165 C 0.013629832129833527 0.013207409811080498 0.013629832129833527 0.014247971353028126 0.013629832129833527 0.014158267771825744" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.16452896044778195,0.5083890553434398) rotate(0) scale(1,1) translate(-0.0022536622055164745,-0.002253662205516475)"><path d="M 0.0034549881631854612 0.0031900031233267835 C 0.003261856247612259 0.0031765899561459563 0.0009442732607338284 0.002886401464702634 0.001137405176307031 0.003029045117156858 C 0.0009442732607338284 0.002886401464702634 0.0013305370918802327 0.0013356356414218674 0.0011374051763070304 0.0014782792938760917 C 0.0013305370918802327 0.0013356356414218674 0.003648120078758662 0.0013039081205253387 0.0034549881631854595 0.001317321287706166" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.0034549881631854595 0.001317321287706166 C 0.0034936145463001 0.0013953496975236917 0.003918504760561145 0.0024097190251515257 0.003918504760561145 0.002253662205516474 C 0.003918504760561145 0.0024097190251515257 0.003416361780070821 0.0032680315331443093 0.0034549881631854612 0.0031900031233267835" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.18081938774993203,0.5083890553434398) rotate(0) scale(1,1) translate(-0.006469483550722008,-0.0064694835507220095)"><path d="M 0.007410430206691048 0.0007485278824302429 C 0.007724079092014061 0.002655513105194166 0.0070967813213680345 0.014097424441777699 0.007410430206691048 0.012190439219013777 C 0.0070967813213680345 0.014097424441777699 0.005214888009429951 0.010283453996249855 0.005528536894752965 0.012190439219013777 C 0.005214888009429951 0.010283453996249855 0.005842185780075979 -0.0011584573403336826 0.005528536894752965 0.0007485278824302399 C 0.005842185780075979 -0.0011584573403336826 0.007724079092014061 0.002655513105194166 0.007410430206691048 0.0007485278824302429 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.16011822272512435,0.5083890553434398) rotate(0) scale(1,1) translate(-0.009906215631991292,-0.007758324996586713)"><path d="M 0.009906215631991292 0.014158267771825743 C 0.009341821836481367 0.01390705680700656 0.0025690962903622628 0.010328290029608231 0.003133490085872188 0.011143736193995555 C 0.0025690962903622628 0.010328290029608231 0.003697883881382113 0.0035574676347905347 0.003133490085872188 0.004372913799177858 C 0.003697883881382113 0.0035574676347905347 0.010470609427501214 0.0011071712565284874 0.009906215631991289 0.0013583822213476698" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.009906215631991289 0.0013583822213476698 C 0.009906215631991289 0.001448085802550052 0.009906215631991289 0.002560410209459592 0.009906215631991289 0.0024348251957762566 C 0.009906215631991289 0.002560410209459592 0.009906215631991292 0.0029012838180286493 0.009906215631991292 0.002865402385547696" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.009906215631991292 0.002865402385547696 C 0.00944775653069256 0.0030679046972077934 0.00394624731510777 0.005908414915648601 0.004404706416406503 0.005295430125468863 C 0.00394624731510777 0.005908414915648601 0.0048631655177052355 0.010834204657884296 0.004404706416406503 0.010221219867704556 C 0.0048631655177052355 0.010834204657884296 0.010364674733290025 0.01285374991928583 0.009906215631991292 0.012651247607625732" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.009906215631991292 0.012651247607625732 C 0.009906215631991292 0.012687129040106684 0.009906215631991292 0.013207409811080494 0.009906215631991292 0.01308182479739716 C 0.009906215631991292 0.013207409811080494 0.009906215631991292 0.014247971353028124 0.009906215631991292 0.014158267771825743" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.18580271551176294,0.5083890553434398) rotate(0) scale(1,1) translate(-0.005610434361182026,-0.007758324996586713)"><path d="M 0.005610434361182026 0.01415826777182574 C 0.005610434361182026 0.014068564190623358 0.005610434361182026 0.012956239783713823 0.005610434361182026 0.013081824797397156 C 0.005610434361182026 0.012956239783713823 0.005610434361182026 0.01261536617514478 0.005610434361182026 0.012651247607625732" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.005610434361182026 0.012651247607625732 C 0.006068893462480768 0.012448745295965633 0.011570402678065663 0.009608235077524813 0.011111943576766922 0.010221219867704552 C 0.011570402678065663 0.009608235077524813 0.01065348447546818 0.004682445335289125 0.011111943576766922 0.005295430125468863 C 0.01065348447546818 0.004682445335289125 0.005151975259883285 0.002662900073887599 0.005610434361182026 0.002865402385547696" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.005610434361182026 0.002865402385547696 C 0.005610434361182026 0.002829520953066743 0.005610434361182026 0.002309240182092923 0.005610434361182026 0.0024348251957762583 C 0.005610434361182026 0.002309240182092923 0.005610434361182026 0.0012686786401452917 0.005610434361182026 0.0013583822213476737" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.005610434361182026 0.0013583822213476737 C 0.006174828156691956 0.0016095931861668555 0.012947553702811105 0.005188359963565179 0.012383159907301176 0.004372913799177856 C 0.012947553702811105 0.005188359963565179 0.011818766111791248 0.011959182358382876 0.012383159907301176 0.011143736193995552 C 0.011818766111791248 0.011959182358382876 0.005046040565672097 0.014409478736644922 0.005610434361182026 0.01415826777182574" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g></g>
|
|
<g transform="translate(0.1855345376279362,0.49533848699828165) rotate(0) scale(1,1) translate(-0.024112654320987657,-0.02411265432098766)"><path d="M 0.022822077397238072 0.018499221772158243 C 0.023417100831364862 0.01882541202172568 0.03159680886737836 0.022854638635948787 0.029962358606759554 0.02241350476696747 C 0.03159680886737836 0.022854638635948787 0.043474907351155744 0.023907771819347938 0.04243548052466373 0.023792828199934057" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04243548052466373 0.023792828199934057 C 0.04155619923814221 0.02415735080034399 0.030156087946874677 0.028601017818878922 0.03188410508640549 0.028167099404853232 C 0.030156087946874677 0.028601017818878922 0.0208505389972847 0.029069244981858117 0.021699274850293993 0.028999849168242355" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.021699274850293993 0.028999849168242355 C 0.021532039659461304 0.028534746082068067 0.019786019439213726 0.02254355985114389 0.01969245256030172 0.023418612134150897 C 0.019786019439213726 0.02254355985114389 0.02308287946698277 0.01808927257532553 0.022822077397238072 0.01849922177215825" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.18723505831966375,0.5253087760899341) rotate(0) scale(1,1) translate(-0.024112654320987657,-0.02411265432098766)"><path d="M 0.022886606243425534 0.018779893399599713 C 0.023451878505845986 0.01908977413668878 0.031222601140058825 0.022917539420200733 0.029669873392470958 0.02249846224466848 C 0.031222601140058825 0.022917539420200733 0.042506794699647334 0.023918015944429924 0.04151933921447992 0.023808819505986737" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04151933921447992 0.023808819505986737 C 0.040684021992284485 0.024155115976376172 0.02985391626558037 0.028376599643984358 0.03149553254813464 0.027964377150659952 C 0.02985391626558037 0.028376599643984358 0.02101364476346985 0.028821415448814593 0.02181994382382868 0.028755489425879622" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.02181994382382868 0.028755489425879622 C 0.02166107039253763 0.02831364149401405 0.020002351183302448 0.022622014574636078 0.019913462648336044 0.023453314243492736 C 0.020002351183302448 0.022622014574636078 0.023134368209682992 0.018390441662608635 0.022886606243425534 0.01877989339959972" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.19924106111742984,0.5499406037789868) rotate(0) scale(1,1) translate(-0.024112654320987657,-0.02411265432098766)"><path d="M 0.022947908647303672 0.01904653144566911 C 0.023484917296603097 0.019340918145903722 0.03086710379910525 0.02297729516524008 0.029392012438896775 0.02257917184848444 C 0.03086710379910525 0.02297729516524008 0.041587087680714445 0.02392774786325781 0.04064900496980539 0.023824011246736783" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04064900496980539 0.023824011246736783 C 0.03985545360871972 0.024152992893606746 0.029566853168350744 0.028163402377834525 0.031126388636777302 0.027771791009176337 C 0.029566853168350744 0.028163402377834525 0.021168595241345817 0.02858597739242325 0.0219345793486867 0.028523347670635024" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.0219345793486867 0.028523347670635024 C 0.021783649588960192 0.028103592135362728 0.020207866340186693 0.022696546561953655 0.020123422231968613 0.023486281247367482 C 0.020207866340186693 0.022696546561953655 0.02318328251524826 0.018676552295527588 0.022947908647303672 0.019046531445669118" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g></svg>
|