feat: TS 构建管线、Spine 抓取器与 wallpapers/ 唯一真相来源
把项目从「手写 dist/」改成「wallpapers/ 是唯一真相来源,dist/ 由 pnpm build 生成」,
并补上配套的类型、门禁与抓取器。一次提交落地整条管线,因为拆开会留下不能构建的中间态。
- src/:运行时与模拟器源码(TS,strict),编译到 build/ 再拷进各分发
- tools/:build / dev / check-{syntax,paths,dist},以及抓取器与回归门禁 tools/checks/
(.scratch/ 下那批一次性脚本移入 tools/checks/ 并入库为长期门禁)
- wallpapers/:七档壁纸的源数据 + README.md(id/音频/预设的完整规范)
- docs/adr/0005-0008:构建管线与分发拓扑、模拟器契约、自包含 sim、每骨架资源布局
- .gitignore:排除 .scratch/ 的参考资料副本(上游 spine 整仓克隆 ~1.2 GB、
抓取侦查数据 ~680 MB)与调试转储;这些是本地调查材料,补偿会让仓库无法克隆
- 归一化 .gitignore/CONTEXT.md 行尾(工作区 CRLF、索引 LF 造成的整文件假 diff)
同时修掉三档卡住构建的未完工壁纸:
- kv45 的 meta.json 里 id 还是抓取期场景名 scene_main,经 downloader promote 正名为 kv45
- shajin / zhigengniao_juheye 的 meta.json 误用了骨架描述文件(name/spine/animations/pages)、
且都缺 preset.template.json;现按规范重建:骨架沉到 spines/<名>/(spine-ts 按 atlas 所在
目录解析贴图页)、补上元数据与单骨架预设,并清掉 zhigengniao 骨架里指向作者机的绝对路径
- 顺带 promote 已在 sources.yml 里的 kv46(月升之前,与兽共舞)
pnpm check 五道门全绿:10 个分发 / 7 档壁纸 / 141 处引用自包含。
This commit is contained in:
1 parent
b8eee05d78
commit
3f11426964
297 files changed
+216627
-1926
No files matched your search
@@ -0,0 +1,261 @@
|
||||
jh03_46kv_boss.png
|
||||
size:2036,2007
|
||||
filter:Linear,Linear
|
||||
scale:0.44
|
||||
boss_上半身
|
||||
bounds:1264,1218,411,396
|
||||
boss_发梢1
|
||||
bounds:628,888,44,123
|
||||
offsets:4,4,51,130
|
||||
boss_发梢10
|
||||
bounds:355,1283,123,211
|
||||
offsets:2,1,129,216
|
||||
rotate:90
|
||||
boss_发梢11
|
||||
bounds:1867,1118,96,279
|
||||
offsets:3,3,101,285
|
||||
boss_发梢112
|
||||
bounds:1829,1800,197,207
|
||||
offsets:2,3,202,212
|
||||
boss_发梢12
|
||||
bounds:0,491,67,158
|
||||
offsets:4,4,74,165
|
||||
boss_发梢13
|
||||
bounds:791,1931,47,67
|
||||
offsets:4,4,55,75
|
||||
boss_发梢14
|
||||
bounds:0,1853,13,25
|
||||
offsets:4,4,20,33
|
||||
boss_发梢15
|
||||
bounds:217,656,67,127
|
||||
offsets:4,3,75,133
|
||||
boss_发梢2
|
||||
bounds:900,669,62,104
|
||||
offsets:3,4,68,112
|
||||
boss_发梢22
|
||||
bounds:676,0,244,230
|
||||
offsets:2,2,249,235
|
||||
boss_发梢33
|
||||
bounds:1184,1187,339,167
|
||||
offsets:3,6,343,176
|
||||
boss_发梢4
|
||||
bounds:542,1089,102,63
|
||||
offsets:4,3,110,70
|
||||
boss_发梢44
|
||||
bounds:209,7,331,121
|
||||
offsets:2,2,336,126
|
||||
boss_发梢5
|
||||
bounds:68,1924,46,20
|
||||
offsets:3,4,51,27
|
||||
boss_发梢55
|
||||
bounds:565,103,254,287
|
||||
offsets:0,2,255,290
|
||||
boss_发梢6
|
||||
bounds:0,1153,55,109
|
||||
offsets:4,4,62,117
|
||||
boss_发梢66
|
||||
bounds:1305,1915,162,52
|
||||
offsets:4,4,170,59
|
||||
boss_发梢7
|
||||
bounds:642,1568,76,79
|
||||
offsets:3,4,82,86
|
||||
boss_发梢77
|
||||
bounds:811,1292,185,107
|
||||
offsets:4,4,192,115
|
||||
boss_发梢8
|
||||
bounds:1080,1756,77,70
|
||||
offsets:4,3,84,77
|
||||
boss_发梢88
|
||||
bounds:1297,899,117,182
|
||||
offsets:4,3,123,188
|
||||
boss_发梢9
|
||||
bounds:491,217,73,137
|
||||
offsets:4,3,81,143
|
||||
boss_右手
|
||||
bounds:193,1208,304,307
|
||||
boss_大嘴
|
||||
bounds:154,55,411,323
|
||||
offsets:4,2,417,327
|
||||
boss_头发222
|
||||
bounds:740,1343,520,522
|
||||
boss_底发
|
||||
bounds:1621,1227,585,298
|
||||
offsets:2,1,589,299
|
||||
rotate:90
|
||||
boss_脸
|
||||
bounds:0,1088,175,95
|
||||
offsets:3,4,181,103
|
||||
boss_袖子1
|
||||
bounds:1594,764,442,496
|
||||
offsets:0,2,442,498
|
||||
rotate:180
|
||||
boss_袖子2
|
||||
bounds:1337,21,363,286
|
||||
offsets:3,2,369,290
|
||||
rotate:270
|
||||
boss_袖子201
|
||||
bounds:1549,1816,299,191
|
||||
offsets:2,3,304,197
|
||||
boss_袖子3
|
||||
bounds:0,142,158,191
|
||||
offsets:3,3,164,197
|
||||
boss_角
|
||||
bounds:679,810,364,446
|
||||
offsets:0,0,364,710
|
||||
rotate:270
|
||||
boss_饰品1
|
||||
bounds:295,1182,395,183
|
||||
offsets:1,2,397,186
|
||||
hua_10
|
||||
bounds:498,1329,37,29
|
||||
hua_11
|
||||
bounds:629,1976,36,31
|
||||
hua_12
|
||||
bounds:0,1920,64,87
|
||||
hua_13
|
||||
bounds:572,1978,53,29
|
||||
hua_14
|
||||
bounds:693,1952,31,55
|
||||
hua_2
|
||||
bounds:1122,496,678,429
|
||||
offsets:0,55,678,484
|
||||
rotate:180
|
||||
hua_5
|
||||
bounds:68,1948,63,59
|
||||
hua_6
|
||||
bounds:255,1521,37,32
|
||||
hua_7
|
||||
bounds:394,1511,31,26
|
||||
hua_8
|
||||
bounds:195,1985,50,22
|
||||
hua_9
|
||||
bounds:170,1372,35,56
|
||||
offsets:0,0,35,111
|
||||
人泛光8
|
||||
bounds:1074,1264,92,64
|
||||
offsets:2,1,106,68
|
||||
卷轴上
|
||||
bounds:22,296,1139,330
|
||||
offsets:0,0,1139,470
|
||||
卷轴下
|
||||
bounds:663,199,996,382
|
||||
卷轴中
|
||||
bounds:0,868,1760,799
|
||||
offsets:29,0,1789,799
|
||||
rotate:180
|
||||
朽叶_上半身
|
||||
bounds:378,435,370,477
|
||||
offsets:0,60,370,537
|
||||
rotate:90
|
||||
朽叶_下睫毛
|
||||
bounds:28,1608,29,37
|
||||
offsets:1,3,33,41
|
||||
朽叶_中指
|
||||
bounds:737,1878,66,129
|
||||
朽叶_发梢1
|
||||
bounds:655,1232,161,132
|
||||
offsets:3,4,167,136
|
||||
朽叶_发梢10
|
||||
bounds:1679,1243,73,171
|
||||
offsets:3,4,80,178
|
||||
朽叶_发梢11
|
||||
bounds:245,1553,73,105
|
||||
offsets:3,4,80,113
|
||||
朽叶_发梢1a
|
||||
bounds:1886,1479,98,236
|
||||
offsets:4,3,104,242
|
||||
朽叶_发梢2
|
||||
bounds:1220,309,184,192
|
||||
offsets:4,3,192,198
|
||||
朽叶_发梢2a
|
||||
bounds:1140,1599,78,230
|
||||
offsets:4,3,85,237
|
||||
朽叶_发梢3
|
||||
bounds:1142,290,113,206
|
||||
offsets:3,2,118,212
|
||||
朽叶_发梢3a
|
||||
bounds:1362,675,54,160
|
||||
offsets:4,4,62,168
|
||||
朽叶_发梢4
|
||||
bounds:0,52,72,164
|
||||
offsets:3,4,79,172
|
||||
朽叶_发梢5
|
||||
bounds:567,1227,141,146
|
||||
offsets:3,3,147,153
|
||||
朽叶_发梢6
|
||||
bounds:48,4,113,167
|
||||
offsets:3,3,120,173
|
||||
朽叶_发梢7
|
||||
bounds:298,526,89,206
|
||||
offsets:2,3,93,213
|
||||
朽叶_发梢8
|
||||
bounds:965,1844,81,163
|
||||
offsets:4,4,90,171
|
||||
朽叶_发梢9
|
||||
bounds:1293,1952,55,216
|
||||
offsets:4,3,62,222
|
||||
rotate:90
|
||||
朽叶_右手
|
||||
bounds:1618,94,539,370
|
||||
offsets:0,40,539,410
|
||||
rotate:270
|
||||
朽叶_尾指
|
||||
bounds:164,1095,117,58
|
||||
offsets:0,1,117,59
|
||||
朽叶_左手臂
|
||||
bounds:817,507,242,401
|
||||
offsets:0,1,320,687
|
||||
rotate:90
|
||||
朽叶_底发
|
||||
bounds:924,267,249,249
|
||||
offsets:4,3,257,255
|
||||
朽叶_手掌
|
||||
bounds:824,1863,134,144
|
||||
朽叶_手臂
|
||||
bounds:154,1432,97,139
|
||||
offsets:0,0,98,139
|
||||
朽叶_拇指
|
||||
bounds:856,668,54,116
|
||||
offsets:0,0,54,119
|
||||
朽叶_无名指
|
||||
bounds:954,1297,121,89
|
||||
offsets:0,1,123,90
|
||||
朽叶_珍珠1
|
||||
bounds:129,1487,24,40
|
||||
朽叶_眉毛
|
||||
bounds:135,1971,56,36
|
||||
朽叶_眼球
|
||||
bounds:67,1571,22,27
|
||||
朽叶_眼白
|
||||
bounds:0,1882,34,34
|
||||
朽叶_眼睑
|
||||
bounds:97,1531,59,46
|
||||
朽叶_脸
|
||||
bounds:1129,878,164,238
|
||||
朽叶_衣袖1
|
||||
bounds:30,535,197,265
|
||||
rotate:90
|
||||
朽叶_衣袖2
|
||||
bounds:513,826,125,119
|
||||
朽叶_食指
|
||||
bounds:1219,1730,68,126
|
||||
offsets:0,2,69,129
|
||||
杏花1
|
||||
bounds:0,1360,808,647
|
||||
offsets:0,82,809,781
|
||||
杏花2
|
||||
bounds:1019,1545,677,462
|
||||
offsets:53,40,730,536
|
||||
杏花3
|
||||
bounds:476,929,171,170
|
||||
offsets:1,0,172,170
|
||||
花补充
|
||||
bounds:0,736,520,347
|
||||
|
||||
jh03_46kv_boss_2.png
|
||||
size:402,371
|
||||
filter:Linear,Linear
|
||||
scale:0.44
|
||||
hua_3
|
||||
bounds:0,0,402,371
|
||||
offsets:0,5,402,384
|
||||
@@ -0,0 +1 @@
|
||||
{"skeleton":{"hash":"raOoJY+0PCQ","spine":"4.2.43","x":-1242.17,"y":-804.4,"width":2687.68,"height":1496.18,"images":""},"bones":[{"name":"root","x":125.07,"y":-197.68,"scaleX":0.44,"scaleY":0.44},{"name":"boss+朽叶","parent":"root","x":-3585.64,"y":2682.07},{"name":"朽叶","parent":"boss+朽叶","x":1791.22,"y":-3165.23},{"name":"boss+卷轴","parent":"boss+朽叶","x":5318.19,"y":-2712.03},{"name":"朽叶_上半身2","parent":"朽叶","length":411.85,"rotation":83.01,"x":-20.81,"y":-30.17},{"name":"朽叶_上半身3","parent":"朽叶_上半身2","length":608.33,"rotation":-5.91,"x":411.85},{"name":"朽叶_上半身4","parent":"朽叶_上半身3","length":266.48,"rotation":35.73,"x":626.02,"y":2.39},{"name":"朽叶_发梢1","parent":"朽叶_上半身4","x":279.91,"y":-1.07},{"name":"朽叶_发梢3","parent":"朽叶_发梢1","length":61.3,"rotation":-151.93,"x":418.7,"y":63.33},{"name":"朽叶_发梢4","parent":"朽叶_发梢3","length":77.73,"rotation":-17.22,"x":61.77,"y":-0.58},{"name":"朽叶_发梢5","parent":"朽叶_发梢4","length":62.82,"rotation":-12.9,"x":78.35,"y":-0.41},{"name":"朽叶_发梢6","parent":"朽叶_发梢5","length":68.66,"rotation":-1.18,"x":62.82},{"name":"朽叶_发梢7","parent":"朽叶_发梢6","length":68.72,"rotation":-14.02,"x":68.66},{"name":"朽叶_发梢8","parent":"朽叶_发梢7","length":54.04,"rotation":-13.49,"x":68.72},{"name":"朽叶_发梢9","parent":"朽叶_发梢8","length":63.09,"rotation":-13.52,"x":54.04},{"name":"朽叶_发梢2","parent":"朽叶_发梢1","length":74.71,"rotation":-155.41,"x":431.93,"y":39.21},{"name":"朽叶_发梢10","parent":"朽叶_发梢2","length":84.13,"rotation":-0.99,"x":74.71},{"name":"朽叶_发梢11","parent":"朽叶_发梢10","length":66.78,"rotation":-2.79,"x":84.14},{"name":"朽叶_发梢12","parent":"朽叶_发梢11","length":73.49,"rotation":-4.81,"x":66.78},{"name":"朽叶_发梢13","parent":"朽叶_发梢12","length":92.93,"rotation":-1.97,"x":73.49},{"name":"朽叶_发梢14","parent":"朽叶_发梢13","length":56.91,"rotation":-3.59,"x":91.74,"y":0.89},{"name":"朽叶_发梢15","parent":"朽叶_发梢14","length":75.07,"rotation":-25.31,"x":56.91},{"name":"朽叶_发梢16","parent":"朽叶_发梢1","length":59.29,"rotation":-142.93,"x":409.5,"y":20.42},{"name":"朽叶_发梢17","parent":"朽叶_发梢16","length":70.72,"rotation":-3.76,"x":59.29},{"name":"朽叶_发梢18","parent":"朽叶_发梢17","length":49.96,"rotation":-2.67,"x":70.72},{"name":"朽叶_发梢19","parent":"朽叶_发梢18","length":59.52,"rotation":9,"x":49.96},{"name":"朽叶_发梢20","parent":"朽叶_发梢19","length":71.5,"rotation":2.29,"x":59.52},{"name":"朽叶_发梢21","parent":"朽叶_发梢20","length":40.3,"rotation":-12.27,"x":72.85,"y":0.63},{"name":"朽叶_发梢22","parent":"朽叶_发梢21","length":73.63,"rotation":-17.36,"x":40.3},{"name":"朽叶_发梢23","parent":"朽叶_发梢1","length":69.17,"rotation":87.94,"x":345.85,"y":51.25},{"name":"朽叶_发梢24","parent":"朽叶_发梢23","length":61.72,"rotation":60.22,"x":69.17},{"name":"朽叶_发梢25","parent":"朽叶_发梢24","length":57.9,"rotation":24.65,"x":61.72},{"name":"朽叶_发梢26","parent":"朽叶_发梢25","length":64.37,"rotation":-9.01,"x":59.65,"y":-2.03},{"name":"朽叶_发梢27","parent":"朽叶_发梢26","length":56.58,"rotation":-3.62,"x":64.37},{"name":"朽叶_发梢28","parent":"朽叶_发梢27","length":50.9,"rotation":-9.72,"x":56.58},{"name":"朽叶_发梢29","parent":"朽叶_发梢1","length":65.6,"rotation":105.72,"x":388.04,"y":93.98},{"name":"朽叶_发梢30","parent":"朽叶_发梢29","length":70.19,"rotation":22.98,"x":65.6},{"name":"朽叶_发梢31","parent":"朽叶_发梢30","length":57.71,"rotation":13.53,"x":70.19},{"name":"朽叶_发梢32","parent":"朽叶_发梢31","length":57.85,"rotation":-10.98,"x":57.71},{"name":"朽叶_发梢33","parent":"朽叶_发梢32","length":65.32,"rotation":14.09,"x":57.85},{"name":"朽叶_发梢34","parent":"朽叶_发梢33","length":71.02,"rotation":17.83,"x":65.32},{"name":"朽叶_发梢35","parent":"朽叶_发梢1","length":64.48,"rotation":137.18,"x":393,"y":114.96},{"name":"朽叶_发梢36","parent":"朽叶_发梢35","length":69.79,"rotation":4.73,"x":64.48},{"name":"朽叶_发梢37","parent":"朽叶_发梢36","length":59.22,"rotation":8.13,"x":69.79},{"name":"朽叶_发梢38","parent":"朽叶_发梢37","length":80.21,"rotation":5.81,"x":59.22},{"name":"朽叶_发梢39","parent":"朽叶_发梢38","length":56.98,"rotation":-1.15,"x":80.22,"y":-0.61},{"name":"朽叶_发梢40","parent":"朽叶_发梢39","length":71.18,"rotation":6.41,"x":56.98},{"name":"朽叶_发梢41","parent":"朽叶_发梢40","length":69.49,"rotation":14.01,"x":71.18},{"name":"朽叶_发梢3a","parent":"朽叶_发梢1","length":58.78,"rotation":165.55,"x":261.11,"y":189.75},{"name":"朽叶_发梢3a2","parent":"朽叶_发梢3a","length":80.25,"rotation":-0.93,"x":59.39,"y":-0.09},{"name":"朽叶_发梢3a3","parent":"朽叶_发梢3a2","lLine truncated
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 129 KiB |
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "jh03_46kv_boss",
|
||||
"spine": "4.2.43",
|
||||
"animations": [
|
||||
"loop3"
|
||||
],
|
||||
"skins": [
|
||||
"default"
|
||||
],
|
||||
"pages": [
|
||||
"jh03_46kv_boss.png",
|
||||
"jh03_46kv_boss_2.png"
|
||||
],
|
||||
"source": "https://act.mihoyo.com/puzzle/hkrpg/e20260913version_fasf13434_77d1c0e99b/index.html?game_biz=hkrpg_cn&mhy_presentation_style=fullscreen&mhy_landscape=true&mhy_hide_status_bar=true&mode=fullscreen&win_mode=fullscreen&isBili=1",
|
||||
"originalImages": null,
|
||||
"fetchedAt": "2026-09-22T00:37:28+00:00"
|
||||
}
|
||||
Reference in new issue
Block a user