Interactable Visuals and Other Changes - Ryan Brown


This may be a bit of a shorter post, but another one will be coming on Thursday.

Last week, my team and I were impacted by Hurricane Milton, and weren’t able to get as much work done as we probably would have liked to. In my last post, I ended the update with a problem I was facing with casting to Interfaces in C++. Thankfully, one of my team members, Clayton Jetton, was able to find a solution to this shortly after I made that post. Instead of casting to the interface, we can instead confirm that the actor implements the interface without any casting as shown here:


Then, we can simply call “Execute_” prepended versions of those interface functions statically, passing in the actor that we now know implements the interface. 


Some other small things I accomplished last week include the addition of healing stims to the player’s HUD:

This stims count unfortunately does not update based on how many stims the player has, as the logic for limiting that amount does not yet exist, and the player can currently use healing stims infinitely. That said, it is already linked to the delegate that will pass that information to the HUD, so once the logic exists, this counter should already be functional.

Next, the growing list of controls that could be toggled on and off on the player’s HUD was starting to annoy me. Even with the ability to hide them, it was still getting a little out of hand, so I migrated them to a separate panel of the Options menu, along with some buttons to swap between the controls info and the volume settings:


Finally, the biggest thing I got done last week (though still not that big) was some visual feedback for being able to interact with pickups. I made some icons pretty quickly using Gimp and a custom widget so I can change the text of the “F” icon later if needed. The first iteration of this used a component called a Billboard that was attached to some overlap spheres on the Base Pickup blueprint. The overall logic behind those Billboards appearing remains unchanged: when the player enters the larger sphere, a diamond icon appears on the interactable, and whichever interactable’s smaller sphere is closest to a ray cast from the center of the player’s screen is given the “F” icon to show that the player can pick it up by pressing “F”. The problem with Billboards was that they appeared in world space, so they would clip into the interactable itself at certain angles and they weren’t very vibrant or noticeable. The solution I found for this was to instead create my own Widget Component for the Base Pickup to attach to the overlap spheres instead of the Billboards, which are projected to screen space. Otherwise, they work very similarly to the Billboards, containing an assignable image that appears when conditions are met, like so:


Leave a comment

Log in with itch.io to leave a comment.