Code Module: BetterHomingProjectiles (Runtime)

Number of Blueprints: 0

Number of C++ Classes: 2

Network Replicated: No. The plugin does not add any new networking functionality. You should replicate projectile movement in networked games the same way you would with the stock Projectile Movement Component.

Supported Development Platforms: Win64

Supported Target Build Platforms: Win64

Playable Demo

Showcase video

FPS Stress Test (compares frame rate between Better Homing Projectiles and stock homing projectiles when there are a large number of projectiles on screen)

Documentation

Discord server

Example Project (Includes demo level and stress test – does not include plugin)

代码模块:BetterHomingProjectiles(Runtime)

蓝图数目:0

C++类数:2

网络复制:没有。 该插件不添加任何新的网络功能。 在网络游戏中,您应该复制抛射物运动,就像使用stock抛射物运动组件一样。

支持的开发平台:Win64

支持的目标构建平台:Win64

可玩演示

展览短片

FPS压力测试 (当屏幕上有大量射弹时,比较更好的归巢射弹和库存归巢射弹之间的帧速率)

文件

不和谐服务器

示例项目 (包括演示级别和压力测试-不包括插件)










Playable Demo | Showcase video | Documentation | Discord server | Example Project

Better Homing Projectiles features two subclasses of the Projectile Movement Component:

1.    BHP_ProjectileMovmentComponent – significantly improves projectile homing performance and adds new targeting capabilities:

  • Drastically improves homing performance with a performant c++ implementation of the proportional navigation homing algorithm. Homing looks better and performs better than it does in the stock PMC.

  • Enables homing on any arbitrary point, which can be attached to an actor or a free point in space. Use this to hit specific points on a target or to set waypoints!

  • Adds an option to inherit the shooter’s velocity

  • Includes OnMissedHomingTarget delegate to trigger logic when the projectile misses its target

  • Includes static functions to predict the impact location of a projectile and target and the time until impact

  • Adds ability to set a target impact time. When set, the projectile will vary its speed as needed to collide at the specified time.

2.    BHP_MissileMovementComponent – Subclass of the BHP_ProjectileMovementComponent which adds additional behaviors to help you quickly build guided or unguided missiles, rockets, and bombs:

  • Configurable rocket motor behavior, including:

    • Automatic thrust whenever the rocket motor is active

    • Automatic or manual rocket motor ignition

    • Ignition delay (when using automatic ignition)

    • Infinite or limited rocket motor burn duration

  • Can smoothly rotate the projectile toward the velocity when the rocket motor is off to simulate passive stabilization or homing with control surfaces.

  • Can smoothly rotate the projectile toward the homing acceleration vector when the rocket motor is on to align the missile with the simulated thrust.

  • Allow homing after rocket motor burnout to simulate a missile which continues homing with control surfaces and no thrust or disable homing after motor burnout.

  • OnRocketMotorActive delegate allows you to respond to changes in the rocket motor state to easily trigger particle and sound effects.

This plugin strives to provide a highly effective and easy-to-use implementation of proportional navigation in a component you’re probably already using. If you are familiar with the projectile movement component, you will be able to get up and running in minutes. And, it is Blueprint friendly! All code is in c++, but all helper functions and important variables are exposed to blueprints. The code is well-commented and the documentation is thorough and meticulous. After purchasing the plugin, you can pick apart the demo project to see how the new components can be used. The projectile homing performance is easily tunable, so you can achieve the desired hit probability with your targets to suit your game design goals. Adding Better Homing Projectiles to your project is the simplest and most affordable way to enhance your game with high-performance homing projectiles!

The plugin does not include any logic to spawn projectiles. You will need to spawn them and assign your homing targets at runtime.

Can you use it in multiplayer games? Yes! The component itself is NOT replicated, but projectile movement can be replicated at the actor level the same way you would replicate projectiles with the stock projectile movement component. Please see the “Replication” section in the documentation for more info.

Change log:

2.2.0 (7/15/2024)

  • Added ability to specify a target impact time. If a target impact time is set, the projectile will change its speed to attempt to impact the target at the specified game time.

  • Added new impact estimation functions which return the impact location and now also the time until impact.

  • Fixed bugs which could cause unlimited speed projectiles (MaxSpeed <= 0) to stop or have limited speed.

v2.1.1 (7/3/2024)

  • Fixed bug which could prevent physics projectiles from inheriting velocity properly.

v2.1 (6/15/2024)

  • Improved homing algorithm to be even more efficient at getting back on a collision course when moving away from the target. This most often occurs if the target is behind you when you fire.

v2.0 (6/11/2024)

  • Added BHP_MissileMovementComponent

  • Added ability to inherit the shooter’s velocity

  • Added MissedHomingTargetDistanceThreshold to filter out unwanted broadcasts of OnMissedHomingTarget

  • Improved homing algorithm to better counteract gravity and external forces

可玩演示 | 展览短片 | 文件 | 不和谐服务器 | 示例项目

更好的归位射弹 具有弹丸运动组件的两个子类:

1.    BHP_ProjectileMovmentComponent – 显着提高弹丸寻的性能,增加新的瞄准能力:

  • 通过比例导航归位算法的高性能c++实现,显着提高了归位性能。 归巢看起来更好,表现比它在股票PMC更好。

  • 允许在任何任意点上归位,这些点可以附加到actor或空间中的自由点。 用它来击中目标上的特定点或设置航点!

  • 增加了一个继承射手速度的选项

  • 包含OnMissedHomingTarget委托,用于在弹丸未命中目标时触发逻辑

  • 包括静态函数,用于预测射弹和目标的撞击位置以及撞击前的时间

  • 增加设置目标影响时间的能力. 设置时,弹丸会根据需要改变其速度,以便在指定的时间发生碰撞。

2.    必和必拓,必和必拓 – BHP_ProjectileMovementComponent的子类,它添加了其他行为,可帮助您快速构建制导或非制导导弹、火箭和炸弹:

  • 可配置的火箭发动机行为,包括:

    • 每当火箭发动机处于活动状态时自动推力

    • 自动或手动火箭发动机点火

    • 点火延迟(使用自动点火时)

    • 无限或有限的火箭发动机燃烧持续时间

  • 可以在火箭发动机关闭时平稳地将射弹朝向速度旋转,以模拟被动稳定或与控制面归位。

  • 能在火箭马达开启时将弹丸平稳地朝向寻的加速度矢量旋转,以使导弹与模拟推力对准。

  • 允许火箭发动机烧毁后的寻的模拟导弹在控制面上继续寻的,没有推力或在发动机烧毁后禁用寻的。

  • OnRocketMotorActive委托允许您响应火箭发动机状态的变化,以轻松触发粒子和声音效果。

该插件致力于在您可能已经使用的组件中提供高效且易于使用的比例导航实现。 如果您熟悉弹丸运动组件,您将能够在几分钟内启动并运行。 而且,它是蓝图友好的! 所有代码都在c++中,但所有帮助程序函数和重要变量都公开给蓝图。 代码注释得很好,文档也很详尽. 购买插件后,您可以拆开演示项目以查看如何使用新组件。 弹丸归位性能很容易调整,因此您可以实现所需的命中概率与您的目标,以适应您的游戏设计目标。 增加 更好的归位射弹 对您的项目是最简单和最负担得起的方式,以提高您的游戏与高性能寻的射弹!

该插件不包含任何生成射弹的逻辑。 您将需要生成它们并在运行时分配您的寻的目标。

你可以在多人游戏中使用它吗? 是的! 组件本身不会被复制,但可以在actor级别复制抛射物移动,就像使用stock抛射物移动组件复制抛射物一样。 有关更多信息,请参阅文档中的”复制”部分。

更改日志:

2.2.0 (7/15/2024)

  • 增加了指定目标冲击时间的能力. 如果设置了目标撞击时间,射弹将改变其速度以尝试在指定的游戏时间撞击目标。

  • 增加了新的影响估计函数,返回影响位置和现在的时间,直到影响。

  • 修正了可能导致无限速度投射物(MaxSpeed<=0)停止或速度有限的错误。

v2.1.1(7/3/2024)

  • 修正了可能阻止物理射弹正确继承速度的错误.

v2.1(6/15/2024)

  • 改进的归位算法在远离目标时更有效地回到碰撞过程中。 当你开火时,如果目标在你身后,这种情况最常发生。

v2.0(6/11/2024)

  • 新增BHP_MissileMovementComponent

  • 增加了继承射手速度的能力

  • 添加了MissedHomingTargetDistanceThreshold以过滤掉OnMissedHomingTarget的不需要的广播

  • 改进的归位算法,以更好地抵消重力和外力

声明:本站所有资源都是由站长从网络上收集而来,如若本站内容侵犯了原著者的合法权益,可联系站长删除。