Floorplan as minimap

Hi Everyone!

First of all, nice to meet the Unreal community, and I apologize if my english is not perfect.
I’m a beginner in Unreal ( I use a lot Cinema 4D, Vray, Octane, etc…) and I start to use this software for walktrough architectural viz. Unreal is so powerfull !
I started to learn with the online training and now I run my first project to learn how to create UMG menu, interface, and interaction, using blueprint (I have no C++ knowledge for scripting…).

Here is my question (I read a lot of posts before…)
I would like to add an architecture floorplan in the right corner of my scene (like the image below).
And see my position moving when I walk into the scene (red point for example).
I read lot of posts using blueprints to create minimap showing the whole scene in 2D.
But I can’t find the one showing how to create a minimap using a floorplan picture.
I would appreciate a lot if some of you guys could help/teach me how to create that…

Thanks a lot!

It’s not an easy thing to do. You probably need to combine a few tutorials. I’ve done it that way:

  • import your floor plan texture, put it on a plane and place it in the scene
  • scale and move it so it fits your walls
  • create a UI widget, place the same texture into it that you used for the floor plane
  • put a player icon into the UI widget. There are blueprint nodes that give you the player position
  • You can get the scale and position of the plane in the scene inside the widget with blue print nodes.
  • Then work out how the player icon will move relative to the players position with some math (linear interpolate). Don’t forget the rotation. It took me a lot of try and error to get it working. I know this isn’t very helpful but I don’t think I found a specific tutorial for this.

I’m about to submit a user interface to the marketplace in the next few days. It can do this (not in the corner but as a pop up) and a lot of other things like material swaps and lighting changes. If everything works well it should be available soon.

Otherwise see if you can get a hand on the HAL Toolkit which was available on the marketplace but disappeared from there. I learned quite a bit from how they did it.

Hi S-Dot,

Thanks a lot for your answer, I’ll try your method in few days and come back soon.
The HAL Toolkit seems to be super cool, but no longer available :frowning:
Keep me informed for your user interface on the marketplace, it looks quite interesting!


Would you mind sharing your project file? Sounds like a good approach but I can’t really follow your explanation…

Hello man
Im Vietnamese and my English not good too :smiley:

Here my product, u can check at 2:37, if you wanna see my BP sent me a mail in here and ill copy for you


I had a look at my project but there isn’t really an easy way to share exactly how it works in my project. You can download the project from the marketplace.

The general idea is that you have a version of your buildings drawing in the level on a plane that is exactly aligned. You can get the extends (min / max position) of that plane and you can also get the position of the player. Now you can calculate the player position relative to the plane position. For example if the player is exactly in the middle of that plane the relative position of the player would be 50% (or 0.5) in both X and Y direction.

When you place your mini map into a widget you can get the screen position of the mini map. All you need to do is place the icon of the player exactly in the middle of the drawings on screen in our case.

You can use a Linear Interpolate Node which has 3 inputs. A, B and alpha. A would be the min value of the screen position and B would be the max value of the screen position. Alpha would be the relative value: 50% would be 0.5 in our case and the result would be exactly the middle between the lowest and the highest point of the minimap on screen. That’s the general idea how you place your player icon relative to the player position in the level.

You need to do the calculation on the ‘Tick’ Event in your widget. You need to remove the player icon and then place it again on the updated position every ‘tick’ which means roughly every time the game renders a frame.

Hope that helps.