1.2版本的火器AI

1.2版本的火器AI

这个模组为游戏添加了火器AI的实现。

游戏玩法

[b][center][size=3][url=https://www.nexusmods.com/bladeandsorcery/mods/8734]PCVR 版本[/url] | [url=https://www.nexusmods.com/bladeandsorcerynomad/mods/4755]Nomad 版本[/url][/size] [line] [center][b][size=5]枪械 AI[/size][/center][/b] 这个模组为游戏添加了火器 AI 的实现。

早在 U12 版本中,游戏中存在一个非常糟糕的实现,而这个模组被用作一种权宜之计,至少让它“能用”。在 1.0 版本中,这个实现大部分被移除,枪械 AI 不复存在。

进入这个模组:现在它不仅带来了改进版的 U12 枪械 AI,还包含了更多以前无法实现的功能。

  • 改进射程保持 / 移动 AI
  • 改进了反向运动学以获得更好的视觉效果
  • 近战(例如用手枪抽打)当距离过近时
  • 支持(伪)双手持枪械

[u][b]致模组制作者[/b][/u]

如果你想让 AI 使用一把枪械,你需要做两件事:

  1. 使用 SDK 为你的物品添加 [b]AIFireable [/b] 组件。aimTransform 应设置为子弹射出的变换位置,因此很可能是枪管末端,且其前向与子弹飞行方向一致。然后你需要连接 fireEvent 来触发武器开火。
  2. 在你的物品 json 中,确保在 [b]ItemModuleAI[/b] 中已将主要(或次要)类别设置为 Firearm,并且其中包含 RangedWeaponData。

更详细的解释:

[u]可开火 AI[/u]

  • aimTransform: 用于将枪械对准目标
  • aimEvent: 在远程攻击开始时调用
  • reloadEvent: 目前未使用
  • fireEvent: 当远程攻击完成时被调用

[u]物品模块 AI[/u]

  • primaryClass / secondaryClass: 其中一个必须是 Firearm 才能被识别为枪械,另一个可以设置为 Melee,如果你希望目标在近战范围内时他们尝试进行近战攻击
  • weaponHandling / secondaryHandling: 大多数情况下为单手,若希望另一只空闲的手与握把对齐,则设为双手。若想指定特定握把,可在物品组件上设置自定义引用,命名为“FirearmSecondaryHandle”,并引用握把变换。
  • rangedWeaponData: 更多配置见下方
  • defaultStanceInfo / stanceInfosByOffhand: 用于确定 NPC 持握武器时的姿态。我建议在大多数情况下使用盾牌姿态,或为双持武器使用双手姿态。

[u]ItemModuleAI.RangedWeaponData[/u]

  • tooCloseDistance: 用于确定 AI 围绕你盘旋时的首选距离范围
  • 散布:每次 AI 瞄准时,它会根据散布值选择一个随机偏移量,以模拟不精确的瞄准
  • projectileSpeed: 在启用 accountForGravity 时使用
  • accountForGravity: 瞄准时,AI 将使用 projectileSpeed 来判断是否需要瞄准更高以击中目标
  • weaponHoldPositionOffset: 枪械应被持有的位置偏移
  • weaponAimAngleOffset: 瞄准时的旋转偏移量,由于使用 aimTransform 来对齐枪械,您很可能不需要调整此项。
  • weaponHoldAngleOffset: 目前仅使用 y 值,并用作 NPC 的转向偏移
  • customRangedAttackAnimationData: 远程攻击发射时应播放的动画数据 ID