WEBVTT

00:07.060 --> 00:08.430
Welcome back.

00:08.440 --> 00:14.980
So we're ready to start creating some classes that belong to the gameplay ability system framework.

00:15.280 --> 00:21.880
Now that means we have to enable gameplay ability system as it's a plugin in Unreal Engine, so we have

00:21.880 --> 00:24.370
to enable that plugin first and foremost.

00:24.400 --> 00:33.940
We do so by going to edit and plugins and search for gameplay abilities and we check the checkbox for

00:33.940 --> 00:34.960
gameplay abilities.

00:34.990 --> 00:42.760
Now we have to restart the editor, so we'll restart now and with that gameplay abilities are enabled

00:42.760 --> 00:47.290
and we can start making classes in the gameplay ability system plugin.

00:47.290 --> 00:51.610
Now we know we want an ability system component and an attribute set.

00:51.610 --> 00:58.900
So we're going to create those and that means we'll go to C plus plus classes or a public and I'd like

00:58.900 --> 01:02.950
to right click and make a new C plus plus class here.

01:02.980 --> 01:10.430
Now I have to choose all classes and search for ability system component.

01:10.550 --> 01:14.360
And here we have one now clicking next.

01:14.360 --> 01:21.530
I'd like my ability system component and my attribute set to be in their own folder.

01:21.530 --> 01:29.570
So I'm going to make a new folder here called Ability System and this ability system component.

01:29.570 --> 01:35.360
I would like to be the base class for all ability system components in my project.

01:35.360 --> 01:41.390
And because my project is called Aura, I'm going to use Aura as a prefix.

01:41.390 --> 01:49.670
So many times when you look at code for a large project, you usually have some kind of prefix that

01:49.670 --> 01:57.680
goes before most of your classes that represents sort of the dev team or maybe the project name or something

01:57.680 --> 01:58.610
like that.

01:58.610 --> 02:07.310
For example, if I were creating a shipped game with my company Druid Mechanics, I might have DM here.

02:07.310 --> 02:14.150
So it might be called DM ability system component, but this project is called Aura, so I'm going to

02:14.150 --> 02:16.280
be using Aura as a prefix.

02:16.400 --> 02:21.020
As you've seen already, we have aura player controller or a player state.

02:21.050 --> 02:24.350
Now we're going to have aura ability system component.

02:24.530 --> 02:27.170
So let's go ahead and create this class.

02:29.430 --> 02:34.450
Now, before I close the editor, I'm also going to create the attribute set.

02:34.470 --> 02:43.560
So I'm going to right click new C plus plus class and I'll search for attribute, set and choose attribute

02:43.560 --> 02:44.190
set.

02:44.550 --> 02:53.370
I'm also going to place this in ability system, and I'm going to call this aura attribute, set and

02:53.370 --> 02:54.780
click Create Class.

02:54.990 --> 03:00.330
Now I'm going to go ahead and close out of the editor and wait for writer to update.

03:00.450 --> 03:07.770
And now after collapsing some of these folders to keep this nice and neat, I'm going to expand Ability

03:07.800 --> 03:13.620
system to see aura attribute set and aura ability system component.

03:13.800 --> 03:16.230
I'm going to go ahead and open or attribute set.

03:16.260 --> 03:22.830
Here's what it looks like and we see that our attribute set is based on the class you attribute set.

03:23.400 --> 03:25.850
Let's look at our ability system component.

03:25.860 --> 03:29.970
We see that it is based on you ability system component.

03:30.210 --> 03:32.000
So this is looking great.

03:32.010 --> 03:36.240
So now we have these classes and we can go ahead and wrap up the video.

03:36.240 --> 03:43.710
But before we do so, we're going to want to include some modules that we'll be using in our code for

03:43.710 --> 03:45.780
our gameplay ability system project.

03:45.780 --> 03:51.570
So we're going to go into Aura dot, build CSS so we can add some modules here.

03:51.660 --> 03:55.950
Now we can add these to the private dependency module names.

03:55.950 --> 03:57.900
We're going to add a few things here.

03:57.900 --> 04:01.770
One of the modules we need is gameplay abilities.

04:02.610 --> 04:07.230
There are some classes that exist in that module that we'll need.

04:07.440 --> 04:10.080
Another that we'll need is gameplay tags.

04:10.080 --> 04:14.820
We'll add that as well because we're going to be creating and learning about gameplay tags.

04:15.060 --> 04:20.220
And finally another module that we'll need is gameplay tasks.

04:21.540 --> 04:25.940
And we won't really need that until we start making some tasks of our own.

04:25.950 --> 04:32.310
But it's best that we add these modules now so that we don't have to worry about it later.

04:32.310 --> 04:38.970
So we'll go ahead and add those here and we'll save all and close out of the build file.

04:39.240 --> 04:45.960
And now we have our ability system component class and our attribute set class.

04:45.960 --> 04:51.390
And now we're ready to give these to our character by adding it to the player state.

04:51.390 --> 04:52.980
And we'll learn how that works.

04:52.980 --> 04:57.030
And we also would like to give these to our enemy class.

04:57.030 --> 05:04.410
So we'll do those things next and we'll learn the significance of what it means to add these to these

05:04.410 --> 05:05.520
various classes.

05:05.520 --> 05:08.310
So great job and I will see you soon.
