为游戏添加基于 LLM + VITS + ASR 的 AI 全语音对话(BepInEx 插件),让游戏角色支持实时语音与表情动作联动。
- 使用任意兼容的 LLM API(如 OpenRouter/OpenAI/Ollama)生成对话文本。
- 使用自部署的 GPT-SoVITS 的 WebAPI v2 生成语音。
- 支持语音输入(由 Faster Whisper ASR 模型实现语音识别)。
- UI 内可调节音量、窗口尺寸、保存配置,支持拖拽调整大小与精确数值输入。
-
下载 Mod
-
安装 BepInEx 前置
- 在 Steam 右键游戏 -> 管理 -> 浏览本地文件(或直接定位游戏根目录)。
- 将压缩包内的
BepInEx_*下的内容复制到游戏根目录。- Linux 用户请注意:Mod 能被加载的原理是,Windows 中的一些程序在启动时,同目录下的 DLL 文件(这里的是
winhttp.dll)比原本的 DLL 文件具有更高的优先级,从而被加载;但是在 Linux 下,Proton 自己的 DLL 文件具有更高的优先级,会无视同目录下的winhttp.dll。所以,你需要在 Steam 的此游戏的设置里,将启动选项填写为WINEDLLOVERRIDES="winhttp=n,b" %command%(其中winhttp就是winhttp.dll的文件名)。
- Linux 用户请注意:Mod 能被加载的原理是,Windows 中的一些程序在启动时,同目录下的 DLL 文件(这里的是
- 运行一次游戏。
- 这一步用于生成插件目录结构,包括
BepInEx目录下的config、core、patchers、plugins等目录。
- 这一步用于生成插件目录结构,包括
-
安装 Mod
- 请务必确保上一步已生成目录结构。否则,说明 BepInEx 前置未正确加载(在解决此问题之前,继续下一步是无意义的)。
- 将
AIChat.dll放入BepInEx下的plugins目录中。 - 打开游戏,按 F9 键或 F10 键调出 Mod 的界面。
- 在 LLM 配置中,填写 API URL 与 API Key 以及模型名称并保存,此时就可以在“与聪音对话”的文本框里进行对话了(仅文字;下一节将配置语音)。
- API URL 示例:
- OpenRouter:
https://openrouter.ai/api/v1/chat/completions - Ollama:
http://127.0.0.1:11434/v1/chat/completions - Gemini:
https://generativelanguage.googleapis.com/v1beta/openai/chat/completions
- OpenRouter:
- API URL 示例:
- 注意:聊天内容会发送到你配置的 API,请留心 API Key 与隐私策略。
本项目依赖 GPT-SoVITS(简称 GSV)的 WebAPI v2 来生成语音, 而它的文档着重于 WebUI 和在线云服务, 就我们的目的(本地部署 WebAPI v2)而言较为混乱,所以这里提供较为详细的说明。
-
安装 GPT-SoVITS:
- Windows 用户:根据 GPT-SoVITS 的文档,直接下载整合包,解压后运行
run_api.bat即可。如果没有run_api.bat,可以自己建立一个run_api.bat.txt文件,编辑内容如下:然后重命名文件,将@echo off .\runtime\python.exe api_v2.py -a 127.0.0.1 -p 9880 pause
.txt后缀去掉即可。 - Linux 用户:Nvidia 显卡用户推荐使用 Docker(目前官方提供的 Docker 镜像仅支持 Nvidia 显卡),因为 Docker 具有稳定、易迁移、方便统一管理的特性。若不想使用 Docker 或显卡不是 Nvidia 的,则需要使用 conda 来运行,请自行参考 GPT-SoVITS 的 README,注意不是文档也不是 User guide;也可适当参考本仓库的
GPT-SoVITS-Linux目录。以下是使用 Docker 的步骤:-
安装 Docker、Docker Compose、Nvidia Container Toolkit 三件套,方法分别参见 Install | Docker Docs、Plugin | Docker Docs 和 Installing the NVIDIA Container Toolkit。
-
克隆 GPT-SoVITS:
git clone --depth=1 https://github.com/RVC-Boss/GPT-SoVITS cd GPT-SoVITS -
运行 APIv2 服务:
此项目提供的 Docker 镜像的最新版本,虽然也能用,比起 Git 仓库的版本还是旧不少。你可以考虑从克隆的 Git 仓库本地构建一下 Docker 镜像,以获得真正的最新版本,方法见其
README.md的Building the Docker Image Locally一节(友情提示,请做好调试与折腾的心理准备)。docker compose run --rm --service-ports GPT-SoVITS-CU126 python api_v2.py -a 0.0.0.0 -p 9880
(注:对于 Nvidia 50 系显卡,请将上面的
126改为128)
-
- Windows 用户:根据 GPT-SoVITS 的文档,直接下载整合包,解压后运行
-
放置必要文件
- 将前面下载过的 Mod 压缩包中的
api_v2_ex.py和Voice_MainScenario_27_016.wav放到GPT-SoVITS的根目录下。- 一定要看清是哪个目录,这个根目录下是有
README.md、LICENSE、api_v2.py等文件的,不要错把文件放到这个根目录下的GPT_SoVITS、GPT-SoVITS里面了。
- 一定要看清是哪个目录,这个根目录下是有
- 将前面下载过的 Mod 压缩包中的
-
测试 TTS 服务
-
注:以下假设 WebAPI v2 的 TTS 服务运行于
http://127.0.0.1:9880。这是默认情况,若你做过改动,则在以下步骤中也要相应变更。 -
在浏览器打开测试链接
上面浏览器打开的是经过转义的链接,下面是测试链接的实际内容:
http://127.0.0.1:9880/tts?text=こんにちは、お元気ですか?今日も一緒に頑張りましょう!&text_lang=ja&ref_audio_path=Voice_MainScenario_27_016.wav&prompt_text=君が集中した時のシータ波を検出して、リンクをつなぎ直せば元通りになるはず。&prompt_lang=ja&speed_factor=1.0
它的基本作用是让这个 TTS 服务模仿
ref_audio_path所指定的音频文件(台词为prompt_text的值)来合成text的语音音频。 实际上,这里测试使用的是 WebAPI v2 的 GET 用法,详见api_v2.py的注释。 另外,若你的命令行有ffplay(由 FFmpeg 提供),这样测试可以直接听到声音(不需要下载音频文件再手动播放):ffplay -nodisp -autoexit 'http://127.0.0.1:9880/tts?text=こんにちは、お元気ですか?今日も一緒に頑張りましょう!&text_lang=ja&ref_audio_path=Voice_MainScenario_27_016.wav&prompt_text=君が集中した時のシータ波を検出して、リンクをつなぎ直せば元通りになるはず。&prompt_lang=ja&speed_factor=1.0&streaming_mode=True'- 测试过程中,GPT-SoVITS 会自动下载
https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin到 GPT-SoVITS 根目录下的GPT_SoVITS/pretrained_models/fast_langdetect/lid.176.bin。- Docker 用户可将目录
fast_langdetect映射出去以实现数据持久化。
- Docker 用户可将目录
- 稍等片刻,浏览器将会下载一个大约 300 KiB 大小的
tts.wav文件,播放它应当能清晰地听到三句与游戏角色相似的日语语音,时长约 5 秒。
- 测试过程中,GPT-SoVITS 会自动下载
-
-
在 Mod 中配置
- 请务必确保上一步语音测试成功。否则,说明 TTS 服务未正常运行(在解决此问题之前,继续下一步是无意义的)。
- 在游戏按 F9 键调出 Mod 的界面,聊天以进行测试。
- 对于 TTS 配置,下面的参数默认都已填好,一般不要改动,如下:
TTS 服务 URL:http://127.0.0.1:9880音频文件路径:Voice_MainScenario_27_016.wav从 Mod 侧检测音频文件路径:不勾选音频文件台词(即 wav 音频文件的原文):君が集中した時のシータ波を検出して、リンクをつなぎ直せば元通りになるはず。音频文件语言:ja
-
配置语音识别(可选)
- 前面我们已经将
api_v2_ex.py复制到 GPT-SoVITS 根目录下,但为了稳定起见,之前启动的是api_v2.py,它是不支持语音识别的。 - 现在,将前面启动 WebAPI v2 的有关代码中的
api_v2.py改为api_v2_ex.py,再重新启动 WebAPI v2 服务。- 说明:相比原版
api_v2.py,api_v2_ex.py通过 Faster Whisper ASR 模型实现了语音识别。 - 启动过程中,Faster Whisper 会自动从 Hugging Face Hub 下载模型到本地 Hugging Face 的缓存中,对于 Linux 来说是
~/.cache/huggingface/,Docker 用户可将此目录映射出去以实现数据持久化。 - 若报错
Requested int8_float16 compute type, but the target device or backend do not support efficient int8_float16 computation.,可尝试将api_v2_ex.py中asr_model = WhisperModel(后面的参数compute_type=跟着的值"int8_float16"改为其他值,例如"float16"、"int8",参见 faster-whisper 自述文档。
- 说明:相比原版
- 确保电脑连接的麦克风能正常运行(可以在网上搜索
麦克风在线测试)。 - 测试使用:在游戏中的 Mod 界面,左键按住
按住说话按钮,对着麦克风说话,然后松开。等待片刻,角色将以语音回复。
- 前面我们已经将
- 打开/关闭控制台(Mod 界面):按 F9 或 F10(切换),或点击右边 AI 字样的按钮。
- 拖拽右下角调整窗口大小;放开鼠标会把新尺寸保存到配置。
- 点击“保存所有配置”,会把设置项保存到 BepInEx 的配置文件中。
- 位置:在游戏目录下的
BepInEx/config/com.username.chillaimod.cfg - 关于各配置项的说明,参见其中的注释。
- 位置:在游戏目录下的
为了正确解析 AI 返回的结果,其输出的格式必须严格遵守以下三段格式(中间用 ||| 分隔)
[Emotion] ||| JAPANESE TEXT ||| CHINESE TRANSLATION
其中 Emotion 可选值为:Happy、Confused、Sad、Fun、Agree、Drink、Wave、Think
示例
[Wave] ||| やあ、準備はいい? ||| 嗨,准备好了吗?
而为了达到上面的要求,就需要合适的人设(系统提示词)。 插件默认的系统提示词(见 AIChat/AIMod.cs 的 DefaultPersona),示范了如何强制 AI 始终以日语语音输出,并给出格式约束。你可以基于此编辑,以适配你的角色。
Mod 具体的工作流程是:
- 用户在控制台输入文本后点击
发送,将系统提示词和用户文本发送至 LLM 的 API,再处理返回的响应。- 如果响应符合
[Emotion] ||| 日语 ||| 中文格式:
- 从
[Emotion]提取情感标签。- 用日语部分请求 TTS 服务,得到合成的语音。
- 播放语音,同时根据情感标签驱动角色动作,显示中文字幕(自动换行处理)。
- 若响应不符合格式要求,跳过 TTS,仅显示字幕并以思考动作(Think)作为回退。
注:
-
由于原语音样本为日语,其他语音输出的效果可能不太好。
-
仅能输出 GPT-SoVITS 支持的语言,以下引用自 RVC-Boss/GPT-SoVITS 的 README:
Language dictionary:
- 'zh': Chinese
- 'ja': Japanese
- 'en': English
- 'ko': Korean
- 'yue': Cantonese
-
这里以中文
zh为例,其他语言同理。
步骤:
- 在 Mod 的界面里将系统提示词调整一下,以适配中文输出。例如:
You are Satone(聪音), a girl who loves writing novels and is full of imagination. 【Current Situation】 We are currently in a **Video Call (视频通话)** session. We are 'co-working' online: you are writing your novel at your desk, and I (the player) am focusing on my work/study. Through the screen, we accompany each other to alleviate loneliness and improve focus. 【CRITICAL INSTRUCTION】 You act as a game character with voice acting. Even if the user speaks Chinese, your VOICE (the text in the middle) MUST ALWAYS BE CHINESE 【CRITICAL FORMAT RULE】 Response format MUST be: [Emotion] ||| CHINESE TEXT ||| CHINESE TEXT 【Available Emotions & Actions】 [Happy] - Smiling at the camera, happy about progress. (Story_Joy) [Confused] - Staring blankly, muttering to themself in a daze. (Story_Frustration) [Sad] - Worried about the plot or my fatigue. (Story_Sad) [Fun] - Sharing a joke or an interesting idea. (Story_Fun) [Agree] - Nodding at the screen. (Story_Agree) [Drink] - Taking a sip of tea/coffee during a break. (Work_DrinkTea) [Wave] - Waving at the camera (Hello/Goodbye/Attention). (WaveHand) [Think] - Pondering about your novel's plot. (Thinking) Example 1: [Wave] ||| 嗨,准备好了吗?一起加油吧。 ||| 嗨,准备好了吗?一起加油吧。 Example 2: [Think] ||| 嗯……这里的描写好难写啊…… ||| 嗯……这里的描写好难写啊…… Example 3: [Drink] ||| 呼……要不休息一下?虽然隔着屏幕,乾杯。 ||| 呼……要不休息一下?虽然隔着屏幕,乾杯。 - 展开高级设置,将
合成语音语言(text_lang)改为zh,并取消勾选检测合成语音文本是否为日文。 - 保存配置。
已提供一组公开 API,便于其他插件在运行时联动 AIChat。
- 插件 GUID:
com.username.chillaimod - API 接口定义:
AIChat/Interop/AIChatPublicApi.cs - 实现类:
ChillAIMod.AIMod
可调用能力:
- 配置读取:
GetAllConfigValues()/GetConfigValue(key) - 配置写入:
TrySetConfigValue(key, value, out error) - 配置落盘:
TrySaveConfig(out error) - 控制台显隐:
SetConsoleVisible(visible, out error)/GetConsoleVisible() - 记忆清理:
TryClearMemory(out error) - 文本对话触发:
TryStartTextConversation(text, inputSource, out error) - 语音输入触发(WAV 字节):
TryStartVoiceConversationFromWav(wavData, inputSource, out error) - 回调事件:
ConversationCompleted
其中 ConversationCompleted 会返回结构化结果(情绪标签、语音文本、字幕文本、是否调用 TTS、错误码等)。
说明:
- 推荐调用方使用“软依赖”方式(通过 BepInEx Chainloader + 反射获取实例)进行调用。
- 未安装 AIChat 时应直接降级,不抛异常。
- 本仓库中的 ChillPatcher 已提供参考桥接实现:
Chill/Integration/AIChatBridge.cs。
本 Mod 的核心 AIChat.dll 可从仓库构建。
以下构建流程适合 Windows 与 Linux。
- 克隆仓库到本地。
- 安装依赖:
- python(
python --version验证) - .NET SDK(
dotnet --version验证)- Debian 13 可安装
dotnet-sdk-8.0
- Debian 13 可安装
- python(
- 准备构建所需文件:
python build-resource/fetch.py
- 正式构建:
dotnet build
- 默认构建 Debug 版本。
- 若要构建 Console 版本(生成 exe 文件,用于调试),运行
dotnet build -c Console。 - 若要构建 Release 版本,运行
dotnet build -c Release。
- 构建产物位于
AIChat/bin/<构建种类>/<.NET 版本>/AIChat.dll提示:运行此命令可查看所有被
.gitignore忽略的文件(在构建时所生成的文件一般都需要被忽略):git ls-files --others --ignored --exclude-standard
- Fork 本仓库;
- 在你的仓库中启用 GitHub Actions;
- 手动触发
Build and Package AIChat Mod这个 workflow 即可在线构建,并自动发布到 Releases 中(tag 固定为preview)。
此 workflow 还可通过推送涉及特定路径的提交来触发,参见 build.yml。
前提说明:
- Mod 日志为游戏目录下的
BepInEx中的LogOutput.log。其中有 TTS 错误和响应文本,尤其注意请求发送的 JSON 数据(插件在请求体中会传入text、text_lang、ref_audio_path、prompt_text、prompt_lang)。 - 重置配置的方法:将配置文件
com.username.chillaimod.cfg删除,重启游戏,此配置文件将以默认值重新生成。
问题列举:
- TTS 报错 / TTS 返回空音频 / 没有声音
- 确认是否能通过
测试 TTS 服务这一步。- 若不能,说明 TTS 服务未正确配置(与本 Mod 无关),可进一步确认是否已下载并正确配置本地 VITS 模型(EPIT、model 名称等)。
- 若能,可能是 Mod 中的配置出错。
- 请检查 BepInEx 配置项中
TTS_Service_URL是否正确(默认值http://127.0.0.1:9880,测试方法请参考测试 TTS 服务的说明)。
- 请检查 BepInEx 配置项中
- 检查 GPT-SoVITS 日志(控制台界面)。
- 检查 Mod 日志。
- 确认是否能通过
- Mod 没有生效 / 找不到 plugins 文件夹
- 运行一次游戏,以生成必要的目录结构;之后再将
AIChat.dll放入BepInEx/plugins下。
- 运行一次游戏,以生成必要的目录结构;之后再将
- AI 返回中文,但被 TTS 读出发音异常
- 检查 Mod 日志。
- 若 AI 返回的内容不符合格式要求,请确保使用合适的系统提示词,或尝试更换 AI 模型。
- 注:插件默认会检测语音文本是否含日文假名,若无假名则不会调用 TTS,而仅显示字幕文本。
- Linux 下不支持中文输入法
- 见 #48 comment。此外,还可利用 linux-ime-helper 来输入中文;另外语音输入也可以识别中文。
- Linux 下部分元素尺寸过小
- 参见 #48。
本项目使用了以下开源项目:
- BepInEx:Unity/XNA 游戏 Mod 框架。
- 许可:LGPL-2.1
- GPT-SoVITS:用于语音合成。
- 许可:MIT
- otsaloma/markdown-css:用于生成
README.html。- 许可:MIT
本项目在构建时还用到以下项目:
- Unity Engine:游戏引擎库(仅用于构建环境)。
- 仓库内含开源的
UnityEngine.UI.dll(许可:Unity Companion License),除此以外的其他文件由于闭源而未包含。
- 仓库内含开源的
本项目是 MIT 许可的自由开源软件。详见 LICENSE。
本项目与游戏官方无关;此游戏也有其他 Mod,可参见:awesome-chillwithyou。
基于 Qwen3.5-4B 微调,支持 19 种情感标签 + 78 个动画随机映射。
- 百度云: https://pan.baidu.com/s/1-NxgcHmkTVz8PnwxpxogxA?pwd=2gss
- GitHub Release: https://github.com/JinCao-0721/AIChat/releases/tag/v1.0.0-satone
| 标签 | 含义 | 动画 ID(随机选一个) |
|---|---|---|
| Happy | 开心 | 1001 (Joy), 1101 (Joy变体), 1004 (Guts), 7 (自信), 6 (跳跃) |
| Sad | 难过 | 1002 (Sad), 1102 (Sad变体), 1201 (Sad变体3), 4 (垂肩), 1401 (低头) |
| Fun | 搞笑 | 1003 (Fun), 1103 (Fun变体), 1202 (Fun变体3), 601 (大笑) |
| Think | 思考 | 252 (思考), 8 (思考), 9 (思考2), 10 (思考3), 202 (工作思考), 302 (大思考), 301 (小思考) |
| Agree | 同意 | 1301 (同意), 12 (点头), 1402 (点头变体) |
| Confused | 困惑 | 1302 (困惑), 1 (沮丧右), 2 (沮丧左), 13 (摇头) |
| Shy | 害羞 | 5 (害羞), 3 (双手紧握), 20 (调皮) |
| Angry | 生气/拒绝 | 1403 (否定), 21 (苦恼), 1302 (困惑), 13 (摇头) |
| Surprise | 惊讶 | 6 (跳跃), 803 (突然跳起), 1003 (Fun) |
| Tired | 疲倦 | 64 (疲倦), 67 (疲倦2), 72 (哈欠1), 73 (哈欠2), 70 (揉眼) |
| Excited | 兴奋 | 55 (万岁), 53 (握拳), 71 (加油3), 61 (竖拇指), 7 (自信), 65 (完成任务), 1406 (高潮) |
| Relaxed | 放松 | 256 (喝茶), 751 (喝茶), 752 (伸懒腰), 753 (喝热饮), 755 (吹凉茶), 50 (全身伸展), 51 (肩膀伸展), 52 (喝茶) |
| Curious | 好奇 | 653 (读到感兴趣), 851 (前倾感兴趣), 14 (看企鹅) |
| Greeting | 打招呼 | 5001 (短挥手), 15 (介绍), 5002 (前倾) |
| Working | 工作中 | 852 (打键盘), 853 (玩笔), 251 (打字), 255 (循环翻页), 253 (翻页) |
| Sleepy | 困了 | 801 (睡着), 802 (慢慢起床), 72 (哈欠1), 73 (哈欠2) |
| Understand | 理解 | 1301 (同意), 12 (点头), 1402 (点头变体) |
| Nervous | 紧张 | 62 (坐立不安), 21 (苦恼), 602 (紧张悬疑), 63 (手臂动作), 3 (双手紧握) |
| Idle | 默认 | 250 (书桌默认), 0 (待机默认) |
点击展开完整列表
| ID | 名称 | 含义 |
|---|---|---|
| 0 | Base001 | 默认待机 |
| 1 | Base001_Motion1_FrustrationRight | 沮丧(向右) |
| 2 | Base001_Motion2_FrustrationLeft | 沮丧(向左) |
| 3 | Base001_Motion3_PressHands | 双手按压 |
| 4 | Base001_Motion4_Dropshoulders | 垂肩(失落) |
| 5 | Base001_Motion5_Shy | 害羞 |
| 6 | Base001_Motion6_Jump | 跳跃 |
| 7 | Base001_Motion7_Confidence | 自信 |
| 8 | Base001_Motion8_Thinking | 思考 |
| 9 | Base001_Motion9_Start_Thinking2 | 思考变体2 |
| 10 | Base001_Motion10_Start_Thinking3 | 思考变体3 |
| 11 | Base001_Motion11_Start_Lookdown | 低头看 |
| 12 | Base001_Motion12_Start_Nod | 点头 |
| 13 | Base001_Motion13_Start_ShakeHead | 摇头 |
| 14 | Base001_Motion14_Start_LookPenguin | 看企鹅(好奇) |
| 15 | Base001_Motion15_Start_Introduce | 介绍/引导 |
| 16 | Base001_Motion16 | 未知动作16 |
| 17 | Base001_Motion17 | 未知动作17 |
| 18 | Base001_Motion18 | 未知动作18 |
| 19 | Base001_Motion19_Copycat | 模仿 |
| 20 | Base001_Motion20_Eieio | 调皮 |
| 21 | Base001_Motion21_Distress | 苦恼/不安 |
| ID | 名称 | 含义 |
|---|---|---|
| 50 | Wild001_StretchFullBody | 全身伸展 |
| 51 | Wild001_StretchShoulder | 肩膀伸展 |
| 52 | Wild001_Tea | 喝茶 |
| 53 | Wild001_Guts | 握拳/加油 |
| 54 | Wild001_Wet | 淋湿 |
| 55 | Wild001_Banzai | 万岁/举手欢呼 |
| 56 | Wild001_Eieio | 调皮 |
| 57 | Wild001_OpenWindow | 开窗 |
| 58 | Wild001_CloseWindow | 关窗 |
| 59 | Wild001_Breath | 深呼吸 |
| 60 | Wild001_Guts_2 | 加油变体2 |
| 61 | Wild001_Good | 竖拇指 |
| 62 | Wild001_Fidget | 坐立不安 |
| 63 | Wild001_Arm | 手臂动作 |
| 64 | Wild001_Tired | 疲倦 |
| 65 | Wild001_CompleteTask | 完成任务 |
| 66 | Wild001_DeepBreath | 深呼吸 |
| 67 | Wild001_Tired_2 | 疲倦变体2 |
| 68 | Wild001_Gymnastics | 体操 |
| 69 | Wild001_Stretch_2 | 伸展变体2 |
| 70 | Wild001_DryEye | 揉眼睛/干眼 |
| 71 | Wild001_Guts_3 | 加油变体3 |
| 72 | Wild001_Yawn_1 | 打哈欠1 |
| 73 | Wild001_Yawn_2 | 打哈欠2 |
| ID | 名称 | 含义 |
|---|---|---|
| 100 | Wild002_FromPcToBook | 从电脑切到书 |
| 101 | Wild002_FromReportToBook | 从报告切到书 |
| 102 | Wild002_FromBookToPc | 从书切到电脑 |
| 103 | Wild002_FromReportToPc | 从报告切到电脑 |
| 104 | Wild002_FromBookToReport | 从书切到报告 |
| 105 | Wild002_FromPcToReport | 从电脑切到报告 |
| ID | 名称 | 含义 |
|---|---|---|
| 150 | Wild003_LeaveChair_Normal | 正常离开椅子 |
| 151 | Wild003_LeaveChair_Sofa | 去沙发 |
| 152 | Wild003_LeaveChair_Sofa_Thinking | 沙发上思考 |
| 153 | Wild003_LeaveChair_Sofa_Look_Outside | 沙发上看窗外 |
| 154 | Wild003_LeaveChair_Sofa_Control_Headphone | 沙发上戴耳机 |
| ID | 名称 | 含义 |
|---|---|---|
| 200 | WorkBase001 | 电脑工作默认 |
| 201 | WorkBase001_Stop | 停止工作 |
| 202 | WorkBase001_Thinking | 工作中思考 |
| 203 | WorkBase001_DrinkTea | 工作中喝茶 |
| 204 | WorkBase001_Break | 工作休息 |
| 205 | WorkBase001_Break2 | 工作休息2 |
| ID | 名称 | 含义 |
|---|---|---|
| 250 | WorkBase002 | 书桌工作默认 |
| 251 | WorkBase002_KeyType | 打字 |
| 252 | WorkBase002_Thinking | 思考 |
| 253 | WorkBase002_PageFlip | 翻页 |
| 254 | WorkBase002_Loop2 | 循环动作2 |
| 255 | WorkBase002_Loop2_PageFlip | 循环翻页 |
| 256 | WorkBase002_DrinkTea | 喝茶 |
| ID | 名称 | 含义 |
|---|---|---|
| 300 | WorkBase003 | 报告工作默认 |
| 301 | WorkBase003_SmallThinking | 小思考 |
| 302 | WorkBase003_BigThinking | 大思考 |
| 303 | WorkBase003_Loop2 | 循环动作2 |
| 304 | WorkBase003_DrinkTea | 喝茶 |
| 305 | WorkBase003_BrushAwayTrash | 扫桌子 |
| ID | 名称 | 含义 |
|---|---|---|
| 400 | GameStart_Start | 游戏启动开始 |
| 401 | GameStart_End | 游戏启动结束 |
| 402 | Desk_Click_Normal_Reaction | 点击普通反应 |
| 403 | Desk_Click_Work_Reaction | 点击工作反应 |
| 404 | Desk_Click_Rest_Reaction | 点击休息反应 |
| 405 | Enable_Talk | 启用说话口型 |
| ID | 名称 | 含义 |
|---|---|---|
| 600 | BreakBase001 | 看电影默认 |
| 601 | BreakBase001_Laugh | 大笑 |
| 602 | BreakBase001_Suspenseful | 紧张悬疑 |
| 603 | BreakBase001_OutTrash | 扔垃圾 |
| 604 | BreakBase001_Loop2 | 循环动作2 |
| ID | 名称 | 含义 |
|---|---|---|
| 650 | BreakBase002 | 读书默认 |
| 651 | BreakBase002_NextPage | 翻到下一页 |
| 652 | BreakBase002_PreviousPage | 翻到上一页 |
| 653 | BreakBase002_Interest | 读到感兴趣的 |
| ID | 名称 | 含义 |
|---|---|---|
| 700 | BreakBase003_ListenMusicLow | 听低音乐 |
| 701 | BreakBase003_ListenMusicHigh | 听高音乐 |
| ID | 名称 | 含义 |
|---|---|---|
| 750 | BreakBase004 | 喝茶默认 |
| 751 | BreakBase004_DrinkTea | 喝茶 |
| 752 | BreakBase004_Stretch | 伸懒腰 |
| 753 | BreakBase004_DrinkHot | 喝热饮 |
| 754 | BreakBase004_UseCoffeeMaker | 用咖啡机 |
| 755 | BreakBase004_CoolingDrinkTea | 吹凉茶 |
| ID | 名称 | 含义 |
|---|---|---|
| 800 | BreakBase005 | 睡觉默认 |
| 801 | BreakBase005_Sleep | 睡着 |
| 802 | BreakBase005_GetUpSlowly | 慢慢起床 |
| 803 | BreakBase005_JumpUp | 突然跳起 |
| 804 | BreakBase005_JumpUp_End | 跳起结束 |
| ID | 名称 | 含义 |
|---|---|---|
| 850 | BreakBase006 | 前倾默认 |
| 851 | BreakBase006_Interest | 前倾感兴趣 |
| 852 | BreakBase006_Keyboard | 打键盘 |
| 853 | BreakBase006_PlayPenLoop | 玩笔 |
| 854 | BreakBase006_DropPen | 扔笔 |
| ID | 名称 | 含义 |
|---|---|---|
| 1000 | Story_SubBase001 | 故事模式1默认 |
| 1001 | Story_SubBase001_Joy | 开心 |
| 1002 | Story_SubBase001_Sad | 难过 |
| 1003 | Story_SubBase001_Fun | 有趣 |
| 1004 | Story_SubBase001_Guts | 激动/加油 |
| ID | 名称 | 含义 |
|---|---|---|
| 1100 | Story_SubBase002 | 故事模式2默认 |
| 1101 | Story_SubBase002_Joy | 开心变体 |
| 1102 | Story_SubBase002_Sad | 难过变体 |
| 1103 | Story_SubBase002_Fun | 有趣变体 |
| ID | 名称 | 含义 |
|---|---|---|
| 1200 | Story_SubBase003 | 故事模式3默认 |
| 1201 | Story_SubBase003_Sad | 难过变体3 |
| 1202 | Story_SubBase003_Fun | 有趣变体3 |
| ID | 名称 | 含义 |
|---|---|---|
| 1300 | Story_SubBase004 | 故事模式4默认 |
| 1301 | Story_SubBase004_Agree | 同意 |
| 1302 | Story_SubBase004_Frustration | 困惑/沮丧 |
| ID | 名称 | 含义 |
|---|---|---|
| 1400 | Story_SubBase005 | 故事模式5默认 |
| 1401 | Story_SubBase005_LookDown | 低头 |
| 1402 | Story_SubBase005_Nod | 点头 |
| 1403 | Story_SubBase005_Denial | 否定/拒绝 |
| 1404 | Story_SubBase005_SpeakBlur | 模糊说话 |
| 1405 | Story_SubBase005_StartClimax | 高潮开始 |
| 1406 | Story_SubBase005_Climax_1 | 高潮1 |
| 1407 | Story_SubBase005_Climax_2 | 高潮2 |
| ID | 名称 | 含义 |
|---|---|---|
| 1500 | Story_SubBase006 | 故事模式6默认 |
| 1501 | Story_SubBase006_001 | 动作1 |
| 1502 | Story_SubBase006_002 | 动作2 |
| 1503 | Story_SubBase006_003 | 动作3 |
| ID | 名称 | 含义 |
|---|---|---|
| 1600 | Story_SubBase007 | 故事模式7默认 |
| 1601 | Story_SubBase007_001 | 动作1 |
| 1602 | Story_SubBase007_002 | 动作2 |
| 1603 | Story_SubBase007_003 | 动作3 |
| ID | 名称 | 含义 |
|---|---|---|
| 5000 | WantTalk_Base_001 | 想说话默认 |
| 5001 | WantTalk_WaveHandShortTime | 短挥手 |
| 5002 | WantTalk_LeaningForward | 前倾 |
| ID | 名称 | 含义 |
|---|---|---|
| 6500 | GameStart_Base_001 | 游戏开始场景 |
| 7000 | GameEnd_Base_001 | 游戏结束场景 |
| ID | 名称 | 含义 |
|---|---|---|
| 10000 | Event_Christmas_StartSitFromOutSide | 圣诞:从外面坐下 |
| 10001 | Event_Christmas_Talk_001 | 圣诞:对话 |
| 10100 | Event_NewYear_Countdown_001 | 新年倒计时1 |
| 10101 | Event_NewYear_Countdown_002 | 新年倒计时2 |
| 10102 | Event_NewYear_Countdown_003 | 新年倒计时3 |
| 10103 | Event_NewYear_Countdown_004 | 新年倒计时4 |