Files
SlaveMatrix-SDL/SlaveMatrix/Assets/Parts/四足性器/x3y1.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

14 lines
7.8 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.33734039743949185,0.4071172026683852) rotate(0) scale(1,1) translate(-0.01919286476298845,-0.019735317662897982)"><path d="M 0.02434122677410054 0.026225684799572043 C 0.024262513557393495 0.02611316085796061 0.02296763800602332 0.024644446955170155 0.023396668173615992 0.02487539750023481 C 0.02296763800602332 0.024644446955170155 0.018492230861217197 0.023454278258796188 0.019192864762988454 0.023454278258796188 C 0.018492230861217197 0.023454278258796188 0.014560031184768242 0.025106348045299463 0.014989061352360916 0.02487539750023481 C 0.014560031184768242 0.025106348045299463 0.013965789535169314 0.026338208741183484 0.01404450275187636 0.026225684799572047" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.01404450275187636 0.026225684799572047 C 0.013985483988756688 0.026072543016960794 0.013372705812448685 0.024050221844568974 0.013336277594440279 0.024387983408237012 C 0.013372705812448685 0.024050221844568974 0.014769106783080199 0.021587538203154573 0.014481641367977242 0.022172546035555605 C 0.014769106783080199 0.021587538203154573 0.017037086858270635 0.016669612647435154 0.01678586257567576 0.017367889419424635 C 0.017037086858270635 0.016669612647435154 0.01769691627472512 0.013254993538436559 0.017496332759115732 0.013793224771681822 C 0.01769691627472512 0.013254993538436559 0.01933424242997782 0.01066877210788144 0.019192864762988426 0.01090911462048147" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.019192864762988426 0.01090911462048147 C 0.01933424242997782 0.011149457133081497 0.021089980282470503 0.014331456004927065 0.020889396766861114 0.013793224771681802 C 0.021089980282470503 0.014331456004927065 0.02185109123289597 0.01806616619141411 0.021599866950301104 0.017367889419424624 C 0.02185109123289597 0.01806616619141411 0.02419155357310246 0.02275755386795662 0.023904088157999503 0.02217254603555559 C 0.02419155357310246 0.02275755386795662 0.02508588014954499 0.02472574497190502 0.02504945193153657 0.02438798340823698 C 0.02508588014954499 0.02472574497190502 0.024282208010980872 0.0263788265821833 0.02434122677410054 0.026225684799572043" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.33734039743949185,0.4109771216464815) rotate(0) scale(1,1) translate(-0.01919286476298845,-0.0207756729228991)"><path d="M 0.02398679620826046 0.02260005157346109 C 0.023777984465252314 0.02246583786760259 0.021081434205329163 0.020820027384368077 0.021481055292162727 0.020989487103159083 C 0.021081434205329163 0.020820027384368077 0.018809724478606873 0.020566534947969017 0.01919134316625771 0.020566534947969017 C 0.018809724478606873 0.020566534947969017 0.016502009953519133 0.02115894682195009 0.016901631040352694 0.020989487103159083 C 0.016502009953519133 0.02115894682195009 0.014187078381246844 0.0227342652793196 0.014395890124254986 0.022600051573461098" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.014395890124254986 0.022600051573461098 C 0.014481097876201126 0.02237149814787899 0.015574758077516859 0.019452620688871252 0.015418383147608662 0.019857410466475798 C 0.015574758077516859 0.019452620688871252 0.016395850676591415 0.017364074720619814 0.016272389283153353 0.01774257424220654 C 0.016395850676591415 0.017364074720619814 0.01701238757830594 0.014936434549462854 0.016899919868865416 0.015315416207435071 C 0.01701238757830594 0.014936434549462854 0.01781308053761655 0.012878432700529 0.017622001796439635 0.013194794346539931 C 0.01781308053761655 0.012878432700529 0.019323770010200827 0.011379433297700896 0.019192864762988426 0.011519076455303898" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.019192864762988426 0.011519076455303898 C 0.019323770010200827 0.0116587196129069 0.02095480647071414 0.013511155992550844 0.02076372772953722 0.013194794346539914 C 0.02095480647071414 0.013511155992550844 0.021603256575365954 0.01569439786540728 0.021485809657111443 0.01531541620743506 C 0.021603256575365954 0.01569439786540728 0.02229629854257428 0.01812107376379326 0.02217309074859134 0.017742574242206533 C 0.02229629854257428 0.01812107376379326 0.023115445306545798 0.020262200244080337 0.022964303184906703 0.01985741046647579 C 0.023115445306545798 0.020262200244080337 0.024072003960206603 0.022828604999043198 0.02398679620826046 0.02260005157346109" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.33734039743949185,0.4040959859997025) rotate(0) scale(1,1) translate(-0.022933258138484177,-0.022933258138484177)"><path d="M 0.02414884649173639 0.022161575963360918 C 0.02427516431532156 0.022287666987709766 0.024403989712227507 0.023365901253686594 0.02444907202150619 0.02320866831811174 C 0.024403989712227507 0.023365901253686594 0.023425324236648008 0.02411834642960478 0.023607858780392177 0.02404837119025916 C 0.023425324236648008 0.02411834642960478 0.022076122952832004 0.023978395950913542 0.022258657496576174 0.02404837119025916 C 0.022076122952832004 0.023978395950913542 0.02137236194618348 0.023051435382536886 0.021417444255462166 0.02320866831811174 C 0.02137236194618348 0.023051435382536886 0.02184398760881713 0.02203548493901207 0.021717669785231965 0.022161575963360918 C 0.02184398760881713 0.02203548493901207 0.02313585619735954 0.02169557602592558 0.022933258138484174 0.02169557602592558 C 0.02313585619735954 0.02169557602592558 0.02427516431532156 0.022287666987709766 0.02414884649173639 0.022161575963360918 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.33734039743949185,0.40740572241943596) rotate(0) scale(1,1) translate(-0.02456377814682995,-0.024563778146829942)"><path d="M 0.02474033872797484 0.024395581603393682 C 0.024784478873261063 0.02440959798201337 0.02491689930911973 0.024591810904069315 0.02491689930911973 0.02456377814682994 C 0.02491689930911973 0.024591810904069315 0.02469619858268862 0.024745991068885892 0.02474033872797484 0.024731974690266202 C 0.02469619858268862 0.024745991068885892 0.02434307742039884 0.024717958311646512 0.02438721756568506 0.024731974690266202 C 0.02434307742039884 0.024717958311646512 0.02421065698454017 0.024535745389590562 0.02421065698454017 0.02456377814682994 C 0.02421065698454017 0.024535745389590562 0.024431357710971283 0.024381565224773992 0.02438721756568506 0.024395581603393682 C 0.024431357710971283 0.024381565224773992 0.024784478873261063 0.02440959798201337 0.02474033872797484 0.024395581603393682 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.33734039743949185,0.4109771216464815) rotate(0) scale(1,1) translate(-0.04809024934050082,-0.04760144134155646)"><path d="M 0.053047437557656216 0.0494807445127136 C 0.052864607594572 0.04937130355190935 0.050440378982549335 0.04802024074194863 0.050853478000645616 0.04816745298306261 C 0.050440378982549335 0.04802024074194863 0.04762971123047669 0.04771419761934586 0.048090249340500824 0.04771419761934586 C 0.04762971123047669 0.04771419761934586 0.044913921662259756 0.04831466522417659 0.04532702068035604 0.04816745298306261 C 0.044913921662259756 0.04831466522417659 0.04295023116026121 0.04959018547351785 0.04313306112334543 0.0494807445127136" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.04313306112334543 0.0494807445127136 C 0.04324890649843516 0.04930403066042178 0.044936304642518445 0.047078334891791966 0.04452320562442216 0.04736017828521175 C 0.044936304642518445 0.047078334891791966 0.04868475662651393 0.046098623791676153 0.04809024934050082 0.046098623791676153 C 0.04868475662651393 0.046098623791676153 0.05207039207467575 0.04764202167863154 0.05165729305657947 0.04736017828521175 C 0.05207039207467575 0.04764202167863154 0.05316328293274594 0.04965745836500542 0.053047437557656216 0.0494807445127136" fill="none" stroke="#000000" stroke-width="0.001"/>
</g></svg>