Files
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

39 lines
12 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.07847599559563229) rotate(0) scale(1,1) translate(-0.027518731894252097,-0.027518731894252104)"><path d="M 0.027518731894252094 0.03351898730977576 C 0.026652669624412335 0.03351898730977576 0.022755389410133435 0.02376857225954999 0.022322358275213554 0.024518604186490434 C 0.022755389410133435 0.02376857225954999 0.03314813664821053 0.025268636113430876 0.03271510551329065 0.024518604186490434 C 0.03314813664821053 0.025268636113430876 0.026652669624412335 0.03351898730977576 0.027518731894252094 0.03351898730977576 Z" fill="#cccccc" stroke="none" stroke-width="0"/>
</g><g id="お下げ左">
<g transform="translate(0.3173264160442866,0.08092617853905136) rotate(0) scale(1,1) translate(-0.1719217342075472,-0.16462012712208823)"><path d="M 0.1691837744348894 0.15841506811034614 C 0.1693679056354716 0.15841760794068208 0.17181857918421023 0.15868497406821594 0.17139334884187585 0.15844554607437722 C 0.17181857918421023 0.15868497406821594 0.174527637684654 0.1615250921999137 0.17428653854290185 0.1612882040364109" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17428653854290185 0.1612882040364109 C 0.17434996643404754 0.16284941946296894 0.17477283333773164 0.1833352402103204 0.17504767323665024 0.18002278915510753 C 0.17477283333773164 0.1833352402103204 0.17065019196581444 0.2027888523276202 0.17098845975587873 0.2010376166989654" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17098845975587873 0.2010376166989654 C 0.1707656827509969 0.20185983000032603 0.16788939359734936 0.21318477537725286 0.16831513569729697 0.21090417631529326 C 0.16788939359734936 0.21318477537725286 0.1656765894614415 0.2298631912030796 0.16587955455650732 0.22840480544248065" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.16587955455650732 0.22840480544248065 C 0.1657902555705585 0.2269687458959293 0.16466514515716393 0.20846070145830112 0.1648079667251213 0.21117209088386446 C 0.16466514515716393 0.20846070145830112 0.16411217315901036 0.19459280245670843 0.16416569574101889 0.19586813233572042" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.16416569574101889 0.19586813233572042 C 0.16422392737236594 0.19456054231401934 0.16528264854167266 0.17705596338985946 0.16486447531718346 0.18017705207530732 C 0.16528264854167266 0.17705596338985946 0.1695437160280316 0.15660156944659936 0.1691837744348894 0.15841506811034614" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.31220085444714585,0.07641747282463367) rotate(0) scale(1,1) translate(-0.17652113247044526,-0.16988053717297155)"><path d="M 0.17333360913027893 0.1724194594432011 C 0.173678528747138 0.17209833945348693 0.1776837806766507 0.1688306747576188 0.17747264453258774 0.168566019566631 C 0.1776837806766507 0.1688306747576188 0.17573345938623838 0.1761810969157563 0.1758672428590345 0.17559532173505438" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.1758672428590345 0.17559532173505438 C 0.175780412280187 0.17621416596951384 0.17460469969146222 0.18457262870811622 0.17482527591286476 0.18302145254856794 C 0.17460469969146222 0.18457262870811622 0.173086582559649 0.19514176757472254 0.17322032820220407 0.19420943564963372" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17322032820220407 0.19420943564963372 C 0.1728085493178408 0.1963894055964824 0.16771965959865923 0.22388654436081082 0.16827898158984467 0.22036907501181807 C 0.16771965959865923 0.22388654436081082 0.16636092120115648 0.2377565672396906 0.16650846430797864 0.23641906783754657" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.16650846430797864 0.23641906783754657 C 0.1664144724928365 0.23411841702463612 0.1653718028649563 0.20532514070719038 0.16538056252627303 0.20881125808262124 C 0.1653718028649563 0.20532514070719038 0.16648858052600335 0.1934001927698559 0.16640334837217793 0.19458565933237632" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.16640334837217793 0.19458565933237632 C 0.16661469518624014 0.1936448380900336 0.16951703187076603 0.18144862110016577 0.1689395101409243 0.18329580442426371 C 0.16951703187076603 0.18144862110016577 0.1736997840460585 0.1715130973614459 0.17333360913027893 0.1724194594432011" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3139035342189793,0.07685178038560904) rotate(0) scale(1,1) translate(-0.17302197079216816,-0.17193698964626375)"><path d="M 0.17040536278148055 0.17313870717623875 C 0.1706432659790051 0.17284626675087783 0.17364231123749338 0.16956446022491076 0.1732602011517751 0.16962942207190762 C 0.17364231123749338 0.16956446022491076 0.1751348906982937 0.17258664359064035 0.17499068381009994 0.1723591650122763" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17499068381009994 0.1723591650122763 C 0.1749503346385776 0.1735255815777098 0.17421235082263467 0.18906649988977314 0.17450649375183167 0.18635616379747838 C 0.17421235082263467 0.18906649988977314 0.17120717490206133 0.20642711764667462 0.17146096865973598 0.20488319811981337" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17146096865973598 0.20488319811981337 C 0.1712114269585671 0.20641043273659265 0.1679806683456381 0.22664614113086634 0.1684664682457094 0.22321001352116485 C 0.1679806683456381 0.22664614113086634 0.16539511165997794 0.24802562242915338 0.16563136985888036 0.2461167294362312" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.16563136985888036 0.2461167294362312 C 0.1655312902228589 0.24386088066799702 0.16436359790918878 0.21536872089462022 0.1644304142266229 0.21904654421742106 C 0.16436359790918878 0.21536872089462022 0.16486283736825816 0.20056087500805456 0.16482957404967083 0.20198284956262122" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.16482957404967083 0.20198284956262122 C 0.16501345398327572 0.20062890057121896 0.16750078231391366 0.18333178313359563 0.16703613325292951 0.18573546166579416 C 0.16750078231391366 0.18333178313359563 0.1706861319088598 0.17208897763544245 0.17040536278148055 0.17313870717623875" fill="none" stroke="#000000" stroke-width="0.001"/>
</g></g>
<g id="お下げ右">
<g transform="translate(0.35736048961305483,0.08092617853905136) rotate(0) scale(1,1) translate(-0.1719217342075472,-0.16462012712208823)"><path d="M 0.174659693980205 0.15841506811034614 C 0.17501963557334715 0.16022856677409292 0.1793971663224001 0.18329814076075518 0.1789789930979109 0.18017705207530732 C 0.1793971663224001 0.18329814076075518 0.17973600430542255 0.1971757223574215 0.1796777726740755 0.19586813233572042" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.1796777726740755 0.19586813233572042 C 0.17962425009206698 0.19714346221473242 0.17889268012201578 0.2138834803094278 0.17903550168997315 0.21117209088386446 C 0.17889268012201578 0.2138834803094278 0.17787461487263828 0.22984086498903197 0.17796391385858712 0.22840480544248062" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17796391385858712 0.22840480544248062 C 0.1777609487635213 0.22694641968188167 0.17510259061784983 0.20862357725333366 0.17552833271779744 0.21090417631529326 C 0.17510259061784983 0.20862357725333366 0.1726322316543338 0.20021540339760474 0.17285500865921563 0.2010376166989654" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17285500865921563 0.2010376166989654 C 0.17251674086915134 0.19928638107031058 0.16852095527952554 0.17671033809989464 0.16879579517844412 0.18002278915510753 C 0.16852095527952554 0.17671033809989464 0.16962035776333828 0.15972698860985285 0.16955692987219256 0.1612882040364109" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.16955692987219256 0.1612882040364109 C 0.16979802901394472 0.16105131587290808 0.17287534991555287 0.1582061180805385 0.17245011957321849 0.15844554607437722 C 0.17287534991555287 0.1582061180805385 0.17484382518078723 0.1584125282800102 0.174659693980205 0.15841506811034614" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.36248605121019567,0.0764174728246337) rotate(0) scale(1,1) translate(-0.17065161948019514,-0.16988053717297155)"><path d="M 0.17383914282036145 0.1724194594432011 C 0.174205317736141 0.17332582152495632 0.17881076353955794 0.18514298774836166 0.17823324180971617 0.18329580442426371 C 0.17881076353955794 0.18514298774836166 0.18098075039252473 0.19552648057471902 0.18076940357846252 0.19458565933237632" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.18076940357846252 0.19458565933237632 C 0.18085463573228794 0.19577112589489673 0.18178342976305062 0.2122973754580521 0.18179218942436734 0.20881125808262124 C 0.18178342976305062 0.2122973754580521 0.18057029582751966 0.23871971865045702 0.1806642876426618 0.23641906783754657" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.1806642876426618 0.23641906783754657 C 0.18051674453583963 0.23508156843540254 0.17833444836961038 0.21685160566282533 0.17889377036079585 0.22036907501181807 C 0.17833444836961038 0.21685160566282533 0.173540644864073 0.19202946570278503 0.1739524237484363 0.19420943564963372" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.1739524237484363 0.19420943564963372 C 0.17381867810588125 0.1932771037245449 0.17212689981637316 0.1814702763890197 0.1723474760377757 0.18302145254856797 C 0.17212689981637316 0.1814702763890197 0.1712186785127585 0.17497647750059492 0.17130550909160597 0.17559532173505438" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17130550909160597 0.17559532173505438 C 0.17117172561880986 0.17500954655435244 0.16991124356211562 0.16830136437564322 0.16970010741805266 0.168566019566631 C 0.16991124356211562 0.16830136437564322 0.1741840624372205 0.1727405794329153 0.17383914282036145 0.1724194594432011" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.36078337143836203,0.07685178038560904) rotate(0) scale(1,1) translate(-0.16994746398775143,-0.17193698964626375)"><path d="M 0.1725640719984391 0.17313870717623875 C 0.17284484112581835 0.17418843671703504 0.17639795058797436 0.1881391401979927 0.17593330152699022 0.18573546166579416 C 0.17639795058797436 0.1881391401979927 0.17832374066385376 0.20333679855402348 0.17813986073024887 0.20198284956262122" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17813986073024887 0.20198284956262122 C 0.1781731240488362 0.20340482411718788 0.1784722042358627 0.22272436754022193 0.17853902055329685 0.2190465442174211 C 0.1784722042358627 0.22272436754022193 0.17723798528501788 0.24837257820446537 0.17733806492103935 0.2461167294362312" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17733806492103935 0.2461167294362312 C 0.17710180672213693 0.244207836443309 0.17401716663413902 0.21977388591146335 0.17450296653421032 0.22321001352116485 C 0.17401716663413902 0.21977388591146335 0.17125892441901477 0.2033559635030341 0.17150846612018367 0.20488319811981337" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.17150846612018367 0.20488319811981337 C 0.17125467236250902 0.20333927859295212 0.168168798098891 0.18364582770518365 0.16846294102808798 0.1863561637974784 C 0.168168798098891 0.18364582770518365 0.1679384017982974 0.1711927484468428 0.16797875096981973 0.1723591650122763" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.16797875096981973 0.1723591650122763 C 0.16812295785801346 0.17213168643391225 0.1700913437138628 0.16969438391890448 0.16970923362814452 0.16962942207190762 C 0.1700913437138628 0.16969438391890448 0.17280197519596363 0.17343114760159967 0.1725640719984391 0.17313870717623875" fill="none" stroke="#000000" stroke-width="0.001"/>
</g></g>
</svg>