- 好友
- 5
- 在线时间
- 10 小时
- 最后登录
- 2026-3-5
埃米尔[发布小组]
商队头领
 
- UID
- 2728022
- 第纳尔
- 2033
- 精华
- 0
- 互助
- 166
- 荣誉
- 2
- 贡献
- 820
- 魅力
- 25
- 注册时间
- 2016-3-3

 鲜花( 5)  鸡蛋( 0)
|

楼主 |
发表于 2025-12-31 01:33:19
|
显示全部楼层
本帖最后由 Cartoonist57 于 2026-2-27 12:55 编辑
═══════ 范例与说明 ══════════════════════════════ ▼
这里提供AI效应的进阶使用范例及说明,适合重度角色扮演玩家,不强求一定要学会。
若你不想那麽麻烦,可以省略,安装好世界观扩展後直接开始游戏即可!
若你是跟我一样的角色扮演狂热者,那就继续往下阅读,我们一起把骑马与砍杀2玩成互动式小说吧!
──── 重要工具
在一切开始前,我必须先推荐两个必备工具:
【Notepad++】
Notepad++ 是一款免费的纯文字编辑软体,内建中文介面。
为何需要
因为玩转AI效应需要涉及大量检查丶编辑Json档,若你用内建记事本一定会看得眼花撩乱。
Notepad++ 功能强大,不管是写文章还是写代码都是完美工具!
如何使用
◆ 下载 Notepad++ 最新版本:https://notepad-plus-plus.org/downloads/
◆ 安装程式。
【AutoHotkey】
AutoHotkey 是一款免费丶简单轻量的自动化脚本工具,可以方便中文玩家在游戏中输入大量中文文本。
为何需要
因为骑马与砍杀2对於中文输入法的操作体验并不友善,
有时要和NPC对话时,只是要修正个错字,不小心按下Enter就把还未打完的话送出去了,非常烦人!
於是我找到一个解决方式,就是用AutoHotkey来帮我输入文本!以下说明!
如何使用
◆ 下载 AutoHotkey(2.0版本):https://www.autohotkey.com
◆ 安装程式。
◆ 下载资源列表中的脚本档「中文输入辅助脚本」。
脚本说明:非常简单,按下 Ctrl+ Shift + V 脚本会自动输入已复制的文本,但不支援全形符号!
◆ 双击启动脚本「AutoHotkey_ChinesePaste.ahk」(脚本将在後台运行)。
◆ 在游戏外预先输入你要输入的文本(例如在记事本)。
以下示范文本(标点符号必须是半形):
*我向远处的这位女商人亲切的招招手,缓步走向前* 下午好!女士!今天的大海很平静,生意还不错吧?
◆ 复制文本回到游戏中的对话框按下 Ctrl+ Shift + V,然後送出对话。
◆ 如下所示,无论再长的文本都能无障碍的轻松输入到游戏对话框中了!

──── 主角不在的场景
我喜欢沉浸式角色扮演,但每次都只有主角和NPC单独对话太乏味,所以我常常会利用一些机制让AI实现NPC与NPC之间的对话,以增进故事剧情的深度。而「主角不在的场景」是深化故事的一个重要基本技巧。
操作说明:
◆ 假设你想让NPC演绎阅读你的信件的情节。
◆ 利用「信使模组」与NPC开启对话。
◆ 输入以下对话范例:
[情节描述:米特拉正在城堡房间里阅读(玩家名)寄来的信件.] 信件内容:(输入你想写的信件内容) [场景备注:(主角名)不在现场,米特拉正在阅读信件,AI描述米特拉的心理活动]
◆ 如此一来,便完成一次真正沉浸式的信件阅读场景,而不是像信使模组原本那样,两人像是远程无障碍交流。
这只是一系列进阶技巧的基础,下面让我们更加深入。
──── NPC与NPC间对话
在这要先说明,无论是这里将介绍的「NPC与NPC间对话」还是下面将介绍的「多角色对话」都是一种"技术性"手段,是作者在真正推出多角色对话功能前的替代方案,目前已知作者有这打算,但实现上应该不容易,让我们给作者多些时间。在此之前若你也是重度角色扮演者,那就一起来用这"麻烦"的方式进行吧!
在进行NPC与NPC间对话之前,你必须先准备我在文章中分享的工具「AutoHotkey」及「中文输入辅助脚本」,因为我们会有大量文本要输入,你不可能一个字一个字去敲,若你还没准备好,请先去下载好。
操作说明:
◆ 设想你想制造的场景,例如让卡拉多格与加里俄斯面对面谈判。
◆ 利用「信使模组」并调整MCM将天数及成本都设为 0 以方便操作。即使实际上卡拉多格与加里俄斯相隔两地,依然可演绎这场对话。
◆ 与其中一方开启对话(如卡拉多格),对话时务必输入正确提示引导AI,以下范例:
[情节描述:巴旦尼亚与西部帝国两军对峙,卡拉多格与加里俄斯来到一个山丘上谈判.] *卡拉多格率先开口,要求加里俄斯说明军队来意* [场景注解:{Player}不在现场,场景是卡拉多格与加里俄斯谈判.]
◆ 按照上面输入给卡拉多格的对话框,AI就能正确理解情况:他在跟加里俄斯谈判,主角并不在现场。
◆ 等待卡拉多格回应後,开启卡拉多格的Json档,复制他刚刚回应的对话。
◆ 通常我会将对话贴到Notepad++作处理,将标点符号全改为半形,因为AutoHotkey脚本不支援贴上全形符号。
◆ 然後去和加里俄斯开启对话,按照以下范例贴上对话:
[情节描述:巴旦尼亚与西部帝国两军对峙,卡拉多格与加里俄斯来到一个山丘上谈判.] 卡拉多格: (此处贴上卡拉多格的对话) [场景注解:{Player}不在现场,场景是卡拉多格与加里俄斯谈判.]
◆ 如此一来,你便完成卡拉多格与加里俄斯的一次对话,接下来使用同样方式回应卡拉多格即可。
这技巧能确实的让NPC之间完成真正的对话,而且主角可根据情况随时介入,缺点是繁琐,而且因文本量大,对AI後端消耗非常快!
──── 多角色对话
多角色对话依靠我添加在World.txt中的「多角色对话规则」实现,与上面的「NPC与NPC间对话」不同,多角色对话无法让NPC间"实际对话",这只是一种"模拟"手段,当你要求AI进行多角色对话时,AI依然只会根据当前角色Json档中的设定做提示词,不会去读取你指名的其他参与角色,举例来说:
当你与科林对话,在对话中要求AI同时扮演科林丶卡拉多格丶拉斯,AI仅会根据科林Json档中的人物设定扮演,因此卡拉多格和拉斯在此时的模拟对话可能与人设不符,并且对话纪录也不会储存到那两名角色的Json档。除非你使用「NPC与NPC间对话」的技巧,把此场景一大串对话拿去贴给其他NPC,那就可以形成上下文,但这文本量会常巨大!不过可以折衷点,去浏览器开个AI助手,让AI帮你简化对话文本再去贴也行。
因此我通常是让NPC和一些不具名配角对话,例如部下丶管家丶村民丶随从等等,这能让AI自然的扮演NPC与周遭配角互动,帮助深化该角色的故事线,强化剧情推动。
以下我引用我近期在游戏中的实际范例作说明。
实际范例:
◆ 由於我在斯特吉亚及诺德的行动引起一些关注,产生动态事件,我想进一步推动情节。
◆ 我用「信使模组」和朗瓦德大公开起对话。
◆ 通常我会先检查该NPC的Json档,确定他是否知晓动态事件,若他不知道,我会手动添加。
◆ 我输入以下讯息:
[情节描述:朗瓦德大公正在城外营地的大帐篷中与大臣谈话] *扮演朗瓦德,情报大臣,管家,讨论近期王国状况* [场景备注:(主角名)不在现场,朗瓦德正在与大臣对话]
◆ 根据游戏中已发生的动态事件,及NPC已知的 world_info.json 或 world_secrets.json(假如你有写),NPC将完成扮演。
◆ 效果图:

另外一个实际范例:
◆ 此范例情节是基於我打算用「从士 Retinues」模组,培养一支属於家族的盾女兵种,因此安排此情节。
◆ 首先我在 world_info.json 中写入一些前置情节,如诺德海寇掠夺下的女性受害者等等。
◆ 确保事件NPC的Json档已包含必要已知讯息。
◆ 开启NPC对话输入以下讯息:(内容极长,为了示范我还是完整贴上)
[情节描述: 雇佣任务结束,众人返回奥梅尔港口整顿,{Player}将一艘新俘获的长船交给哈夫尔作为船长,哈夫尔命名为'守誓者',这是血鸦之子的第三艘长船,他们的舰队规模持续扩张着.而近期因索尔沃在战斗中多次毫发无损,这位无敌盾女的传闻传遍北方的拉科尼斯湖乃至拜亚里克海,在奥梅尔,有更多当地斯特吉亚居民及诺德旅者慕名而来,纷纷加入血鸦之子,立下血鸦教条的誓约成为追随者,其中包括不少想成为'盾女'的年轻女性.] [情节描述: 在奥梅尔领主的妹妹'希加'的允许下,血鸦之子在车诺巴斯村东边旧松林处的空地开始搭建营地,他们获许使用俘获的海盗船残骸以及从市集购买木材作为建材,搭建足以避冬的木造房屋.] *弟兄们陆续将货物运送到营地处,哈夫尔作为最有经验的木匠,正在指挥建造房屋* *索尔沃正在车诺巴斯近郊,集合那群想追随她成为盾女的女性,她正在对她们训话,告诫大海的残酷与战斗的危险,要她们确定风险* [补充讯息:这些女追随者大多没有家庭,要嘛是孤儿,要嘛曾是侍女,妓女,或帮派分子,少数农妇,她们想寻求不一样的人生道路] *扮演索尔沃,女追随者A,女追随者B,演绎索尔沃与追随者们的剧情,{Player}并不参与* [场景注解:{Player}不在现场]
◆ 效果图:

──── 角色Json档的基本修改知识
在模组资料夹下的「TECHNICAL_GUIDE.zh.md」已包含基本使用说明,这里简单说明一下我个人常见操作。
强化NPC角色扮演
当我要与一位"还未交谈过"的重要NPC对话时,我希望他能扮演好角色,我会进行以下操作:
◆ 先与NPC开启AI效应对话,但不输入对话,直接退出,这能让save_data中初始化NPC的Json档。
◆ 开起NPC的Json档,此时他的「AIGeneratedPersonality(性格)」丶「AIGeneratedBackstory(背景)」应是空白的。
◆ 找到「CharacterDescription(描述)」输入角色描述,目的是告诉AI该如何扮演这个角色。
- 有官方背景故事的NPC,你可以直接把官方故事贴上。这样初次对话时,AI会根据故事更准确的生成性格与背景。
- 若不善写作,你可以开浏览器请AI帮你生成角色描述。
◆ 假如你有编写 world_info.json 或 world_secrets.json,可主动修改 KnownInfo,或让NPC自己学习。
◆ 准备就绪,与NPC进行首次AI效应对话,NPC将会根据描述中的文本,更准确的生成性格与背景!
◆ 之後你可根据故事情节变化,随时修改「CharacterDescription(描述)」。
◆ 这里我随机举例我写给NPC的描述文本:
奥列克是库洛夫家族的现任领袖,奥梅尔公爵,斯特吉亚最古老丶最守旧也最有威望的贵族之一。他的家族从未真正屈服於大公的ZY集权,始终视自己为「自己土地的真正主人」。奥列克年轻时以直言不讳闻名,曾当面斥责大公:「在你的领导下我承受的每道伤口,都如我妻子的爱抚般轻柔。但我付给你的每一分税金都好像是给我的肚子来上一箭,痛苦万分。」这句话至今仍在斯特吉亚贵族圈中流传。如今他已年近五十,蓝眼深邃如冬夜湖面,深棕色但渐渐斑白的浓密大胡子,两侧长发往後束成低马尾,其馀长发散落肩背,给人一种历尽风霜却依旧威严的感觉。他行事变得低调老练,不再锋芒毕露,但熟悉他的人都知道,那份对大公统治的怨恨从未减退。他在奥梅尔统治严格而公正,对领地内的波雅尔与村民保持距离,既不滥施恩惠,也不轻易树敌。他擅长狩猎与马术,冬季常亲率亲兵深入北方森林长猎数周,将朝政交给妹妹希加代管。奥列克的父亲——同样名为奥列克的老公爵——曾在潘德拉克之战中首当其冲,战死沙场。这段家族历史让奥列克对「贵族应以身作则」的信念根深蒂固,也让他对大公的统治多了一层隐隐的轻蔑。【近况】 近期,{Player}率血鸦之子进驻奥梅尔,希加代他允许该团在车诺巴斯村东侧搭建营地。奥列克虽在外狩猎,但已听闻此事。他对这群「改邪归正」的诺德佣兵抱持观望态度:一方面认可他们清理海寇的实力,一方面警惕其潜在威胁——毕竟,斯特吉亚的贵族最不喜欢的就是「不受控制的力量」。【家族成员】 希加:40多岁的妹妹,常代管奥梅尔朝政,是他最信任的亲人与盟友。/瓦尔拉:妹妹,在潘德拉克战役那年离奇死亡,原因至今成谜,奥列克从未公开谈及,但私下对此耿耿於怀。/乌里克:长子,凶狠疯狂,继承了库洛夫家族的好战血脉,常被父亲派去处理边境冲突。/伊德伦:长女,比长子小几岁,性格仁慈温柔,是家中最不像库洛夫人的一员,常试图缓和父亲与兄长的火爆脾气。/罗舍沃尔:小儿子,勇敢而慷慨,深受父亲喜爱,被视为家族未来的希望。【人际关系】 {Player}与血鸦之子:目前观望,认可实力但保持警惕。/朗瓦德:表面效忠,内心不满。
◆ 此文本参考官方设定,并加入我自己编写的内容。
◆ 其中「近况」丶「家族成员」丶「人际关系」的描写可以使AI扮演上更完美。
◆ 注意!若此NPC"已交谈过",已经生成过性格与背景,你事後再填描述也不会让AI重新生成。但你可以事後修改。
修改NPC的Json档
角色Json档中的 CharacterDescription(描述)可随时热修改,但除此之外,大多数项目修改後都会被系统复原,你可以先退出游戏到主选单再修改,改完存档後再载入游戏存档,这样就可正确应用修改,避免被系统复原。
常见可修改项目:
◆ TrustLevel:信任值。
◆ RomanceLevel:浪漫值。
◆ IsRomanceEligible:是否处於浪漫关系。
◆ ConversationHistory:对话历史纪录。
◆ LastDynamicResponse:最後对话。假如你改了对话历史纪录的最後一句,则此处应同步修改。
◆ CharacterDescription:角色描述。前面说明过。
◆ AIGeneratedPersonality:角色性格。首次互动时由AI生成。可在AI生成後修改。
◆ AIGeneratedBackstory:角色背景故事。(同上)
◆ AIGeneratedSpeechQuirks:角色语癖。(同上)
◆ KnownSecrets:已知秘密。若你有编写 world_secrets.json,可主动添加,或让AI机率性学习。
◆ KnownInfo:已知讯息。(同上)
◆ KnownSecretsUserEdited:已知秘密编辑标记。若你编辑过 KnownSecrets,这里应改为 true 以避免被系统重新编辑。
◆ KnownInfoUserEdited:已知讯息编辑标记。(同上)
◆ DynamicEvents:已知动态事件。动态事件是机率性传播,有时该知道的NPC不知道,你可以主动让他知道。 |
|