Files
SlaveMatrix-SDL/SlaveMatrix/Assets/Parts/魔性弱瞼左/x0y4.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

25 lines
9.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.3257456317518053,0.1130072566562324) rotate(0) scale(1,1) translate(-0.14152185117886698,-0.14116273906070584)"><path d="M 0.1317967290307309 0.14152128608500533 C 0.13196830228129378 0.1409422222775161 0.13460562065393777 0.1336900036301274 0.13385560803748547 0.13457252039513456 C 0.13460562065393777 0.1336900036301274 0.14198036291130173 0.13082619305892967 0.14079688042815833 0.13093108490491925 C 0.14198036291130173 0.13082619305892967 0.1489283753604131 0.13394357602344725 0.14805739783520633 0.13331381824325977 C 0.1489283753604131 0.13394357602344725 0.15151454513859225 0.13891937493582826 0.1512486107306395 0.13848817826716914" fill="none" stroke="none" stroke-width="0"/>
<path d="M 0.1512486107306395 0.13848817826716914 C 0.15133270124434645 0.1392156041124309 0.15110359578592847 0.143900043369532 0.15175315381288118 0.14285273333873974 C 0.15110359578592847 0.143900043369532 0.1466176140282635 0.14509192263745319 0.14735126256892317 0.14477203845192269" fill="none" stroke="none" stroke-width="0"/>
<path d="M 0.14735126256892317 0.14477203845192269 C 0.14722555338611049 0.1447794561975668 0.14537093435953363 0.14494881316342442 0.1458427523751709 0.14486105139965208 C 0.14537093435953363 0.14494881316342442 0.14094967216598153 0.14582926357132006 0.14168944638127623 0.14582517961719077 C 0.14094967216598153 0.14582926357132006 0.1363636879349742 0.14463468645164182 0.13696546179163463 0.14491005884920355 C 0.1363636879349742 0.14463468645164182 0.13426005162716073 0.14232159851288728 0.13446816010135104 0.14252071084645007" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.13446816010135104 0.14252071084645007 C 0.13457524262508913 0.1426434273325291 0.13597739178174267 0.1442013875621966 0.13575315038620814 0.14399330867939844 C 0.13597739178174267 0.1442013875621966 0.13727621571956183 0.14510301983674734 0.1371590568477654 0.1450176574400282" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.1371590568477654 0.1450176574400282 C 0.13735690912413634 0.14507004370364524 0.14012751027572212 0.1456702711117764 0.1395332841642167 0.14564629260343256 C 0.14012751027572212 0.1456702711117764 0.14490993896117116 0.1452291507969255 0.1442897701858303 0.14530539954015437 C 0.14490993896117116 0.1452291507969255 0.1472304338335647 0.14468686092733354 0.14697530946830697 0.14473130768468617 C 0.1472304338335647 0.14468686092733354 0.14738259199397452 0.14477543268252574 0.14735126256892317 0.14477203845192269" fill="none" stroke="none" stroke-width="0"/>
<path d="M 0.14735126256892317 0.14477203845192269 C 0.148084877139361 0.14445223087534723 0.15213654945388144 0.14313759135733212 0.1517529499915501 0.14285319299246987 C 0.15213654945388144 0.14313759135733212 0.14930284423480472 0.14708263458253393 0.1496528593429112 0.1464784286410962" fill="none" stroke="none" stroke-width="0"/>
<path d="M 0.1496528593429112 0.1464784286410962 C 0.14939918984363398 0.14681606825337767 0.14579911671264256 0.15095336070947737 0.14660882535158462 0.15053010398847386 C 0.14579911671264256 0.15095336070947737 0.1389062862568372 0.15139561909381702 0.13993635567560644 0.15155750929313846 C 0.1389062862568372 0.15139561909381702 0.13356969010594757 0.1477510696626053 0.13424799232635387 0.1485874215966164 C 0.13356969010594757 0.1477510696626053 0.131592457089429 0.14093244145903774 0.1317967290307309 0.14152128608500533" fill="none" stroke="none" stroke-width="0"/>
<path d="M 0.1317967290307309 0.14152128608500533 C 0.1317967290307309 0.14152128608500533 0.1317967290307309 0.14152128608500533 0.1317967290307309 0.14152128608500533 C 0.1317967290307309 0.14152128608500533 0.1317967290307309 0.14152128608500533 0.1317967290307309 0.14152128608500533 C 0.1317967290307309 0.14152128608500533 0.1317967290307309 0.14152128608500533 0.1317967290307309 0.14152128608500533 C 0.1317967290307309 0.14152128608500533 0.1317967290307309 0.14152128608500533 0.1317967290307309 0.14152128608500533" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3263507536782752,0.10903148832768692) rotate(0) scale(1,1) translate(-0.014991016181195468,-0.014142268789137224)"><path d="M 0.02078524622149229 0.01806673936081992 C 0.02061457057783967 0.017898921412471906 0.01824733162484706 0.0157703732356926 0.01873713849766085 0.016052923980643723 C 0.01824733162484706 0.0157703732356926 0.014272637306790495 0.014568128076951212 0.01490756374772682 0.014676130421406459 C 0.014272637306790495 0.014568128076951212 0.010510881075478182 0.014881842509027923 0.011118021206424947 0.014756895847180772 C 0.010510881075478182 0.014881842509027923 0.007330537257194044 0.016293706573271553 0.007621882176365651 0.016175490363572263" fill="none" stroke="none" stroke-width="0"/>
<path d="M 0.007621882176365651 0.016175490363572263 C 0.007879957205561072 0.015990271501478654 0.011322826244566405 0.01373276434907562 0.010718782526710694 0.013952864018448953 C 0.011322826244566405 0.01373276434907562 0.01553445224310824 0.01362550322851607 0.014870406790634188 0.013534294331092276 C 0.01553445224310824 0.01362550322851607 0.01918023124230418 0.015425074540011782 0.01868732795639934 0.015047370787534478 C 0.01918023124230418 0.015425074540011782 0.020960072743583368 0.018318353408593707 0.02078524622149229 0.01806673936081992" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g id="睫毛">
<g transform="translate(0.31919179589092594,0.11534109244382615) rotate(0) scale(1,1) translate(-0.008458498469528066,-0.005828091228850773)"><path d="M 0.006881306768156488 0.006607652267831972 C 0.006942794032999856 0.00655295754709212 0.007732168669740453 0.005860475773354235 0.007619153946276901 0.0059513156189537455 C 0.007732168669740453 0.005860475773354235 0.008289010908339306 0.005481428995778191 0.008237483449719122 0.005517574120637849" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.008237483449719122 0.005517574120637849 C 0.008268894350663037 0.005522894352801793 0.00865595515121675 0.005617902725577793 0.00861441426104612 0.005581416906605187 C 0.00865595515121675 0.005617902725577793 0.008726693074813734 0.006009401081127428 0.008735974131766695 0.0059554039483091245 C 0.008726693074813734 0.006009401081127428 0.008483630531430914 0.006252214046434465 0.008503041577610589 0.006229382500424823" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.008503041577610589 0.006229382500424823 C 0.008443642979981143 0.006245703461342672 0.007655113838602717 0.006456756512056278 0.007790258406057225 0.006425234031439016 C 0.007655113838602717 0.006456756512056278 0.006805560798331427 0.006622853787531385 0.006881306768156488 0.006607652267831972" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.3206423778096175,0.11651984678061952) rotate(0) scale(1,1) translate(-0.008444565773628033,-0.0057170889593407765)"><path d="M 0.005938421544988755 0.006925525163960507 C 0.006064629171971826 0.006842060721372349 0.00762773276086775 0.005804238459758539 0.007452913068785608 0.005923951852902613 C 0.00762773276086775 0.005804238459758539 0.008084869915073527 0.0054527154956757 0.008036257849974457 0.005488964446231616" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.008036257849974457 0.005488964446231616 C 0.008068814012214534 0.005482372299033102 0.008480374746226033 0.005432011706994641 0.008426931796855379 0.005409858679849455 C 0.008480374746226033 0.005432011706994641 0.008684698567533657 0.005814996166571297 0.0086775732424223 0.005754800771973848 C 0.008684698567533657 0.005814996166571297 0.008498674236172427 0.006163653635272598 0.008512435698191647 0.006132203415018848" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.008512435698191647 0.006132203415018848 C 0.008450577310596764 0.006163289641575705 0.007555633867619475 0.006571348279446265 0.00777013504705305 0.0065052381337011266 C 0.007555633867619475 0.006571348279446265 0.005785778753150063 0.006960549083148788 0.005938421544988755 0.006925525163960507" fill="none" stroke="#000000" stroke-width="0.001"/>
</g><g transform="translate(0.31870660913029697,0.11445995879224241) rotate(0) scale(1,1) translate(-0.008425319926557106,-0.005692421788338555)"><path d="M 0.005657112273697284 0.005627479444444081 C 0.005807155639376555 0.005611040896822838 0.007672980640650663 0.005404651898654703 0.007457632661848533 0.005430216872989158 C 0.007672980640650663 0.005404651898654703 0.008306592632445698 0.005311573325717403 0.00824128801932284 0.005320699752430614" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.00824128801932284 0.005320699752430614 C 0.008270066972224788 0.00533438185120189 0.008620813244145837 0.0055300387589519015 0.00858663545414623 0.005484884937685927 C 0.008620813244145837 0.0055300387589519015 0.008626794031295857 0.0059169446037972 0.008651421499318131 0.005862545607622313 C 0.008626794031295857 0.0059169446037972 0.008261079532758992 0.006160600165464763 0.008291105837878926 0.006137672891784574" fill="none" stroke="#000000" stroke-width="0.001"/>
<path d="M 0.008291105837878926 0.006137672891784574 C 0.008219549782552765 0.006133568686687197 0.007212933710283199 0.006045906310004339 0.007432433173965003 0.006088422430616047 C 0.007212933710283199 0.006045906310004339 0.005509168865341641 0.00558906752892975 0.005657112273697284 0.005627479444444081" fill="none" stroke="#000000" stroke-width="0.001"/>
</g></g>
</svg>