I would like to present a minimap and fog of war code plugin that I have been working steadily on for some time. It just released on the Marketplace.
Supported minimap types
Minimaps come in many shapes and sizes, so let me first reassure you that most likely the minimap you have in mind is supported by this plugin. This plugin supports maps that are:
- Rectangular or circular
- Bordered or borderless
- Transparent or opaque
- Player centric or any area
- Fixed or rotating
- Small or large
Here are a few examples of maps created with this plugin. If you choose to use a border, you can customize the border graphic. You can effortlessly use multiple maps at once, for example to toggle between a player-centric minimap and a ‘full map’ that shows the entire level.
Any actor can appear on the minimap by giving it a ‘MapIconComponent’. Via that component, you can customize how that actor appears:
- Set the texture and (animated) material
- Set the draw color and Z-order
- Icon can rotate along with its owning actor, or have a fixed angle
- Icon can turn into an objective arrow when its off the minimap, the graphic is customizable
- Set the icon’s size in screen space, so that it always has the same size in pixels, no matter the zoom level
- Alternatively, make the icon match a given size in world space. Use this to mark quest areas.
- Three animations are included: flashing icon, pulse (or MOBA/RTS map ping) and clock animation
- Actors can access their icon’s material instance for gameplay driven icon animations
- All properties can be changed during gameplay. Use this to apply team coloring and hide icons until they become relevant, or to trigger animations on gameplay events.
- You can react to MapIconComponent events, such as when the icon is clicked on the minimap, mouse-overed or enters/leaves the minimap.
Some examples of icons:
Fog of war
Fog of war is actually its own subject, but if a game has fog of war it should certainly show up in the minimap. If you purchase a minimap that doesn’t support fog of war out of the box, it is not easily added. But for those of you making a game that requires fog of war or explorable fog, this plugin has got you covered by providing a fully working fog of war system! It features the following:
- Add fog to your level by adding a resizable ‘MapFog’ actor
- Fog appears in the minimap, where the opacity of hidden/explored/revealing areas are tweakable
- Fog can also appear in the world via a post processing effect, again the opacities are tweakable
- Fog can be revealed temporarily for MOBA/RTS style team vision
- Alternatively, fog can be revealed permanently for ARPG style exploration
- Any actor can reveal fog by giving it a ‘MapRevealComponent’
- Team vision can be achieved by enabling the reveal component only for allies of the local player
- A MapRevealComponent can reveal a circular area (for players) or a rectangular area (for example for door triggers that reveal a room)
- The revealed area can have a drop off distance, so that the total revealed area has a soft edge
- Icons can be visible in fog (quest markers, rare item drops) or hidden in fog (enemies)
- Actors themselves can also be hidden in fog (enemies)
You most likely want to create your own background textures. The plugin comes with a helpful tool for that: the ‘MapBackground’ actor is a box shaped actor that you can resize and move to any position. It will then render an orthogonal top down snapshot of the area covered in the box. You can draw over the render in an external image editing program, then import that and assign it to the same MapBackground, which will make your drawn background appear on minimaps. You can place multiple such MapBackgrounds to make efficient use of texture space in case your level doesn’t have a perfectly rectangular layout. All those backgrounds will appear in the minimap, but backgrounds that don’t intersect the minimap’s view aren’t rendered.
This would be the first minimap code plugin on the marketplace. As a code plugin, its up to you whether you access the plugin’s features via code or blueprint. You can manage the minimap icons completely in C++ if this fits your current workflow. Blueprint developers rest assured that all features are exposed to blueprint too. Be aware that if you are working in a blueprint-only project, it must be converted to a code project. Epic has described the steps for that: Instructions
This plugin has been released on the marketplace. This thread will now function as the support thread. If you have any questions or feature requests, please let me know.