- 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
23 lines
7.4 KiB
XML
23 lines
7.4 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.3197164808612181,0.11990479005673317) rotate(0) scale(1,1) translate(-0.06166164922295251,-0.05845565031430834)"><path d="M 0.06079528570023566 0.0618262934997033 C 0.060059927611110904 0.061764851470982436 0.050657192373443155 0.0609189782078379 0.05197098863073864 0.061088989155053 C 0.050657192373443155 0.0609189782078379 0.04445129244451914 0.05967759321462785 0.04502973061268987 0.059786162133122094" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04502973061268987 0.059786162133122094 C 0.04479283632863688 0.05962772414982255 0.042208126390357606 0.05761436001354007 0.04218699920405396 0.057884906333527546 C 0.042208126390357606 0.05761436001354007 0.04554127831869034 0.05642749795658442 0.045283256848333696 0.05653960629327236" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.045283256848333696 0.05653960629327236 C 0.04621573108065597 0.05646194614608314 0.057910010627645656 0.05548646792997183 0.05647294763620102 0.055607684527001745 C 0.057910010627645656 0.05548646792997183 0.0630326015047917 0.05504145067907269 0.06252801274566934 0.05508500712891339" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.3197164808612181,0.11990479005673317) rotate(0) scale(1,1) translate(-0.06166164922295251,-0.05845565031430834)"><path d="M 0.06188709888877445 0.06242809329399218 C 0.06100182369812029 0.06231641378397987 0.04959333435655694 0.06087822475631895 0.051263796600924505 0.06108793917384443 C 0.04959333435655694 0.06087822475631895 0.04105636490265028 0.05981348537617321 0.04184155195636368 0.05991152028368638" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04184155195636368 0.05991152028368638 C 0.04178237114943418 0.05978815761028939 0.0410035498650083 0.05816783209589996 0.04113138227320963 0.05843116820292247 C 0.0410035498650083 0.05816783209589996 0.04023891145667588 0.056611513565790736 0.04030756305794771 0.056751486999416255" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04030756305794771 0.056751486999416255 C 0.04148051677665459 0.05661704870993757 0.05614372739069551 0.054949204220272704 0.05438300768243027 0.05513822752567202 C 0.05614372739069551 0.054949204220272704 0.06202396554668895 0.0544286223187039 0.06143619955713059 0.05448320733462452" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.317739745606258,0.11889466917980429) rotate(0) scale(1,1) translate(-0.061780495912221296,-0.0594468243068542)"><path d="M 0.06580788705763874 0.06666306246768944 C 0.06561891463001161 0.06667591826880875 0.06293144121352628 0.0663120696308767 0.06354021792611325 0.06681733208112123 C 0.06293144121352628 0.0663120696308767 0.0580827622216352 0.06008179481339118 0.05850256650659505 0.06059991306475503" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.05850256650659505 0.06059991306475503 C 0.057575279743377554 0.060509399943619896 0.04613813072965453 0.05939895222192334 0.04737512534798507 0.05951375561113342 C 0.04613813072965453 0.05939895222192334 0.043348923231515527 0.0591979821261591 0.04365863108662857 0.05922227239423405" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04365863108662857 0.05922227239423405 C 0.04347410211292004 0.05907666929981382 0.04104754987299191 0.057450853000088196 0.041444283402126275 0.05747503526119129 C 0.04104754987299191 0.057450853000088196 0.03868562418159036 0.059053506094314055 0.0388978287370162 0.05893208526099692" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.0388978287370162 0.05893208526099692 C 0.03870793032359568 0.05892043880542316 0.036232762774602904 0.058766556367049284 0.03661904777596997 0.05879232779411174 C 0.036232762774602904 0.058766556367049284 0.034066022132664874 0.05860870316475875 0.03426240872061142 0.058622828136247446" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.03426240872061142 0.058622828136247446 C 0.033887693323251075 0.05845523923289965 0.029654512204749746 0.05629961443716206 0.029765823952287253 0.05661176129607388 C 0.029654512204749746 0.05629961443716206 0.0331900713999842 0.05473250787374162 0.032926667750161356 0.05487706582930564" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.032926667750161356 0.05487706582930564 C 0.034311872175579725 0.05471963466622248 0.05168097347230374 0.05276942483220414 0.04954912085518174 0.052987891872307735 C 0.05168097347230374 0.05276942483220414 0.05925554734732902 0.05219442547104211 0.058508899155625384 0.05225546134806254" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.058508899155625384 0.05225546134806254 C 0.05891070594484066 0.0523230246836781 0.06392912218264307 0.05345132039456712 0.06333058062620865 0.05306622137544931 C 0.06392912218264307 0.05345132039456712 0.06588813260005753 0.057194185260978504 0.0656913978328384 0.056876649577476256" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.0656913978328384 0.056876649577476256 C 0.06573705093858559 0.057057490378306035 0.06631573214021443 0.05944357304349719 0.06623923510180474 0.059046739187433604 C 0.06631573214021443 0.05944357304349719 0.06664020622641714 0.06185464890547307 0.06660936229375465 0.06163865585023926" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.06660936229375465 0.06163865585023926 C 0.06657105922755578 0.061904496103600215 0.06608293589635858 0.06524743944202485 0.06614972549936823 0.06482873889057067 C 0.06608293589635858 0.06524743944202485 0.06577940052082795 0.06681592276578267 0.06580788705763874 0.06666306246768944" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.3156383051378952,0.11485930064366735) rotate(0) scale(1,1) translate(-0.00820718783944048,-0.005607832739230756)"><path d="M 0.0047198180894607086 0.00466530868346355 C 0.005084285682209223 0.004700855157389372 0.009592321273932282 0.005219633069344194 0.00909342920244288 0.0050918663705734135 C 0.009592321273932282 0.005219633069344194 0.010840947426074428 0.006290729293557871 0.01070652294733354 0.006198509068712913" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M -0.0029137293915760666 0.005357366916343025 C -0.0025512210544213466 0.005310626630173601 0.0020724996110336367 0.0047388119629033195 0.0014363706542805722 0.004796483482309942 C 0.0020724996110336367 0.0047388119629033195 0.004993438709059052 0.004654377450226353 0.004719818089460708 0.004665308683463552" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.3156383051378952,0.11485930064366735) rotate(0) scale(1,1) translate(-0.00820718783944048,-0.005607832739230756)"><path d="M 0.008424693694118388 0.009097222316473782 C 0.008584395313401709 0.009196778173488466 0.010607567158148184 0.010584508168817319 0.010341113125518248 0.010291892600649997 C 0.010607567158148184 0.010584508168817319 0.01172889449902424 0.012801668845634275 0.011622142085677625 0.012608609134481637" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M -0.000296484601355961 0.00530761161988197 C 6.395968149270508E-05 0.005543553226295809 0.004755611650784227 0.008454711788230691 0.0040288467928280315 0.00813891089684804 C 0.004755611650784227 0.008454711788230691 0.008791014269225916 0.009177081601442594 0.008424693694118386 0.009097222316473782" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g></svg>
|