Files
CyberGril/prototypes/hel-799
白栖知andmultica-agent 003d8c2cae HEL-822: land HEL-821 A1+A2 source onto PR#4 base (db571ba)
- 13 modified / 8 added / 1 deleted per CHANGES.json (author package 76bc120b)
- docs/requirements v1.10 + prototypes/hel-799 + PROVENANCE from bundle, verified byte-identical to 63799f0
- AGENTS.md + scripts/check_requirements.py restored from governance commit 63799f0

Co-authored-by: multica-agent <github@multica.ai>
2026-10-24 06:10:53 +08:00
..

对坐 · HEL-799 共同空间动态小样

视觉总监亲自设计并编写。直接用浏览器打开 index.html 即可:两张参考静帧、样式和脚本都已内嵌,不用安装,也不联网。这是独立小样,没有接入产品入口,也不替换正式界面。

基准:白栖知在主卡 HEL-797 评论 01a1668f-5810-7524-b72f-33574a32c7d6 中认可的 HEL-798 交流静图 hel-798-face-to-face-moon.png(1600×1000,SHA256 a8619a1ff459ec1d28ec192104c851f6dee079c7b6056c1a927842591861a56a)。原图及其 HTML/Canvas 源码原样保存在 reference/hel-798-static/。

人物仍是两张获批参考静帧,界面上标为「人物为参考静帧」。走近她的过程是镜头在两张照片之间对齐她的脸后推近,不是人物视频:她不会眨眼、呼吸、抬头或说话,也没有口型。文字、生活、回忆和天气都是虚构示例。小样没有连接模型、麦克风、摄像头、生活、天气或备份服务。

一句话方向

雨夜里,你坐在自己的小桌旁,她在窗边那张沙发上做她自己的事。想说话时,房间向你靠近,她就坐在桌子对面;说完,房间舒展开,她回到自己的事里。

相处画面用的仍是旧参考静帧,静帧里她在看书——这只示意你们在同一间房里的位置。用户已否定以阅读作为默认日常(主卡 01a166aa),按时段、天气、穿搭准备的新日常素材尚未生成;小样里的界面文字已不再写“看书”。

怎样试

  1. 相处(此刻):先停留十几秒,不要操作。窗外的雨在落,城市的灯一盏盏亮灭,水珠沿玻璃滑下,月光下有薄云掠过。她身边和你桌上的烛光在跳,你的茶在冒热气,灯下有细小的光尘。电脑上移动鼠标,远处的房间和你面前的桌子会朝相反方向轻微移动。
  2. 走近她:点她本人,或点「和她说话」。镜头从房间推到桌前:她从远处的沙发一路变近,近景从她脸部周围柔和地展开,直到成为获认可的交流画面;你面前的桌沿、茶杯和烛灯一直都在。全程是同一个人、同一身衣服、同一间房。
  3. 退回原处:点右上「结束交谈」或底部「此刻」,镜头沿原路拉回。中途随时可以反向点击,镜头会从当前位置转向,不会跳回起点或闪黑。键盘 Esc 立刻回到相处画面(不播放过渡)。
  4. 交流:保留 PR#8 已验证的阅读方式。回复默认自动一句接一句呈现,一直读到最后一句,中间不用点击。屏幕上只保留上一句(变淡、与身份同行)和当前一句。计数下的细线表示这句还会停留多久,鼠标停在文字上会先停住计时。「暂停」后可用 ‹ › 或键盘 ← → 回看,会出现「回到读到的地方 · 后面还有 N 句」;「全文」看整段;输入框左侧的按钮打开完整记录。发送新消息会自动恢复呈现,「停止回复」保留已出现的内容并标为未完成。
  5. 完整记录、全文:从左侧展开,她留在桌对面不动;关闭后回到刚才那一句。日子、设置:房间退回远景并暗下来,浮层从下方升起;生活条目可进入详情,再「看那时说的话」。设置里的关系、城市、外观、备份、语音与视觉观察、空间与显示都能打开对应的演示或说明。
  6. 月光 ⇄ 雾光:右上切换。布局和操作位置不变,窗外天色、房间色调、云或雾、雨和灯光颜色、桌面反光、茶杯与浮层材质约 1 秒内过渡。月光有月亮和冷蓝夜色;雾光没有月亮,窗外有缓慢折叠的紫粉雾带,整体偏紫。
  7. 手机:同一文件。相处时她在上方的窗边,文字和入口在下方;交流时她的脸在上部,对话、输入框和导航在下方,彼此不遮挡。键盘弹出(可视高度变小)时先收上一句,正在输入时导航让开。
  8. 右上「独立小样 · 演示数据」里有长回复、连续两段话、生成中与停止、初次创建与长名字等试用片段。

可用的地址参数(评审和录屏用):?theme=fog、?mode=talk、?scene=long、?tier=0|1|2;候选与导出:?frame=media(手机 4:5 容器候选)、?clean=1(无界面)、&fore=0(去前景与暗角)、&fit=height(16:9 母版取景)。

2026-10-23 续作:恢复、候选取景与母版

原运行 01a16691-b121-725d-a2e3-8d1f0ce57c02 因会话额度中断,未交付。本轮由同一作者在原配置下恢复:先把原目录 hel-799-8d1f0ce57c02/workdir/proto/prototypes/hel-799/ 整体打包保全(hel-799-original-run-8d1f0ce57c02.zip,随本卡附件交付,未删改原目录),再在副本上续作。原稿的 CSS 夜色层顺序修正保留。evidence/ 根目录与 evidence/media-candidate/ 下的截图、录屏和 verification.json 由本轮构建重新生成;上一构建(仍写“看书”文案)的总览图、过渡帧和录屏移到 evidence/previous-build-20261022/,只作历史对照。

本轮改动

  1. 去掉“看书”作为日常的文字:顶部状态、此刻标题、演示对话里的“这一页我念给你听”“读到……”改成不指向阅读的说法;参考说明改为「人物为旧参考静帧 · 不代表新日常」。交流态示例句因此与获认可静图的示例文字不同(静图只认可画面,不认可演示文案)。
  2. 手机 4:5 媒体容器候选(?frame=media,默认关闭):按 HEL-802 v2 §2.3 实现,见下表。桌面不受影响。
  3. 无界面母版导出(?clean=1,可加 fore=0、fit=height),见“母版与前景分工”。

手机 4:5 媒体容器:实际 DOM 与 HEL-802 v2 公式对照

规则:容器高 H = min(1.25·宽, max(宽, 可视高 − 240), 可视高 − 56)(后一项即键盘态的“可视高减输入条”),cover,底部 12% 渐隐到页面底色,容器本身不随镜头缩放,手机不画前景桌杯。数据来自无头 Edge 实测(evidence/media-candidate/)。

视口 容器 公式 → 实测 她的脸中心 公式 → 实测 对话/输入实测位置 差异与原因
390×844 390×487.5 → 390×487.5 (178,146) → (170,157) 当前句 619–698,输入 736–784,导航 790–838;对话区从 566 起,在容器下方 公式按 16:9 源(s=0.4514,可见 45%);小样用的是 16:10 获认可构图(s=0.4875,可见 50%),且该图脸在 y=0.315 而非 0.30,故偏 8/11px。相处态“此刻”文字从 462 起,压进容器底部渐隐带 26px,未压到人物
320×568 320×328 → 320×328 (148,98) → (143,105) 当前句 359–432,输入 466–514,导航 518–562 同上;此高度触发紧凑排版(隐藏上一句),对话与容器不重叠,但整体偏挤,与 HEL-802 预判一致
390×430 键盘 390×374 → 390×374 (182,112) → (176,120) 最近回复 294–342 盖在容器底部 80px(公式 88px),输入 376–424,导航让开 回复只压在开衫上,脸与下巴不被遮
1600×1000 不启用 (856,321) 与默认一致 — 候选只作用于 ≤720px

用现有静帧放进候选容器时暴露的问题(须用新素材解决,不能靠界面遮): 获认可构图底部约 20%(y≥0.80)原本被页面绘制的桌沿挡住,里面是旧素材的书和深色居家裤。手机候选容器不画前景、整高可见,这一块落在容器底部(约 390–463px),一部分在渐隐带外仍看得见;推近途中两张静帧交叉时也能看到远景静帧的书和腿。HEL-802 v2 已要求近景 CT 的 y≥0.78 只出现衣服和沙发、不出现手部动作,新母版按此生成即可消除;现阶段如实保留,不另加遮挡。

仍待验证:真实视频放入容器后的推近是否保持人物中线(HEL-802 §2.4 的 ±0.03 门槛)、真机键盘弹出时容器 240ms 收缩的观感、渐隐带与真实视频暗部的衔接。用户未认可手机候选外观,默认仍是原整屏版本。

母版与前景分工

masters/ 下为无界面母版(月光与雾光两套):

文件 内容 用途
talk-*-1600x1000-with-foreground.png 获认可构图:照片+夜色叠层+月亮+窗内雨+灯光+页面桌沿/茶杯/近处烛灯+暗角,去掉全部界面 与获认可静图对照、给生成工具看“目标氛围”,不作为视频首尾帧
talk-*-1600x1000-plate.png 同上但去掉桌沿、茶杯、近处烛灯和暗角 16:10 路线的视频底板参考
talk-*-1920x1080-plate-16x9-candidate.png 按高度铺满、左右各外延,原构图约占中间 90%(因原图右侧只多 74px,构图整体右移约 16px:x16:9 ≈ 0.058 + 0.9·x16:10);脸中心实测 (0.540, 0.317),HEL-802 v2 写 (0.54, 0.30) 16:9 路线候选,新取景待核对,未裁脸、未拉伸
room-moon-1600x1000-plate-reference-only.png 相处远景静帧 只作空间参考;相处远景未获认可,不是必备母版

分工(与 HEL-802 v2 §2.6 一致,均为候选):

  • 烘焙进视频:她、房间、窗外城市、窗内的雨、月亮(月光组)、她那一侧的落地灯和花旁小烛光、时段光线。
  • 页面另绘:你这一侧的桌沿、茶杯与热气、近处烛灯、暗角、主题浮层。页面现有的窗内雨和月亮在接入真实视频后关闭,以视频里的天气为准,避免重复。
  • 前景只在镜头静止的近景交谈态淡入,运镜时不出现;手机候选不画前景。

这些母版都不能直接拿去当最终首尾帧:人物仍是旧参考素材(黄昏调原图经页面调成夜色、手里有书、穿居家裤),而 HEL-802 v2 的夜间造型是奶白开衫配百褶短裙和过膝袜、y≥0.78 不出现手。它们的作用是钉住构图、光色和脸的位置;正式 S/T 母版需按 HEL-802 v2 重新生成。原始 her-talk.jpg(1600×900 黄昏无字)仍只适合做人物稳定性试片。

与 HEL-798 静图、PR#8 的关系

项目 做法
交流状态 1600×1000 下与获认可静图使用同一张人物素材、同一组夜色叠层(月亮、雨、光束、灯光)和同一套桌沿、茶杯、烛灯绘制代码,对照见 evidence/compare-approved-vs-talk.png。差别:雨、灯、热气、光尘现在会动;文字区多了一行很轻的阅读控制(暂停、回看、计数、全文),所以当前句比静图高约 30px;短句会并成一行,与静图一致。
相处状态(新增,待验收) 同一间房的远景(第二张获批静帧),按静图的夜色重新调色,窗外同样下雨、有月亮。前景仍是你这一侧的桌沿、茶杯和烛灯,只是略低一些。左侧放「此刻」的状态和入口。她不在任何框里,房间铺满屏幕四边。
过渡(新增,待验收) 不是两张图硬切,也不是把人物框放大:两张静帧按她的脸对齐(脸的大小差约 3.04 倍),镜头在两者之间连续推近,近景从她脸部周围以柔和边缘展开,画面边缘一起变柔。月亮作为远处的物体,比房间移动得少,在两扇窗之间交接。
PR#8 保留的部分 两套主题 token、阅读节奏和所有阅读控制、身份标记、记录与全文、未分享不显示、初次创建与起名、语音界面演示、键盘即时规则(HEL-795)、减少动效和低档设备降级。
PR#8 去掉的部分 拱形人物窗与它的几何动画、Canvas 抽象光雾背景。空间改由房间本身承担。

视觉规范(施工依据)

配色 Token(两套主题结构相同;与 PR#8 相同的不再重复列出)

Token 靛蓝月光 蓝紫雾光 用途
--accent #a9dcff #ebbcff 关键操作、选中、她的身份点
--text-1/2/3 #eef2ff / #b9c6e6 / #94a5c8 #f6efff / #dccbee / #bba7d6 正文/次要/说明
--glass / --glass-read #16244e66 / #0b1534c4 #36226666 / #211444c8 轻浮层/阅读浮层
--input-a/b/c #16244e70 → #1c264c70 → #3a2c3a60 #3a245e70 → #3a265470 → #5a2c5260 输入框横向渐变(静图原样)
--pool #050918 #0e0820 文字背后的暗池与字影
房间夜色(multiply) #16225c → #2a3a8a #2c1f5e → #4a3a8a 远景调色;她和灯的位置保留原暖色
窗外天色(color) #24357c #5a3a92 只染窗和天空
雨色 rgb(190,210,255) rgb(228,204,255) 1 秒混色
桌面 #3b2c30 → #221a24 → #0b0a14 #3a2a3e → #231a30 → #0e0a18 你这一侧的桌子

字体:PingFang SC / HarmonyOS Sans SC / MiSans / 微软雅黑。

场景 电脑 手机 键盘弹出
她的当前句 23px / 350 / 行高 1.5 18px 16px
你的当前句 20px / 300 16px 16px
上一句(与身份同行) 15px / 300,透明度 .6,单行省略 13px 隐藏
身份标签 12px,字距 .08em 12px 12px
名字(顶部) 22px / 400 16px 16px
此刻标题 30px / 300 22px(矮屏 19px) 18px

身份:她的话前面是实心发光点和她的名字;你的话前面是空心圆圈和「你」。完整记录使用同样的标记。

动效:曲线沿用 PR#8:进入和停稳 cubic-bezier(.22,1,.36,1);空间移动 cubic-bezier(.65,0,.25,1);镜头本身用临界阻尼弹簧。

动效 触发 时长与方式 能否打断
镜头走近/退回 点她、和她说话、结束交谈、此刻、交谈 临界阻尼弹簧 ω=7.2,约 0.85 秒停稳;缩放在对数空间插值,她的脸在屏幕上走直线 是,保留当前速度转向
近景展开 随镜头 走到 8%–45% 时近景淡入;以她的脸为圆心、半径 150→1600px、羽化 520px 展开;画面边缘羽化 260px,在 70%–98.5% 收为 0,到终点去掉遮罩 是
月亮交接 随镜头 20%–80% 之间从远景窗移到近景窗,位移小于房间 是
你的桌子 模式切换 850ms:相处时下移 3.5vh,交流时归位,浮层打开时下移 7vh 并变暗 是
此刻文字 离开/回来 离开 220ms 淡出加模糊;回来延迟 240ms,360–520ms 淡入 是
交流区 进入/离开 进入延迟 300ms,520–620ms;离开 220–420ms 是
结束交谈按钮 进入交流 420ms,延迟 200ms —
新句、换句、逐字 自动或点击 与 PR#8 相同:680ms 进入;固定字号的两份副本交叉 520/620ms;逐字错开 14ms,最多 48 字 是
浮层 打开/关闭 460ms/240ms,从下方升起并由模糊变清晰 是
导航亮块 切换 460ms,只移动 transform 是
按钮反馈 按下 160ms,缩放 .97 是
键盘 Esc 退出交流或关闭浮层;← / → 回看、前进 0ms:镜头、文字、界面直接到目标状态,不重播逐字;进行中的有限动画直接跳到终点 —
主题 切换 房间调色 0.9s,雨色、月亮 1s,界面 0.6s 是
环境循环 一直运行 雨每秒 520–940px;城市灯慢闪;水珠下滑;云/雾 34s、47s;灯光呼吸 9s;烛光 2.8–3.2s 跳动;热气 7s、9s;光尘 17–24s 页面隐藏时暂停
指针视差 鼠标移动(仅精确指针) 远景 ±16/10px,桌面反向 ±22/10px,1.4s/0.85s 缓出 是

断点

  • 电脑(>1100px):相处时「此刻」在左侧约 6.5vw,她在右侧窗边;交流时她居中,对话落在桌沿上方,输入框宽 640px,导航贴底。
  • 720–1100px:隐藏天气和右下说明。
  • 手机(≤720px):相处时她在上方,「此刻」文字和入口在下方;交流时她的脸在上部 27% 处,对话、输入框、导航在下方;结束交谈只留图标。宽度 ≤360px 时,演示标签缩成「演示」。
  • 可视高度 <610px(键盘或横屏):隐藏上一句和顶部说明,正在输入时导航让开。<420px:再隐藏计数和「全文」,入口仍在记录中。

性能与降级

  • 每帧只改两张静帧的 transform、近景的透明度和走近途中的遮罩。照片只随镜头整体等比缩放、平移,不做局部变形,也不单独做呼吸、眨眼、抬头之类的动画。远景、近景、月亮各自合成。
  • 雨只在两扇窗的玻璃范围内绘制;看不见的那张静帧不绘制雨。桌面、茶杯、烛灯按视口尺寸只在尺寸变化或换档时重画。
  • 自动降档:镜头静止时,最近 120 帧平均帧间隔超过 26ms 就降一档。档 1:雨降为半分辨率,桌面画布按 1 倍像素。档 2:走近时不用逐帧遮罩,改为两张静帧直接交叉淡化;去掉毛玻璃、光尘和雾带;雨约 30fps。
  • 系统「减少动态效果」或设置里的「减少动效」:镜头不推近,两张静帧原位 200ms 交叉淡化;雨停在一帧;环境循环、视差和逐字都关闭。
  • 页面隐藏时,绘制和 CSS 动画暂停。
  • 本机只有无头 Edge 软件光栅:走近过程中实测约 16–22fps(evidence 里的录屏同样来自软件光栅)。真实 GPU 帧率未测,不据此推断真机表现。

复现

powershell -File prototypes/hel-799/build.ps1          # 生成 index.html(只需 PowerShell 5.1)
powershell -File prototypes/hel-799/tools/verify.ps1   # 行为检查,写入 evidence/verification.json

build.ps1 读取 src/ 下的 shell.html、room.css、ambient.js(雨、窗、桌)、scene.js(镜头)、talk.js(对话、浮层、模式),以及仓库 web/public/assets/ 里的两张获批静帧。tools/ 是本次在 Windows 上实际使用的无头 Edge 驱动:cdp.ps1(沿用 PR#8)、snap.ps1 截图、verify.ps1 行为检查、record.ps1 录屏、contact.ps1 录屏抽帧、strip.ps1 拼图。没有新增产品依赖。

验证范围与未验证项

  • 已实测(无头 Edge,Chromium 内核):电脑 1600×1000、1440×900、1280×720;手机等效视口 390×844、360×740、320×568;键盘等效 390×430;两套主题;系统减少动效;强制档 2。结果见 evidence/verification.json 和截图、录屏。
  • 未验证:真机软键盘、iOS Safari 和 Safari 桌面版、Firefox、真实 GPU 帧率、低端手机。等效视口不能代替真机验收。mask-composite 在旧版 Safari 上可能退化为只有圆形展开、没有边缘羽化。
  • 回复是逐句模拟生成的,不是真实 SSE。
  • 相处构图、走近与退回的过渡、雾光主题和手机版都还没有经过白栖知验收;本次认可只针对 HEL-798 那张月光交流静图。