W3.04.3Device-specific profiles设计

手柄与键鼠的重映射方案需要分别独立保存

别名: 设备配置 · 输入配置文件 · controller profile · keyboard profile

概念解释

设备专属配置文件(device-specific profiles)为手柄、键盘鼠标以及其他各类输入设备各自独立保存映射方案、灵敏度数值、死区设置和辅助选项,不让这些设置在设备之间共用同一份数据。这一条要解决的是完整重映射和冲突检测都没有覆盖到的问题:即便每种设备各自的映射都已经做到完整、也没有和系统快捷键冲突,如果这些设置被压缩进同一份共享配置,一种设备的最优设置本身就会覆盖另一种设备的最优设置——设备专属配置文件让玩家可以在同一个账号下切换设备,而不必每次切换都重新走一遍完整的设置流程。

机制

不同设备之间存在真实的物理差异:可用按键的数量不同、操作时的手部姿势不同、指向的精度不同,能够调节的参数种类也不同(比如死区和灵敏度对键鼠而言几乎没有意义,对手柄摇杆而言却是核心参数)。如果把这些本质不同的设置硬塞进同一份共享配置里,必然会制造出在当前设备上根本无效的绑定、误导玩家的错误提示,或者悄悄丢失玩家专门为另一种设备调好的偏好设置——玩家因此会把"换一种设备玩"体验成"要重新学一遍操作",这恰好抵消了提供多设备支持原本想要达成的效果。独立的设备配置能够分别保留每一种设备各自积累起来的肌肉记忆,同时仍然允许玩家的游戏进度、动作背后的语义和其他非设备相关的设置在两种设备之间共享——需要区分清楚哪些内容属于"设备的物理特性"、应该独立保存,哪些内容属于"玩家的游戏进展"、理应共享。

边界

多设备之间真正应该共享的是动作本身的名称和语义、无障碍方面的设计意图,以及云同步这类跨设备的基础机制,而不是每一个具体的物理参数值——把这条界线划错,要么会导致玩家为一种设备调好的死区被另一种设备覆盖,要么会导致本该共享的游戏进度反而被错误地按设备分裂开。当玩家在同一局游戏内直接从一种设备切换到另一种设备时(比如从手柄切换到键鼠),当前正在使用的设备对应的操作提示必须立刻同步更新为新设备的按键提示;不能以"两种设备的配置各自独立保存"为理由,放任界面上残留着已经不再适用的旧设备提示。

怎么落地

  • 把映射方案、灵敏度、死区和设备专属的辅助选项按照设备类型分别存储,并且始终在界面上清楚标识出当前正在生效的是哪一份配置。
  • 在玩家发生热切换(游戏进行中直接更换设备)的瞬间,立即同步更新操作提示、当前生效的配置内容和冲突检测的结果,同时把两种设备各自的历史配置都完整保留下来,不因为切换而丢失任何一方。
  • 验证办法:分别为手柄和键鼠配置好各自的一套设置,然后交替测试重启游戏、云端同步和局内热切换这三种场景,确认任何一种设备的设置改动都不会意外覆盖另一种设备已经保存好的配置。

延伸

  • 同组W3.04.1 重映射需要覆盖全部可操作按键而非仅部分常用键 · W3.04.2 部分组合键映射会与系统级快捷键冲突需要检测 · W3.04.4 重映射选项的入口若过于隐蔽会让默认布局劝退部分玩家
  • 相邻W3.09 多输入设备的并存 · W3.03 控制映射 · K 平台与设备形态
  • 站内检索device-specific profiles · controller profile · input switching · control settings

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/W3.04.3