Parley - AI对话与活灵活现的NPC

Parley - AI对话与活灵活现的NPC

用麦克风或键盘/控制器与任何NPC交谈。他们会根据自身身份、对你的看法以及所见所闻,以3D口型同步的方式大声回应。

[size=6][color=#E6B450]PARLEY[/color][/size]

AI 对话与鲜活 NPC

《荒野大镖客 2》中的每个 NPC 现在都有了自己的思想。

YouTube 视频


这是什么?

Parley 将 AI 接入《荒野大镖客 2》(故事模式)的 NPC。瞄准某人,用麦克风或键盘与他们交谈。他们会根据自己是谁、对你的看法以及周围能看到的事物,以真实语音大声回复,语音在 3D 空间中定位,配有口型同步和游戏风格字幕。

他们会记住你,在背后议论你,彼此聊天,给你工作,与你交易,向你发起决斗,而用枪指着你的执法者也可以交谈(或贿赂),而不必开枪。

一览

  • 通过麦克风或键盘,用你自己的语言与任何人交谈
  • 真实的 3D 语音,嘴唇随音节而动,游戏风格字幕,电影镜头
  • 记忆、关系、名字、按地区和城镇划分的声誉
  • NPC 之间聊天,听到你的话,散布流言和传闻
  • 恐惧、侮辱、斗殴、决斗、敌对帮派、正义与监狱
  • 酒吧、商店、旅馆、物物交换、黑市交易、礼物、折扣和任务
  • 开放 API,让你的其他模组可以与 Parley 对话

主要功能

1. 对话

  • 与你瞄准的 NPC 交谈:麦克风(按住 N,或手柄 LT + 十字键下)或键盘(F1)。
  • 真实 3D 语音(OpenRouter 或 ElevenLabs),语气随情绪变化(平静、愤怒、高兴、害怕、醉酒),配有游戏风格字幕(灰色名字、笔刷背景、上方显示前两行台词)。
  • 口型同步基于语音本身的音节,支持任何语言。亚瑟的嘴也会动,即使你对着麦克风说话时也是如此。
  • 电影镜头:对话期间,镜头拍摄正在说话的人(过肩镜头、中景、侧脸、特写,以及加入对话的第三个角色),带黑边。你一移动、瞄准或战斗开始,游戏镜头就会恢复。F5 / LT + R3 可开关。
  • 亚瑟也会说话:在模组的按钮页面(连按两次 X 或 B),他会用自己的声音说一句自己的台词,风格模仿你最近的句子。Y 请求工作,A 开始或结束对话(见操作)。
  • 三种说话方式:正常、耳语(只有你交谈的对象能听到……除非紧挨着你的人听到了)或喊叫(呼叫最远 25 米外的人)。
  • 真实的语音范围:几米之内,同一楼层,同一房间,你们之间没有墙。拥挤的酒馆或乐手会缩短范围。
  • 你可以打断 NPC:他们的声音会渐弱。
  • 有人向你开枪的瞬间亚瑟会闭嘴,而且他说话时你也可以拔枪。
  • 第二遍 AI 会重读每一句台词,使其听起来自然。
  • 快速答复:迟到的请求会在备用模型上重新发送,最快者胜出。同时 NPC 会说一句填充语(“让我想想……”)。失败的请求(网络、密钥)会自动重新发送。

2. 会记忆的 NPC

  • 记忆:每个 NPC 都记得你过去的对话。
  • 关系:对你的好感(-100 到 +100)、2 个性格特征和一份职业。提示会告诉你你的处境(“屠夫:对你温和”)。你的声誉按地区追踪,怨恨会随着天数淡化。
  • 名字:陌生人在自我介绍之前一直是“陌生人”,之后会得到一个固定名字,其他 NPC 也会使用。而且陌生人在你告诉他们之前也不知道你的名字(剧情角色、你的帮派、记得你的人以及认识你的城镇除外)。
  • 剧情角色有自己的档案,知道自己是谁。你可以添加或替换档案(Parley\Characters_Custom.txt,永不被覆盖)。
  • 每个角色都有自己的声音,写在 Parley\CharacterVoices.txt 中(启动时由模组创建并补全,你的修改会被保留)。30 米内的两个角色永远不会共用声音。
  • 你的帮派成员像老朋友一样与你交谈,彼此之间像家人一样。偶尔会有一句干巴巴的调侃。
  • 与存档关联:模组状态随每个游戏存档归档。重新加载存档,或死亡后回滚,NPC 就知道他们在那一刻所知道的事情。

3. 鲜活的世界(Radiant)

  • NPC 会大声彼此聊天,每次 2 到 4 人:地点、天气、工作、传闻、你。他们面对面,认识彼此时会使用名字。
  • 有些是好朋友(温暖的话语、赞美),有些互相看不顺眼(讽刺、侮辱)……对手有时会以拳头了结,很少用枪。
  • 他们会听到你在周围说的话,记住它,有时会插话。走近正在议论你的人群,其中一人可能会与你对质。
  • 事件按严重程度留下痕迹:拔出的武器 1 分钟后被遗忘,枪声或斗殴 10 分钟。目击的谋杀持续一小时,然后变成扭曲的传闻。
  • 拔枪、开枪、战斗或留下尸体,人们就会谈论那件事而不是天气。NPC 甚至可能指控你谋杀。
  • 两个 NPC 之间的斗殴会成为镇上当天的新闻,目击者知道谁先动手(你也知道)。
  • 路人会主动接近你。盯得太久或撞到某人,他们就会过来交谈。
  • NPC 知道自己正在做什么:在酒吧喝酒(或喝咖啡)、抽烟、睡觉、演奏音乐、醉酒或被捆绑。你谈完话后,他们会回去继续。你的声音可以唤醒睡眠者,而夜里被从床上拖起来的陌生人会惊慌。
  • 他们会注意到你的外表:帽子、胡子、污垢、血迹、马背上的传奇战利品。
  • 问路:NPC 会给出城镇的真实方向和距离,或承认他们不熟悉该地区。
  • 远离城镇的一声枪响通常被认为是猎人。
  • 正在与你交谈的 NPC 上方会显示一个图标,正在聊天的 NPC 上方会显示另一个图标。

4. 城镇逐渐认识你

  • 每个城镇会逐渐了解你是谁:停留时间、你交谈的人、购买、饮酒、旅馆住宿、帮忙。
  • 你会从陌生人,到熟面孔,到被人叫出名字,到常客。人们会用名字问候你,更常接近你,也更宽容。执法者会盯着你……或者对不惹麻烦的熟面孔放松警惕。
  • 你在镇上做的事(一场决斗、一次犯罪、一次帮忙)会成为当地几天的闲话。消息从发生地点传播:在场的人立刻知道,其他人稍后知道。
  • 远离一个城镇,它会慢慢忘记你。

5. 严酷的世界

  • NPC 不是好心的助手:对陌生人警惕,愤怒时会咒骂、侮辱和威胁。恨你的人可能会攻击。有些人干脆拒绝与你交谈并走开。
  • 世界的严酷程度可调,从 0(礼貌友好)到 10(残酷)。5 = 真实(正常)。
  • 恐惧会被计算:你在该地区已知的罪行、你刚做了什么、你的外表(拔出的武器、面具、肩上扛着尸体)、他们是独自一人还是携带武器、他们职业的勇气。根据分数,他们会坚守阵地、举手投降、尖叫逃跑或乞求。
  • 言语是武器:侮辱某人,他们可能会打架;威胁他们,他们可能会逃跑;在战斗中道歉,他们可能会停手。
  • 在枪战中,一句恰到好处的侮辱可以让敌人失去冷静。
  • 敌对帮派(奥德里斯科帮、默弗里帮、剥皮帮、夜行人、莱莫恩掠夺者、德尔洛博斯、拉勒米……)从不礼貌:侮辱、嘲讽、威胁。挑衅其中一个,他可能会当场向你发起决斗,或命令手下瞄准你等待指令。退让或道歉,他们会收枪;再次挑衅,他们就会开火。

6. 决斗

  • 说“我向你发起决斗”,或者恨你的 NPC 向你发起挑战(B 接受,X 拒绝,或直接说出来)。
  • 如果他接受,他会占据有清晰射击线的位置(并下马)。随后是电影般的对峙:电影镜头、黑边、随机音乐。
  • 对峙期间你们通过麦克风交换台词。AI 会评价每次挑衅,这会影响他的准确度、速度和逃跑几率。
  • 在信号响起时(游戏的击杀闪光和拔枪音效),拔枪:死神之眼会自动触发,但满格只持续 2 秒。快瞄准。
  • 在信号前拔枪就是懦夫的决斗:目击者会指责你,镇上会议论,他的帮派不会放过你。他也可以作弊:如果他提前拔枪,立刻开枪,所有人都知道谁是懦夫。
  • 公平的决斗不是犯罪。目击者会评论,被拒绝的决斗会被记住(懦夫!)。
  • 在镇上,你挑衅的武装男子会向你发起决斗而不是开枪。
  • 帮派复仇:在他们面前杀死他们的一员,他们会用枪指着你,而他们的首领与你交谈。离开、安抚他们或战斗。公平决斗后,他们通常会放你走。

7. 法律

  • 犯罪有代价:每项犯罪都会将你的赏金提高到至少其类别的价格(谋杀每人 $25,执法者 $50,抢劫 $30,纵火 $25,绑架 $20,袭击和盗窃 $10……)。
  • 被通缉并被枪指着:倒计时结束后,执法者会与你交谈而不是开枪。按住 LT 并将镜头对准他,选择你的出路:
    • B - 撒谎:嫁祸他人
    • X - 证明你的清白:给他事实
    • A - 贿赂:他的价格显示在按钮上(你的赏金 + 20%)
    • Y - 投降
    • ……或者直接对着麦克风说出来:AI 会把你的句子归入这四种之一。
  • 是模组掷骰子,不是 AI。你的话会被评分,然后几率取决于情况:目击者看到你先被攻击、死去的歹徒、你的武器收好、他有多贪婪或诚实、他对你的看法……每句话后左上角的提示会告诉你结果如何。
  • 赏金低于 $50 时,成功减半(贿赂可清除)并且他们停止找你;差一点则要交罚款。从 $50 起,最好的结果是被放走:你的赏金保留。
  • 适得其反的谎言会提高你的赏金,被拒绝的贿赂会提高他的价格。3 次失败后他已经听够了:投降或拔枪。
  • 随时拔枪(RT):死神之眼,时间减慢,他们片刻后还击。
  • 投降:没人再开枪,但要在 10 秒内收起你的枪。然后是监狱,就像游戏中一样:城镇自己的牢房场景,时间流逝($50 以下 12 小时,$500 起最多 30 天),然后你走出警长办公室。你的赏金用你的钱支付。你的武器在警长办公室等待 12 个游戏小时……或者,从 $50 赏金起,被永久没收(套索、灯笼、双筒望远镜、相机、鱼竿和小刀会保留)。
  • 犯罪期间你可以与目击者或执法者交谈:一个良好的不在场证明或贿赂可以让你免于麻烦。
  • 抢劫某人(游戏中的抢劫)有后果:受害者和目击者会记住,看到的执法者会用枪指着你,否则受害者可能会去找警长。
  • 破坏公物:在商店里打破东西,店主会要求赔偿。不付钱他就会叫警察。
  • 拦路抢劫:敌对帮派的人想要你的钱。付钱、拒绝、威胁或逃跑。

8. 交易与服务

  • 在酒吧,“一杯威士忌”:酒保为你服务(或拒绝),告诉你价格,你像游戏中一样喝酒。醉酒度会累积。
  • 在商店,“我想看看你有什么”会打开目录。
  • 在旅馆,“洗澡”或“房间”:经理通过语音出售。在你洗澡或理发期间,以及购买后一段时间,为你服务的人很友好。
  • 与任何不在柜台后面的人进行物物交换:索要一件物品,提供你的一件,讨价还价。价格来自游戏自己的目录。说“成交”,钱和物品就会真正易手。
  • 黑市交易: underworld 的人有“从马车上掉下来”的货物给你,或买你的贵重物品,不问问题。你在 underworld 的名声按地区增长。风险:看到的执法者、告密者……以及在你身上认出自己被偷货物的主人。
  • 出售猎物:把你携带的(或放在他面前的)鱼或动物卖给屠夫或捕兽人。
  • 折扣:认识并喜欢你的商人可能会给你优惠。始终由模组决定,绝不是 AI。
  • 礼物:喜欢你的 NPC 真的可以给你一点小东西。
  • 买卖会提高商人的好感。商人、服务员、澡堂侍者……只要不恨你,就会保持职业微笑。

9. 任务

  • NPC 可以向你索要一件物品、猎物、一张毛皮或一个强盗(活或死),并提供奖励。
  • 通过语音接受或拒绝,或用 X / B。任务会以通知形式显示在游戏日志中,然后更新、完成或被放弃。
  • 用 F4 / LT + 十字键上交付所要求的物品,或直接说“给你”。马背上的毛皮和尸体也算。
  • 你可以请求工作(通过语音,或模组页面上的 Y)。陌生人,或不喜欢你的人,没有工作给你。
  • AI 无法编造虚假任务。

10. 动物

  • 抚摸狗、刷马或喂马,或惊吓牛群:目击者会记住。
  • 主人了解他们的动物(品种、名字、故事),有时会做出反应。

11. 经得起推敲的对话

  • 如果 NPC 问你一个问题而你不回答,他们会追问,可能会生气,并在之后提起。
  • 游戏台词会被尊重:NPC 说完他们的游戏台词后才回答你。
  • 紧急情况(枪战、掠食者、袭击)会打断对话,NPC 会对真正发生的事情做出反应。只有真正的目击者才会作为目击者谈论它。
  • NPC 只有在你真正威胁或挑衅他们时才会逃跑、攻击或投降。
  • NPC 生活在 1899 年,对现代世界一无所知。
  • 剧情任务受到保护:模组既不触碰它们的 NPC 也不触碰它们的脚本。

12. 语言

  • 整个界面和对话都使用你的语言。提供法语;任何其他语言由 AI 翻译一次然后保留。
  • 你说的话(购买、出售、任务、决斗……)在英语和你的语言中都能被理解。
  • NPC 总是用选定的语言回答:另一种语言的台词会被重新请求。
  • 语音可以是一种语言,字幕是另一种(例如英语语音,法语字幕)。

13. 与其他模组的兼容性

  • 直接支持(默认关闭,在 Parley.ini 第 5 部分开启):
  • 开放 API:一个简单的 .json 文件描述任何其他模组(它知道什么,其中刚发生了什么)。NPC 会将其考虑在内,谈论它,做出反应,甚至可以达成交易(包含示例:与 SellingGunsPlus 的枪支经销商讨价还价)。无需修改其他模组。包含指南和示例(Parley\API)。

14. 舒适性

  • 所有设置在一个 Parley.ini 中,逐行解释:先 essentials(密钥、语言、语音、控制、严酷程度、功能),后精细调整。编辑时实时重新加载,无需重启游戏。
  • F9 菜单:版本、更新、测试(触发一次接近、一次聊天、一个任务……)、可编辑的 API 值。
  • 新版本发布时启动通知,使用模组的语言。
  • 收到或给出物品和金钱以及任务时的游戏通知。
  • 交流令 NPC 满意或不满意时,NPC 下方显示关系图标(+ / -)。
  • Parley\Logs\ModLog.txt 解释模组的每个决定(上一会话保留在 ModLog_previous.txt 中)。

需求

  • ScriptHookRDR2
  • 一个有额度的 OpenRouter API 密钥(openrouter.ai/settings/keys)。默认模型:deepseek/deepseek-v4-flash,备用 google/gemini-2.5-flash。可在 ini 中设置任何 OpenRouter 模型。
  • 可选:ElevenLabs 密钥以获得最佳语音。

对于初始版本,我只启用了经过彻底测试的 OpenRouter 版本。


默认操作

所有这些都可以在 Parley.ini 第 3 部分更改。

键盘

  • F1:向目标 NPC 打字(Enter:发送,Esc:取消)
  • N(按住):通过麦克风交谈。短按:正常 / 耳语 / 喊叫
  • F2:交付所要求的物品(或直接说出来)
  • C:电影镜头关 / 开
  • F9:测试菜单

手柄

  • LT + 十字键下(按住):通过麦克风交谈。短按:正常 / 耳语 / 喊叫
  • LT + 十字键上:交付所要求的物品(或直接说出来)
  • LT + R3:电影镜头关 / 开
  • 在决斗、拦路抢劫、被枪指着或牌桌上,仅十字键(不含 LT)即可交谈。

目标 NPC 上的按钮:两页

  • 第 1/2 页 = 游戏自己的按钮(问候、敌视、抢劫、商人的按钮……)。单击如游戏中一样有效。
  • 连按两次 X、B、Y 或 A(键盘:R、F、E、空格)切换到模组第 2/2 页:
    • X(R):正面反应,亚瑟说自己的台词
    • B(F):负面反应,亚瑟说自己的台词
    • Y(E):请求工作(对陌生人:交易)
    • A(空格):开始对话,或结束对话
  • 再次连按两次回到游戏页面。按住 X / B:游戏自己的选项。
  • NPC 说话时按下:按钮保持白色,亚瑟的台词等待他们说完。
  • 提供任务时:X 接受,B 拒绝。决斗挑战时:B 接受,X 拒绝。
  • 没有游戏按钮的角色(由其他模组添加)会自动获得模组页面。

被法律用枪指着

  • 按住 LT(右键单击)并将镜头对准他:B(F)撒谎,X(R)证明你的清白,A(空格)贿赂,Y(E)投降
  • RT(左键单击),随时:拔枪(死神之眼)

安装

  1. 在游戏文件夹中安装 ScriptHookRDR2。
  2. 将 Parley.asi、Parley.ini 和 Parley\ 文件夹复制到游戏文件夹中。
  3. 打开 Parley.ini,将你的密钥填入 OpenRouterApiKey(如果使用 ElevenLabs,则填入 ElevenLabsApiKey + VoiceEngine=elevenlabs),并选择你的语言(**Language=**EN, FR, ES, DE, IT...)。 首次启动时,模组会生成缺失的文件(语音台词、语言包……)并使用 AI 创建备用对话。过程大约需要 5 分钟,这可能会使初次交互比平时稍长。
  4. 在游戏中:瞄准某人并按住 N(或 LT + 十字键下)交谈,或按 F1 打字。

其他一切保持原样即可。

在 Patreon(免费)上自动获取游戏语音的教程——链接如下。

YouTube 视频


费用

OPENROUTER - 约 $5/月

ELEVENLABS(可选)- $22/月 121k 额度 30 个语音(Creator 计划)

我一个月 OpenRouter 的消耗:

消耗截图


[color=#C8102E]永远不要分享你的 Parley.ini:它包含你的密钥。[/color]


Patreon

patreon.com/cw/Vazagal 自动添加你的 ElevenLabs 语音的教程(免费)


备注

模组仍在开发中;仍有错误需要修复。

使用 AI 会根据你选择的模型消耗 API 额度。本地模型是免费的,但 v1.0 尚不可用,因为它还需要更多测试。

在 Posts / Bugs 标签中报告错误,并附上你的日志:Parley\Logs\ModLog.txt