- assets/<游戏>/<壁纸>/{effects,images,audios}/,每档壁纸自包含
- 每档壁纸自带 preset.js:用 import.meta.url 推导自身资源路径,目录可整体搬走;
目录名用显示名(含「」),代码键用稳定 id(xilian/kv37,与 WE 属性值绑定)
- preset-store.js -> presets.js:静态 import 两份预设并建 id 索引
- 新增 CONTEXT.md 术语表与 ADR-0001/0002
- 新增 check-paths / compare / heatmap 三个验证工具;serve.mjs 改为每帧强制动画相位归零
验证:check-paths 11/11 路径存在(含此前零引用的 昔涟.flac);浏览器 0 个真实 404;
与基线 worktree 同冻结设置对拍,9 对跨版本比较中 4 对逐像素完全相同(差异 0),
其余 ≤0.19/255,远低于基线自身的双模态抖动(2.27/255)。
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
// 昔涟立绘 —— 官方昔涟动态立绘
|
|
// 这份预设自带全部资源,路径由 import.meta.url 从本文件位置推导,
|
|
// 因此整个目录可以整体搬走或改名,而不用改这里的任何一行。
|
|
|
|
const base = new URL("./", import.meta.url);
|
|
const asset = (path) => new URL(path, base).href;
|
|
|
|
export default {
|
|
id: "xilian", // 与 project.json 中 combo 选项的 value 一致,勿改
|
|
name: "昔涟立绘",
|
|
game: "崩坏:星穹铁道",
|
|
|
|
backgroundImage: asset("./images/ava.jpg"),
|
|
|
|
spineConfig: {
|
|
jsonUrl: asset("./effects/xilian.json"),
|
|
atlasUrl: asset("./images/xilian.atlas"),
|
|
animation: "idle",
|
|
viewport: {
|
|
padLeft: "-25%",
|
|
padRight: "-28%",
|
|
padTop: "-30%",
|
|
padBottom: "-23%",
|
|
},
|
|
},
|
|
|
|
audioOptions: {
|
|
source: asset("./audios/「再度和你」.flac"),
|
|
volume: 0.5,
|
|
},
|
|
|
|
// 本壁纸可选的音源(第 6 步会接进 project.json 的 bgm 属性)
|
|
audioChoices: [
|
|
{ id: "zaiduheni", name: "再度和你", source: asset("./audios/「再度和你」.flac") },
|
|
{ id: "xilian", name: "昔涟", source: asset("./audios/昔涟.flac") },
|
|
],
|
|
};
|