No announcement yet.

Minimap, Map and Navigation System - Texture Based

  • Filter
  • Time
  • Show
Clear All
new posts

    [WIP] Minimap, Map and Navigation System - Texture Based

    Click image for larger version  Name:	MinimapAndNavigation1.jpg Views:	1 Size:	249.6 KB ID:	1561564

    Hi Guys,

    Interactive Map , Minimap and Navigation System is a texture based Map and Minimap system that allows you to design your own custom Interactive Map and Minimap and add static and dynamic points of interests , and a navigation system which allows you to place custom markers in the map as well as in the level.

    Built in C++ , this system is completely customizable to help you create your own Interactive Map, Minimap and Navigation System for your project. As opposed to Scene Capture way of creating minimap which obviously suffer from performance issue, this is Texture based and much better and recommended method to create a minimap system ,with static as well as dynamic points of interests.

    Navigation and Interactive Map system allows you to place custom waypoint against any point of interest visible in map, or in an empty area, and this will also have the distance measurement which constantly update the distance of the player from the current waypoint. You have the option to add single or multiple way points and group your selection preferences based on the type of the actor that represent a given point of Interest.

    I have created a C++ based class called MapBoundsActor, which you can place multiple times in your level , if you want to switch between two maps with different textures and properties. Efficient when , say you are entering a cave or any indoor area and require a different map, with a different zoom level. So you can have one world map bound and multiple local bounds.

    Click image for larger version  Name:	Capture.jpg Views:	1 Size:	98.4 KB ID:	1559291

    The class MapManager, whose single instance should be placed in a level, takes care of all necessary calculations like switching between maps , adding the points of interests, displaying the minimap and map and handling the click events with the map , displaying navigation waypoints, etc, and contains some parameters as input which increases the customization and covers requirements for different types of projects. like the widgets you are using for navigation, minimap and map system respectively, the datatable which contains information regarding the actors that will be used as points of interest in the minimap and map, etc.

    Click image for larger version  Name:	Capture.jpg Views:	2 Size:	96.2 KB ID:	1559293

    The Minimap Datatable contains the classes which will act as points of interests and will be displayed in minimap , map or both depending on the properties you are setting against the respective class in the Datatable.

    Click image for larger version  Name:	Capture.jpg Views:	1 Size:	41.4 KB ID:	1559294

    You can also design your customized tooltip widget which appears when you hover over a POI in your map. Each POI class can have its own tooltip widget and can be defined in the datatable.

    Click image for larger version  Name:	Capture.jpg Views:	1 Size:	69.3 KB ID:	1559295

    The Minimap POIs can be either set to always visible, or only within the minimap area that is currently on the screen, or a range can b e defined within which a given type of POI is visible. If the POIs are always visible, we have an option in our datatable to set the corresponding pointer icon which would indicate the direction at which a given POI can be found in the minimap.

    Click image for larger version  Name:	Capture.jpg Views:	1 Size:	81.2 KB ID:	1559296

    The customizable Navigation Widget allows user to display navigation icon in the viewport based on the marker added by the user in the map. The marker can also be programmatically added, like automatically adding the navigation marker when a given quest is selected. The Navigation widget triggers notification events when the marker is in bounds or out of bounds respectively, so that a corresponding pointer icon showing the direction of the POI can be displayed. Additionally it will also be possible to display distance of the current active POI from the player location, as every navigation widget is bound to the respective actor instance.

    Click image for larger version  Name:	Capture.jpg Views:	1 Size:	77.3 KB ID:	1559297

    You can also use circular minimap with option to auto rotate the map with player movement.

    Click image for larger version  Name:	Capture.jpg Views:	1 Size:	72.6 KB ID:	1559298

    Development of this was extremely fun and over a month of hard work so far, but finally this is almost done, and I hope this is going to prove as an extremely useful asset for the community.
    Thank you for your time and I will appreciate if you have any suggestions or want any feature missing in my description above, so that I can add those before submitting.
    Last edited by athianoir; 12-12-2018, 11:59 AM.

    Click image for larger version

Name:	Capture.jpg
Views:	1
Size:	117.0 KB
ID:	1559447

    Every MapBounds actor corresponds to the respective map texture that represents the bounds of the area, so it is recommended to select the bound and in the top view, take a snapshot of the area covered by the lines that define the outer bounds of the actor, and edit or use the snapshot as reference to create custom texture in a texture editor like Photoshop.

    In the Minimap material instance you can define the Zoom level of your minimap, or you can use the FixedZoom option in your MapManager and define the area bound so that zoom is auto calculated by dividing the given area with the total area of the bounds.

    Click image for larger version

Name:	Capture.jpg
Views:	1
Size:	65.1 KB
ID:	1559448


      Finally after three days of frustrations , I completed the map transition between non rectangular areas , using opacity mask texture. This is a very important when you are creating local map for irregular areas like caves , or houses.