Skip to content
Media 1 for listing Better Homing Projectiles - now with Missile Movement Component!

Description

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

Included formats

  • logo of Unreal Engine format