- 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
15 lines
4.6 KiB
XML
15 lines
4.6 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.33734345282867084,0.21402334173156035) rotate(0) scale(1,1) translate(-0.5000000000000002,-0.5317870968287524)"><path d="M 0.47867625125245516 0.5281958429720051 C 0.4788686231359185 0.5275873704756118 0.48184681953505193 0.5199056449775187 0.48098471385401503 0.5208941730152855 C 0.48184681953505193 0.5199056449775187 0.4906061266037299 0.5158143409944379 0.4890215194248978 0.5163335065188032 C 0.4906061266037299 0.5158143409944379 0.5018297467625172 0.514664186722902 0.5000000000000002 0.514664186722902 C 0.5018297467625172 0.514664186722902 0.5125630877539348 0.5168526720431684 0.5109784805751026 0.5163335065188032 C 0.5125630877539348 0.5168526720431684 0.5198773918270222 0.5218827010530523 0.5190152861459854 0.5208941730152855 C 0.5198773918270222 0.5218827010530523 0.5215161206310086 0.5288043154683983 0.5213237487475453 0.5281958429720051" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.5213237487475453 0.5281958429720051 C 0.5213352141981297 0.5285575505627869 0.5214559912685054 0.5330988158233448 0.5214613341545579 0.532536334061386 C 0.5214559912685054 0.5330988158233448 0.5212428257782793 0.5351463982866888 0.5212596341149162 0.5349456241155116" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.5212596341149162 0.5349456241155116 C 0.5207125565051455 0.5352102116576077 0.5116985080549529 0.5383852621627615 0.5146947027976682 0.5381206746206654 C 0.5116985080549529 0.5383852621627615 0.48230910245961717 0.5378560870785692 0.48530529720233245 0.5381206746206654 C 0.48230910245961717 0.5378560870785692 0.4781932882753138 0.5346810365734155 0.4787403658850845 0.5349456241155116" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.4787403658850845 0.5349456241155116 C 0.4787235575484477 0.5347448499443345 0.47853332295939044 0.5319738522994272 0.47853866584544286 0.532536334061386 C 0.47853332295939044 0.5319738522994272 0.4786877167030395 0.5278341353812233 0.47867625125245516 0.5281958429720051" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g><g transform="translate(0.33734345282867084,0.21752806247138434) rotate(0) scale(1,1) translate(-0.05564574782993492,-0.12056097869157315)"><path d="M 0.045496236137334445 0.11430840542271348 C 0.04591913245785947 0.1144855057572659 0.05141678462468474 0.11687356787751173 0.050570991983634704 0.11643360943734256 C 0.05141678462468474 0.11687356787751173 0.05606864415045996 0.11985076481036032 0.055645747829934936 0.11958790670474356" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.055645747829934936 0.11958790670474356 C 0.05606864415045996 0.1193250485991268 0.06156629631728522 0.11599365099717339 0.060720503676235174 0.11643360943734256 C 0.06156629631728522 0.11599365099717339 0.06621815584306051 0.11413130508816108 0.06579525952253548 0.1143084054227135" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.06579525952253548 0.1143084054227135 C 0.06608983840590396 0.11436598893748941 0.06980146328543824 0.1158505497183899 0.06933020612295715 0.1149994076000243 C 0.06980146328543824 0.1158505497183899 0.0716270237514211 0.1253156694466904 0.0714503454723085 0.1245221108431007" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.0714503454723085 0.1245221108431007 C 0.07071721814990786 0.12476785370445077 0.061404203331683685 0.12818569950621736 0.06265281760350094 0.1274710251793016 C 0.061404203331683685 0.12818569950621736 0.055951487261084766 0.13356713423165573 0.0564669742105014 0.13309820276609002" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.0564669742105014 0.13309820276609002 C 0.056398538678787524 0.13309820276609002 0.05550887676650718 0.13309820276609002 0.05564574782993493 0.13309820276609002 C 0.05550887676650718 0.13309820276609002 0.0547560859176546 0.13309820276609002 0.054824521449368474 0.13309820276609002" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.054824521449368474 0.13309820276609002 C 0.05430903449995184 0.13262927130052432 0.047390063784551656 0.12675635085238582 0.04863867805636893 0.1274710251793016 C 0.047390063784551656 0.12675635085238582 0.03910802286516057 0.12427636798175064 0.03984115018756121 0.1245221108431007" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
<path d="M 0.03984115018756121 0.1245221108431007 C 0.04001782846667384 0.123728552239511 0.042432546699393815 0.1141482654816587 0.041961289536912715 0.1149994076000243 C 0.042432546699393815 0.1141482654816587 0.045790815020702924 0.11425082190793757 0.045496236137334445 0.11430840542271348" fill="none" stroke="#000000" stroke-width="0.001"/>
|
|
</g></svg>
|