80 lines
8.3 KiB
Markdown
80 lines
8.3 KiB
Markdown
# 前段 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`。保留逐帧、慢放及完整画面。
|
||
|
||
本轮依据压缩视频测量拟合,保留原有字体与背景差异;技术复核不代替用户对最终动效观感的确认。
|