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. :)

Tuesday, October 14, 2014

Unreal Engine 4 Dev Update #1: Zoom Functionality for Top Down Template

I've been meaning to put this post for quite some time. As mentioned in my previous post At the Crossroads, I've started working on Unreal Engine 4. On the side, I've also uploaded some videos of the stuff that I've been doing with the engine. Over here, in the blog, I plan to briefly describe the process for the same. So here goes the first update.

I started working on the default Top Down Blueprint template that came with the Unreal Engine. It basically contains a Top Down game template with the default blue player character and a camera adjusted so as to give it an isometric view. There's a basic level built using some BSP brushes and you can move the player around. That's all the functionality that comes with it by default. So first thing, I decided to add a basic Zoom functionality. Since I was more interested in Blueprints, I went through a few tutorials on it and then dived right into action. After tinkering around the engine for a while, I got a basic zoom system running. It zoomed in and out only in increments of 100 units at a time, yet it was a start. Below, you can see a screenshot of the Blueprint scripting that went into it.

It's pretty simple if you look at it. It's just a matter of understanding what functions and commands are available at your disposal, atleast for matters like these. It's completely done within the My Controller Blueprint that already exists by default. The Controllers are used to control the pawns (or characters) in Unreal Engine. I've assigned two input buttons for Zoom in and Zoom out in the Project settings. Basically what happens is that, as soon as either of those buttons are clicked, I call my player character blueprint, which contains the camera and settings for changing it's location/ orientation relative to the player. I then access the camera object and add or subtract 100 to it's target arm length property, which controls it's distance to the player. I also add a clamp at the end to restrict the maximum and minimum zoom settings. Finally, I set the new value to the target arm length of camera.

So there you have it. A Blueprint based basic Zoom functionality for the Top Down template in Unreal Engine 4. You can see a video of it in action in my Youtube Channel as well:

So that's it for the first update. Will put the rest of the updates soon. Until then, goodbye.