Files
rhinelab-ui/verification/BOOT-MOTION.md
T

80 lines
8.3 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.
# 前段 2D 动效复核
日期:2026-09-08。原片:1920×1080、25 fps。检查了原片第 125–674 帧的连续帧联系表;用户随后明确排除黑底发行商片头,交付范围为第 169–675 帧(6.76–27.00 秒)。
## 参考事件
| 原片时间 / 帧 | 观察与实现 |
| --- | --- |
| 6.76 / 169 | 白场起点,下一帧出现 A;6.80–7.48 固定左端逐字输入 ACCESS PERMISSION REQUIRED |
| 9.04–9.16 / 226–229 | 文字变淡、清空,标志开始绘制 |
| 9.16–10.24 / 229–256 | 右上弧、左环、右环依次绘制;下方 RHINE·LAB 逐字出现;加减符号进入 |
| 10.60–11.84 / 265–296 | 标志向左落定;11.12、11.20、11.28 三行品牌错开显现,右下文字逐字揭示 |
| 11.28–13.56 / 282–339 | 先输入 ID CONFIRMED,停顿后输入姓名 |
| 14.52–15.56 / 363–389 | 清空,输入 REQUEST RECEIVED |
| 16.84–19.48 / 421–487 | 清空,输入 START PROCESSING,补入省略号,短暂缺字后切到权限验证 |
| 19.48–21.80 / 487–545 | 字距收拢,画面外黑白圆弧收拢至约 256 px 半径 |
| 21.00、21.04、21.12、21.16 / 525、526、528、529 | 仅圆环出现放大和变淡,文字保持独立 |
| 21.84–22.72 / 546–568 | 中心圆点及小弧形取代权限文字 |
| 22.76–23.04 / 569–576 | 黑白闪切后 WELCOME TO 落定 |
| 23.52–24.04 / 588–601 | 公司名称和标志出现,黑底从左至右扫过名称 |
| 25.04–25.40 / 626–635 | INTERNAL DATABASE 短暂闪动后落定 |
| 26.16–26.92 / 654–673 | 背景逐渐变白,欢迎内容缩小失焦;第 673 帧退出,接原有阵列入场 |
## 实现范围与限制
原生 DOM/SVG 重建,未将视频嵌入产品。离散切换按原片帧编号确定,位移和半径为目测关键帧拟合;曲线、光晕、背景抽象线条和字体栅格化仍与原片有差异,不宣称逐像素一致。启动用同一标志曲线重新排序绘制,最终仍是共享标志。已认可的三维模型、镜头、交互和基线光照未修改。
## 验证
- `npm run build`:通过 TypeScript 与生产构建。保留原有 bundle 大小提示。
- `reference/boot-check.html`:15 项检查通过。覆盖关键帧与文字停顿、507 帧正反序一致性、圆环收拢、实际页面跨阶段倒退、无 CSS 循环动画、绘制中跳过后的品牌恢复、重入欢迎页以及阵列阶段衔接。
- `reference/boot-review.html`:原片与真实页面同步,支持逐帧和 1× / 0.5× / 0.25×。人工对照姓名、圆环落定、中心图形、欢迎页,并依据全尺寸参考修订笔画顺序、黑色矩形尺寸、字距收拢与退出缩放。
- 首次播放延后 600ms,以便加载遮罩完全淡出后再输入第一个字;减少动态效果偏好继续直接进入档案。
在仓库根目录运行 `reference/extract-boot.py` 可从本地 MP4 重新提取参考帧,需要 Python、OpenCV 和 Pillow;视频和 JPG 均被 Git 忽略。
## 2026-09-09 · 非线性轨迹复核
用户指出权限圆环、名称黑底及左上三行文字的速度和出现顺序有差距。本轮重新放大原片第 277–315、487–568、588–621 帧;`reference/measure-boot.py` 提取同心圆半径、弧端角度、橙点位置、三行文字左边缘与名称遮罩右边缘,输出至本地 `reference/boot-frames/`。测量后的人工校正轨迹保存在 `src/boot-tracks.ts`,产品仅使用数值和 DOM/SVG。
- 左上三行分别在 278、280、282 帧开始出现,各有独立位移和透明度。第一行最初几帧距落点 234、216、181、143 px,先加速再减速;第三行到第 305 帧落定。既定 MiSans 排版继续使用。
- 外环半径在 500、510、520、530 帧约为 895.5、492、320.5、270 px;白环为 619、374、272、246 px。两环的半径、起始角与弧长独立变化,内环弧段和橙点各自减速,补上逐渐缩小的黑白弧端圆点。525、526、528、529 帧保留放大、淡化与模糊。
- 名称黑底在 588、589、592、601、610 帧的宽度分别约为 4、39、225、382、410 px。前段快速扫过,后段持续缓慢收束;590–591 帧短暂消失,594–595 帧保留灰色遮罩、微弱反相文字及未扫过的文字。
- 空间轨迹使用保持单调的三次 Hermite 插值,保留关键帧之间的速度连续性;不在每个采样点重新缓入缓出。离散闪切仍按原片 25 fps 定位,拖动或倒放不累积状态。
复核页 `reference/boot-review.html` 增加三行品牌、圆环和公司名称的局部放大,支持逐帧及四分之一速度。`reference/boot-check.html` 的 21 项实机检查通过,无页面异常;覆盖独立错峰、先加速后减速、黑底长尾、灰闪层保留、倒退恢复与跳过恢复。TypeScript 和生产构建通过。
对照截图检查了 278、280、282、286、301、500、510、520、532、545、592、594、601、610 帧。原片压缩、字体栅格化、发光及画面外弧段存在测量限制;轨迹为逐帧测量后的拟合,不声称拿到了原视频工程中的原始动画曲线,也不视为用户已确认最终观感。
## 2026-09-09 · 小圆、环绕点与 Logo 再修订
用户指出两侧小圆应表现为自转、弧段逐渐补全,并要求复核中央小点;随后要求重新检查 Logo 初始连续笔画、加减号出现与后段缺口移动。
### 小圆与中央点
`reference/measure-scan-detail.py` 放大 540–568 帧,以移动的采样环排除文字、测量弧段,并从连通域提取中央点。早期短弧不足以稳定拟合圆心,544–547 帧另作人工拟合。原片中小圆不是绕大圆公转:551→568 帧,左圆心约从 (828,552) 到 (832,540),右圆心约从 (1090,527) 到 (1087,539),半径从约 38.3 降至 37.2 px;以稳定位置上的自转为主,只保留这段轻微收拢。
- 左弧顺时针、右弧逆时针,角度跨 360° 时展开为连续数值。弧长从 544 帧约 3° 增至 568 帧约 332°/339°,后段角速度降低。原片在完全闭合前已切换场景,因此不提前强行合圆。
- 中央大点半径约 43 px,保留 546、547、549、550 帧离散闪变;548 帧约 8 px,551 帧约 10 px,随后缓慢稳定在约 11.4 px。
- 六颗小点从 548 帧开始,每隔三帧出现一颗,逐渐长至约 4.2 px;沿约 35 px 轨道减速绕行。节点置于大点下层,大点放大时自然遮挡小点。
- 权限文字在 545–551 帧逐渐消失,避免中心图形进入时突然清空文字。
### Logo
`reference/inspect-boot-logo.py` 生成连续放大图;`reference/measure-boot-logo.py` 沿共享贝塞尔轮廓采样黑色笔画,输出首尾位置、缺口区间、符号和左边缘测量。使用一条连续路径代替原三段永久断开的笔画;印刷标志原有的小缺口由 dash 首尾表现,交叉处按真实描边叠加。
- 229–264 帧同时推进笔画头尾,早期描边宽度逐渐建立;237 帧为用户截图中的连续长弧,无额外固定缺口。
- 加号和小方点于 247 帧同帧进入,在内侧放大并向左右展开。256 帧后,加号快速转动后减速落定,右侧方点逐渐拉成横线。
- 左移改用 260–294 帧测量值,保留先加速再减速的节奏。
- 425–486 帧缺口沿轮廓加速移动;经过交叉点时被另一段笔画局部遮挡。229–486 帧整体透明度保持为 1,移除原先 461、471、475 帧整枚变淡的处理。
### 实机复核
- TypeScript、生产构建通过;原有 bundle 大小提示仍存在。
- `reference/boot-check.html` 共 30 项通过,无页面异常。新增小弧反向减速及弧长增长、六点错峰、中央闪变、连续 Logo 首尾、符号展开、整枚不闪烁和倒退恢复检查;递归检查嵌套轨迹数值。
- 捕获了 229–264、425–486、540–568 共 127 帧连续 DOM/SVG 局部截图,按相同裁剪区域对照原片。重点放大检查 237、248、258、460、474、479、546、551、556、560、564、568 帧;对照工具为 `reference/compare-boot-details.py`。
- 对照页新增「Logo 绘制与符号」「Logo 移动缺口」「小圆与环绕点」3.8× 放大选项。支持链接参数,如 `?focus=logo&frame=237`、`?focus=gap&frame=460`、`?focus=orbit&frame=551`。保留逐帧、慢放及完整画面。
本轮依据压缩视频测量拟合,保留原有字体与背景差异;技术复核不代替用户对最终动效观感的确认。