点一下就动作的宠物,为什么很快没意思

设想一款宠物养成里最常见的交互:屏幕上有一只叫“团子”的小家伙,玩家点“喂食”,它低头吃;点“摸摸”,它眯眼睛;点“握手”,它伸爪子。每个动作都有动画,都没有错。可是玩了几天,玩家会发现一件事:团子不需要“想”任何事。它所有的行为都是玩家指令的直接函数,输入一样,输出必然一样。

这样的宠物有三个问题:

  • 没有惊喜。 玩家知道每一次点击的结果,所以点击本身没有内容。
  • 没有个体差异。 所有玩家的团子一模一样,“我的团子”只是一个名字。
  • 没有关系。 关系需要“对方也有自己的一份”,而完全听话的对象只有服务,没有关系。

所以我们在设计虚拟宠物AI时,先把一个前提放到桌面上:宠物应该有自己的倾向,玩家的指令是影响它的一种力量,但不是唯一的力量。 后面几节依次讲底色、行为是怎么算出来的、习惯如何形成,最后是自主的边界。文中所有数字都是示意,只用来说明机制。

底色:团子出生的时候,带着什么

一只宠物的个性,可以先分成两个部分:出生时给定的部分,和经历带来的部分。我们把前者叫底色,用几个连续维度来表示。

维度 示意值(0—1) 大致含义
胆量 0.3 越低越容易被响声、陌生人吓到
好奇心 0.6 越高越愿意主动探索新地点、新物品
黏人程度 0.7 越高越常凑近玩家,越在意被忽视
挑食倾向 0.5 影响对食物的接受度与偏好稳定性
活跃度 0.4 决定日常的精力消耗与安静程度

(举例,非真实参数。)

除了这些维度,还有具体的偏好与恐惧:团子喜欢被摸下巴,不喜欢被摸尾巴,害怕吸尘器的声音。这些是离散的“好恶清单”,每一条带一个强度。

底色的作用有两个。第一,它决定了不同宠物的起点不一样,同样的一次雷雨,胆量0.3的团子和胆量0.8的另一只宠物,反应会明显不同。第二,它是后面所有变化的锚点:经历会推动性格,但推动的是“偏离底色多少”,而不是把底色整个擦掉。这个思路和长期角色一致性里的常见做法接近:静态设定与动态经验分开存放,前者变得很慢,后者随事件更新。

一次“不听话”是怎么算出来的

再回到那个点击。玩家点了“喂食”,团子应该怎么反应?我们让它先做一次行为选择,而不是直接执行。粗略的流程如下:

  1. 收集当前状态。 饥饿值、疲劳值、心情、最近一次被玩家忽略的时间、周围环境(有没有陌生声音)。
  2. 列出候选行为。 比如吃、闻一闻再吃、躲开、去找玩家、自己玩。
  3. 给每个候选行为打分。 分数来自几项的加权:生理需求(饿了加分)、当前情绪(害怕时躲开加分)、性格倾向(好奇的团子会先闻)、偏好(喜欢这种食物加分)、玩家指令(“喂食”对吃加分,但只是其中一项)。
  4. 带一点随机地选择。 不是永远选最高分,而是高分优先、允许有小概率的偏离,避免行为变成可预测的机器。
  5. 执行并记录。 结果写入经历:这次它吃了,玩家表现出满意,喜欢这种食物的强度小幅上升。

举一个示意的例子。假设团子的饥饿值是70(较饿),但此刻窗外在打雷,害怕值升高。候选“吃”的得分包含饥饿加成和指令加成,候选“躲到沙发底下”的得分包含恐惧加成,因为它胆量只有0.3,恐惧权重很大。最后可能是“躲”得分更高:玩家点了喂食,团子没动,缩在角落里发抖。玩家看到的不是“出错”,而是一个有理由的拒绝。理由可以直接展示给玩家:“打雷了,团子有点害怕”。

需要注意的是,指令的权重不应该固定。关系越亲近,团子越愿意配合玩家;刚被吓到、刚被冷落时,指令的权重会下降。这个权重本身也是状态的一部分,它随着信任度慢慢移动,而不是由开发者写死一个“服从率”。这样,“听话”就成了关系的结果,而不是出厂设置。如果把类似的结构换到舞台上,就是虚拟偶像的成长:同样是先有状态,再有表现。

这也是可解释性的要求。宠物的每一个“不听话”都应当能说出理由;说不出理由的偏离,看起来就只是故障。

习惯是怎么长出来的:强化,而不是台词

底色只是起点。宠物真正“长出”个性,来自日复一日的经历。这里借用的是强化的思想:某种行为得到了让它满意的结果,下次做出这种行为的倾向就会增加;得不到,就会慢慢减少。 落到团子身上有几种典型情形。

  • 常被带去新地方,它会更好奇。 每次探索新区域并且遇到有趣的东西,好奇心维度小幅上升,比如示意值每次+0.01,并设置一个上限(比如不超过底色上方0.3)。日子久了,它会更主动去探索,甚至在玩家没指令时自己往门口走。
  • 被吓到又被安抚,它会更信任玩家。 雷雨天玩家陪着它,恐惧消退得更快,同时“依赖玩家”这条关系值上升。下一次打雷,它更可能凑到玩家身边,而不是缩在沙发底下。
  • 长期某种需求得不到满足,它会形成新行为。 举例说,假设玩家一直很晚才喂食,团子在饿的时候得不到回应,就可能形成“提前守在碗边”的习惯。习惯一旦形成,就会作为一个新的偏好条目被记录下来,而不是一时的动画。
  • 被反复强迫做不喜欢的事,它会变得抗拒。 比如每次都被摸尾巴,它对这个动作的厌恶强度升高,久而久之会主动避开玩家的手。这是给玩家的反馈:你的行为在改变它。

这里需要三条刹车,否则强化会变成失控的正反馈:

  1. 变化有速度上限。 单次事件只能推动一小步,一整天的总变化量也有封顶。
  2. 变化有回归力。 长期不再发生同类事件后,新习惯会缓慢衰减,回到接近底色的位置,除非它被反复强化。
  3. 底色只允许有限偏离。 经历能把好奇心从0.6推到0.9,却不该把一只胆小的团子变成完全无畏的宠物。这也是为什么不同玩家养出来的团子各不相同,但都还是同一个物种、同一类底色。关于“宠物越养越像玩家”这个问题,我们专门在宠物性格多样性一文里讨论了锚点与有限适应。

自主但不失控:规则、边界和玩家设置

让宠物有想法之后,边界就变得比什么都重要。“自主”指的是在规则范围内自己做选择,不是无限制地做任何事。

游戏规则层面的硬约束:

  • 宠物只能从预先定义的行为集合里选择,不会凭空生成一个未定义的动作,比如“删除存档”或“发布内容”。
  • 它不会消耗玩家没有授权的资源,也不会自己改变游戏的付费或设置项。
  • 它不会伤害玩家或其他角色,任何攻击性行为都不在集合里。
  • 它的情绪与需求变化有下限保护:状态到达危险区间时,系统会给玩家清楚的提示,而不是悄悄让宠物“出事”。

玩家可以设置的部分(设计上应当提供,具体以App内说明为准):

  • 自主程度。 例如从“完全按指令”到“高度自主”分几档;选择低档时,宠物依然有情绪,但更常执行玩家的指令。
  • 主动提示。 宠物什么时候可以主动来找你、多久一次,是否完全关闭。
  • 打扰限制。 免打扰时段、通知频率上限。
  • 经历记录。 查看它经历过什么,修正错误的记录,甚至删除某些经历,让它“忘记”。
  • 偏好重置。 玩家如果不喜欢某个习惯,可以选择让它逐步淡化,而不是强行改写。

这样设计的原因,与一项2026年9月的VR游戏AI伙伴研究有一点相通:研究里,AI完全代替玩家行动时,玩家的自主感、沉浸感和乐趣明显受损,而保留玩家控制和讨论空间的方式评价更高。这项研究不是关于宠物的,我们只借它提醒自己:角色可以有想法,但玩家要始终握着方向盘。

宠物的自主,是让它有自己的样子,而不是让它替玩家决定该怎么玩。

关系:宠物“认得你”,靠的是一段被记录的历史

个性除了体现在行为上,也体现在对特定的人上。团子对玩家和对陌生访客的反应应该不同。这需要一个独立的关系状态,至少包括:

  • 信任度:玩家有没有在它害怕时出现;
  • 熟悉度:相处时间和互动次数(示意:累积到某个阈值,会解锁更亲近的行为,比如主动蹭手);
  • 共同经历:第一次带它出门、它生病那次、雷雨夜的陪伴;
  • 最近的互动质量:最近一周里,它的需求被回应得怎么样。

关系状态与个性状态要分开存放,原因很实际:性格是它自己的,关系是它和玩家之间的。这一点在换主人的场景里尤其关键,宠物换了主人以后哪些记忆该保留,就是围绕这个区分展开的。

需要特别说明的是,宠物是虚构的陪伴对象,不替代现实中的关系。我们不会让宠物用“你不来它就会难过”这类方式去催促玩家上线;它的“想念”可以是一个温和的叙事细节,比如久别重逢时多蹭几下,但不转化为对玩家的惩罚,也不制造焦虑。如果你发现自己因为宠物养成而持续感到压力或困扰,可以先调低互动强度,也可以和身边的人或专业人士聊聊。

怎么判断一只宠物真的有个性,而不是随机

最后给出几条自检问题,也适用于评估我们自己的设计。

  1. 可解释吗? 任意一次“不听话”,是否都能说出原因(饿、怕、累、偏好)?
  2. 可重复吗? 同样的状态与环境,是否大致给出同一类反应,而不是每次都乱选?如果只是随机,那不是个性。
  3. 可追溯吗? 一个新习惯,是否能指到一段具体经历?
  4. 有差异吗? 两只底色不同的宠物,面对同一件事是否明显不同?
  5. 有边界吗? 变化是否有速度上限、回归力和底色锚点?
  6. 能设置吗? 玩家调低自主程度或关闭提示以后,宠物是否真的遵守?

简单说,虚拟宠物的个性由“初始性格”加“长期经历”共同塑造:前者决定它是谁,后者决定它变成什么样。玩家的指令是参与这个过程的一股力量,但不是全部。让宠物有时不听话,并且每次不听话都有理由,才是玩家愿意长期养下去的开始。