工程 JSON 结构
「另存为…」得到的是一个目录,不是单文件:
demo.kinora/ project.json # 镜头、步骤、画幅、音频、素材元数据 canvas.json # tldraw 画布快照(所有对象) assets/ # 外部化媒体(图片/视频/字体) autosave.kinora.json # 自动保存副本(有未保存改动时才存在)整个目录可搬走、可压缩、可在别处打开——媒体用相对路径引用。
project.json 的关键字段
Section titled “project.json 的关键字段”kinora.shots[]:镜头——target.kind区分objects(跟随)与region/rect(固定取景)shots[].steps[]:步骤——actions[]各含targetId+ 动作参数shots[].entryStep.entries[]:第 0 步kinora.stage.aspect:画幅kinora.media/audio/assets/fonts/grid:其余资源与设置
canvas.json
Section titled “canvas.json”tldraw 快照格式:snapshot.store 里是全部 shape 记录(id 如 shape:xxxx)。步骤的 targetId 就指这里的 shape id。
写坏了会怎样
Section titled “写坏了会怎样”打开一个损坏的工程:先整段校验,拒绝时给 invalid-snapshot + 逐条 issues;能读但部分记录不合法时正常打开,并 toast 列出 N 条记录无法解析(前 3 条)。找不到素材给「assets/ 中找不到:…」清单。
人类会怎么想
Section titled “人类会怎么想”「工程文件」在直觉上是一个文件,这里是一个目录——但目录更诚实:素材不再藏在二进制里,拷走即完整。需要单文件交换的人会觉得麻烦,建议后续提供「导出 .kinora.zip」。