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

11 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.33734039743949185,0.4071172026683852) rotate(0) scale(1,1) translate(-0.01919286476298845,-0.019735317662897982)"><path d="M 0.01919286476298845 0.028100586173949643 C 0.018948183979597112 0.027980549749459273 0.015875795754345428 0.026284703285652234 0.01625669536229237 0.026660149080065178 C 0.015875795754345428 0.026284703285652234 0.01466616673540708 0.02282088166927427 0.014622069467625131 0.023595236640994315 C 0.01466616673540708 0.02282088166927427 0.01702538451663331 0.016551055096981928 0.01678586257567576 0.017367889419424635 C 0.01702538451663331 0.016551055096981928 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.021839388891258655 0.01818472374186733 0.021599866950301104 0.017367889419424624 C 0.021839388891258655 0.01818472374186733 0.02380775732613366 0.024369591612714344 0.02376366005835171 0.0235952366409943 C 0.02380775732613366 0.024369591612714344 0.02174813455573755 0.027035594874478094 0.02212903416368449 0.02666014908006515 C 0.02174813455573755 0.027035594874478094 0.018948183979597116 0.028220622598440017 0.01919286476298845 0.028100586173949643" 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.01919286476298845 0.024662010958448496 C 0.01902276268237479 0.02458576563700842 0.01693915222861984 0.023260139019327473 0.017151639795624528 0.023747067101167592 C 0.01693915222861984 0.023260139019327473 0.016622037298368933 0.018116236401889373 0.016643013958932192 0.018818873976367084 C 0.016622037298368933 0.018116236401889373 0.016981502188657703 0.014846742904949474 0.016899919868865416 0.015315416207435071 C 0.016981502188657703 0.014846742904949474 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.02156739197690373 0.01578408950992066 0.021485809657111443 0.01531541620743506 C 0.02156739197690373 0.01578408950992066 0.0217217389064814 0.01952151155084479 0.02174271556704466 0.01881887397636708 C 0.0217217389064814 0.01952151155084479 0.02102160216334764 0.0242339951830077 0.021234089730352325 0.02374706710116758 C 0.02102160216334764 0.0242339951830077 0.019022762682374794 0.02473825627988857 0.01919286476298845 0.024662010958448496" 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.4074057224194359) 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.04481464761927567,-0.044322296567054956)"><path d="M 0.047194078569935856 0.044322296567054956 C 0.04731662600338515 0.04462253336527269 0.04596438347466283 0.04673453166469105 0.046285216820667135 0.04654897511871904 C 0.04596438347466283 0.04673453166469105 0.043023245071879886 0.046363418572747034 0.04334407841788419 0.04654897511871904 C 0.043023245071879886 0.046363418572747034 0.04255776410206477 0.04402205976883722 0.04243521666861549 0.044322296567054956 C 0.04255776410206477 0.04402205976883722 0.045211219444385664 0.04294613354010617 0.04481464761927564 0.04294613354010617 C 0.045211219444385664 0.04294613354010617 0.04731662600338515 0.04462253336527269 0.047194078569935856 0.044322296567054956 Z" fill="#cccccc" stroke="#000000" stroke-width="0.001"/>
</g></svg>