← 返回信息流

dev.to #ai短讯

OhNine 2.1:我的 Claude 限制螃蟹有了情绪

dev.to作者:RAXXO Studios产品AI评分:50/100

OhNine 2.1 更新,其菜单栏中的螃蟹角色 Claw'd 新增了 18 种动画。它会根据 Claude 会话使用量(91% 害怕,100% 哭泣)和周/月度限制状态做出不同反应,同步后还会随机表演技巧。所有 928 帧动画均由 Python 驱动 Blender 生成。

  • 当会话进度达到 91% 时,Claw'd 会感到害怕;达到 100% 时,他会冒着一朵小雨云哭着走回家
  • 每周限额用尽意味着 RIP(安息)和两只乌鸦,而 Fable 模型限额用尽则意味着拄着拐杖
  • 同步完成后,他会表演 10 种随机戏法中的一种,且绝不会连续两次表演相同的戏法
  • 全部 928 个新帧均由 Python 驱动 Blender 渲染生成,整批渲染耗时约 14.5 分钟

OhNine 2.1 已发布,我菜单栏里的那只螃蟹终于对我使用 Claude 的情况有了看法。而且大多是负面评价。

本次更新为 Claw'd 新增了 18 个动画。这相当于 928 个渲染帧,每一个都源自一个由 Python 构建的单一 Blender 场景——这句话是我未曾想到自己会写出来的,毕竟它描述的是一个使用量计量工具。

如果你还没见过他,Claw'd 是一只胖乎乎的 3D 玩具蟹,在 OhNine 面板的会话栏上行走。至于我为何最初要开发 OhNine,可以参考之前的背景故事。本文主要讲述他的情绪,以及一个 Python 脚本是如何赋予一只螃蟹情感的。

91% 时的恐惧

随着会话进度增加,Claw'd 会沿着会话栏前行,因此他所在的位置大致能告诉你当前的进度。但在 2.1 版本之前,他缺乏表达负面情绪的表情。

现在,当会话进度达到 91% 时,他会感到害怕。他睁大眼睛瑟瑟发抖,并且明显在出汗,连汗珠都清晰可见。据我所知,螃蟹是不会出汗的。但 Claw'd 是个例外。

我喜欢将 91% 设为恐惧的阈值。到了这个程度,警告才具有实际意义,通常仍有空间完成手头进行到一半的任务。或者决定不开始那个大型重构工作。

我本可以将进度条变红。但红色已经代表构建失败和未读通知,再多一条红条只会融入背景。我整天盯着它们看,却视而不见。相比之下,眼角处一只为我流汗的螃蟹要难忽视得多。这正是 OhNine 从一开始就秉持的理念:你不应该需要特意去寻找那个数字。

如果你想在不消耗自己会话的情况下体验,OhNine 页面上的演示版提供了一个滑块。将其推至 91%,他就会开始流汗。这是查看 2.1 版本变化最快的方式。

当进度达到 100% 时,他依然会执行悲伤的回家步伐。他在一个小雨云下哭泣,沿着进度条蹒跚返回,并在会话重置的那一刻正好到达起点。

这种时机设定起到了多重作用。你无需阅读倒计时,因为他距离起点的远近就是倒计时。漫长的等待意味着缓慢而痛苦的行走;短暂的等待意味着他快到家了。他不急,重置也不急。

所以,如果你想想知道还要等多久,看着那只螃蟹就好。

每周限额有了专属结局

耗尽单次会话配额令人烦恼,而耗尽每周限额更糟糕,因此它的动画更加阴暗。

当所有模型的每周总限额达到 100% 时,便是 RIP(安息)。Claw'd 四脚朝天躺在墓碑旁,墓碑上写着“RIP”,他的眼睛变成了 XX,两只乌鸦正在啄食他。

我知道。这对一个菜单栏应用来说确实有点过头了。

乌鸦的制作经历了几轮调整。在应用的实际尺寸下,它们起初只是小点,于是放大了约 35%。起初它们的颜色接近纯黑,在深色面板上几乎完全消失。现在它们呈现为较浅的蓝黑色,并带有光泽涂层,一眼就能看出是鸟类。

墓地场景本身现在被放大,并居中显示在进度条中,而不是像以前那样出现在周限额耗尽时会话所处的任意位置。一旦每周限额重置,会话的位置就不再重要,因此没有理由让他躺在进度条上的某个随机位置。

特定模型的限额则对应不同的场景。当你的每周 Fable 模型限额用尽时,Claw'd 幸存了下来,但仅存一线生机。他的腿上缠着绷带,脸颊贴着创可贴,只能拄着一根拐杖一瘸一拐地前行,直到该限额重置。

那根拐杖试了两次才定稿。第一版很短,大部分被他的手臂遮住,在应用图标尺寸下看起来像个弹弓。拿着弹弓的螃蟹情绪完全不同。现在它是一根高高的腋下拐杖,握把在他的钳子里,终于看起来像是受伤了,而不是武装起来。

这两个场景必须看起来不同。达到 Fable 上限并不意味着你的一周就此结束,因为其他模型仍然可用,所以墓碑会欺骗你。如果你不清楚每周限额如何叠加在会话限额之上,查看你的 Claude 使用限额的方法对此有详细说明。

同步后的十个戏法

并非每次更新都是坏消息。同步后,Claw'd 会随机表演以下十个戏法之一:

  • 跳绳
  • 杂耍
  • 旋转
  • 呼啦圈
  • 悠悠球
  • 喷气背包
  • 滑板翘头翻转
  • 像素风“无视它”墨镜
  • 带着音符的舞蹈
  • 一个会爆炸的气球

他绝不会连续表演同一个戏法。这是一个看似微小却很重要的规则,因为接连两个喷气背包看起来就像故障一样。随机性也很重要。如果每次同步后都固定表演同一个戏法,一开始会很可爱,但到周末就会变成背景板。

因为有规则,所以当你在 100% 限额时,一只正在做滑板翘头翻转的螃蟹会让你觉得他在嘲笑你。每当他处于上述的糟糕情绪中或坐在限额上时,戏法就会停止。它们只在面板打开时播放,所以他不会对着空房间表演。如果你在 macOS 中开启了“减少动态效果”,它们根本不会播放,该设置优先于其他所有设置。如果动态效果让你感到恶心,那么屏幕角落里有一只杂耍的螃蟹是你最不需要的东西。

然而,按计时器运行的同步最多每 90 秒表演一次戏法,无论计时器触发频率多高。如果没有这个限制,较短的自动同步间隔会让他变成马戏团表演,而笑点在第四个悠悠球左右就消失了。

里面还有几个秘密,我不会解释。我承认一件事:有一个稀有的金色旋转版本。

不过,它起初并不是金色的。第一次渲染看起来是青铜色,因为暗室灯光在金属上反射,把整个画面拖成了棕色。修复方法是减少金属感,增加色彩。

928 帧是如何制作的

Claw'd 没有任何关键帧是手动设置的。Blender 在无头模式下运行(无窗口),通过 Python 脚本构建场景并驱动每一帧。每个姿势都是纯粹的数学运算,逐帧计算正弦波和 smoothstep 曲线。

对于一只螃蟹来说,这听起来有些杀鸡用牛刀。但在添加道具的那一刻,它就物超所值了。每个新道具都标记了它出现的动画,并在其他地方隐藏:拐杖、墓碑、乌鸦、绳子、呼啦圈、滑板、喷气背包、气球以及其他道具。由于这种标记,2.0 版本的五个动画在十八个新动画进入同一场景后,字节完全一致。我添加的任何内容都不会泄露到旧动画中。更新应用程序不应悄悄改变人们已经喜欢的部分。

给喜欢数字的人看的数据:18 个新动画,928 帧,在 Mac GPU 上每帧约需一秒,因此整批渲染大约需要 14.5 分钟。压缩后,所有 23 条动画轨道在应用内总共占用 3.8 MB。

一个自动边界检查会投影每一帧并将其与帧边缘进行测量。它发现了两个问题。气球顶部超出了 11 像素,“nein”动画中的蒸汽超出了一像素。两者都被拉了回来。在应用图标尺寸下,被裁剪的气球看起来像渲染错误,任何报告它的人都是对的。我肉眼从未发现过一像素的差异,这正是检查存在的原因。我对这类细节的关注程度超过了健康标准,这也是让我重写 OhNine 入门屏幕三次的相同执念。

着陆页有了自己的渲染。所有动画都以两倍分辨率重新渲染为 WebP 精灵图,每行包含 8 帧。这种分行并非出于风格考量:WebP 将图像边长限制在 16383 像素,因此无法使用单一的长条格式。

底线

更新前需更改两项设置。Outfit 仍是默认字体,但字体菜单中新增了 Comic Sans MS(为了文化氛围),且该字体同样适用于面板文本。OpenDyslexic 选项已移除。如果你使用的是系统字体,自动同步行已修复:在 11 磅大小时,系统字体的标签比 Outfit 宽约 22 磅,这曾导致“manual”一词换行显示。现在它能完整显示在一行了。

OhNine 仍然免费,且它读取的任何数据都不会离开你的 Mac。你需要 macOS 14 或更高版本,支持 Apple Silicon 或 Intel 芯片。已在 2.x 版本?应用内更新程序会为你提供 2.1 的更新。新用户?请从下载页面获取。

OhNine 与 Anthropic 无关。“Claude”是 Anthropic 的商标。

如果你在安装任何内容之前想先见见他,Claw'd 演示可在浏览器中运行所有情绪和十种技巧。切换“Fable limit hit”以查看拐杖效果,或切换“Weekly limit hit”以查看乌鸦效果,然后按下 Sync 按钮,看看你会获得哪种技巧。

译文已达到本站中文翻译的字数上限,剩余内容请查看原文。

阅读原文