Download

[WIP] Dynamic Hierarchal Pie Menu System - Marketplace Submission

This marketplace submission is to demonstrate the capabilities of my pie menu system. 85% of its capabilities are done besides some final tweaking/polishing. It’s meant to already have most of the work done for you, and making a pie menu will take SECONDS. Each pie menu is its own blueprint, and will either be a Redirecting Pie Menu, to take you to another screen, or an Executing Pie Menu, to perform an action. All you do is put in the names of the array, and make your own array based on what your execution is (I.e. changing the color of something). It automatically handles all of the trigonometric computing for you, takes the array and segments each item into an even part of a circle. Once you have your execution array complete, you can create a redirecting blueprint in order to host and guide you to your execution array. Want a color menu to be used for multiple purposes? You can! Just make a color execution menu, then make a couple of child blueprints, and you’re set! Now you can use the same array for multiple uses, no duplication required! I hope this is worthy of consideration - - feel free to ask any questions.

Latest Video:

Previous Video:

Gamepad Controller support!
1d3f57fe6e619021f4d2bce0dd5f2ceeb5baf32f.jpeg
Sample of Redirect Blueprint - - That is all

[Spoiler]
Newest updates:

Uses blueprint interface to send commands to the player and eliminates the need to cast to objects.

Revamp of the menus. Instead of having quite a few arrays of different types (mainly color or texts), it redoes the entire system so that the customization for the individual components actually get put together into a structure. Now instead of many arrays to customize, it uses a single structure array for all of your needs.

Sample added for interacting with an object that opens a menu to your screen.

Hud blueprint is cleaner and better organized.

[/Spoiler]

Video is uploaded!
https://youtube.com/watch?v=elqvFRq1S3A

Feel free to ask questions, give suggestions, critique, feedback - - as they all will be accepted graciously!

c4e09120dc878866e736d003ac0fd792bf61b94e.jpeg
Main Menu: Outer indicator, Inner Indicator, & Menu Piece Text

c8c26e6fa908d3e697d859b2caf003e98186b776.jpeg
Color Menu: Outer Indicator, Center Text, Individual Menu Piece Colors, Center Text Changes according to selected piece

b1950d18517532fd23307751b73fbd1d02b00f7f.jpeg
Projectile Shape: Outer Indicator, Menu Piece Text

49b98ac5306319a7a886a228390595823df6a1e2.jpeg
Firing Rate: Outer Indicator, Center Text, Menu Piece Text

PieSystem6.jpg
Putting Menu options into action

653c10d8fa46a8b9d19aeebafd14d1bafe81c1e5.png
SO customizable!

Cool, so basically this gives you the Mass Effect style conversation selectors. Looks good and very customizable.

Extremely customizable. Even the masking radius to make the hole inside the pie can be altered (by putting in how big you want the hole in a float between 0-1. In the examples above, it’s set to 0.5, or 50% of the total pie).

Any idea when this will be available? I’m very interested in it.

In the final submission process! I thank you for your interest! =)

https://youtube.com/watch?v=7WDaDcS0Yzg

I decided to make a video explaining it, showing off the different features, and even showcasing how dynamic it is by deleting one of the menu items, and rebuilding it from scratch. Let me know what you guys think!

Hi,

This might be a silly question, but I’m wondering if you could verify whether I could configure this system to do the following without much trouble: when the player interacts with something, it fires off a custom event with an array of FChoiceEnums, an arbitrary enumeration I made. Is it possible to easily configure this to a) display a choice/icon for each enum passed to it, and b) fire an event/pass a reference back to the invoking object with a reference to which enum’s menu option was selected?

Thanks :slight_smile:

The most difficult thing to do on this thing will be to do the initial setup, since it does store the variable for the character. All you’d have to do is change the variable type of the character (In this case, first person character) to the variable type for your character. Once that is set up, you can configure the pie to however you want. At the place where the Execution occurs, you’ll need to know basic blueprinting to carry out what you want. In the project, the execution is only changing variables on the owner variable type, but it’s easy to get it to execute whatever you want it to.

Okay, thanks :slight_smile:

Is there any chance you would have time to write a very brief quickstart guide covering the pipeline to create a new menu? I’m having an incredibly difficult time combing through your videos to work out the basic workflow.

Yes, my apologies, I will get working on it asap. I’ve been in the middle of moving, and it’s been a bit hectic. I will try to have a video going today.

In the meantime, feel free to add me on skype: gage.the.deathsinger

That’s fine! Moving is an absolute beast, so don’t stress yourself out about it; even if you don’t have time to make a super in-depth video, a written quickstart guide in the format of “Here are the key events/interfaces core functionality revolves around” would be really awesome :slight_smile:

Having a bit of trouble today. Video will be up by tomorrow. My desktop is what I usually work on, and my monitors were damaged being shipped, so I’m on a less-powerful laptop in the meantime.

Quick question: Are you planning on using it on a single character template, or multiple?

No hurry, I really appreciate your willingness to help! :slight_smile:

I’m actually not going to be using it on a character template at all: I have a HUDManager actor that’s in charge of curating all the UI elements in the game, so for each pie menu (inventory, conversation, etc) I’m building an event in my HUDManager class that needs to a) create the menu from the desired blueprint, b) know which events to listen for so it knows when a choice has been made from that menu.

Video is here

  1. The main things you’ll have to do is copy/paste the content from the First Person character blueprint (Everything outside the commentated windows EXCEPT for the cluster directly to the right) over to the BP that is going to be holding the variables for the radial menu system (such as roulette, mouse toggle, et cetera). Once the variables are created (right click the variables that are colorless, create them), you’ll have to recreate the connections to the custom events in the menu (compare to the first person template). I had done them in a previous video attempt, but this entire thing has to be done in a very SPECIFIC order. Then recreate the menu items for the OnRep for degrees and piemenuopen, as well as the MenuCheck.

  2. Once this first long-winded and tedious step is done, compile/save, then move on to the PieMenu_Master blueprint. From there (Working from bottom to top) change all the custom event output nodes to the proper blueprint template from FirstPersonCharacter to (In the case of the video) ThirdPersonCharacter reference. You’ll also have to change the call to the custom events from the new blueprint reference (calling Change Menu and Autoclose from the step 1 blueprint). Anything that refers to First Person Character, change it, WITH THE EXCEPTION OF the content after “Summon internal menu” (Which in all honesty I may have to double check, it may be something I started but decided to scratch but left the code in? It seems I have a couple of those, I will update it in the future). Compile/Save.

  3. Open the MyPieMenu widget, change the owner template variable from First Person Character to the blueprint used in step 1. Fix the couple of things in that section, and once you do that, you can do the things that could not be done in steps 1 & 2 involving changing the owner, or calling on the owner, of the Widget blueprint. compile/save

  4. In the desired blueprint from Step 1, change the begin play process at the end where it identifies the owner of the widget as Self (Just reconnect it, mainly).

I’ll add more details soon, and recover anything the video missed. I apologize for the inconvenience in all this.

That’s fine, thank you for taking the time to elaborate on this. :slight_smile:

I’ll contribute as much time as I can once I can get my desktop running again. But feel free to email me or message me on skype, and I’ll be able to respond much faster.