Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,230 --> 00:00:04,730
The wall slide is technically working now from a gameplay perspective, but it still doesn't look like
2
00:00:04,730 --> 00:00:08,060
we're sliding down the wall because we have to play the animation.
3
00:00:08,060 --> 00:00:12,470
And that's what we're going to do in this video, and also implement the actual wall jumping so we can
4
00:00:12,470 --> 00:00:14,240
jump from one wall to the other.
5
00:00:14,240 --> 00:00:20,360
Adding the animation is actually very easy, since in our logic for the wall sliding we already have.
6
00:00:20,360 --> 00:00:25,820
This is wall sliding boolean, so we just have to use this in the animation blueprint.
7
00:00:26,610 --> 00:00:32,189
In the content drawer, we go to Content Blueprints, Character player and ABP player.
8
00:00:32,670 --> 00:00:37,740
And in here we already know we can only go into the wall slide while we are falling.
9
00:00:37,740 --> 00:00:41,790
So the only place where we need to add transition is from falling, right?
10
00:00:41,790 --> 00:00:46,500
So from fall we have another animation state and this is wall slide.
11
00:00:47,970 --> 00:00:50,160
And we just double click to open it up.
12
00:00:50,160 --> 00:00:51,660
And here we just play.
13
00:00:52,250 --> 00:00:53,990
Wall slide.
14
00:00:53,990 --> 00:00:59,540
But actually we also need to have the wall slide shooting because we can also shoot while we are sliding
15
00:00:59,780 --> 00:01:00,770
down the wall.
16
00:01:00,770 --> 00:01:06,470
So like for the other places like the fall for example, we also have the select animation by bool.
17
00:01:06,470 --> 00:01:10,340
So we can just copy this, control C and go to the wall slide.
18
00:01:10,340 --> 00:01:14,240
And instead of just connecting this here just the control V to paste this in here.
19
00:01:14,240 --> 00:01:19,640
And yes, so if we are shooting we want to play the wall slide with the shooting.
20
00:01:19,640 --> 00:01:22,280
But if we are not shooting we just want to play the wall slide.
21
00:01:22,280 --> 00:01:22,460
Right.
22
00:01:22,460 --> 00:01:26,630
So false is the wall slide and true is the wall slide shoot.
23
00:01:26,630 --> 00:01:28,190
And again these are animations.
24
00:01:28,190 --> 00:01:31,100
We registered on the animation source before.
25
00:01:31,430 --> 00:01:33,320
And now back in the locomotion.
26
00:01:33,320 --> 00:01:34,340
This is working.
27
00:01:34,340 --> 00:01:37,160
We just need to set up the condition now.
28
00:01:37,160 --> 00:01:42,320
So from the owning player we can just get this wall sliding.
29
00:01:43,160 --> 00:01:44,510
And this is the condition.
30
00:01:44,510 --> 00:01:49,100
If we are all sliding while we're falling, we can transition to this animation and we can just copy
31
00:01:49,100 --> 00:01:53,600
this and put in a condition for going back to falling as well.
32
00:01:53,600 --> 00:01:58,040
So here we just put in the opposite is not boolean.
33
00:01:58,550 --> 00:02:00,950
Just put in the opposite and connect this here.
34
00:02:00,950 --> 00:02:03,110
So if we can wall slide from falling we go in here.
35
00:02:03,110 --> 00:02:06,410
And if the wall slide is going back we just go back to falling.
36
00:02:06,410 --> 00:02:09,440
And from falling we can go back to idle to run to everything else.
37
00:02:10,520 --> 00:02:11,630
Let's just try this out.
38
00:02:11,630 --> 00:02:13,340
Compile and save and go here.
39
00:02:13,340 --> 00:02:14,870
And I'm holding towards the wall.
40
00:02:14,870 --> 00:02:17,960
I'm jumping and you can see where I'm playing the animation.
41
00:02:17,960 --> 00:02:21,980
The position is not correct yet, but the animation is playing.
42
00:02:22,370 --> 00:02:27,440
There is one more problem though is that the animation doesn't reset under certain circumstances.
43
00:02:28,420 --> 00:02:32,020
And this is because in the logic, I have to add one more thing.
44
00:02:32,020 --> 00:02:33,160
Sorry about that.
45
00:02:33,160 --> 00:02:36,640
In the BP player here we set the is.all sliding to false.
46
00:02:36,640 --> 00:02:40,750
This is correct, but we also in the drywall slide function.
47
00:02:41,050 --> 00:02:46,240
And also here if the is descending or the is holding towards the wall is not true.
48
00:02:46,270 --> 00:02:47,860
We also have to do this here.
49
00:02:47,860 --> 00:02:52,360
So the if this is false we also set the is wall sliding back to false.
50
00:02:52,360 --> 00:02:55,390
And this should fix the animation issue which we just had.
51
00:02:55,390 --> 00:02:55,630
Right.
52
00:02:55,630 --> 00:02:57,610
Let me try again I go in here.
53
00:02:57,700 --> 00:02:59,020
Yeah I let go.
54
00:02:59,290 --> 00:03:04,600
And now we can switch between the wall slide animation and not having the wall slide animation.
55
00:03:05,050 --> 00:03:08,860
And the next thing we want to do is to just move the animation a little bit over to the side.
56
00:03:08,860 --> 00:03:10,390
So we are right at the wall.
57
00:03:10,390 --> 00:03:15,490
And this is actually something a little bit tricky for wall slide animations, because the person that
58
00:03:15,490 --> 00:03:22,390
drew the animations doesn't know how thick your collision is, so they cannot actually center this for
59
00:03:22,390 --> 00:03:27,400
you because it is dependent on the thickness of your collision capsule.
60
00:03:27,400 --> 00:03:30,340
So we can actually adjust this in the engine.
61
00:03:30,520 --> 00:03:39,220
To do this we go to our content draw to content paper assets, the characters player, and we need to
62
00:03:39,220 --> 00:03:40,750
look at our frames.
63
00:03:41,410 --> 00:03:43,540
And we can just look for a slide here.
64
00:03:44,210 --> 00:03:46,490
And we have the wall slide.
65
00:03:46,490 --> 00:03:48,320
This one right wall slide zero.
66
00:03:48,350 --> 00:03:49,730
Just double click to open it up.
67
00:03:49,730 --> 00:03:52,640
And we can set the pivot position here.
68
00:03:52,640 --> 00:03:55,880
I think we talked about this before and how this can be useful.
69
00:03:55,880 --> 00:03:58,220
Well now is the time where it comes in handy.
70
00:03:58,220 --> 00:04:03,050
So instead of having center center which is this position, we actually want to move it over.
71
00:04:03,050 --> 00:04:05,600
And none of these presets work for us.
72
00:04:05,600 --> 00:04:07,400
So we actually want to go for custom.
73
00:04:07,970 --> 00:04:09,650
And here on the X we want to change it.
74
00:04:09,650 --> 00:04:11,330
But this one actually doesn't really update.
75
00:04:11,330 --> 00:04:12,230
If we just do like this.
76
00:04:12,230 --> 00:04:14,870
We actually have to let go of the button.
77
00:04:14,870 --> 00:04:17,720
And I think we want to go closer to the wall.
78
00:04:17,720 --> 00:04:17,870
Right.
79
00:04:17,870 --> 00:04:19,339
So we want to go to the left here.
80
00:04:19,519 --> 00:04:23,600
And I think during testing I found that 17 is the right value.
81
00:04:23,600 --> 00:04:26,180
So this puts us closer to the wall.
82
00:04:26,180 --> 00:04:28,070
And let's just try this out.
83
00:04:28,070 --> 00:04:29,480
And this is all we have to do here.
84
00:04:29,480 --> 00:04:32,420
This already applies to the flipbook to our animation graph.
85
00:04:32,420 --> 00:04:35,120
Everything just changing this on the sprite.
86
00:04:35,120 --> 00:04:36,050
And let's try this out.
87
00:04:36,050 --> 00:04:39,740
And yes so now this aligns perfectly with the wall.
88
00:04:39,890 --> 00:04:41,390
So how did I find this value.
89
00:04:41,390 --> 00:04:43,970
Well I just saw that we are too far away from the wall.
90
00:04:43,970 --> 00:04:49,940
I just made the pivot go over to the side and then I just tried until I found a value that makes sense.
91
00:04:49,940 --> 00:04:53,840
And now we have to do the same for the shooting animation while sliding, right?
92
00:04:53,840 --> 00:05:00,290
So if I go here and I shoot while sliding, we kind of pop off of the wall because we need to also adjust
93
00:05:00,290 --> 00:05:01,070
this here.
94
00:05:02,120 --> 00:05:06,200
So back here for the, uh, wall slide shoot.
95
00:05:06,230 --> 00:05:13,940
We also need to go to custom, and I think here as well, we just try 17 of the same value works.
96
00:05:13,940 --> 00:05:17,750
It should probably work and go in here and I shoot and.
97
00:05:17,750 --> 00:05:18,230
Yes.
98
00:05:18,230 --> 00:05:19,970
So you see the bullet is hitting the wall.
99
00:05:19,970 --> 00:05:21,560
This is still a problem we have to take care of.
100
00:05:21,560 --> 00:05:23,480
But the animation doesn't pop.
101
00:05:23,480 --> 00:05:25,100
We are sliding down the wall.
102
00:05:25,100 --> 00:05:26,600
It is in the correct position.
103
00:05:27,020 --> 00:05:29,810
And now we can just save all.
104
00:05:29,810 --> 00:05:30,500
Just save all.
105
00:05:30,500 --> 00:05:32,810
We can close down these sprites and.
106
00:05:32,810 --> 00:05:33,050
Yeah.
107
00:05:33,050 --> 00:05:37,130
So the pivot mode can be very useful for things like this.
108
00:05:37,640 --> 00:05:40,190
Let's quickly take care of the issue with the shooting.
109
00:05:40,190 --> 00:05:44,600
So we are shooting to the left side now even though the gun is on the right side.
110
00:05:44,600 --> 00:05:49,400
And we can just go to the player and we already have the shoot position here, right?
111
00:05:49,400 --> 00:05:53,090
So we want to create a second shoot position that we can use.
112
00:05:53,090 --> 00:05:53,480
First.
113
00:05:53,480 --> 00:05:56,600
We just want to copy paste this so we can just right click and duplicate.
114
00:05:56,600 --> 00:06:01,190
And I'm going to call this shoot POS wall slide like this.
115
00:06:01,190 --> 00:06:07,760
And we now need to look at the wall slide animation so we can again use our trick from before.
116
00:06:07,790 --> 00:06:08,810
Go to sprite.
117
00:06:08,810 --> 00:06:13,730
And instead of the idle we just look for wall slide and actually wall slide shoot.
118
00:06:13,730 --> 00:06:15,860
And we can see that it's looking towards the left.
119
00:06:15,860 --> 00:06:21,110
And this is actually a trick I used because if you have the wall slide, look towards the right.
120
00:06:21,110 --> 00:06:25,610
You actually have to flip the entire character when you wall slide, which again can cause issues with
121
00:06:25,610 --> 00:06:27,050
physics and all those kind of things.
122
00:06:27,050 --> 00:06:31,970
So I actually had the wall slide animation look towards the left in the sprite sheet because this makes
123
00:06:31,970 --> 00:06:33,080
it a lot easier.
124
00:06:33,080 --> 00:06:36,620
Now we just want to adjust this shoot pos wall slide.
125
00:06:36,620 --> 00:06:41,270
Just drag it over here it is the same height, but we also need to change the rotation.
126
00:06:41,270 --> 00:06:44,360
So here on the Z we can rotate like this right.
127
00:06:44,360 --> 00:06:47,270
And I know the exact opposite is 180.
128
00:06:47,270 --> 00:06:49,400
So we can just type in 180 here.
129
00:06:49,400 --> 00:06:53,330
And you see the shooting should then follow this red arrow.
130
00:06:53,360 --> 00:06:54,830
Yeah we are in the good position.
131
00:06:54,830 --> 00:06:55,580
This is fine.
132
00:06:55,580 --> 00:06:55,790
Right.
133
00:06:55,790 --> 00:06:57,860
So these are in opposite directions now.
134
00:06:57,860 --> 00:06:59,270
And this is working fine.
135
00:06:59,270 --> 00:07:03,800
Now we just want to set the sprite back to idle player.
136
00:07:03,980 --> 00:07:04,910
Player idle.
137
00:07:04,910 --> 00:07:05,960
So this is working.
138
00:07:05,960 --> 00:07:07,190
We have our two positions.
139
00:07:07,190 --> 00:07:12,830
And now we simply need to pick between these two positions depending on if we're wall sliding or not.
140
00:07:12,830 --> 00:07:16,130
And where do we pick this uh, when we are shooting.
141
00:07:16,130 --> 00:07:20,180
So in the functions shooting we have the spawn projectile.
142
00:07:20,180 --> 00:07:20,960
Right.
143
00:07:20,960 --> 00:07:24,140
And here for the.
144
00:07:24,140 --> 00:07:26,990
Yeah, the world location and rotation.
145
00:07:27,570 --> 00:07:33,060
We get this from the shoot position and we can actually simplify this a little bit.
146
00:07:34,010 --> 00:07:41,420
So instead of using world location and rotation, we can just drag off here and get World Transform
147
00:07:41,420 --> 00:07:42,380
like this.
148
00:07:42,890 --> 00:07:45,140
And here we can use a select.
149
00:07:45,140 --> 00:07:46,370
So here select.
150
00:07:46,940 --> 00:07:51,350
Utilities select and the condition is is wall sliding.
151
00:07:51,350 --> 00:07:53,300
So get is wall sliding.
152
00:07:53,300 --> 00:07:57,860
Or we can also grab it here from our variables and put this in as the condition.
153
00:07:57,860 --> 00:08:02,960
So if we are not wall sliding false we want the position from the shoot position.
154
00:08:02,960 --> 00:08:07,400
And if we are wall sliding we want it from the shoot position wall slide right.
155
00:08:07,400 --> 00:08:12,200
And then from the transform we only want to use the location and rotation.
156
00:08:12,200 --> 00:08:17,360
So here we can just split the struct pin and just put in the location the rotation.
157
00:08:17,360 --> 00:08:21,890
And we don't want to use the scale like we talked about before multiple times.
158
00:08:21,890 --> 00:08:25,550
And this is just a simple select with branching logic.
159
00:08:25,550 --> 00:08:27,860
So we can flip between these two positions.
160
00:08:27,860 --> 00:08:28,850
And let's check this out.
161
00:08:28,850 --> 00:08:31,910
Compile and save I shoot it still works.
162
00:08:31,910 --> 00:08:34,429
I shoot while wall sliding and it shoots to the other side.
163
00:08:34,429 --> 00:08:36,559
And this is how we fix this problem.
164
00:08:36,559 --> 00:08:40,340
Now that the animations are working, let's work on the jump itself.
165
00:08:41,400 --> 00:08:46,260
If we go to the beep player and we have our IA jump, well, we can just look for it here.
166
00:08:46,290 --> 00:08:48,300
IA jump to find it quicker.
167
00:08:49,050 --> 00:08:50,640
And here we have the IA jump.
168
00:08:50,640 --> 00:08:54,150
So what happens here is if we press the button we jump.
169
00:08:54,150 --> 00:09:00,360
But one thing that is very important, if I press jump again while in the air, we cannot jump again.
170
00:09:00,840 --> 00:09:06,090
One thing about this jump note is that it actually behind the scenes checks for can jump, which is
171
00:09:06,090 --> 00:09:07,800
another function in the character.
172
00:09:07,800 --> 00:09:11,730
And this is false if we try to jump again while being airborne.
173
00:09:11,730 --> 00:09:15,180
And the thing is that with our sliding we count as airborne.
174
00:09:15,180 --> 00:09:18,450
So even if we want to jump here again, we cannot jump.
175
00:09:18,450 --> 00:09:24,060
So what we need to do here is instead of jumping, use the launch character like we did for the knockback
176
00:09:24,060 --> 00:09:26,820
because this one also works while we are airborne.
177
00:09:26,820 --> 00:09:30,570
Now there are a couple of tricks to implement double jumps and those kind of things, but I think in
178
00:09:30,570 --> 00:09:33,660
this case the launch character is a cleaner and better solution.
179
00:09:33,840 --> 00:09:37,230
So now we want to implement some branching logic here.
180
00:09:37,710 --> 00:09:41,670
So here from start it very important make a branch like this.
181
00:09:42,570 --> 00:09:46,440
And we can simply check for is wall jumping.
182
00:09:46,530 --> 00:09:47,640
Is wall sliding?
183
00:09:47,940 --> 00:09:49,770
Is wall sliding right.
184
00:09:49,770 --> 00:09:53,220
And if this is true then we actually want to do this the opposite way.
185
00:09:53,220 --> 00:09:55,200
So just hold Ctrl and pull this here.
186
00:09:55,200 --> 00:09:59,940
So if we are not wall sliding we just want to jump normally this is fine.
187
00:09:59,940 --> 00:10:05,190
And if we are wall sliding then we want to use our launch character node instead.
188
00:10:05,190 --> 00:10:06,960
So here just launch character.
189
00:10:08,000 --> 00:10:10,550
Like this and just drag it over.
190
00:10:11,200 --> 00:10:16,990
And for now, just, uh, split this up, split this drug bin, and at first, just put in the upward,
191
00:10:17,170 --> 00:10:17,950
uh, velocity.
192
00:10:17,950 --> 00:10:20,470
So this 1500, maybe upward.
193
00:10:20,470 --> 00:10:23,020
And let's just try how this works.
194
00:10:23,140 --> 00:10:24,160
Go here.
195
00:10:24,160 --> 00:10:24,580
Right.
196
00:10:24,580 --> 00:10:25,120
So I can jump.
197
00:10:25,120 --> 00:10:29,800
Normally I cannot jump in the air, but if I'm wall sliding I can jump again.
198
00:10:30,480 --> 00:10:34,050
And in some games this is all the wall jumping does, right?
199
00:10:34,050 --> 00:10:35,250
You can just jump straight.
200
00:10:35,250 --> 00:10:39,870
But I think in our game and in a lot of games, you actually want to jump away from the wall.
201
00:10:39,870 --> 00:10:43,710
So up and away, because otherwise a wall jumping is just a bit trivial.
202
00:10:43,710 --> 00:10:43,920
Right.
203
00:10:43,920 --> 00:10:45,330
So everybody can do this.
204
00:10:45,330 --> 00:10:46,680
There's not much skill involved.
205
00:10:46,680 --> 00:10:48,210
It is a lot of fun still.
206
00:10:48,210 --> 00:10:50,430
And if you want to make your game that way, that is fine.
207
00:10:50,430 --> 00:10:54,240
But I actually want to implement a jumping up and away from the wall.
208
00:10:54,240 --> 00:10:56,880
So back in the BP player this is fine.
209
00:10:56,880 --> 00:11:02,010
The launch velocity upward is fine, but we also want to have a launch velocity on x in the opposite
210
00:11:02,010 --> 00:11:03,840
direction of where we are looking, right.
211
00:11:03,840 --> 00:11:06,270
So we can get actor forward vector.
212
00:11:06,270 --> 00:11:06,930
Again.
213
00:11:06,930 --> 00:11:08,640
This gives us the forward direction.
214
00:11:08,640 --> 00:11:10,320
And again we only care about the x.
215
00:11:10,320 --> 00:11:11,940
So we can split the struct pin.
216
00:11:11,940 --> 00:11:16,020
And the x is going to give us minus one for left and one for right.
217
00:11:16,590 --> 00:11:20,970
But since we want to go in the opposite direction, we want to multiply this.
218
00:11:20,970 --> 00:11:24,360
So multiply by minus one.
219
00:11:24,360 --> 00:11:26,850
So this is always going to flip it around.
220
00:11:27,120 --> 00:11:29,460
But this will only give us the direction.
221
00:11:29,460 --> 00:11:33,900
So we actually want to multiply again by the power of the jump.
222
00:11:33,900 --> 00:11:39,720
So let's just say 5000 something crazy just to try it out and put this in for the X.
223
00:11:39,720 --> 00:11:40,020
Right.
224
00:11:40,020 --> 00:11:43,590
So this gives us the direction it's going to flip the direction around.
225
00:11:43,590 --> 00:11:48,840
And this just adds the power of the jump in the x direction.
226
00:11:49,020 --> 00:11:50,640
So it is compiled safe.
227
00:11:50,640 --> 00:11:51,990
Check this out.
228
00:11:52,290 --> 00:11:55,170
And yes so we jump to the other side.
229
00:11:55,170 --> 00:11:58,620
But actually it is not as strong as you would think.
230
00:11:58,620 --> 00:12:04,080
And the problem with this is again we have the lateral falling friction.
231
00:12:04,080 --> 00:12:09,600
So on the character movement component the lateral the falling lateral friction again is kind of causing
232
00:12:09,600 --> 00:12:10,560
issues with this.
233
00:12:10,560 --> 00:12:14,040
So again we have to put in a little bit of a workaround here.
234
00:12:15,010 --> 00:12:21,190
So here, before the launch character again, we just set our lateral falling friction on the character
235
00:12:21,190 --> 00:12:22,150
movement component.
236
00:12:22,150 --> 00:12:25,600
Set lateral falling friction to zero.
237
00:12:25,870 --> 00:12:28,570
Open up some space here like this.
238
00:12:30,400 --> 00:12:32,110
And connect this here.
239
00:12:32,830 --> 00:12:33,400
Right?
240
00:12:33,400 --> 00:12:36,610
So this is gonna solve our problem on first glance, right?
241
00:12:36,610 --> 00:12:38,680
So we properly jump to the other side.
242
00:12:38,680 --> 00:12:43,120
And 5000 is actually a little bit of a crazy value, as you can see, because we get bounced around.
243
00:12:43,120 --> 00:12:46,570
But this solved the problem with the falling ladder friction.
244
00:12:46,570 --> 00:12:51,610
We of course also have to set it back to the original value again after a set amount of time, but this
245
00:12:51,610 --> 00:12:53,440
is one step in the right direction.
246
00:12:54,310 --> 00:12:56,650
So first we want to implement the delay.
247
00:12:56,650 --> 00:12:59,620
So here we put in a retrigger delay again.
248
00:13:00,230 --> 00:13:00,830
Like this.
249
00:13:00,830 --> 00:13:08,660
And first just yeah, leave it at 0.2 and we set the lateral falling friction back to our base value.
250
00:13:08,660 --> 00:13:10,760
And we saved this before and begin play.
251
00:13:10,790 --> 00:13:13,220
We have the base lateral friction value.
252
00:13:13,220 --> 00:13:15,530
And we can just drag this in here right.
253
00:13:15,530 --> 00:13:16,730
So I go like this.
254
00:13:16,730 --> 00:13:20,630
Now I do the wall jump once and we get flung away.
255
00:13:20,630 --> 00:13:23,030
But now I'm back to my regular value.
256
00:13:23,030 --> 00:13:25,880
And I have the air control that we set up right in the beginning.
257
00:13:25,880 --> 00:13:28,820
But the value for the wall jump is way too high, right?
258
00:13:28,820 --> 00:13:30,350
So 5000 is crazy.
259
00:13:30,350 --> 00:13:31,940
So just put it at 1000.
260
00:13:32,460 --> 00:13:35,130
For now, put it at 1000 and see how this feels.
261
00:13:35,840 --> 00:13:36,170
And.
262
00:13:36,170 --> 00:13:38,660
Yeah, this is really nice, right?
263
00:13:38,660 --> 00:13:41,030
These are the kind of wall jumps you see in these games.
264
00:13:42,520 --> 00:13:43,000
Right.
265
00:13:43,000 --> 00:13:48,670
And it makes sure that if we set the lateral friction, it also lets us fly long in the direction we
266
00:13:48,670 --> 00:13:50,020
cannot steer against it so hard.
267
00:13:50,020 --> 00:13:53,260
And it has kind of a fixed direction, which is really nice.
268
00:13:53,260 --> 00:13:56,170
But we also want to make sure it's always the same.
269
00:13:56,170 --> 00:13:57,940
So x, y, z override.
270
00:13:58,240 --> 00:14:00,790
Uh, turn this on just to make sure it's more consistent.
271
00:14:00,790 --> 00:14:04,660
It's not affected by the momentum we already have.
272
00:14:04,660 --> 00:14:07,090
And this just makes it a little bit more consistent.
273
00:14:07,090 --> 00:14:08,710
And now all of this is working.
274
00:14:08,710 --> 00:14:10,810
We just want to clean it up a little bit.
275
00:14:10,810 --> 00:14:15,070
So stop the gameplay and a couple of these variables.
276
00:14:15,070 --> 00:14:15,520
Right.
277
00:14:15,520 --> 00:14:19,000
So this is the horizontal jump power for wall jumping right.
278
00:14:19,000 --> 00:14:24,850
So we can promote the variable and just call it wall jump power.
279
00:14:25,750 --> 00:14:26,260
Port.
280
00:14:27,460 --> 00:14:28,330
For voice and power.
281
00:14:28,330 --> 00:14:30,190
Horizontal compound safe.
282
00:14:30,280 --> 00:14:34,240
And the default value is 1000.
283
00:14:34,240 --> 00:14:34,450
Right?
284
00:14:34,450 --> 00:14:35,320
This is correct.
285
00:14:35,320 --> 00:14:36,610
This is minus one.
286
00:14:36,610 --> 00:14:37,930
This doesn't need to be a variable.
287
00:14:37,930 --> 00:14:40,270
This is kind of obvious what is happening here.
288
00:14:40,270 --> 00:14:41,740
We just flip this around.
289
00:14:42,400 --> 00:14:45,100
And here the 1500, the upward velocity.
290
00:14:45,130 --> 00:14:50,800
We can also do this and promote the variable and call the wall jump power vert.
291
00:14:52,010 --> 00:14:54,200
And put this here compile and save.
292
00:14:54,200 --> 00:14:55,820
And this is just best practice.
293
00:14:55,820 --> 00:14:57,380
So you can just easily update this.
294
00:14:57,380 --> 00:15:00,020
You don't have to just like look through your code every time.
295
00:15:00,020 --> 00:15:04,460
And the last thing I want to put into a variable is the retrigger delay.
296
00:15:04,460 --> 00:15:05,360
So here.
297
00:15:07,570 --> 00:15:11,590
Promote the variable and just call this wall jump.
298
00:15:13,350 --> 00:15:14,190
Lock.
299
00:15:16,390 --> 00:15:17,170
Like this.
300
00:15:19,920 --> 00:15:22,830
And this is all it takes to make the wall jump work.
301
00:15:22,830 --> 00:15:25,080
But let's just collapse these nodes now, right?
302
00:15:25,080 --> 00:15:28,140
We cannot collapse this to a function because we have a delay in here.
303
00:15:28,140 --> 00:15:29,940
So we can just select these.
304
00:15:30,720 --> 00:15:32,610
And just collapse the nodes.
305
00:15:32,760 --> 00:15:35,610
Collapse nodes and just called wall jump.
306
00:15:36,370 --> 00:15:38,440
And now this is again very easy to understand.
307
00:15:38,440 --> 00:15:40,180
We just check for is wall jumping.
308
00:15:40,300 --> 00:15:41,230
Is wall sliding?
309
00:15:41,230 --> 00:15:42,640
If yes, then we can wall jump.
310
00:15:42,640 --> 00:15:45,100
If not, just try to jump regularly.
311
00:15:45,100 --> 00:15:49,000
And then in here we have all of our logic encapsulated.
312
00:15:49,570 --> 00:15:50,410
So congrats!
313
00:15:50,410 --> 00:15:56,920
You just created a wall slide and a wall jump, which is a somewhat advanced, uh, gameplay ability.
314
00:15:56,920 --> 00:16:01,300
And I hope the problem solving skills, the blueprint skills that you learned here, you will be able
315
00:16:01,300 --> 00:16:03,400
to apply them to other things as well.
316
00:16:03,700 --> 00:16:06,010
Next up is the ground slide.
27778
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.