Better Homing Projectiles - now with Missile Movement Component!

Improves the Projectile Movement Component's homing performance and targeting and adds behaviors useful for building missiles, rockets and bombs.

  • 지원 플랫폼
  • 지원 엔진 버전
    5.2 - 5.4
  • 다운로드 유형
    엔진 플러그인
    이 제품은 코드 플러그인과 함께 미리 빌드한 바이너리와 언리얼 엔진에 통합되는 모든 소스 코드를 포함하고 있으며 원하시는 엔진 버전에 설치하여 프로젝트에 따라 활성화할 수 있습니다.
Playable Demo | Showcase video | Documentation | Discord server | Example Project

Better Homing Projectiles features two classes:

1.    BHP_ProjectileMovmentComponent:

  • Subclass of the Projectile Movement Component
  • 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 option to inherit the shooter’s velocity
  • OnMissedHomingTarget delegate enables you to trigger logic when the projectile misses its target
  • Includes static functions to predict the impact location of a projectile and target

2.    BHP_MissileMovementComponent

  • Subclass of the BHP_ProjectileMovementComponent with 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 and 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 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 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!


Change log:

v2.1 (6/15/2024)

BHP_ProjectileMovementComponent

  • 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)

BHP_ProjectileMovementComponent

  • 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

Added BHP_MissileMovementComponent

기술적 세부사항

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)