UMG Mini-Map
__NoToc__ Authored by: Rudy Triplett Introduction Maybe you need to know where you are, or maybe you need to know where that assassin might be that is sneaking up on you. In either case you are goi...
__NoToc__ Authored by: Rudy Triplett
Introduction
Maybe you need to know where you are, or maybe you need to know where that assassin might be that is sneaking up on you. In either case you are going to need a mini-map. Well the following tutorial will allow you to setup and implement a simple UMG based top down mini-map that will track your player ( don't get lost :-) ).
Simple UMG MiniMap Tutorial (In almost 50 steps)
1. Open a new 4.6 project
2. Make a new SceneCapture2D blueprint
a.
Right`` ``click
in the Content Broswer > Select
Blueprint
> type SceneCapture2D > Select
SceneCapture2D
in the dropdown menu > Click the Select button
`
`
3. Name the new blueprint something appropriate (I named mine ÔÇ£MiniCamÔÇØ)
4. Open your SceneCapture2D blueprint (MiniCam)
5. Go to the components tab
6. In the Components Panel in the upper left of the window select CaptureComponent2D
7. With the CaptureComponent2D selected go to the Details panel and change the rotation of the Y axis to -90 (NOTE: If the camera does not appear to rotate, take a breath. ItÔÇÖs ok, it still rotated. DonÔÇÖt let it fool you)
8. Click on the Graph tab in the upper right corner of the window
9. Right click in the event graph > type Custom Event > name this OutSideTick > complete the picture below. This sets up the camera to follow the player without taking into account the player rotation or Z axis. (NOTE: I have used the Right Click > Split Pins function to expose the x,y,z values of the nodes below)
10. Compile and Save SceneCapture2D blueprint (MiniCam)
11. Close SceneCapture2D blueprint (MiniCam)
12. Make a new Widget blueprint
a.
Right`` ``click
in the Content Broswer > Select
User`` ``Interface
> Select
Widget`` ``blueprint
13. Name the new blueprint something appropriate (I named mine ÔÇ£MiniMapWidgetÔÇØ)
14. Open your Widget blueprint (MiniMapWidget)
15. Go to the Palette panel
16. Type image into the search field
17. Drag and drop an image into your Designer graph
18. Scale the image to a size that you would like to use
19. Drag the image into the lower right corner of your canvas panel (the canvas panel is the default root in a widget. It shows up as a green outline)
20. Compile and save Widget blueprint (MiniMapWidget)
21. Close Widget blueprint (MiniMapWidget)
22. Make a new TextureRender2D
a.
Right`` ``click
in the Content Broswer > Select
Materials`` ``&`` ``Textures
> Select
Render`` ``Target
23. Name the new TextureRender2D something appropriate (ÔÇ£MapRenderingÔÇØ)
24. Open your TextureRender2D (MapRendering)
25. Go to the Details panel and under compression set the compression settings to TC_UserInterface2D
26. Just below the Compression section you will see the Level of Detail section. Change the Texture Group to UI
27. Save your TextureRender2D (MapRendering)
28. Close your TextureRender2D (MapRendering)
29. Go back to the content browser and select your SceneCapture2D blueprint (MiniCam). Drag this into the level and place it directly above the player spawn. You can set it to any height (Mine is set to 2400 on the z axis)
30. With your SceneCapture2D blueprint (MiniCam) selected go to the Details panel to the right of the viewport. Under Scene Capture set the Texture Target to your TextureRender2D (MapRendering)
31. Right click your TextureRender2D (MapRendering) > Select Create Material
32. Name your new Material something appropriate (I named mine ÔÇ£MiniMap_MatÔÇØ)
33. Open your New Material (MiniMap_Mat)
34. Set the Texture sample to drive the Emissive Color of the material
35. Compile and Save Material (MiniMap_Mat)
36. Close Material (MiniMap_Mat)
37. Go to the Content browser open MyCharacter and complete the following picture. This will cast the tick to the SceneCapture2D blueprint and add the Widget blueprint to the viewport.
38. Compile and Save MyCharacter
39. Close MyCharacter
40. Go to the content browser and open your Widget blueprint (MiniMapWidget)
41. Select the image and in the details panel set itÔÇÖs anchor to the bottom right corner
42. Continuing in the Details panel under appearance expand the Brush section and change the image to your Material (MiniMap_Mat)
43. In the Palette panel type Throbber (NOT the circular throbber)
44. Drag and drop a Throbber into the Designer tab
45. Re-size the Throbber so that only one dot can be seen
46. In the Details panel under appearance change its tint to an easy to see color (I chose a dark green)
47. Set the throbberÔÇÖs Zorder to 1 (Can be found under the slot section)
48. Set the throbberÔÇÖs anchor to the bottom right
49. Place the throbber over the minimap in the spot that the character will be spawning (this may take some adjusting to get just right)
50. Compile and save Widget blueprint
51. Close Widget blueprint
52. Launch game
Addition: Rotating Throbber with Character Rotation
- Using version 4.8.1
Addition by: Will Rivendell(thankstipscom)
Summary
This tutorial is awesome. You'll have a minimap and your real-time character location in no time. I wanted to also be able to show where the character was facing when it rotates in game. It's a simple few steps and since this helped me I figured I'd add those additional steps in case anyone wants to do the same.
1. In the UMG, select the Throbber and under 'appearance' change number of pieces to 2.
2. Now resize the throbber so that the first piece is fully visible but the second is cut off by half. (the half piece will show where the character is facing)
Note: you can probably just use your own image like an arrow in place of the actual default throbber icon
3. With the throbber selected, under 'behaviour', click on BIND on the 'is enabled' line
4. Make your bind function look like this:
5. Compile and save.
'''Note: If your rotation is not facing the right way, simple modify the 'PLUS -90' node in the bind function until you have the correct angle. 90, -90, 180, -180 etc...