Files
SlaveMatrix-SDL/SlaveMatrix/Assets/Parts//x0y12.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.02728746679654959)"><path d="M 0.02481213345295738 0.02605208344713597 C 0.025037683323065274 0.026024449549377562 0.027969831634467913 0.025720476674035087 0.027518731894252118 0.025720476674035087 C 0.027969831634467913 0.025720476674035087 0.03045088020565482 0.02607971734489438 0.03022533033554692 0.02605208344713597" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.03022533033554692 0.02605208344713597 C 0.030269711211599194 0.02620350181369695 0.030736913365505523 0.028190362352616412 0.030757900848174227 0.027869103845867747 C 0.030736913365505523 0.028190362352616412 0.029908112184801515 0.030077025668307642 0.02997348054352249 0.029907185528119957" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.02997348054352249 0.029907185528119957 C 0.029768918156083294 0.029955620600137442 0.027109607119373727 0.030488406392329775 0.027518731894252118 0.030488406392329775 C 0.027109607119373727 0.030488406392329775 0.0248594208575426 0.02985875045610247 0.025063983244981793 0.029907185528119957" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.025063983244981793 0.029907185528119957 C 0.024998614886260814 0.02973734538793227 0.024258575457661344 0.02754784533911908 0.024279562940330044 0.027869103845867747 C 0.024258575457661344 0.02754784533911908 0.02485651432900966 0.02590066508057499 0.02481213345295738 0.02605208344713597" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3373434528286707,0.12872763992484174) rotate(0) scale(1,1) translate(-0.0033804933082747183,-0.0022898310763958206)"><path d="M 0.0033804933082747088 0.0024870495245713385 C 0.003459268792669098 0.002431549361429816 0.004515047630282588 0.0018663728572145596 0.004325799121007379 0.0018210475668730681 C 0.004515047630282588 0.0018663728572145596 0.005761948444458032 0.0031317784621522483 0.005651475419577213 0.0030309530086692345" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.005651475419577213 0.0030309530086692345 C 0.0054622269103020045 0.0030088881478048013 0.0030019962897243017 0.0027661746782960354 0.0033804933082747174 0.0027661746782960354 C 0.0030019962897243017 0.0027661746782960354 0.0009202626876970169 0.0030530178695336676 0.0011095111969722246 0.0030309530086692345" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.0011095111969722246 0.0030309530086692345 C 0.0012199842218530458 0.0029301275551862206 0.002624436004817285 0.0017757222765315767 0.002435187495542078 0.0018210475668730681 C 0.002624436004817285 0.0017757222765315767 0.0034592687926690946 0.002542549687712861 0.0033804933082747088 0.0024870495245713385" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.334030923005377,0.12947967902147622) rotate(0) scale(1,1) translate(-0.0037490495184488836,-0.0037490495184488836)"><path d="M 0.0039640134254938855 0.0047423980403637 C 0.004053699730573953 0.004496342193632382 0.004357867469904108 0.004000092029664442 0.004352667224891528 0.0038126486877939373 C 0.004357867469904108 0.004000092029664442 0.0039055285904893 0.006113113938318049 0.003995214895569367 0.005867058091586731 C 0.0039055285904893 0.006113113938318049 0.0038093491493985422 0.00510154042631134 0.0038145493944111227 0.005288983768181845 C 0.0038093491493985422 0.00510154042631134 0.004053699730573953 0.004496342193632382 0.0039640134254938855 0.0047423980403637 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3406559826519643,0.12947967902147622) rotate(0) scale(1,1) translate(-0.0037490495184488836,-0.0037490495184488836)"><path d="M 0.0036835496424867673 0.005288983768181845 C 0.0036783493974741964 0.00547642711005235 0.003413197836248353 0.005621002244855413 0.0035028841413284393 0.005867058091586731 C 0.003413197836248353 0.005621002244855413 0.0031506320570188202 0.003625205345923432 0.0031454318120062493 0.0038126486877939373 C 0.0031506320570188202 0.003625205345923432 0.003623771916483952 0.0049884538870950184 0.0035340856114038656 0.0047423980403637 C 0.003623771916483952 0.0049884538870950184 0.0036783493974741964 0.00547642711005235 0.0036835496424867673 0.005288983768181845 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g id="口紅下">
<g transform="translate(0.3373434528286707,0.13144222460893884) rotate(0) scale(1,1) translate(-0.0026050034412749006,-0.0026050034412749006)"><path d="M 0.00015025479643325046 0.004553421650684754 C 0.00035481718350338794 0.004601856912642021 0.0030141282154151766 0.005134644794171956 0.0026050034412749006 0.005134644794171956 C 0.0030141282154151766 0.005134644794171956 0.005264314473186701 0.004504986388727485 0.0050597520861165625 0.004553421650684752" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.0050597520861165625 0.004553421650684752 C 0.004855189699046424 0.004685954822469004 0.0021958786671346245 0.00614381971209578 0.0026050034412749006 0.00614381971209578 C 0.0021958786671346245 0.00614381971209578 -5.430759063688705E-05 0.004420888478900501 0.00015025479643325046 0.004553421650684754" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3362893077936316,0.13412221497222948) 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>