Files
aibis-dream/Docs/帧动画系统第五阶段手动测试.md
T

80 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 帧动画系统第五阶段手动测试
## 1. 测试准备
1. 在 Unity 执行 `Tools > Frame Animation > Create Phase 5 Preview Sample`
2. 打开 `Assets/GameContent/Test/FrameAnimation/Preview/PreviewSampleGraph.asset`
3. 确认通过 Inspector 的 `Open Graph Editor` 进入工作台。
4. 首次测试前将 Node Preview Policy 设为 `SelectedOnly`、速度设为 `1×`、背景设为 `Checkerboard`
样例构建器只在资产不存在时创建,不会覆盖已经存在的 Preview Sample 或其他测试 Graph。
## 2. Clip 独立预览
依次选中 `PreviewAction``PreviewEmpty``PreviewIdle`
- 右侧显示 Clip Preview,顶部与右侧的 Play/Pause、Stop、Restart、Previous、Next 和时间轴保持同步。
- Pause 保留当前帧;Stop 回到实际第 0 帧;Restart 从第 0 帧开始播放。
- 拖动时间轴后保持 PausedPrevious/Next 定位到帧边界。
- `PreviewEmpty` 的空帧显示棋盘格并停留约 300 ms,不跳帧。
- `PreviewIdle` 展示一轮时间轴,总时长显示 `∞`,播放时持续循环。
- 切换 Dark、Light、Checkerboard 后画面背景立即更新,Graph 和 Clip 不变 dirty。
- 测试 Fit、1×、2×、3×、4×、8× 和 Manual;非 Fit 放大后可拖动画面。
## 3. Node 内嵌预览策略
1. 选择 `Finite Action` Node。
2.`SelectedOnly` 下确认只有主选中 Node 自动播放。
3. 点击 Stop,确认该 Node 停在第 0 帧且不会立即自动重启;重新选择或点击 Play 后恢复。
4. 切换 `Static`,确认所有 Node 显示第一个非空代表帧,选中 Node 仍可使用顶部控制器手动播放。
5. 切换 `AllVisible`,确认视口内 Node 播放;平移使 Node 离开视口后停止更新,移回后重新开始。
6. 框选多个 Node,确认只有主选中 Node成为顶部上下文目标。
## 4. 有限 Flow 与跨节点时间轴
1. 在 Flows 选择 `PreviewFiniteFlow` 并播放。
2. 确认画布当前 Node、已经过路径和后续路径状态不同。
3. 播放跨过 `Finite Action -> Finite Empty` 时,当前 Node 和 Clip 信息随之切换。
4. 拖动顶部时间轴跨越节点边界,确认对应 Node 与内嵌 Sprite 同步定位。
5. Previous/Next 可以跨节点逐帧。
6. 播放自然结束后保留终点末帧;Stop 回到入口第 0 帧。
## 5. Loop、零速与结束行为
- `PreviewLoopFlow`:时间轴显示前缀加终点一轮,总时长为 `∞`;进入终点后进度只在终点循环段内循环。
- `PreviewBlockedFlow`:显示零速度阻塞位置,播放状态保持但不推进,时间轴不能越过阻塞点。
- `PreviewClearFlow`:自然结束后显示透明棋盘格并标记 Clear。
- `PreviewHideFlow`:自然结束后同样显示透明内容,但状态标记为 HideTarget。
- 将预览速度依次设为 `0.25× / 0.5× / 1× / 2× / 4×`,确认只改变播放快慢,不改变时间轴总长度。
## 6. Flow 预览与聚焦
1. 播放任意 Flow,按 Esc 或点击 Exit Focus。
2. 确认全部节点恢复正常亮度,但 Flow 预览继续运行。
3. 选择当前 Flow 内 Node/Edge,确认 Flow 继续播放且顶部仍显示 Flow 目标。
4. 选择 Flow 外 Node、Graph、Clip、Source 或其他 Flow,确认当前 Flow 预览停止并切换上下文。
5. 停止 Flow 后确认原 NodePreviewPolicy 恢复。
## 7. 修改、刷新与错误
- 播放 Clip/Node 时修改 Sprite、duration、speed 或结束行为,确认预览重建且不使用旧帧引用。
- 播放 Flow 时修改入口、Edge 或 Node Clip,确认 Flow 安全停止,重新 Play 后使用新路径。
- Preview/Refresh ImportSource 后确认活动预览失效并可使用刷新后的 Sprite 重新播放。
- 空 Clip、Missing Clip、负速度和非法 Flow 显示结构化错误,不抛异常、不修改资产。
- 预览期间观察 dirty 状态和 Undo 历史,确认单纯播放、拖动与缩放不产生资产修改。
## 8. 工作区恢复
1. 修改左右宽度、底部高度、搜索、筛选、排序、选择、画布 pan/zoom 和预览偏好。
2. 切换到其他 Graph 再切回,确认各 Graph 状态独立恢复。
3. 关闭并重新打开窗口,确认状态恢复。
4. 触发脚本重编译或 Domain Reload,确认状态恢复但播放进度不恢复。
5. 确认 Flow 聚焦始终从 Show All 开始,不恢复旧 focusedFlowId。
## 9. 第一版完整回归
- 按第一至第四阶段文档回归资产管理、导入刷新、节点编排、Flow 聚焦、Undo/Redo 和运行时播放。
-`FrameAnimationRuntimeTest.unity` 验证 SpriteRenderer 与 Image 运行时结果和编辑器预览一致。
- 运行 EditMode、PlayMode、批处理编译和 `git diff --check`
- 对照 `Docs/动画系统需求整理.md` 第 9 节逐项确认第一版验收标准。