Files
SlaveMatrix-SDL/SlaveMatrix/Assets/Parts//x11y2.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
5.4 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.317739745606258,0.11889466917980429) rotate(0) scale(1,1) translate(-0.061780495912221296,-0.0594468243068542)"><path d="M 0.06570790953476856 0.0660816621479559 C 0.06553246351484486 0.06608817089408574 0.06314243955375269 0.06593831747515666 0.06360255729568424 0.06615976710151392 C 0.06314243955375269 0.06593831747515666 0.05990182490958205 0.0631963082591817 0.06018649663158991 0.0634242666316688" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06018649663158991 0.0634242666316688 C 0.058547687025491034 0.06378498825996358 0.0490912290096436 0.06545935608535798 0.05035363899499664 0.06558859640143751 C 0.0490912290096436 0.06545935608535798 0.052988436340217486 0.06215886279081736 0.05261203671947165 0.06264882473519166" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.05261203671947165 0.06264882473519166 C 0.050672619684179264 0.06269146484492825 0.03996092972881832 0.06245995887165538 0.040975534507717334 0.06290466539361121 C 0.03996092972881832 0.06245995887165538 0.04744922030247094 0.05949323897176428 0.04652440804607757 0.0599805856034567" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.04652440804607757 0.0599805856034567 C 0.04622513726027618 0.05992135459669017 0.04244566539909416 0.0591743180158098 0.042933158616460944 0.059269813522258366 C 0.04244566539909416 0.0591743180158098 0.04048626700611078 0.058798375026391916 0.040674489437676174 0.05883463952607395" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.040674489437676174 0.05883463952607395 C 0.04069803762866421 0.05867193774297707 0.04100274868189063 0.05655738877934438 0.040957067729532594 0.056882218128911366 C 0.04100274868189063 0.05655738877934438 0.04124479362734264 0.054774559764800015 0.041222660865972635 0.05493668733127012" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.041222660865972635 0.05493668733127012 C 0.04144624296363307 0.05489690036348751 0.044638642802935585 0.0543306825751815 0.043905646037897886 0.054459243717878754 C 0.044638642802935585 0.0543306825751815 0.050528036713802245 0.053305179443988375 0.05001862204642499 0.05339395361890302" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.05001862204642499 0.05339395361890302 C 0.05072359192043055 0.053375772769968126 0.05960740430935253 0.05318246681084515 0.05847826053449176 0.05317578343168427 C 0.05960740430935253 0.05318246681084515 0.06399252124560942 0.053499018396929436 0.06356834734475421 0.05347415416883365" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06356834734475421 0.05347415416883365 C 0.06371141382292944 0.05355647094545105 0.06552835643804295 0.054714046565412705 0.06528514508285696 0.05446195548824248 C 0.06552835643804295 0.054714046565412705 0.06658702848399674 0.05666902139542913 0.06648688360698599 0.05649924709487631" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06648688360698599 0.05649924709487631 C 0.0665622594223383 0.056689408026725445 0.0675104627693919 0.05918248336986795 0.06739139339121372 0.058781178277065915 C 0.0675104627693919 0.05918248336986795 0.06795940970795014 0.06152605236945366 0.06791571614512426 0.06131490820850076" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.06791571614512426 0.06131490820850076 C 0.06788921874464743 0.06157524860870344 0.06741376345520592 0.06483622250588754 0.06759774733940223 0.06443899301093295 C 0.06741376345520592 0.06483622250588754 0.06555042305104908 0.06621855124270781 0.06570790953476856 0.0660816621479559" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.31762218355567806,0.11703424532477961) rotate(0) scale(1,1) translate(-0.008858564515669447,-0.005607832739230756)"><path d="M 0.00531417971266442 0.0030986356640048222 C 0.005704025841479512 0.003196414703112806 0.010502487392641034 0.004621942626140646 0.009992333258445514 0.004271984133300627 C 0.010502487392641034 0.004621942626140646 0.01155633732839109 0.007550317031817084 0.011436029323010662 0.007298137578085048" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M -0.010780572282183591 0.004831494862151765 C -0.010094470186868817 0.0047128585340859945 -0.0012061178055022981 0.0032634539921836026 -0.0025473471384062987 0.003407858925362514 C -0.0012061178055022981 0.0032634539921836026 0.005969306950253641 0.0030728670588916836 0.005314179712664415 0.0030986356640048244" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.31762218355567806,0.11703424532477961) rotate(0) scale(1,1) translate(-0.008858564515669447,-0.005607832739230756)"><path d="M 0.006506705939743475 0.008770763403408127 C 0.006757784435189012 0.008728088398367497 0.009921784474128729 0.008445255673480806 0.009519647885089924 0.00825866334292057 C 0.009921784474128729 0.008445255673480806 0.011483403101802406 0.011239138705731835 0.011332345008209139 0.011009871370130968" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M -0.006678660274189821 0.004067449593616341 C -0.006141342775900623 0.004359495820868999 0.0008679302231083298 0.007963947138130886 -0.0002308502947194445 0.007572004320648237 C 0.0008679302231083298 0.007963947138130886 0.007068168959282046 0.008870659993638117 0.0065067059397434695 0.008770763403408127" fill="none" stroke="#000000" stroke-width="0.001"/>
</g></svg>