Spotlight Sale: Save 50% on select Blueprints now through September 9.

Advanced Sight

Robert Lewicki - Code Plugins - Jun 5, 2024

Advanced sight perception ideal for stealth based games and more

  • Supported Platforms
  • Supported Engine Versions
    5.2 - 5.4
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.
Important links:Description

Advanced sight is an efficient and multi-threaded implementation of sight perception system. It exist because what default AI perception shipped with vanilla Unreal offers is simply not enough for games that require more complex AI behaviors. Any game that features any form of stealth is going to benefit from using advanced sight thanks for very flexible way of setting up sight ranges, having full control over how fast an AI agent is going to perceive visible targets and how fast are they going to forget about them switch behavior to their regular routine.


Changelog v1.5

  • Fix bug with debug drawing showing a target as lost despite its actual state being perceived (debug drawing bug only)
  • Add verbose output log logging to make debugging easier
  • Add visual logger logging to make debugging easier


Changelog v1.4.2

  • Fix issue with `Set Perceivable` function not clearing the target from spotted, perceived and remembered targets for all advanced sight components registered to the system
  • Fix compilation warning about `Attitude` property not being initialized
  • Prevent some events from being broadcasted if certain conditions are not met i.e. do not broadcast `On Target Lost` if a target actor passed as parameter wasn't either spotted nor perceived



Changelog v1.4.1
  • Fix crash when destroying an actor that is a sight system target
  • Fix warnings on gym maps caused by team component not being created while system was attempting to register an actor as a target
  • Prevent the game from crashing when advanced sight component is used on a none controller based class; previously it was printing an error but wasn't terminating the function; it is now returning early allowing user to read the error from the output log





Changelog v1.4
  • Fix crash caused by dynamically spawning actor with Advanced Sight Target Component (thanks ToffelsKater for reporting)
  • Fix issue with system not always properly registering agents to the sight system when spawned dynamically
  • Fix sight indicator not working properly for blueprint only agents on the gym map
  • Fix issue with target actors not being able to be perceived again after they have been set as not perceivable due to their id not being cleaned up from registered targets when setting them as not perceivable (thanks Feanix for reporting)
  • Add few more examples to the Gym map
  • Add new property Gain Rate in Advanced Sight Target Component allowing to set custom gain rate for any target. This can be updated in runtime by calling Set Gain Rate function (thanks Feanix for reporting)
  • Add new custom scene components which must now be used as visibility points; custom visibility point components allow not to define Gain Rate per visibility point. This means that you can set Gain Rate for bigger body parts to value greater than 1 making this agent to be perceived faster when this point is visible, or less than 1 making this agent to be perceived slower when this point is visible. These can be updated in runtime. If multiple points are visible at the same time, the one with highest Gain Rate will be used for calculating the new gain value in the system (thanks Feanix for reporting)





Changelog v1.3
  • Add "SetPerceivable" blueprint callable function to the Advanced Sight Target Component allowing a target to become "invisible" or "perceivable" to the NPCs (#6)
  • Add data table row definition allowing to define custom team relationships (friendly, neutral, hostile). Previously, teams with different IDs were always considered hostile (#7)
  • Add "AddGainToTarget" blueprint callable function to the Advanced Sight Component allowing to manually add specified gain value for a selected target (#8)
  • Add "UpdateTeamsRelationship" blueprint callable function to the Advanced Sight System allowing to update relationship between teams in runtime
  • Add "ForcePerceiveTarget" blueprint callalbe function to the Advanced Sight Component allowing to user to forcefully perceive a selected target





Changelog v1.2
  • Add new component that allows to define agent's team id without using base C++ character class (#5)
  • Fix issue with plugin's content not appearing properly when using it with versions older than 5.4 (#4)
  • Fix warning appearing first time PIE is started caused by advanced sight system defining it supports Editor worlds instead only PIE and Game
Changelog v1.1
  • Move some advanced sight system properties from protected to public access modifier so they can be easily accessed outside of the system to write custom logic (#1)

Technical Details

Features:

  • all features vanilla Unreal's sight system offers by default
  • all functionality exposed to blueprints
  • ability to define multiple sight configs instead being limited to only one
  • rapid iteration thanks to system updating itself whenever a change in a sight config is detected
  • full control over how quickly targets are going to be perceived and how quickly they are going to be forgotten
  • multi-threaded and cache friendly implementation ensuring game's performance is not impacted
  • visibility points for sight targets easily configurable in blueprints using scene components
  • eye view point configurable using socket or bone name allowing for AI to change look direction by rotating their heads only (optional)
  • comprehensive debugging tools making it very easy to understand what is happening in your game
  • example content with a mini game included as a plugin's content
  • benchmark map for testing system's performance when making new changes
  • possibility to define custom relationships between multiple teams using data table

Number of Blueprints: 9

Number of C++ Classes: 10

Network Replicated: No

Supported Development Platforms: Windows, Mac, Linux

Supported Target Build Platforms: Windows, Mac, Linux, Android, iOS