- 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
61 lines
18 KiB
XML
61 lines
18 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1">
|
|
<g id="腹板4">
|
|
<g transform="translate(0.33734345282867056,0.2355169177474123) rotate(0) scale(1,1) translate(-0.03764899741035618,-0.03764899741035618)"><path d="M 0.02883976798464411 0.03586614560789742 C 0.029573870436786786 0.03574516348025069 0.03911720231464154 0.03441436007613664 0.03764899741035619 0.03441436007613664 C 0.03911720231464154 0.03441436007613664 0.04719232928821101 0.035987127735544154 0.04645822683606833 0.03586614560789742" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04645822683606833 0.03586614560789742 C 0.04633071334712363 0.036166852013890145 0.044608809237652154 0.04011001322386366 0.04492806496873197 0.03947462247981007 C 0.044608809237652154 0.04011001322386366 0.0424354158209754 0.0438255188746014 0.04262715806311052 0.043490834536540526" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.04262715806311052 0.043490834536540526 C 0.04221231134204766 0.04360934811315192 0.03681930396823047 0.04491299745587719 0.03764899741035619 0.04491299745587719 C 0.03681930396823047 0.04491299745587719 0.03225599003653908 0.043372320959929135 0.032670836757601934 0.043490834536540526" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.032670836757601934 0.043490834536540526 C 0.032479094515466815 0.043156150198479654 0.03005067412090065 0.03883923173575648 0.03036992985198047 0.03947462247981007 C 0.03005067412090065 0.03883923173575648 0.028712254495699415 0.0355654392019047 0.02883976798464411 0.03586614560789742" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.3373434528286706,0.237531599103063) rotate(0) scale(1,1) translate(-0.011152769902399133,-0.011152769902399133)"><path d="M 0.010133122315786119 0.005944709506326598 C 0.01021809294800387 0.005941271340062802 0.011322711166834634 0.005903451511161047 0.011152769902399133 0.005903451511161047 C 0.011322711166834634 0.005903451511161047 0.012257388121229888 0.005948147672590392 0.012172417489012138 0.005944709506326596" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.012172417489012138 0.005944709506326596 C 0.012131996680953291 0.005966432758907205 0.011640777950030162 0.006275111915004011 0.011687367792305984 0.006205388537293906 C 0.011640777950030162 0.006275111915004011 0.011607170347485311 0.006829390163977353 0.011613339381702286 0.006781390038847857" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.011613339381702286 0.006781390038847857 C 0.011613339381702286 0.007145671694143796 0.011613339381702286 0.011872066771631067 0.011613339381702286 0.011152769902399131 C 0.011613339381702286 0.011872066771631067 0.011613339381702286 0.015767967683567082 0.011613339381702286 0.015412952469631085" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.011613339381702286 0.015412952469631085 C 0.011628549418310322 0.015458130538351662 0.011895391399474512 0.016015546569491057 0.01179585982099871 0.015955089294278007 C 0.011895391399474512 0.016015546569491057 0.012892039865279675 0.01615371897868014 0.01280771832341191 0.01613843977218767" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01280771832341191 0.01613843977218767 C 0.012673301471422798 0.016172386634359923 0.01091889136270712 0.016545802118254724 0.011194716099542583 0.016545802118254724 C 0.01091889136270712 0.016545802118254724 0.009356413596539999 0.016104492910015415 0.009497821481386351 0.01613843977218767" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.009497821481386351 0.01613843977218767 C 0.009582143023254117 0.016123160565695197 0.01060921156227535 0.01589463201906496 0.010509679983799548 0.015955089294278007 C 0.01060921156227535 0.01589463201906496 0.010707410459704006 0.015367774400910516 0.01069220042309597 0.015412952469631092" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01069220042309597 0.015412952469631092 C 0.01069220042309597 0.015057937255695096 0.01069220042309597 0.010433473033167199 0.01069220042309597 0.011152769902399134 C 0.01069220042309597 0.010433473033167199 0.01069220042309597 0.006417108383551922 0.01069220042309597 0.0067813900388478615" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01069220042309597 0.0067813900388478615 C 0.010686031388878995 0.006733389913718366 0.010571582170216457 0.006135665159583805 0.010618172012492278 0.00620538853729391 C 0.010571582170216457 0.006135665159583805 0.010092701507727272 0.0059229862537459885 0.010133122315786119 0.005944709506326598" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g></g>
|
|
<g id="腹板3">
|
|
<g transform="translate(0.3373434528286707,0.22363447881817483) rotate(0) scale(1,1) translate(-0.5000000158677831,-0.5162142508926452)"><path d="M 0.5000000158677831 0.5223482394407566 C 0.5008979041908314 0.5226824053101478 0.5086762209037895 0.5248558092543092 0.5071831224521689 0.5250215663958857 C 0.5086762209037895 0.5248558092543092 0.51254001360932 0.5205222592971763 0.5119448034807477 0.521022182308144" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.5119448034807477 0.521022182308144 C 0.5118241100906331 0.5204861451100924 0.5095010838316265 0.5137984751467463 0.5104964827993735 0.5145897359315252 C 0.5095010838316265 0.5137984751467463 0.49912531029015056 0.5112718293040688 0.5000000158677831 0.5115270528907963" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.5000000158677831 0.5115270528907963 C 0.49912531029015056 0.5117822764775237 0.4885081499684456 0.5153809967163042 0.48950354893619263 0.5145897359315252 C 0.4885081499684456 0.5153809967163042 0.48793453486470395 0.5215582195061956 0.48805522825481845 0.521022182308144" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.48805522825481845 0.521022182308144 C 0.4886504383833908 0.5215221053191117 0.4943100077350177 0.5251873235374622 0.4928169092833971 0.5250215663958857 C 0.4943100077350177 0.5251873235374622 0.5008979041908314 0.5220140735713654 0.5000000158677831 0.5223482394407566" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.3373434528286705,0.22437515707292727) rotate(0) scale(1,1) translate(-0.011152769902399133,-0.011152769902399133)"><path d="M 0.010133122315786119 0.005987737708264745 C 0.010303063580221622 0.005946810852053954 0.011492652431270137 0.005742176570999997 0.011152769902399133 0.005742176570999997 C 0.011492652431270137 0.005742176570999997 0.012342358753447639 0.0060286645644755344 0.012172417489012138 0.005987737708264744" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.012172417489012138 0.005987737708264744 C 0.012131996680953291 0.006017968237291229 0.011640777950030162 0.006447928313145377 0.011687367792305984 0.006350504056582561 C 0.011640777950030162 0.006447928313145377 0.011607170347485311 0.007224022514554865 0.011613339381702286 0.007156828787018534" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.011613339381702286 0.007156828787018534 C 0.011613339381702286 0.0074898238799669175 0.011613339381702286 0.011821824306115822 0.011613339381702286 0.011152769902399131 C 0.011613339381702286 0.011821824306115822 0.011613339381702286 0.01552154094238714 0.011613339381702286 0.01518548163161883" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.011613339381702286 0.01518548163161883 C 0.011625426226556065 0.015264849694830652 0.011857913098423432 0.016311756871881865 0.01175838151994763 0.01613789839016069 C 0.011857913098423432 0.016311756871881865 0.012895163057033933 0.017366273830782288 0.01280771832341191 0.017271783412272933" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01280771832341191 0.017271783412272933 C 0.012531893586576446 0.017153713251747003 0.010601120428728206 0.016563362449117356 0.011152769902399133 0.016563362449117356 C 0.010601120428728206 0.016563362449117356 0.009221996744550888 0.017389853572798864 0.009497821481386351 0.017271783412272933" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.009497821481386351 0.017271783412272933 C 0.009585266215008374 0.01717729299376358 0.01064668986332643 0.015964039908439514 0.010547158284850628 0.01613789839016069 C 0.01064668986332643 0.015964039908439514 0.010704287267949749 0.01510611356840702 0.01069220042309597 0.015185481631618841" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01069220042309597 0.015185481631618841 C 0.01069220042309597 0.014849422320850533 0.01069220042309597 0.01048371549868244 0.01069220042309597 0.011152769902399133 C 0.01069220042309597 0.01048371549868244 0.01069220042309597 0.006823833694070158 0.01069220042309597 0.00715682878701854" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01069220042309597 0.00715682878701854 C 0.010686031388878995 0.0070896350594822095 0.010571582170216457 0.006253079800019752 0.010618172012492278 0.006350504056582568 C 0.010571582170216457 0.006253079800019752 0.010092701507727272 0.00595750717923826 0.010133122315786119 0.005987737708264745" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g></g>
|
|
<g id="腹板2">
|
|
<g transform="translate(0.3373434528286707,0.21044497355783415) rotate(0) scale(1,1) translate(-0.49999999596755706,-0.5243570774287807)"><path d="M 0.4999999959675571 0.53089760246971 C 0.5010253990543796 0.5312384870977876 0.5099638729963817 0.5335207844385706 0.5082032206621366 0.5336246794943315 C 0.5099638729963817 0.5335207844385706 0.5148204638889401 0.5296216623397852 0.5140852146415175 0.5300664420236237" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.5140852146415175 0.5300664420236237 C 0.5140885703778266 0.5297089617111009 0.5140129045438202 0.5251523820596634 0.5141254834772268 0.5257766782733505 C 0.5140129045438202 0.5251523820596634 0.5126183327709228 0.5223080715582143 0.5127342674406385 0.5225748874593786" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.5127342674406385 0.5225748874593786 C 0.5116730781512151 0.5223611693645857 0.49787761738871017 0.5200102703218625 0.49999999596755706 0.5200102703218625 C 0.49787761738871017 0.5200102703218625 0.4862045352050522 0.5227886055541716 0.48726572449447564 0.5225748874593786" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.48726572449447564 0.5225748874593786 C 0.4871497898247599 0.5228417033605429 0.48576192952448083 0.5264009744870376 0.4858745084578874 0.5257766782733505 C 0.48576192952448083 0.5264009744870376 0.48591813302990583 0.5304239223361465 0.4859147772935967 0.5300664420236237" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.4859147772935967 0.5300664420236237 C 0.4866500265410193 0.5305112217074622 0.49355742360722255 0.5337285745500923 0.4917967712729775 0.5336246794943315 C 0.49355742360722255 0.5337285745500923 0.5010253990543796 0.5305567178416323 0.4999999959675571 0.53089760246971" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.3373434528286707,0.21201288089784426) rotate(0) scale(1,1) translate(-0.011152769902399133,-0.011152769902399133)"><path d="M 0.010133122315786119 0.005274601354793794 C 0.010303063580221622 0.0052685106362490445 0.011492652431270137 0.0052380570435253005 0.011152769902399133 0.0052380570435253005 C 0.011492652431270137 0.0052380570435253005 0.012342358753447639 0.005280692073338542 0.012172417489012138 0.005274601354793793" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.012172417489012138 0.005274601354793793 C 0.012131996680953291 0.005308783346842708 0.011640777950030162 0.005786537451536592 0.011687367792305984 0.0056847852593807785 C 0.011640777950030162 0.005786537451536592 0.011607170347485311 0.006563197860770454 0.011613339381702286 0.0064956276606635555" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.011613339381702286 0.0064956276606635555 C 0.011613339381702286 0.006883722847474853 0.011613339381702286 0.011833900819537994 0.011613339381702286 0.01115276990239913 C 0.011613339381702286 0.011833900819537994 0.011613339381702286 0.0149622343966575 0.011613339381702286 0.014669198666329934" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.011613339381702286 0.014669198666329934 C 0.011625426226556065 0.014749011412399425 0.011857913098423432 0.015800577689199315 0.01175838151994763 0.01562695161916382 C 0.011857913098423432 0.015800577689199315 0.012895163057033933 0.01684652483072185 0.01280771832341191 0.01675271150675585" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01280771832341191 0.01675271150675585 C 0.012531893586576446 0.016648157546540563 0.010601120428728206 0.01612538774546414 0.011152769902399133 0.01612538774546414 C 0.010601120428728206 0.01612538774546414 0.009221996744550888 0.016857265466971135 0.009497821481386351 0.01675271150675585" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.009497821481386351 0.01675271150675585 C 0.009585266215008374 0.016658898182789848 0.01064668986332643 0.015453325549128328 0.010547158284850628 0.01562695161916382 C 0.01064668986332643 0.015453325549128328 0.010704287267949749 0.014589385920260456 0.01069220042309597 0.014669198666329946" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01069220042309597 0.014669198666329946 C 0.01069220042309597 0.014376162936002378 0.01069220042309597 0.010471638985260271 0.01069220042309597 0.011152769902399136 C 0.01069220042309597 0.010471638985260271 0.01069220042309597 0.006107532473852265 0.01069220042309597 0.006495627660663563" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01069220042309597 0.006495627660663563 C 0.010686031388878995 0.006428057460556665 0.010571582170216457 0.00558303306722497 0.010618172012492278 0.005684785259380784 C 0.010571582170216457 0.00558303306722497 0.010092701507727272 0.005240419362744878 0.010133122315786119 0.005274601354793794" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g></g>
|
|
<g id="腹板1">
|
|
<g transform="translate(0.3373434528286707,0.22577625560094444) rotate(0) scale(1,1) translate(-0.5000000158677831,-0.5162142508926452)"><path d="M 0.5000000158677831 0.4947643774076974 C 0.5010956315538182 0.4951450320920947 0.51043762719035 0.4978460066504061 0.5087649413560636 0.4978096148828759 C 0.51043762719035 0.4978460066504061 0.5139585726903255 0.4947112486310721 0.5133815025420742 0.49505551154793914" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.5133815025420742 0.49505551154793914 C 0.5129848220802024 0.4944511762976004 0.5075062131100881 0.4869509866257885 0.5086213369996124 0.487803488543874 C 0.5075062131100881 0.4869509866257885 0.49928157244013066 0.48457732186316627 0.5000000158677831 0.484825488530913" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.5000000158677831 0.484825488530913 C 0.49928157244013066 0.48507365519865975 0.49026357084642946 0.4886559904619595 0.49137869473595375 0.487803488543874 C 0.49026357084642946 0.4886559904619595 0.48622184873162 0.4956598467982779 0.4866185291934918 0.49505551154793914" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.4866185291934918 0.49505551154793914 C 0.48719559934174317 0.4953997744648062 0.49290777621378906 0.49777322311534566 0.49123509037950264 0.4978096148828759 C 0.49290777621378906 0.49777322311534566 0.5010956315538182 0.4943837227233001 0.5000000158677831 0.4947643774076974" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.3373434528286707,0.1993569376776046) rotate(0) scale(1,1) translate(-0.011152769902399133,-0.011152769902399133)"><path d="M 0.010133122315786119 0.006467065324403828 C 0.010303063580221622 0.006419775358235317 0.011492652431270137 0.006183325527392764 0.011152769902399133 0.006183325527392764 C 0.011492652431270137 0.006183325527392764 0.012342358753447639 0.006514355290572337 0.012172417489012138 0.006467065324403827" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.012172417489012138 0.006467065324403827 C 0.012131996680953291 0.006497505091738564 0.011640777950030162 0.006930245634219757 0.011687367792305984 0.006832342532420666 C 0.011640777950030162 0.006930245634219757 0.011607170347485311 0.007709365880457283 0.011613339381702286 0.007641902545992928" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.011613339381702286 0.007641902545992928 C 0.011613339381702286 0.007934474825693445 0.011613339381702286 0.011737914461800164 0.011613339381702286 0.011152769902399131 C 0.011613339381702286 0.011737914461800164 0.011613339381702286 0.014956209538505844 0.011613339381702286 0.014663637258805328" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.011613339381702286 0.014663637258805328 C 0.011625426226556065 0.014743323777035057 0.011857913098423432 0.015794005857868516 0.01175838151994763 0.015619875477562068 C 0.011857913098423432 0.015794005857868516 0.012895163057033933 0.01684764568455944 0.01280771832341191 0.016753201822482716" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01280771832341191 0.016753201822482716 C 0.012531893586576446 0.016648037339821977 0.010601120428728206 0.016122214926518285 0.011152769902399133 0.016122214926518285 C 0.010601120428728206 0.016122214926518285 0.009221996744550888 0.016858366305143455 0.009497821481386351 0.016753201822482716" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.009497821481386351 0.016753201822482716 C 0.009585266215008374 0.016658757960405994 0.01064668986332643 0.01544574509725562 0.010547158284850628 0.015619875477562068 C 0.01064668986332643 0.01544574509725562 0.010704287267949749 0.014583950740575611 0.01069220042309597 0.014663637258805338" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01069220042309597 0.014663637258805338 C 0.01069220042309597 0.014371064979104821 0.01069220042309597 0.010567625342998103 0.01069220042309597 0.011152769902399136 C 0.01069220042309597 0.010567625342998103 0.01069220042309597 0.007349330266292418 0.01069220042309597 0.007641902545992935" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.01069220042309597 0.007641902545992935 C 0.010686031388878995 0.00757443921152858 0.010571582170216457 0.006734439430621578 0.010618172012492278 0.006832342532420671 C 0.010571582170216457 0.006734439430621578 0.010092701507727272 0.006436625557069091 0.010133122315786119 0.006467065324403828" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g></g>
|
|
</svg>
|