Files

8.3 KiB
Raw Permalink Blame History

前段 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 帧逐渐消失,避免中心图形进入时突然清空文字。

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。保留逐帧、慢放及完整画面。

本轮依据压缩视频测量拟合,保留原有字体与背景差异;技术复核不代替用户对最终动效观感的确认。