[FEEDBACK] Advanced Target System

Will you be updating this blueprint if 4.9 releases? Although i dont see any reason it should need it

How do you draw the selection box? With simple Draw Line on HUD nodes? If so then how to do you modify thickness of those lines?

This is done using Draw Line as well. I created a function to handle calculating the draw for the marquee selection. You can specify Line Thickness in my options by changing the float value. The color is also an options. I’ve intended this tool to work seamlessly with you game. So there is a lot of options to change the look and functionality to create different types of targeting / selecting game mechanics.

Does this mean you are drawing multiple lines to achieve thickness?

Nice! I really like it, hope to see more soon :slight_smile: +1

No, a single line is drawn.

Thank you for your support!

The item is now in the Marketplace for consumption! #FeedbackWanted

https://www.unrealengine.com/content/79c37f3144854aef9a213d9985c6697f

Okay I’m still considering buying this even though I have created simple well working selection system already. Mainly for learning purposes. How’s the documentation? Have you made manual for it?

I’ve put a lot of comment nodes in the main part of the component system for those who intend to modify, or learn from what I’ve done. Everything is pretty straight forward, but what I want to have documented is the Drag & Select process for this system.

How I achieve capturing units under the mouse is a few steps that are key to what makes this system unique. First step is beginning the draw, so a mouse position is stored. Then a marquee box is drawn between the last mouse position, and the current. After selection is released, a box is projected down from the selection based on parameters which you can modify within the system. Any overlapping objects with Target Component become selected objects.

These parameters allow you to control the z-depth, z-offset, and distance for the selection marquee. Notice how the marquee becomes the bottom of the selection volume that is on the floor plane. This plane can be adjusted by external operations, so you have full control on the response you expect from your selection marquee. Here is a screenshot example of what I’m saying.

I’m working on documentation for this specifically now.

There are still some changes I have to do to make this concept full-proof, but I’ve already figured them out.

So the plan is to remove the initial trace all together, and only rely on the box selection to capture units. This will ensure you always get the same response.
I also have plans to run performance test on my system verses other solutions.
Lastly, I want to ensure this runs properly on any platform, including VR.

I bought and took a look at it briefly. What kind of feedback are you looking for? Are you planning to improve your current features or only fix bugs? I really hope you are going to do both.

Any and all that you find needs to be improved. – I would continue to refine existing features, and of course fix any bugs. I feel like what I’ve released is a good starting point, but its only the beginning.

Currently I’m pulling everything out of it that isn’t needed for RTS type game and then try to implement some of it to my own thing.

So far I have noticed that your blueprints are very compact and nodes are very close together which makes reading them harder than it should be. I can’t tell if it’s worth the effort to make that better, but it’s something I noticed immediately.

I also have a question about TargetComponent. Since it’s actor component (Something I haven’t used before) it lives in every actor that has it, right? Aren’t they independent of each other? So they all run their own instance of the logic.

While I need a lot more time to figure out your main BP logic I fixed up your tooltip widget that you call HoverWidget:
Before:
Before.png
After:
53e424d9bbbb5eca4880948ecf82311cf48121bd.jpeg

What I did for the fix?

First I fixed the positioning so it’s not obstructed by mouse cursor. To do that I simply added 2DVector+float node between Mouse Position 2DVector and Set Position In Viewport nodes:
Before.png
Float value is 10 for me.
I bet this can be done more elegantly so it’s same distance from cursor at all resolutions, but I haven’t figured out how that’s done yet.

Then I fixed text cutting off by simply removing canvas:
After.jpg
nothing else is required for that.

And to finish it off I made it so text can go over multiple lines instead of continuing on one line forever. For that I simply set Wrap Text At to 400. That value is hidden in text appearance section

Edit: I didn’t test this with sidescroller nor TPS mode.

Edit2: Works just fine in TPS map, I assume sidescroller doesn’t have tooltips, right?

Thanks for the feedback SinineSiil, I’m at work but once I’m home I will reply to your post. -Peace

I prefer that the nodes stay close together and compact. I use the comments for visual aid and understanding of how the blueprints are related. So if I need to understand the instructions, I’m usually zoomed in.

Each actor needs to have a TargetComponent to be interactable. The interface allows the actor to communicate information to the other target components. So if you need to make sure the owning target components knows specifically this Actor’s name color, then you can use an Interface to communicate that information.

You have to multiply your expected resolution by the DPI which accounts for resolution differences. I’ll show an example, just to make sure I’m not spewing nonsense haha.

Example from UE4
DPI_Mouse.png

About the text cut-off fix. -the little things - haha! Awesome!

I believe wordwrap was introduced in 4.8, I could be wrong. But I have to make sure to go through the code again to take advantage of the additional features.

The idea is that this tool isn’t limited to any perspective. Its simply a tool that can be used for your application / game.

Integrating these changes now.

Looks awesome! How gamepad friendly is this? I’m looking to do a Zelda style enemy lock on where you press and hold a shoulder button to stay facing, locked, and rotate around the closest enemy. Is that possible with this system? If yes…immediate buy :slight_smile:

Yes you can. There is one addition I would make to make it work for you. I’m including it in the next update for the build.

To Activate Hold.

Modification to Look At Target

This allows rotation towards target each tick. You can also go into the Event Graph of the Target Component. Turn up the speed, and tell it to override speed to specify turn rate.

Sold! Looking forward to messing with it tonight and the future update. I’m really enjoying your tutorials btw :slight_smile: Great stuff all around.

How can I make the target circle appear on the ground instead of at waist level?

Thanks for your support! I plan to make this tool just as good if not better! Let me know what you think of the tool, and I’ll get the changes included in the next update. :smiley:

Hi I got your PM. My system works pretty straightforward. I’ll make sure to document all of this in time. The way the system communicate to the actor it belong to is by an Interface. Some options such as the name can be set on the component itself.

Other options such as Size or Type need to be set by the Interface. Here is an example below of the Interface plugged into a unit, then me supplying it with the appropriate details. This then tells the Circle that it should be outside the bounds of the size of the character. More specifically, it will go all the way to the floor.

Look for the Target Interface. This is what the Target Component uses. There is another called RTS Unit Interface, but this was just created as example of what you can do.


Edit #1:

Working on an update, and documentation for this now.

#UE4.9 Update

I’ve finished the selection system weakness from relying on hits on geometry. This would cause issue when geometry wasn’t present or was unable to retrieve the position. Instead the selection radius is projected from the camera of the player. So I take the marquee selection, create a rectangle. Then I create a line from the camera location to the marquee center position projected in world space. A volume is created on this line, resulting in everything within range of the marquee selection volume to be returned a possible target. You can see an example of this below.

d56b573fd50c2da2c88e0c13d851336bd86c5d76.jpeg

Its similar to what I created before, instead this now works in Third Person and with any perspective setup with appropriate settings. If you’re camera is closer to the player, you typically want the volume pass through if not in front of the character. You can turn on Draw Debug to persistent or duration to adjust the volume for your specific game type.

I plan to release the update this week. Fixing a bug with selecting targets then its off to the Marketplace.

Thanks for your patience!