You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.7 KiB
3.7 KiB
Changelog: 修复时间轴资源导入错误
日期: 2026-01-26
类型: Bug 修复
影响范围: 时间轴资源轨道
问题描述
在重构剧本资源数据结构后(RFC 132),timeline.ts 仍然从旧的 ./resources 导入 getResourceById 函数,导致 404 错误:
GET http://localhost:6160/src/mocks/resources.ts?t=1769394078482 net::ERR_ABORTED 404 (Not Found)
修复内容
1. 更新导入路径
修改文件: client/src/mocks/timeline.ts
// ❌ 旧的导入
import { getResourceById } from './resources';
// ✅ 新的导入
import { getResourceById } from './project-resources';
2. 当前数据流
分镜 (storyboard)
└─ resources.characters[].resourceId
└─ 项目素材 (project_resources)
└─ 显示在时间轴资源轨道
业务逻辑说明
当前实现(临时方案)
分镜直接引用项目素材 ID:
// storyboards.ts
{
id: 'storyboard_001',
resources: {
characters: [
{ resourceId: '018e1234-5678-7abc-8def-200000000001', displayOrder: 0 }
]
}
}
// timeline.ts 查询素材
const resource = getResourceById('018e1234-5678-7abc-8def-200000000001');
// 返回:孙悟空-青年形象1
理想实现(未来改进)
分镜应该引用标签,标签再关联素材:
分镜 (storyboard)
└─ resources.characters[].tagId (引用标签)
└─ 标签 (screenplay_element_tags)
└─ 项目素材 (project_resources.elementTagId)
└─ 显示在时间轴资源轨道
优势:
- 更符合业务逻辑(分镜选择角色的某个状态,如"孙悟空-青年")
- 支持标签切换(如从"青年"切换到"少年")
- 自动使用标签的默认素材(
isDefault = true)
未来改进计划
Phase 1: 数据结构调整(下周)
修改 storyboard.resources 结构:
// 当前结构
resources: {
characters: [
{ resourceId: string, displayOrder: number }
]
}
// 目标结构
resources: {
characters: [
{
tagId: string, // 引用标签(如 "tag_char_002" = 孙悟空-青年)
resourceId?: string, // 可选:覆盖默认素材
displayOrder: number
}
]
}
Phase 2: Timeline 查询逻辑调整
// 当前逻辑
storyboard.resources.characters?.forEach((charRef) => {
const resource = getResourceById(charRef.resourceId);
// ...
});
// 目标逻辑
storyboard.resources.characters?.forEach((charRef) => {
// 1. 通过 tagId 查询标签
const tag = getTagById(charRef.tagId);
// 2. 获取素材(优先使用指定的,否则使用默认的)
const resource = charRef.resourceId
? getResourceById(charRef.resourceId)
: getDefaultResourceForTag(charRef.tagId);
// 3. 显示在时间轴
// ...
});
Phase 3: UI 交互改进
- 分镜编辑器:选择角色时,显示标签选择器(如"孙悟空-少年"、"孙悟空-青年")
- 时间轴:右键点击资源,可以切换标签或更换素材
- 属性面板:显示当前使用的标签和素材信息
相关文档
测试验证
- 时间轴页面加载正常
- 资源轨道显示正常
- 分镜资源数据结构调整(待实施)
- Timeline 查询逻辑调整(待实施)
变更日期: 2026-01-26
修复人员: AI Assistant
审核状态: 待审核