Files
SlaveMatrix-SDL/SlaveMatrix/Assets/Parts//x0y4.svg
REDCODE 58f3bf6884 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
2026-06-13 17:56:01 +02:00

18 lines
6.2 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.3373434528286707,0.1307709240821216) rotate(0) scale(1,1) translate(-0.027518731894252135,-0.0279249357083401)"><path d="M 0.025461088908611398 0.027771696033600204 C 0.025632559157414792 0.027771696033600204 0.027861672391858907 0.027771696033600204 0.027518731894252114 0.027771696033600204 C 0.027861672391858907 0.027771696033600204 0.029747845128696288 0.027771696033600204 0.02957637487989289 0.027771696033600204" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.02957637487989289 0.027771696033600204 C 0.029873100754691167 0.027627279396413282 0.03135673012868255 0.02690519621047867 0.03135673012868255 0.02690519621047867 C 0.03135673012868255 0.02690519621047867 0.029279649005094614 0.027916112670787127 0.02957637487989289 0.027771696033600204" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.02957637487989289 0.027771696033600204 C 0.029404904631089492 0.027771696033600204 0.027175791396645322 0.027771696033600204 0.027518731894252114 0.027771696033600204 C 0.027175791396645322 0.027771696033600204 0.025289618659808003 0.027771696033600204 0.025461088908611398 0.027771696033600204" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.025461088908611398 0.027771696033600204 C 0.025164363033813114 0.027627279396413282 0.023680733659821707 0.02690519621047867 0.023680733659821707 0.02690519621047867 C 0.023680733659821707 0.02690519621047867 0.02575781478340968 0.027916112670787127 0.025461088908611398 0.027771696033600204" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3373434528286707,0.13007823952870037) rotate(0) scale(1,1) translate(-0.0033804933082747304,-0.0022898310763958206)"><path d="M 0.0033804933082747088 0.002558255443279752 C 0.003459268792669098 0.0025020345362355085 0.004518900375807922 0.0018956618024468272 0.004325799121007379 0.0018836045587488275 C 0.004518900375807922 0.0018956618024468272 0.005812034136287373 0.0027712205183979912 0.0056977083658812195 0.0027029423676557477" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.0056977083658812195 0.0027029423676557477 C 0.005504607111080678 0.0027133456844788267 0.002994290798673644 0.0028277821695326943 0.0033804933082747235 0.0028277821695326943 C 0.002994290798673644 0.0028277821695326943 0.0008701769958677237 0.0026925390508326713 0.0010632782506682622 0.00270294236765575" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.0010632782506682622 0.00270294236765575 C 0.0011776040210744135 0.0026346642169135064 0.002628288750342615 0.0018715473150508278 0.002435187495542078 0.0018836045587488275 C 0.002628288750342615 0.0018715473150508278 0.0034592687926690946 0.0026144763503239956 0.0033804933082747088 0.002558255443279752" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3341201992417356,0.13009150822798513) rotate(0) scale(1,1) translate(-0.0037490495184488836,-0.0037490495184488836)"><path d="M 0.003829363290849506 0.003723665009209432 C 0.0039739401076945196 0.003794029570912595 0.004250485255911581 0.0042079042953592225 0.004230731403185386 0.0039423507393891374 C 0.004250485255911581 0.0042079042953592225 0.0038033095903616653 0.00524662178332678 0.003947886407206679 0.005316986345029943 C 0.0038033095903616653 0.00524662178332678 0.0033435166493891075 0.003254609813200073 0.003363270502115303 0.003520163369170158 C 0.0033435166493891075 0.003254609813200073 0.0039739401076945196 0.003794029570912595 0.003829363290849506 0.003723665009209432 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3405667064156057,0.13009150822798513) rotate(0) scale(1,1) translate(-0.0037490495184488836,-0.0037490495184488836)"><path d="M 0.004134828534782576 0.003520163369170158 C 0.004115074682056391 0.0037857169251402432 0.0034056358128461014 0.005387350906733106 0.00355021262969113 0.005316986345029943 C 0.0034056358128461014 0.005387350906733106 0.0032871214864385887 0.0036767971834190524 0.003267367633712404 0.0039423507393891374 C 0.0032871214864385887 0.0036767971834190524 0.0038133125628932686 0.003653300447506269 0.00366873574604824 0.003723665009209432 C 0.0038133125628932686 0.003653300447506269 0.004115074682056391 0.0037857169251402432 0.004134828534782576 0.003520163369170158 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g id="口紅下">
<g transform="translate(0.3373434528286707,0.1306176844073817) rotate(0) scale(1,1) translate(-0.0026050034412749006,-0.0026050034412749006)"><path d="M 0.00028778838366843245 0.002478669853853508 C 0.0004808896384689709 0.002489073170676587 0.0029912059508759737 0.0026035096557304543 0.002605003441274894 0.0026035096557304543 C 0.0029912059508759737 0.0026035096557304543 0.00511531975368193 0.0024682665370304316 0.004922218498881389 0.00247866985385351" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.004922218498881389 0.00247866985385351 C 0.004729117244080848 0.0025742911039034924 0.002218800931673821 0.0036261248544532964 0.0026050034412749006 0.0036261248544532964 C 0.002218800931673821 0.0036261248544532964 9.468712886789342E-05 0.002383048603803526 0.00028778838366843245 0.002478669853853508" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3362893077936316,0.13092442659362372) rotate(0) scale(1,1) translate(-0.0021726936277315367,-0.0021726936277315367)"><path d="M 0.0024348118917337062 0.002087526241014855 C 0.0024483117247524945 0.0021290744548513943 0.0022993486022713596 0.0024213429492116463 0.0023346916239569953 0.002395664740888816 C 0.0022993486022713596 0.0024213429492116463 0.001975352609820442 0.002369986532565986 0.0020106956315060777 0.002395664740888816 C 0.001975352609820442 0.002369986532565986 0.0019240751967481552 0.0020459780271783155 0.001910575363729367 0.002087526241014855 C 0.0019240751967481552 0.0020459780271783155 0.0022163800050652317 0.0018970861748503422 0.0021726936277315367 0.0018970861748503422 C 0.0022163800050652317 0.0018970861748503422 0.0024483117247524945 0.0021290744548513943 0.0024348118917337062 0.002087526241014855 Z" fill="#cccccc" stroke="none" stroke-width="0"/>
</g></g>
</svg>