[SUPPORT] Line of Sight Visualization

Line of Sight Visualization is a 100% blueprint-powered framework created in Unreal Engine. Built with a primary focus on modularity and ease of use, the system can be easily added to game characters for an accurate representation of their Line of Sight zones.

Marketplace Page: https://www.unrealengine.com/marketp…-visualization

Demo Video:

Features:

  • Edge Detection algorithms help deliver increased performance
  • Customize & preview the visualization in the editor
  • Smooth visualization support for non-cuboid shapes
  • Component driven design ensures a quick & easy integration process
  • Sample maps showcase examples for both player & AI LoS
  • Fully commented Blueprints to accelerate the learning process

Number of Blueprints: 7 (including widgets & examples)
Input: Mouse & Keyboard
Network Replicated: No
Supported Development Platforms: Windows
Supported Target Build Platforms: Windows
Documentation: Fully Commented; Examples Included

Current Version: 1.2.3

Preview Screenshots:



If you have any doubts or queries regarding the toolkit, you can always reach out to me personally through the support email.

Tutorials:

  1. Integration Tutorial:

Getting Started:

  1. Configuration Settings:
  • MeshResolution: Controls the number of LoS points (vertices) per degree of the arc.
  • EdgeCaseSubdivisionCount: Controls the precision of the edge detection operations. Higher values increase the likelihood of detecting multiple edges.
  • EdgeDetectionIterations: Controls the accuracy of the edge detection operations.

When I see this I think of those cool dynamic hard shadows from FEAR and Doom3

Could this be used as a base for a shadow system like that? Would it be any more or less performant than UE4’s built in dynamic light system?

As a fan of the original F.E.A.R. growing up, it would have been really awesome if that were the case. But this system is using a procedural mesh driven approach instead of lighting models, with a focus on the performance benefits brought about by edge detection over brute force approaches. So I don’t imagine it being of much use as an alternative to lighting systems in FPS & TPS games.

The v1.1 update has gone live on the Marketplace.

Change Log:

  1. Added full Six degrees of freedom support.

Note: All changes within the blueprints are tagged with the boolean variable ‘Version1_1’ for easy identification.

Hi, I just tested out the visualization on the new v4.22 edition of Unreal Engine & everything seems to be working fine. You can go ahead and download the v4.22 files from the launcher now.

If you’re upgrading your project from 4.21 to 4.22, it should run smoothly without having to make any changes. If anyone’s having trouble with the process, feel free to contact me.

Also, LoS Visualization is now 20% off as part of the UE4 Spring Sale.

Hi, Line of Sight Visualization will be available at a discounted price (30% off) during this week. So if you missed it during the Spring Sale earlier this month, you can get it now at: https://www.unrealengine.com/marketp…-visualization.

Hello, I’ve integrated this into the twin stick shooter example project but the pawn (spaceship) is a static mesh, is there any reason why that would cause this to not work? Setup was really easy and straightforward, so I’m confused why I don’t see it working. I did the optional setup in construction script so I could preview it but even that isn’t working. Using engine version 4.22.1

Hi, I’m assuming that you sent me a mail yesterday regarding the same issue. I was able to replicate the issue at my end and have sent you the solution, but I’ll share it here for others who might have run into the same problem.

The v1.1 update had added 360-degree rotational freedom for the visualization system (so that you could use it not just in top-down, but also in other cases like sidescrollers). As part of this feature, a new output parameter ‘Up Vector’ was introduced in Step 4 of the integration tutorial. The above issue can be solved by connecting a ‘Get Actor Up Vector’ node to the new output parameter as shown below:

Does this use UProceduralMeshComponent? I ask because when building out a similar system to this in the past which used UProceduralMeshComponent and ran into a problem where if you we’re constantly moving, and updating the component, the component’s collisions did not bake on the same frame that the updates were made (but were disposed of earlier). The problem with this was that while moving you were unable to gather any collision data which you might use for things like what actors can this user actually “see” and render/hide them accordingly.

Even if UProceduralMeshComponent is uses does that issue exist in your system, because if not I’d consider just buying it to solve that problem rather than hitting my head against a wall anymore (that and the ray-trace edge detection optimizations do sound nice!).

Hi, I’m using the Procedural Mesh Component as well, but its collision has been turned off since obstacle detection is handled through ray traces. So it might not be of much help to you in this scenario. But I did run into a similar issue as yours when it came to updating the mesh itself. There was a slight lag in the procedural mesh vertex updates, but this was solved by setting the update tick group to PostUpdateWork (https://docs.unrealengine.com/en-US/…tml#tickgroups).

So I’d say that changing the tick group might be worth a try in your case as well. If you’re lucky, that could solve your collision lag. Just make sure to do so for both the component as well as its owning actor.

Also, on a side note, if you have a lot of vertices that get updated every frame, I’m not sure how efficient it would be use the collision on proc mesh component. Using normal line traces to detect actors around you might be less taxing on the processor.

Hi, the Line of Sight Visualization system is on sale this week. You can now grab a copy of it for as low as 10.49 USD at: Line of Sight Visualization in Blueprints - UE Marketplace.

Hello, The Line of Sight Visualization system will be available in 11 USD. Are crazy or what is this real version?

Hi, the base price after discount is 10.49 USD. You might see additional charges based on tax laws in your country.

Regardless, what you see on opening the link is the real version, if that’s what you were asking about.

Can it be used in third person shooters?

Hi @TROPICALRECON , I wouldn’t recommend it for third-person shooters since this is a planar visualization system. It’s best suited for top-down/isometric and sidescroller games, where a 2D portrayal of line of sight gets the job done instead of having to rely on 3D vision cones.

New update coming soon!

Adding support for short-range 360 degree visualization outside the primary vision cone:

ezgif.com-gif-maker (1).gif

The v1.2 update is now available on the Marketplace.

New Features:

  • Added support for an additional short-range 360 degree visualization outside the primary vision cone.

    Unreal Engine | Line of Sight Visualization v1.2 | Peripheral LoS Visualization - YouTube
    For those of you who’re using the previous editions and want to add the new peripheral LoS Visualization to your projects, replace your LoSVisualizer components with the new version provided in this update, and follow the steps starting from 0:20 in the above video. You should be able to get it up and running in a matter of minutes.

    Apart from that, you can also control the radius of the short-range vision through the **PeripheralLoSRadius **parameter as shown below:

@Bebop890 Hi, here are the steps for changing the color of the visualization at runtime:

I. Open the collapsed node graph SetUpVisualizationMesh within the Event Graph of BPC_LoSVisualizer.

II. Now add the following nodes at the start of this graph. Since we want to change the color of the material at runtime, we’re going to create a dynamic material instance using the default material as a base.

III. Within the same graph, pass the new dynamic material instance to the InitializeVisualizationMesh functions.

IV. Finally we’ll add a new function to change the color of this material instance using its Color parameter.

And that’s it. You can now call this function whenever you want to change the color by passing in the new color through the input parameter.

I’m also adding this feature in through a mini update. So it should be available out of the box when you create a new project in a day or two.

Edit: This feature has been added in the latest update and the system now allows runtime color customization out of the box.

1 Like

Hey Stormrage256,

Thanks for the help for the previous quesiton!

I was also wondering, can the visualization angle & radius be changed during runtime also?
I have tried modyfiying the angle & radius at runtime but it doesnt seem to make the visualization change in size from its inital size.

Is there a function I can call to force an update?

Many Thanks