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版本,游戏中存在一个非常糟糕的实现,而这个mod被用作权宜之计,至少让它"能用"。在1.0版本中,这个实现大部分被移除,火器AI不复存在。

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

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

[u][b]安装[/b][/u]

可以像使用模组管理器安装任何其他模组一样进行安装。

[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