Wednesday, October 15, 2014

Unreal Engine 4 Dev Update #2: Basic Projectile System for Top Down Template

Alright, time for another update. In my previous post, I briefly discussed the system that went into adding a basic Zoom functionality to the Top Down Template in Unreal Engine 4. You can find it here: Unreal Engine 4 Dev Update #1: Zoom Functionality for Top Down Template. Moving onto the matter at hand, I've also added a Blueprint-based basic Projectile system to the template. Again a fairly simple task for beginners. 

First of all, I made a new projectile Blueprint from the 'New Blueprint' menu. Then I added a static mesh component inside it. I added collision for the mesh from the static mesh menu, but that's not necessary. So basically we have the projectile ready by now.

After that, I created a 'Fire Projectile' function inside my player character blueprint. I call this function when player presses the button for firing projectiles. Here's a screenshot of the function.

This function spawns the projectile in front of the player. Since the projectile already has a velocity assigned in the projectile Blueprint, it'll move in the assigned direction right after spawning. First I get the actor location to determine the spawn point. But if I just spawn it using the actor location, it spawns in the player's location itself. Since we usually want to spawn the projectile a bit ahead of the player, I get the actor's rotation first and then get a forward vector from it. Since it was a very small value, I multiplied it by 30 to get a value that's relative to the player character's size. I then add it to the player location and we have a spawn point location ahead of the player. Meanwhile I pass this location and actor rotation value to a Transform node so that I can send it as input into the Spawn Actor node. For the actor class, I chose the projectile Blueprint that I had created earlier. And with that we have created a function for firing a projectile. Once that's done, it's just a matter of calling this function on receiving the fire input from the player. 

And there you have it: A basic Projectile System in UE4. You can see this in action in the following video:

If you're interested in seeing more of my work in Unreal Engine 4, you can check out my Youtube channel as I usually upload the videos there before posting updates here:

Alright that's it for now. Next update on implementing Smooth Zoom functionality coming soon. :)