
In this final part of my Creating a Halo-Style Bubble Shield series we’re going to be adding a suite of additional models, sounds, and animations to prepare the vfx assets we’ve made so far for use in an actual game.
This part of the series is a little different as it doesn’t involve a step-by-step guide to creating a specific effect, but rather a breakdown of the new assets and logic used to create the final Bubble Shield asset used in the video below. Where you go from here is up to you!
Download the Unreal project
This is the fifth part of my ongoing series Creating a Halo-inspired Bubble Shield for Unreal Engine 5.
If you would like to access to the source files from this series I would like to invite you to subscribe to my Patreon, where you will be able to download them alongside content from all current and future techarthub tutorials.
The Projector Assets
If we’re going to be using our Bubble Shield in combat we’ll need an Actor that represents its source. This could be anything basically, but in the spirit of our inspiration I’ve gone with what I can only describe as a six-legged Spider Projector that can be folded up for transport and will unfold automatically when deployed.

Legally distinct.
My Projector asset is broken into two parts, a Projector Skeletal Mesh and a Prism Static Mesh. This allows me to destroy the shield part without needing to remove the entire Actor. You can see this behaviour in the demo video.

The mesh and texture assets I created for the Projector.
Materials
The Projector asset uses a texture mask for each of its parts. These textures contain Ambient Occlusion and Curvature information baked out of Substance Designer, as well as a mask for the Metallic and Emissive channels.
This information is used in the Material to apply color, as well as driving the Rroughness/Metallic/Emissive values.

The Projector Material
Click for a higher resolution version.
You might have noticed I’m also using a Scalar Parameter called C_Intensity in both Materials which acts as a multiplier at the end of the emissive chain. I use the prefix C_ when declaring values that are controlled by an Animation Curve.
For more context you can read about my approach to creating and working with Animation Curves here!

The Prism Material
Click for a higher resolution version.
This will come back up later when we start hooking up animation-led Material effects, but for now just be aware that the naming convention is important if you’re looking to use my animation assets to control the effect.
Physics Asset Setup
The Projector’s Physics Asset has been set up with some powerful angular motors (one for each leg) that allow it to automatically unfold as its deployed. Not only does this let us play with the speed and timing of the animation, but it also creates some really fun dynamic behaviour as the device is tossed around on uneven ground.

These are the settings I used for the angular motor constraints.
Using motors within your Physics Asset to drive this kind of behaviour can be really powerful, but surrendering animation control over to Unreal’s physics engine can also sometimes lead to strange and unintended behaviour. For this project that’s all part of the fun, but if you’d like more direct control over how your Projector unfolds I’d recommend animating it in Control Rig.
My Projector’s Physics Asset simulating in zero gravity.
Animations
To complement the physics-driven animation I also authored a number of additional animations in Maya.
These short sequences for activation/deactivation include a range of custom attributes that drive not only values in the Projector Material, but also the scale of the Bubble, the spin of the Prism, and the intensity of the volumetric effects we added in Part 3. These are mostly handled within the Projector Blueprint which we’ll dive into soon.

These animations are strung together within a very simple Animation Blueprint that starts off in a deactivated state before allowing the Projector to move through the process of activation, idling, and then shutting down with an optional overcharge if it’s left on too long.

The Projector becomes inert after running through this sequence based on the timings you define in the Blueprint.
These transitions are operated by three bool values that are toggled in within the Projector Blueprint, although in the next update I was thinking of replacing them with an Enum as so far only one state is ever active at a time.
| bDeployed | Has the Projector unfolded and is ready to fire up the Bubble? |
| bActivated | Is the Projector currently emitting energy? |
| bExpired | Has the Projector reached the end of its life cycle? (this leads to overcharge) |
Animation Notifies
I am a huge fan of animation-led functionality, and I placed a lot of the Bubble Shield’s more cosmetic behaviour within Animation Sequences as Anim Notifies.

Creating a physics impulse, playing audio, and spawning a one-shot Niagara effect within the Activation Sequence.
Side note
I give all of my custom attributes the C_ prefix to help keep things organized, but this just a personal preference. I mostly do it to avoid the potential scenario where imported animation curves hijack something they’re not meant to because they share a common name.
Most of these Anim Notify events are engine-default presets that play sounds and/or spawn Niagara systems, but a few have their own logic that is stored in the Animation Blueprint.

The logic within the Projector’s Animation Blueprint is triggered via Anim Notify.
Click for a higher resolution version.
Audio
The Bubble Shield project now also includes a range of sound effects for both the Projector and the Shield itself. Audio production is definitely not my wheelhouse so I’m pleased to reveal that these assets were lovingly created by friend of the site Hollister Starrett.
I’m very grateful for his assistance!

I commissioned these more than two years ago. Sorry it took so long to get around to sharing them, Holl!
Logic
The main goal of this series was always to provide you with the assets you need to add a Halo-Style Bubble Shield to your own projects, but as I don’t know anything about how you want to go about implementing such a thing there is a limited amount of logic I can prepare. That said, at the very least there is some VFX and audio-related setup to do.
When Event Begin Play is fired the Projector will run through a series of timed actions as the device deploys, activates, and eventually expires. In your project you might consider making this a custom event (or series of events) that can be triggered when the Projector is thrown or dropped.
In time I hope to create something similar for my Shooter Sandbox project, and I’ll share my solution here when it’s ready.

I had to do some reroute gymnastics to get it all to fit in a legible way for the picture.
Click for a higher resolution version.
Event Tick contains our animation-driven updates. It sets the scale of the Bubble, animates the Prism, and updates the Materials. If you’re not comfortable using Event Tick these could be put on a looping timer instead, but you may experience some stuttering.
Don’t forget to disable Event Tick when the Shield has finished deactivating!

Finally, I also added a little logic to the On Component Hit event, just to make some impact sounds. This functionality is ripped directly out of my Flashbang VFX asset, and just makes sure that we don’t play overlapping impacts when the Projector is sliding along the ground.

Stretch goals
I started the Halo-Style Bubble Shield series all the way back in 2021 with the intent to make each part its own standalone tutorial that would have as wide an application as possible. This part of the series proved more difficult (and took so long to create) because it didn’t fit this mold.
It instead became the culmination of a whole bunch of little things that are really only relevant to creating this one specific asset.
I’m glad we made it here in the end, though. There are a lot of directions we can take the project now that all the pieces have been brought together. I have some ideas, but I’d also love to hear yours! If you’ve been following along so far, thank you so much for sticking around.
If you have any questions, comments, or suggestions for future techarthub projects you can always find me in the techarthub Discord server, or you can reach out via email if you’d prefer.
I’ll leave you with some of the ideas that have been floating around as to where things might go from here. Feel free to let me know any you’d like added to the list!
- Using Sound Volumes to dampen audio coming from within the Bubble when you’re outside it (and vice versa)
- A proper collision channel set up so players (and/or vehicles) can pass through, but projectiles cannot
- Additional logic for picking up and deploying the Bubble Shield in both first and third person




