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

4.7 KiB
Raw Blame History

帧动画系统第五阶段手动测试

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 独立预览

依次选中 PreviewActionPreviewEmptyPreviewIdle

  • 右侧显示 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 节逐项确认第一版验收标准。