- 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
25 lines
9.0 KiB
XML
25 lines
9.0 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.42839445348243893,0.21033698446300406) rotate(0) scale(1,1) translate(-0.04070481695325185,-0.04070481695325185)"><path d="M 0.04829589814179846 0.038238325159389956 C 0.04868686032395527 0.03944158303107209 0.04437281085793124 0.0479058305644854 0.0453963631391336 0.04716217630255498 C 0.04437281085793124 0.0479058305644854 0.034989718486167734 0.04641852204062456 0.0360132707673701 0.04716217630255498 C 0.034989718486167734 0.04641852204062456 0.03350469794686205 0.03703506728770782 0.033113735764705235 0.038238325159389956 C 0.03350469794686205 0.03703506728770782 0.041969997151342954 0.032723081842369356 0.04070481695325185 0.032723081842369356 C 0.041969997151342954 0.032723081842369356 0.04868686032395527 0.03944158303107209 0.04829589814179846 0.038238325159389956 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.42839445348243893,0.20576278249752025) rotate(0) scale(1,1) translate(-0.08102318639656232,-0.09448405401382116)"><path d="M 0.07765848675302389 0.09642548114062188 C 0.07754703107733169 0.09543279030761832 0.07633917400321058 0.08245335766609684 0.07632101864471733 0.08451319114457921 C 0.07633917400321058 0.08245335766609684 0.07853043464606502 0.07064033675335453 0.07787635105494299 0.07170747939883335 C 0.07853043464606502 0.07064033675335453 0.0848241053293037 0.07277462204431216 0.08417002173818168 0.07170747939883335 C 0.0848241053293037 0.07277462204431216 0.08574350950690059 0.08657302462306159 0.08572535414840733 0.08451319114457921 C 0.08574350950690059 0.08657302462306159 0.08427643036440859 0.09741817197362544 0.08438788604010079 0.09642548114062188" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.4288069258388912,0.20624712713225649) rotate(0) scale(1,1) translate(-0.09196405892265934,-0.09196405892265941)"><path d="M 0.08667849530513898 0.08825579637281998 C 0.08671349804355978 0.08816259673823917 0.0872085632703635 0.08706632748197125 0.08709852816618867 0.08713740075785031 C 0.0872085632703635 0.08706632748197125 0.08807394892099099 0.08742504342097293 0.08799891655523696 0.08740291706227118" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.08799891655523696 0.08740291706227118 C 0.08818089457026694 0.08759103665157693 0.090502828015843 0.08996409646941934 0.0901826527355967 0.0896603521339401 C 0.090502828015843 0.08996409646941934 0.09197921718340897 0.09116347383419562 0.09184101991819264 0.09104784908802212" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09184101991819264 0.09104784908802212 C 0.09199472018417688 0.09089634527853395 0.09395571730155819 0.0888773074455636 0.09368542311000347 0.0892298033741641 C 0.09395571730155819 0.0888773074455636 0.09520114414241976 0.08661690582570385 0.09508455021684928 0.08681789794481617" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09508455021684928 0.08681789794481617 C 0.09518396579490697 0.08680220693232535 0.09641202359748101 0.08670818296137535 0.09627753715354159 0.08662960579492629 C 0.09641202359748101 0.08670818296137535 0.09673345841000397 0.08785509212114477 0.09669838754412224 0.08776082394220489" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09669838754412224 0.08776082394220489 C 0.09646617650077126 0.08804156376131872 0.09361598410013157 0.09149062134427197 0.09391185502391042 0.09112970177157097 C 0.09361598410013157 0.09149062134427197 0.09308427657834827 0.09217203856820406 0.09314793645877613 0.0920918588146169" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09314793645877613 0.0920918588146169 C 0.0931261886222644 0.0921563366514841 0.09278073298258434 0.09322590457304426 0.09288696242063546 0.09286559285702317 C 0.09278073298258434 0.09322590457304426 0.09178870160062333 0.09671143328602384 0.09187318320216273 0.09641559940686995" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09187318320216273 0.09641559940686995 C 0.0917984389873905 0.09649964189175507 0.09082674699150832 0.09744634735435101 0.09097625262489599 0.09742410922549148 C 0.09082674699150832 0.09744634735435101 0.0900043541828953 0.09662065259715868 0.09007911560151075 0.09668245695318428" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09007911560151075 0.09668245695318428 C 0.09018116080854077 0.09648679642401824 0.09142435058167438 0.09398857378255791 0.09130365808587106 0.09433453060319176 C 0.09142435058167438 0.09398857378255791 0.09154607283992387 0.09238067881411025 0.09152742555115058 0.09253097510557805" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09152742555115058 0.09253097510557805 C 0.09137758450934197 0.09241560108358426 0.08932525552894634 0.0907902219472562 0.0897293330494473 0.0911464868416527 C 0.08932525552894634 0.0907902219472562 0.08642425882644662 0.08801490550041725 0.08667849530513898 0.08825579637281998" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.4285369774127488,0.1944431978602651) rotate(0) scale(1,1) translate(-0.09190565973059747,-0.09198621984018931)"><path d="M 0.09579460528142562 0.08519751954622944 C 0.09587397358949334 0.08523476176287574 0.09680272297869416 0.08579165716870665 0.09674702497823826 0.08564442614598508 C 0.09680272297869416 0.08579165716870665 0.09643931097928476 0.08707428062496364 0.09646298128689657 0.08696429181888837" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09646298128689657 0.08696429181888837 C 0.09628500852118609 0.0871831413461267 0.09402329612161021 0.0899999221167396 0.09432730809837087 0.08959048614574834 C 0.09402329612161021 0.0899999221167396 0.09268879835471851 0.09206810991453644 0.09281483756576869 0.09187752347078351" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09281483756576869 0.09187752347078351 C 0.09294914326372115 0.0921104940951972 0.09472435302279514 0.09505909525323035 0.0944265059411982 0.09467317096374767 C 0.09472435302279514 0.09505909525323035 0.09655254392857644 0.09666156860964467 0.09638900254493196 0.09650861494457567" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09638900254493196 0.09650861494457567 C 0.09639805547765307 0.09664863546957851 0.09639677647623734 0.09835706739380719 0.09649763773758516 0.09818886124460968 C 0.09639677647623734 0.09835706739380719 0.09506875321468923 0.09855527435914041 0.09517866740875815 0.09852708873494574" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09517866740875815 0.09852708873494574 C 0.09495909798990732 0.09822126277937912 0.09225155778159695 0.09445355206324356 0.09254383438254818 0.09485717726814635 C 0.09225155778159695 0.09445355206324356 0.09159864101524297 0.09358578702677599 0.09167134819734336 0.09368358627611217" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09167134819734336 0.09368358627611217 C 0.09161016667826025 0.09364739451963865 0.09059386887166335 0.09306910129776211 0.09093716996834592 0.09324928519842983 C 0.09059386887166335 0.09306910129776211 0.08726961545955307 0.09137738732390527 0.08755173503715252 0.09152137946809946" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.08755173503715252 0.09152137946809946 C 0.08747626379138732 0.0914073088357973 0.086638062127866 0.08993530260428358 0.08664608008796998 0.09015253188047355 C 0.086638062127866 0.08993530260428358 0.08752297280156594 0.088811469509932 0.08745551951590472 0.08891462815381981" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.08745551951590472 0.08891462815381981 C 0.08763785580839697 0.0890764322078192 0.08997145649045875 0.09105623752236733 0.0896435550258118 0.09085627680181253 C 0.08997145649045875 0.09105623752236733 0.09153590226382288 0.09135231346703279 0.09139033709166819 0.09131415680047739" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.09139033709166819 0.09131415680047739 C 0.09151331866522118 0.09110646594412289 0.09323313832345052 0.08831214675303604 0.09286611597430407 0.08882186652422337 C 0.09323313832345052 0.08831214675303604 0.09603864605701909 0.0848954906313966 0.09579460528142562 0.08519751954622944" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.42839445348243893,0.1817952437064841) rotate(0) scale(1,1) translate(-0.02653058716578413,-0.02648700018946991)"><path d="M 0.030331809639408208 0.025219267742836754 C 0.030619712174641007 0.02596787621448453 0.029380746513876236 0.03188021395230783 0.029985417588577708 0.03136783347465621 C 0.029380746513876236 0.03188021395230783 0.022471085668289082 0.03085545299700459 0.023075756742990554 0.03136783347465621 C 0.022471085668289082 0.03085545299700459 0.023017267227392852 0.024470659271188976 0.022729364692160053 0.025219267742836754 C 0.023017267227392852 0.024470659271188976 0.027164124244721477 0.022384531814882886 0.02653058716578413 0.022384531814882886 C 0.027164124244721477 0.022384531814882886 0.030619712174641007 0.02596787621448453 0.030331809639408208 0.025219267742836754 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
|
|
</g></svg>
|