MCM 快捷方式 NG

创作者: MaskPlague
已更新:2026-03-10 03:56:34
6.7MB

前置 MOD

使用 MCM 快捷方式 NG 时将自动安装

关于此 MOD

通过快捷键即时打开MCM或任何指定模组/页面。基于C++的快速、无崩溃插件。支持复杂键位组合、手柄操作及菜单专属开关。无ESP。修复快速滚动Bug。
MCM快捷方式NG


MCM 快捷方式 NG 是一个SKSE插件,允许你通过单次按键、组合键或控制器按钮来打开模组配置菜单(MCM)、特定的MCM模组,甚至是特定的MCM模组页面。

别再为了调整一个设置而滚动冗长的模组列表了。把你最常用的MCM映射到快捷键上,一键即可访问。




功能特性
  • 原生C++性能: 与依赖Papyrus的现有替代方案不同,此模组采用C++(CommonLibSSE-NG)构建。它更加快速、轻量,并且 不会崩溃到桌面 (我希望,我测试了一堆。)
  • 直接访问:
    • 打开MCM主着陆页面。
    • 打开特定模组的设置。
    • 打开模组设置中的特定页面。
  • 灵活按键组合: 每个快捷键最多支持3个按键。配置中标注为“修饰键”,但任何按键均可使用。您可以设置需要同时按住“X”和“Y”再按下“Z”的快捷键。
  • 松开时激活: 快捷键仅在所有按键都按下时触发 已发布 并且如果在快捷键输入期间没有按下其他按键。这可确保精确控制并防止与其他输入产生冲突。
  • 输入类型分配: 在JSON中,快捷键被明确区分为键盘或控制器输入,以便您为每种设备创建独立的映射而不会产生冲突。
  • 顺序激活: 强制特定按键按下顺序的选项(修饰键1 -> 修饰键2 -> 热键)。
  • 延迟: 可配置跳转到特定页面之前的等待时间。这确保大型MCM有足够时间初始化脚本并加载数据,然后模组再尝试切换页面。
  • 菜单感知: 配置在特定菜单(物品栏、对话、魔法菜单、地图)中禁用的快捷键。
  • 热重载设置: 按住任意已启用的快捷键(时长可在INI中配置)即可重新加载模组设置,无需重启游戏。
  • Papyrus API: 包含供模组作者通过脚本打开特定MCM或页面的函数。
  • 修复快速滚动Bug: 自动修复快速滚动bug,该bug在papyrus脚本使用UI.Invoke()或SKSE插件使用RE::UIMessageQueue::GetSingleton()->AddMessage(menuName, RE::UI_MESSAGE_TYPE::kShow, nullptr)时可能发生,只要打开的菜单具有kUsesCursor或kUpdateUsesCursor标志。




配置

配置通过位于以下位置的两个文件进行处理: Data/SKSE/Plugins/。(可在“默认INI和JSON”可选下载中获取)

MCMShortcutNG.ini(常规设置)
控制模组的全局行为。

  • 设置重载阈值(毫秒): 你必须多久 握住 触发设置重载的快捷键组合。
  • 也可以关闭已打开的MCM: 如果 真,在特定菜单打开时按下快捷键将关闭该菜单。
  • 返回之前关闭的菜单: 如果 是的,关闭MCM将使你返回到之前的菜单(例如,物品栏)。
  • 日志级别: 设置为 3 查看条目时可显示所有模组名称,或 4 识别键位代码。
  • 打印当前菜单和页面名称的热键: 将其设置为DirectX扫描码(例如49代表‘N’)。在MCM中按下时,会触发游戏内通知,显示模组名称和页面名称。设置为0以禁用。


2. MCMShortcutNG.json(快捷方式)
这是您定义热键的地方。另外,请参见下面的JSON示例。

关键参数:
  • 修饰符与快捷键:
    • 使用键盘时,请按 DirectX 扫描码 整数。 这里是一份扫描码列表(UESP).
    • 你可以将任何不想使用的修饰符设为0来禁用它们。
    • 手柄或非标准按键:设置 日志级别 = 4 在INI中,启动游戏,按下所需的按键/按钮,然后查看日志以获取其代码。
    • 注意: “修饰键”不必非得是Shift/Ctrl/Alt。你可以选择任意按键作为修饰键。
  • 控制器: 设置为 false 针对键盘/鼠标, 真 使用游戏手柄操控。
  • 按键顺序至关重要: 如果 真实,你必须严格按照“修饰键1 -> 修饰键2 -> 热键”的顺序依次按下,否则只需同时按住它们,顺序不限。
  • 模组名称/页面名称: 特定目标。将Mod名称设为“无”以打开MCM主列表/起始页。
  • 返回关闭: 使快捷键在打开自身模组/页面后,能够关闭之前打开的任意模组/页面,并在下次激活时重新打开被关闭的模组/页面。通过ESC/Tab键关闭日志菜单将重置快捷键,使其重新打开自身的模组/页面。
  • 模组/页面打开延迟: 以毫秒为单位的时间 等待 在打开菜单或页面之前。
    • 为什么? 有些模组的MCM菜单非常庞大,包含大量Papyrus脚本。如果模组在MCM加载完成前就尝试打开页面,可能会失败。如果某个特定页面快捷键无法使用,请增大此值;当日志级别为3或以上时,日志可能会就此给出警告。




重要: 快捷键触发期间无法按下其他按键,且快捷键仅触发一次。 所有按键已释放。



如何查找Mod和页面名称
你需要模组的内部名称和页面,JSON才能正常工作。

方法一:游戏内通知(最简单)
1. 设置 打印当前菜单和页面名称的热键 在INI中(例如,49代表'N')。
2. 打开所需的MCM页面并按快捷键。
3. 将出现一个通知框。
  • 模组名称: 这是准确的。 仅当您安装了Menu Maid 2时 (自0.0.10版本起,此功能可能始终使用非翻译键)。
    • 如果你 不要 拥有Menu Maid 2时,通知可能仍会显示翻译后的名称(例如“Immersive HUD”),而JSON实际要求的是内部翻译键(例如, $fzIH_ModName)不过,并非每个模组都使用翻译键来显示模组名称,因此你可能并不需要。再次强调,只有在未安装 Menu Maid 2 时,你才需要为模组名称添加翻译键;否则,你可以使用翻译键或已翻译名称。在这种情况下,若未安装 Menu Maid 2,请使用下面的方法2。

  • 页面名称: 这始终是准确的。你可以直接将其复制到你的JSON中。


方法2:日志(始终准确)
如果你不使用Menu Maid 2,则必须通过日志找到正确的Mod名称字符串。
设置 日志级别 = 3 在INI文件中。
2. 设置一个快捷方式,使用无效的模组名称,例如“idk”(这样它将搜索所有模组名称)。
3. 运行快捷方式。
4. 检查 我的游戏/上古卷轴5:天际特别版/SKSE/MCMShortcutNG.log.
5. 查找以 modName:.


[01:21:23.627] [32940] [D] > 模组名称:$fzIH_ModName,索引:7
…
[01:21:24.132] [54904] [D] > 页面名称:$fzIH_PageGeneral,索引:0


在这种情况下,你需要放置 "$fzIH_ModName" 作为模组名称及 "$fzIH_PageGeneral" 作为JSON中的页面名称,用于打开沉浸式HUD的“通用”页面。



示例 JSON
注意:注释(文本位于 //) 在以下示例中仅用于解释说明。 不要在你的实际JSON文件中包含注释 否则将无法加载。

剧透:  
显示


[
{
"_KeyCodeComment": "键位代码列表可在此处查看:https://ck.uesp.net/wiki/Input_Script"
"_KeyCodeComment2": "其他按键代码可通过将日志级别设为4、敲击按键并查看日志来找到。"
},
{
"Modifier 1": 42,  // 左Shift
"Modifier 2": 0,    // 未使用
"Hotkey": 219,      // 左Windows键
"按键顺序重要":false,
"Controller": false,
"Mod Name": "无", // 打开主MCM
"模组开启延迟": 50,
"页面名称": "无",
"页面打开延迟": 500,
"在物品栏中禁用": false,
"对话中禁用": false,
"禁用魔法": false,
"Disable In Map": false,
"从收藏中禁用": false,
"可以重载设置": true,
"返回已关闭": true // 关闭当前活动的模组/页面,并在下次激活时重新打开。
},
{
"Modifier 1": 29,  // 左Ctrl
"Modifier 2": 0,
"Hotkey": 219,      // 左Windows键
"按键顺序很重要":false,
"Controller": false,
"Mod Name": "快速拾取 IE" // 打开特定模组
"模组打开延迟": 50,
"Page Name": "无",
"页面打开延迟": 500,
"在物品栏中禁用": false,
"对话中禁用": false,
"禁用魔法": false,
"Disable In Map": false,
"在收藏中禁用":false,
"可以重新加载设置":true,
"返回已关闭":false
},
{
"修改器 1": 0,    // 无修饰
"修饰符2": 0,
"快捷键": 47,      // V 键
"按键顺序重要":false,
"控制器": false,
"Mod Name": "$fzIH_ModName" // 沉浸式HUD(翻译文本,如使用MM2也可用“Immersive HUD”)
"模组打开延迟": 50,
"页面名称": "$fzIH_PageGeneral" // 通用页面
"页面打开延迟": 500,
"Disable In Inventory": false,
"对话中禁用": false,
"禁用魔法状态": false,
"在地图中禁用": false,
"禁用收藏": false,
"Can Reload Settings": true,
"返回已关闭":false
}
]




Papyrus API

检查此模组是否已安装
使用此功能,您可以在尝试调用后续其他papyrus函数之前,检查此模组是否已安装。此函数返回 true 如果此模组已安装且 false 如果不是的话。
MCMShortcutNG.IsInstalled()


2. 通过脚本打开MCM
你可以通过在Papyrus脚本中调用以下函数来打开任意MCM模组或页面。模组和页面名称遵循与JSON快捷方式相同的规则(我会为模组名称使用翻译字符串,以便同时兼容Menu Maid 2的用户和非用户)。此函数返回 真 如果它试图打开MCM或 假 如果 MCM 快捷键 NG 当前正忙于尝试打开另一个 MCM。
MCMShortcutNG.OpenMCM("modName", modDelay, "pageName", pageDelay)


示例(打开沉浸式HUD的常规页面):
MCMShortcutNG.OpenMCM("$fzIH_ModName", 50, "$fzIH_PageGeneral", 500)


3. 修复滚动速度Bug
如果您正在使用菜单打开 UI.InvokeString("HUD 菜单", "_global.skse.OpenMenu", "X 菜单名称"), 你可能会遇到“WASD/手柄滚动速度 bug”。
你可以通过调用以下函数来修复这个问题(:

MCMShortcutNG.FixKeys()


注意:此模组应能自动修复任何带有正确标志(kUsesCursor或kUpdateUsesCursor)的菜单所存在的Bug,因此通常情况下无需进行此操作。


源
MaskPlague/MCM-Shortcut-NG

上古卷轴5:天际 特别版 的热门 MOD

探索适用于 上古卷轴5:天际 特别版 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

2025-12-16 11:53:50

前置必备Mod

修改与Mod必备前置工具

ModOrganizerTeam2024-08-04 16:31:44

Mod Organizer(MO)是一个用于管理任意大小的Mod集合的工具。它是专门为那些喜欢尝试mods的人设计的,因此需要一种简单可靠的方法来安装和卸载它们。

天空用户界面

schlangster2017-10-04 05:03:26

界面优雅,对电脑友好,并具有许多高级功能。

非官方《上古卷轴5:天际》特别版补丁 - USSEP

Arthmoor2025-09-01 07:56:09

一款针对《上古卷轴V:天际特别版》的综合性错误修复模组。非官方天际特别版补丁(简称USSEP)的目标是最终修复《天际特别版》中所有尚未被官方修复的错误。

静态网格改进模组 - SMIM

Brumbek2018-07-05 02:28:26

这是一个旨在大幅提升《上古卷轴5:天际》中无数静态3D模型外观的大型项目。简而言之,我希望通过这个项目让天际的建筑、杂物、家具和景观更加美观。

SKSE插件的地址库

meh3212024-02-14 09:19:54

包含头文件和数据库,以便轻松实现 SKSE DLL 插件的版本独立性。

比赛菜单

expired69782024-01-27 03:38:17

角色创建菜单全面改版,新增多种自定义功能,例如多种RGBA战纹、身体彩绘、手部彩绘和脚部彩绘。(需要SKSE)

Fores Skyrim SE-FNIS SE中的新闲置

NexusModsCaretaker2020-02-19 01:47:03

Skyrim没有可能的自定义动画?错误的。FNIS行为允许添加不同类型的动画到游戏:闲置/姿势,顺序,家具,配对,杀戮,生物,等等。

使用 Xmod 解锁 上古卷轴5:天际 特别版 的全部潜力 — 今天就探索这些顶级 MOD!