增强瞄准

增强瞄准

用更优秀、更一致的算法替换W3的自动瞄准系统。 包含选项菜单,可根据您的游戏风格和操作方式进行自定义调整。

战斗

增强瞄准

(适用于《巫师3》1.12版本) 给我几天时间,等《血与酒》发布后更新!

描述:

《巫师3》的自动锁定系统表现不尽如人意,尤其是结合"软锁定"机制时——例如在闪避过程中,锁定目标会毫无缘由地突然切换,这可能导致你因动画锁定在完全错误的方向而遭遇惨烈(且令人抓狂!)的死亡。本模组用更稳定的锁定系统取代了原版机制,尤其优化了键鼠操作体验(菜单中也为手柄玩家提供了预设方案)。我们还提供了选项菜单来微调锁定机制的具体表现——根据你的操作习惯找到最适合的设置吧!

新算法(使用默认值)会按照以下优先级顺序选择目标:

  • 靠近玩家
  • 靠近摄像机角度
  • 接近玩家移动方向
  • 靠近玩家朝向

它还会倾向于“吸附”到目标上,
尤其是当玩家正在攻击它们时,
从而大幅减少目标抖动。

安装:

  1. 将整个 modEnhancedTargeting 文件夹复制到 [Path To The Witcher 3]\mods 文件夹中
  2. (可选但推荐)通过导航至 [Path To The Witcher 3]\mods\modEnhancedTargeting 文件夹,并将整个 bin 文件夹复制到您的 [Path To The Witcher 3] 文件夹中来安装菜单

请确保在安装了其他任何模组时运行脚本合并工具。

超长描述:

但香草目标机制究竟如何运作?

原版目标选择系统采用了一套基于三个加权标准的评分机制:距离、角度差(相对于情境相关向量)以及加权环形区域。这些标准的相对权重同样取决于具体情境。加权环形区域采用固定值判定——若目标处于玩家6米范围内则采用一个数值,超出该范围则采用另一个数值。最终"评分"本质上是各标准乘以对应权重后的总和。例如,玩家静止站立时的"评分"计算公式为:

(.75 * 与摄像机的角度距离) + (.25 * 与敌人的距离) + (0 * 加权环)

看起来没问题,对吧?选择最接近摄像机角度且离玩家最近的敌人,这很合理。但当玩家开始移动时会发生什么呢?

(.275 * 与移动方向的角距离) + (.375 * 与敌人的距离) + (.35 * 加权环)

嗯……现在它完全忽略了摄像机的方向,而是优先选择移动方向上最近的敌人。这有一定的道理,如果你朝某个方向移动,那么那个方向的敌人就会变得更重要,对吧?当你闪避时会发生什么呢?

(.575 * 与规避方向的角距离) + (.175 * 与敌人的距离) + (.25 * 加权环)

这里应该是你开始行动的地方,对吧?有多少种不同的重量?有多少种不同的方向? 有很多。你在游泳吗?你在引导一个标志吗?你在反击时开始移动了吗?你在瞄准吗?你在战斗中吗?你在使用特殊攻击吗?你当前有“移动目标”吗?

问题不在于它复杂且繁琐(脚本超过两千行),而在于大多数影响目标选择的因素变化极快,这就是为什么目标看起来会跳来跳去。

一旦你结束一个动画,评分目标的方法就会改变,这可能导致目标切换。
向后闪避,它会切换到身后的目标,但一旦闪避动画结束,它又会切换回前方的目标。
开始向左移动,它会切换到左侧的敌人,但一旦你发起攻击,它又会切换到另一个目标。

1

这不可能这么糟糕,因为它只是偶尔让我搞砸!

《巫师3》中的平均战斗场景是怎样的?三个目标?四个?如果我为每个目标随机选取1到5之间的数字,然后根据其与玩家的距离对该数字进行加权,那么系统通常会选择距离最近的目标,而这通常也是玩家最关注的目标。这并不是说目标选择是随机的,因为它并非如此,只是有些复杂。如果你已经习惯了目标选择机制,并且发现一般来说,攻击或移动方向上最近的目标通常会被选中,那么你就可以制作出这样的视频。

那么,你该如何在你的模组中解决这个问题?

我从零开始,并没有尝试修复原版系统——说实话那套系统本可以修复,也许CD PROJEKT RED会决定那么做。以下是我的设计准则和思考过程:

  • 简洁与可预测性: 有一个相对简单的排名公式,采用单一权重集,且从不突然变化。
  • 减少目标交换频率: 目标不会因微小的瞬时差异而改变,往往会在目标之间“快速切换”。
    这是通过引入滞后效应实现的;要切换目标,新目标的优先级必须比当前目标高出一定百分比。
    但这并不意味着系统反应迟钝,它并不迟钝!
    此外,如果玩家正在攻击,滞后效应会增强,以避免在攻击动画中目标突然改变。
  • 选择玩家最感兴趣的目标: 你如何判断玩家的兴趣? 好吧,如果你对一个目标感兴趣,你会怎么做?你会将镜头转向他们,朝他们发起攻击,并向他们移动。通常你最感兴趣的目标是哪些?离你最近的那些。排名公式通过使用目标与你的接近程度作为角度差异的乘数来反映这一点。镜头的权重远高于玩家移动。

如果你感兴趣的话,目前公式如下(数学预警!):

接近度 = (目标距离 - 到目标的距离) / (目标距离 / 2)
angleDiffRatio = (180 - degreesFromAngle) / 180
cameraRank = cameraAngleDiffRatio * cameraWeight
movementRank = headingAngleDiffRatio * movementWeight
facingRank = facingAngleDiffRatio * facingWeight
rank = (相机等级 + 移动等级 + 朝向等级) * 接近度

如果 ((滞后值 * 当前目标等级) > 新目标等级),则会选择新目标。当你处于攻击状态时,滞后值会增加50%。

卸载:

只需从你的 [巫师3路径]\mods 目录中删除 modEnhancedTargeting,并从 [巫师3路径]/bin/config/r4game/user_config_matrix/pc 文件夹中删除 modEnhancedTargetingConfig.xml

兼容性:

本模组修改了 r4player.wsplayerWitcher.ws 文件! 如果你有其他修改此文件的模组(此文件经常被修改),它们将不兼容。
你可以使用脚本合并工具解决大部分与此相关的兼容性问题。
因此,如果你安装了其他模组,请运行脚本合并工具!

我的其他《巫师3》模组: