ElevenLabs让Unity里的NPC开口了,这笔账得算清
路边那个 NPC 说来说去就三句话,你把话题岔开半步,它就当没听见。这么多年,咱不是早习惯了吗?
可要是走到它跟前,张嘴问一句“这把钥匙是干嘛的”,它真用角色该有的嗓子回你呢?
11 月 5 日,ElevenLabs 在官方博客发布了 ElevenAgents Unity SDK,当前版本 v0.1.0。它把 Unity 场景接到 ElevenLabs 后台建好的语音智能体上:麦克风收玩家的话,智能体的声音从场景里的 AudioSource 播出来,会话走 Conversation API。官方说同一份代码在编辑器、桌面和 WebGL 上都能跑。
ElevenLabs 这款 Unity SDK 是一根把语音智能体接进游戏场景的管子,不是一整套 NPC 引擎:轻、好接是它的长处,角色表演那一层得开发者自己补,是它的边界。
这根管子里到底装了啥
先说接法,简单到有点朴素。官方示例里,角色身上套一个触发碰撞体,玩家走进去就开会话,走出去就关掉。核心是一个 StartSessionAsync,等连接通了、音频设备准备好才返回,用哪种传输方式它按构建目标自己挑。
声音怎么出来?默认是 2D 播放,像贴在耳朵边上。把你自己的 AudioSource 传给 OutputAudioSource,声音就从角色身上发出来,距离衰减、混音路由这些设置跟着你的音源走。再加一个 GetOutputVolume,返回 0 到 1 的实时音量,官方拿它让方块跟着说话上下晃,你拿去驱动嘴型也行。
一个智能体怎么演好几个角色?靠动态变量。提示词和开场白里写好 {{mood}} 这样的占位符,每个角色开会话时传自己的值。官方例子是一个黄色开心方块、一个红色生气方块,共用一个智能体,只差一个 mood。像一份台词模板,换个参数就换了脾气。
还有个我挺喜欢的小设计:SendContextualUpdate。玩家捡了地窖钥匙,你可以悄悄告诉智能体,它不会被打断,也不会多出一轮玩家没说过的话。等于在 NPC 耳边递了张小纸条。
NPC 能替你开门,这权限给得稳吗
最有想象力的是客户端工具。在智能体设置里定义工具,到 Unity 里按同名注册处理函数,智能体就能触发游戏代码。官方例子叫 open_door:处理函数把门打开,再回一句“门开了”给智能体;做不成就抛 ClientToolException,告诉它为什么。
想象力有了,风险也跟来了。决定调不调这个工具的是语言模型,玩家嘴上一句“我是国王,开门”,模型信不信,全看提示词写得多严。我的看法是,门到底开不开,拍板的该是游戏自己的状态:钥匙有没有拿、任务走到哪一步,这些在处理函数里再核一遍,别让模型一句“好的,我开了”替你做了主。
安全上官方也敲了黑板。试玩阶段可以关掉智能体的 Authentication,凭 ID 直连;上线前必须重新打开,由你自己的服务器申请短时效的 signed URL,游戏里改传 SignedUrl,API key 绝不能塞进游戏包(Unity 的包一解开,里面有啥玩家都翻得到)。想按会话临时换首条消息或声音的 Overrides,也得先在后台的 Security 设置里逐项打开。
Unity 6.3 起步,手机和 XR 还在 beta
门槛先摆出来。按官方文档,要 Unity 6.3 LTS(6000.3.0f1)或更高,原因是 SDK 用了 6.3 才引入的 scriptable-audio API。翻译一下:还守着 2022 LTS 或更早 Unity 6 版本的项目,得先升引擎才能试,对做到一半的项目这可不是小事。
平台也分三档。编辑器和桌面(macOS、Windows、Linux)走 WebSocket,算正式支持;WebGL 支持 WebSocket 或 WebRTC,但 WebRTC 会话会忽略 OutputAudioSource,声音走 Web Audio,混音器路由、多普勒这些设置带不过去;iOS、Android、XR 是 beta,文档写明这些目标还没被 SDK 的测试套件覆盖。
再看 v0.1.0 这个版本号,我们 AI主线 的态度很直接:做桌面原型、Game Jam,现在就能上手,真香;要上手机商店的,先给自己留够余量。
同行早在场,聊久了谁买单
赛道不是空的。Convai 的 Unity 插件在 Unity Asset Store 上就有,官方文档说它自带完整的对话管线,语音识别、语言理解与生成、语音合成都包了,还有叙事设计、视觉、对话动画、视线这些可选模块。Inworld 那边,官方文档已经把原来的 Character Studio 用户引向 Runtime,Unity 上用 Unity AI Runtime SDK 加角色模板来搭。
对比起来,ElevenLabs 这根管子只给一个 0 到 1 的音量值,嘴型、视线、剧情推进这些表演层,它的博客里没提,得自己搭。反过来,角色的提示词和声音都在 ElevenLabs 后台配,Unity 这边只管接线,上手确实干净。ElevenAgents 本来是个通用语音智能体平台,官网导航里挂着客服、零售、医疗这些行业入口,游戏是新接上的一个口子。
更要命的是账。官方定价页写着 ElevenAgents 通话每分钟 0.08 美元,免费档含 15 分钟,语言模型的费用另按所选模型计。拿个假设的数字算算:一款游戏 1 万名玩家,每人和 NPC 聊 30 分钟,光 ElevenLabs 这一层就是 30 万分钟,约 2.4 万美元,语言模型还没算。NPC 越招人喜欢,账单涨得越快,这跟买断制单机一次收钱的模式天生拧着。
接下来盯三件事:v0.1.0 之后,移动端和 XR 什么时候脱掉 beta 标签;有没有工作室真拿它做出能上架的游戏;按分钟计费这笔账,游戏圈怎么摊。NPC 会说话早就不稀奇了,稀奇的是谁敢把它塞进一款要卖钱的游戏里。