Top Down Stealth Toolkit

Thanks, will definitely let you know if I plan to add OSX support.

I’ve actually never had any of my products tested on apple products. Looking forward to how it performs on the Mac.

Hi, I’m having another problem…

I changed the player walk speed to a much higher number, since I’m working in an outdoor environment that is much more open. For some reason, he now makes “noise” as though he is running. How can I fix this? I still don’t want him to make noise, I just want him to walk faster.

Also, is there a way I can make the radius of the “noise” made when running/whistling bigger?

The footstep noises are created through Anim notifies added to the ‘Run_Player’ animation sequence as shown in the screenshot below.

The two marked anim notifies correspond to the points at which the feet of the character touch the ground during once cycle of the animation sequence. So basically the footstep noises will be created only when the running animation is being played. The transition from idle to walking to running is handled through the blend space ‘BlendSpace_Player’. By default, the walking to running transition happens at a speed of 300. So if you set a walking speed greater than a value of 300, the character will start the running sequence thus triggering the animation sequence.

So if you want to create characters with higher movement speeds (for eg: walk-run transition at 500 & max running speed of 1000), just edit the values corresponding to the points marked in the screenshot below:

As for the noise pulse particle radius, I’ll get back to you in a while on how to edit it.

The noise pulse emitter’s radius is indirectly dependent on two user defined factors: one being the AI bot’s hearing sense radius, & the other factoring in the loudness of the noise itself. By default, the patrol bots have a hearing sense radius ‘r’ of 500 units. This basically means that a noise event with a loudness value of ‘l’ (default = 1.0) can be heard by the AI bot up to a maximum distance of ‘r*l’ units. For example, the footstep noise with a loudness value of 1.0 can be heard up to 500 units, while a different custom noise event with a loudness of 2.0 could be heard from a distance of 1000 units. This maximum distance corresponds to the maximum size of the pulse particle effect.

In order to demonstrate how to edit this value, I’m going to increase the AI hearing sense radius to 800 units & have the same loudness of 1.0 units for the noise event. So first we have to edit the hearing sense radius from the AI Perception component of the Patrol Bot parent class as shown below:

Since the footstep noise loudness is 1.0, I’m not going to edit it. So now we open up the ‘P_FootStepPulse’ particle system asset & make the following changes:

  1. Within the ‘Initial Size’ module, set the Start Size value to be (1.0, 1.0, 1.0) [the already existing value works as well, but this is easier to understand]

  1. Now within the ‘Size by Life’ module, set the Life Multiplier out value for point 1 to (1600.0, 1600.0, 1.0). This value is basically a multiplier for the initial size value. Point 0 corresponds to the starting value & hence we multiply it’s size with the default (1.0, 1.0, 1.0) & while point 1 (which corresponds to final moment of the particle lifespan) multiplies the x & y values by 1600 units thus forming a circular ring of radius 800 units.

With that, you should be able to control the radius of the noise pulse. Let me know if you have any trouble getting that to work.

Actually this could also be done through the blueprint directly using the loudness value. That way you won’t have to make any changes within the particle system. I’ll submit a mini update tomorrow to include that feature.

Oh wow, a lot happened since I asked for help! Thanks for helping me with my problems, I got the footstep noise working the way I wanted!

Happy to help. It’s also helped me identify a part of the toolkit that can be improved upon. :slight_smile:

What are some of the future planned features? Just wondering if everything you want to include has been included or not

Hi Rewinged, there are plans to keep adding major features to the toolkit atleast for the next few months.

At the moment, I’m working on a major AI overhaul update that is partly inspired by the stimulus perception models used in Mark of the Ninja, combined with the Behavior Tree based reaction system. The main goal of the update would be to make the AI systems a lot more modular & customizable. Once that’s done, on the AI front, updates would continue to add new stimulus types as well as some form of a global alertness level (like Invisible Inc) independent from the bot alert levels.

Another major priority is to increase the performance of the vision arc rendering system so that more AI bots can use it simultaneously. Beyond that, there would be some updates focused on adding new gadgets, abilities, & weapons for the player character.

There are a few more ideas that I would like to try out after that, but the above mentioned features are the ones that I can confirm at this stage of the product cycle.

The v2.0 update has been submitted to the Unreal Engine Marketplace & will add v4.16 compatibility for the toolkit.

Note: The update will be published exclusively for the v4.16 edition of the toolkit as it completely revamps the systems that drive the AI. This should enable existing customers to still have access to the previous AI systems through the v4.15 edition project files.

Change Log:

  1. Added a new stimulus generation system that will enable the users to easily customize & add new types of perceivable events for the AI agents.
  2. Added a custom AI Perception component that enables the AI agents to perceive stimuli through four different types of perception systems: Visual, Aural, Intuitive, & Motion perception.
  3. Added an AI Sensory Manager that is responsible for management of all types of stimuli as well as periodic assignment of active objectives to AI agents.
  4. The Patrol Guard AI decision making process has been redesigned from the previous Finite State Machine based workflow to a completely Behavior Tree centric design. The agents still retain their different alert level states to some degree, but only to determine the nature of their responses through adjustment of physical properties, like say improved movement speed when responding to high priority goals.
  5. Patrol Guards now use a multi tiered search system to investigate interests & will continue searching the surrounding area until the alert meter falls below a specified threshold value.

Gameplay demo for the upcoming v2.0 Top Down Stealth Toolkit (Windows) now available at: https://www.dropbox.com/s/feblzzx1tewpstj/Top%20Down%20Stealth%20Toolkit%20Sample%20Game%20Demo.7z?dl=0

All changes within the blueprints are marked with the boolean variable ‘Version2.0’ in order to easily identify the workflow changes introduced with this update. Comments are also written to describe the major changes. The new variables, functions, interfaces, & components added to existing blueprints are also marked within their event graphs.

Top Down Stealth Toolkit Tutorial: How to control the AI Perception model for AI agents

As mentioned in an earlier post (Link: AI Perception Basics), the toolkit now employs a custom AI Perception system to evaluate potential threats. It’s user defined properties can all be edited through the component details panel from the owning blueprint, thus facilitating creation of different threat perception models for different types of AI agents. This tutorial will go over the basic parameters that control the working of this system.

Visual Perception Data:

  1. IsVisualPerceptionEnabled?: Determines if the agent can use Visual Perception to perceive stimuli.
  2. Vision Range: Determines the direct line of sight range.
  3. HalfVisionAngle: Determines the half angle for the agent’s cone of vision.

Aural Perception Data:

  1. IsAuralPerceptionEnabled?: Determines if the agent can use Aural Perception to perceive stimuli.
  2. HearingRange: Controls the maximum distance at which a sound of default loudness 1.0 (controlled through the ‘PerceptionRangeModifier’ parameter of interest stimuli: Breakdown of Stimulus Parameters) can be perceived by the agent.

Intuitive Perception Data:

  1. IsIntuitivePerceptionEnabled?: Determines if the agent can use Intuitive Perception to perceive stimuli.

Motion Perception Data:

  1. IsMotionPerceptionEnabled?: Determines if the agent can use Motion Perception to perceive a stimuli.
  2. DetectionRange: Determines the maximum range at which stimuli can be sensed.
  3. DetectionCounter: A counter that decides if the agent should respond to the stimulus [Used because this is an indirect form of perception]
  4. CounterIncrementPerCycle: Controls the rate at which the Detection Counter increases if the stimulus is in range.
  5. CounterDecrementPerCycle: Controls the rate at which the Detection Counter decreases once the stimulus goes out of range.
  6. CriticalDetectionValue: Determines the threshold point for Detection Counter, at which the agent responds to the stimulus.
  7. DisplayAlertnessLevel?: Determines if changes in the Detection Counter value need to be displayed in the game space.

Can Perceive Interests?: Determines if the Agent can perceive Interest Stimuli. If set to false, only Target stimuli will be perceivable. [For more about the stimulus types, check out: Stimulus Types]

Note: The Perception system has no awareness about it’s owning actor & uses a custom interface to receive & send messages. So if you’re using a custom AI agent, make sure that the owner class implements the BPI_SensorySystem interface & it’s functions. For reference, check out the implementation of the interface functions in BP_PatrolGuard_Parent.

Hi, I don’t see this ‘User Defined’ category in any of the bots in the level. I am using UE version 4.16. How do I change the size of the vision cone?

Please help. Thanks.

Hi Leebaba, the previous update had added a lot of changes to the AI implementation & one of the key modifications was the use of custom blueprint components to handle different features like patrol movement, ai perception, vision arc display, etc. As a result, the AI Perception component [More info here: https://forums.unrealengine.com/showthread.php?97156-Top-Down-Stealth-Toolkit&p=726607&viewfull=1#post726607] now stores the parameters that define the Vision Range/Angle, which in turn is used to create the Vision Arc.

I do not have access to my PC for the next few days, & hence can’t provide screenshots to describe the solution for your query. But you can open up the BPC_AIPerception component, select the VisualPerceptionData struct & set it to ‘Editable’ in it’s properties section. Now if you go back to the bots placed in the level, & select their AI Perception component from the details panel, it should display the VisualPerceptionData in the User Defined Section. From here, you should be able to edit the Vision Range as well as Vision Angle.

Thank you for the quick response, I manage to edit it in the bots details panel.

A couple of questions:

  1. The value of VisionRange and HalfVisionAngle keep snapping to 0.0 when I change either one of the value. By default, its set to VR=300, HVA=45. After I set the VR=600, and HVA turns to 0.0 by itself. This breaks the vision arc and the bot no longer detect the player.
  2. The vision arc mesh doesn’t update visually in the editor upon changing the value in VisionRange. It would be most helpful to see how far the range reaches in the editor.

Thank you and looking forward to your solution when you have access to your PC.

Thanks for pointing that out. I know for certain that editing normal component variables in the editor works, but from what you’ve described there may be a limitation when doing the same with data stored in structs. At this point, I can’t say if it’s an engine or toolkit bug. I will definitely get back to you about that after further testing as soon as I get access to the PC.

For now, I would suggest editing these details from within the BP_PatrolGuard_Melee blueprint itself. It will do the same for all Melee bots in the level, but it should allow you to test out customized vision ranges for the bots. The Vision Arcs should also auto update themselves each time you change the values in this manner.

Hi, I tried out editing the Visual Perception Data from the editor & was able to reproduce the issue. It seems to be an engine bug, & has already been reported through the Answer Hub a couple of weeks ago. You can check out more details about it over here: https://issues.unrealengine.com/issue/UE-46795

But more importantly, it seems that changes made to variables in an actor component, from the editor only gets applied when you actually start the level. But as mentioned in the previous post, all modifications made from within the actual blueprint will get applied across all instances in the editor itself. In this particular scenario, you could create publicly editable debug variables that let you test different dimensions for the Vision Arc, as shown below:

The Vision Arc Manager component uses the ‘RetrieveVisionRangeDimensions’ interface function to update the vertices of the Vision Arc Mesh at runtime. It fetches the required parameters from the AI Perception component under normal circumstances, but introducing an additional check to see if the game is running will let us return different values in the editor & runtime scenarios. If the game is not running, then it will use the test variables to construct the arc. So by controlling these variables, you can try out different radii & arc angles. Once you’re satisfied with a particular set of dimensions, you can set those values within the Visual Perception Data struct.

If you’re using this approach, just make sure to clear out the ‘VisionArcVertexArray’ at Event Begin Play within the Vision Arc Manager component. This is basically to clean up any extra vertices that could possibly be created by setting custom dimensions within the editor.

The v2.1 update for Top Down Stealth Toolkit has gone live on the Marketplace. The update primarily focuses on the introduction of new Global Alert Level system. For more details, refer the changelog below:

v2.1 Change Log:

  1. Added a Global Alert Level system that controls the activation of automated security devices like lasers & turrets, as well as the deployment of reinforcement patrol guards. The new Global Alert Level Controller class listens in all instances of stimuli being perceived by AI agents within the level, & increases the Global Alert Meter based on the threat rating of the perceived stimulus.
  2. A new AI Surveillance Controller has been introduced to control the activation of all AI agents within the level. Agents that are marked for delayed activation will not be activated at level start anymore, & instead getting activated at the behest of Global Alert Level Controller when the alert meter reaches a critical value. This system can be leveraged to create different starting conditions for a level, choosing to activate all security measures by default or have them get activated in a modular fashion based on the threat posed by the player.
  3. Added Patrol Guard Spawn Points across the map to spawn backup agents based on the number of remaining guards active across the level.
  4. Added a custom widget to the Game HUD in order to display the Global Alert Level at all times.
  5. Added world context object reference as an input parameter to functions within the blueprint function library, as part of v4.17 compatibility requirements.

Free gameplay demo for the v2.1 edition of Top Down Stealth Toolkit (Windows) now available at: Dropbox - File Deleted

All changes within the blueprints are marked with the boolean variable ‘Version2.1’ in order to easily identify the workflow changes introduced with this update. Comments are also written to describe the major changes. The new variables, functions, interfaces, & components added to existing blueprints are also marked within their event graphs as shown in the screenshot below:

Note: The v4.17 edition for the toolkit had been delayed due to an engine bug that prevents the Patrol Guard AI from executing their parent functions. I’ve tried reproducing the issue many times, even recreating entire AI blueprints from the ground up, & the issue keeps surfacing at some point along the process. So the whole process just ended up taking the time that could have been better put to work on updates that add new features to the toolkit. However, upon converting the project files to the new 4.18 preview versions, I was glad to see the AI working fine as before. As a result, I’m skipping v4.17 compatibility for the toolkit, unless Epic manages to fix the issue (unlikely as there is no bug report in the Answer Hub) in the upcoming patches for the said engine version. I also wanted to point out that the bug presents itself only in the Standalone launches, & PIE/Packaged versions work as intended. So while I would suggest sticking to v4.16 edition until the official v4.18 edition rolls out, those who are interested in converting their existing projects to v4.17 can do so if you’re fine with not testing the game in Standalone mode.

The v2.1.1 update for Top Down Stealth Toolkit has gone live on the Marketplace.

ChangeLog:

  1. Added a location-based opacity system to the Vision Arc material, thus providing the option to fade out edges of the Vision Arcs.

vafade.jpg

The hardness of the edge fading system can be controlled through the ‘OpacityMaskHardness’ variable housed within the Vision Arc Manager components. And special thanks to [USER=“4015”]Luke di Rago[/USER] for sharing the code with me.

**Note: **All changes within the blueprints are marked with the boolean variable ‘Version2.1.1’ in order to easily identify the workflow changes introduced with this update. Comments are also written to describe the major changes. The new variables, functions, interfaces, & components added to existing blueprints are also marked within their event graphs.

New post going into details about the functioning of Global Alert Level system introduced in v2.1 update: Top Down Stealth Toolkit Basics: Global Alert Level System

Added to Tutorials/Concept Overviews section as well: Top Down Stealth Toolkit - #2 by Stormrage256 - Marketplace - Unreal Engine Forums

tutorial is missing

It displays “Sorry, the page you were looking for in this blog does not exist.”
Can you fixed that? It is very important to me…
Thank you!

The old tutorial was taken down a while back because it was based on one of the earlier versions of the toolkit. I’ve published a new tutorial on how to start out with a new level. You can check it out here: Top Down Stealth Toolkit Tutorial: How to create a new level

As mentioned in the message, all the old tutorials will be ported over to the blog & updated to the latest version over the next few days. Let me know if you need help with anything in particular.