欢迎光临散文网 会员登陆 & 注册

UE4蓝图-杨一鸣塔防游戏全套学习笔记

2023-03-17 22:15 作者:东野树  | 我要投稿

整体上添加了一些自己的想法来制作,感谢大佬的教程

塔防游戏制作

1.工程准备新建项目-导入素材

2.新建地形-新建spline样条组件-在地图上绘制出想要的塔防怪物移动路线-通过样条来实现怪物的移动路径。(与教程中的方法不同,相对来说可以稍微简单一点)

 


3.构建怪物主蓝图-通过其子类蓝图来控制不同类型的怪物-同时在主蓝图里面写敌人的前进逻辑。

 

4.构建子类怪物蓝图,在其中导入对应的怪物资源,添加动画,调整位置。

同时在怪物蓝图的胶囊体组件中将碰撞预设设为:避免怪物不能重叠或者和子弹不能重叠等问题。

 

5.在路线图蓝图中写怪物生成出来的逻辑,即自定义事件:敌人生成事件

构建结构:敌人类型数量,来存放所需的值。同时在路线蓝图中新建变量:敌人类型数量-类别选择为刚刚创建的结构,数组类型:

 

6.根据上面建好的,开始在路线蓝图中书写生成敌人的逻辑:

 

 

 

书写完毕后,就完成了初步的地图构建,路线逻辑,敌人生成逻辑等。

7.开始制作塔基和子弹:

基础逻辑:

(1)事件开始运行--先设置一个自定义事件(检测周围有没有敌人),通过(以事件设置定时器)来实现持续检测是否有敌人--检测敌人事件中将范围内检测到的敌人手机到一个数组(所有敌人)--通过分支来进行下一步--当(所有敌人)中有敌人时,随机选择一位敌人(当前选择的敌人)--选择后关闭检测

 

(2)设置子弹总类—实现子弹的发射,每个塔台子弹细节在其子类蓝图实现:

 

(3)检测到敌人后,开始转动塔台,如下第一张图片——接着辨认与(当前选择的敌人)距离是否超过自己想要的最大距离,未超过——执行(发射子弹)事件,超过——回到(1)开始,重新检测选择下一个敌人,如下第二张图片:

 

 

(4)事件(发射子弹):其可以实现子弹在未检测到敌人是自动装填好,一旦检测到敌人就马上攻击,无需等待攻击时我们所设置的每发子弹0.5秒的发射间隔,更加自然(很妙啊!!!)

 

8.添加子弹伤害和敌人生命:

(1)添加子弹伤害后,由于第一个怪物被打死后炮台失去了(所选择的敌人)目标,会停止运转,所以需要在塔基蓝图中设置(所选择的敌人)无效时塔重新检测敌人。多个炮台发射子弹后,有的子弹可能没到怪物身上怪物就已经死了,所以直接加一个销毁子弹在子弹总类中,以免子弹乱飞。

 

 

(2)敌人死亡:设置敌人初始生命值,获取伤害,检测当前生命值,是否不大于0,是,则敌人死亡,播放死亡动画(记得修改mesh碰撞),否,则继续运行。

 

9.设置终点蓝图:

在游戏模式中添加变量:血量;在敌人总类中添加变量:伤害

 

10.创建UI:

(1)血量UI:基础结如下

 

在血量百分比上添加绑定:绑定自己游戏模式中的血量,记得÷100。

 

在金币文字上添加绑定:获取1gamemode中的金币数值,用字符串附加到文字上,实时返回节点,达到更改金币数值的目的。

 

注意问题:如上操作敌人死亡后尸体进入终点一样会扣血,改正方法

在终点蓝图中添加一个检测敌人死亡的分支,敌人未死亡进入终点才扣血。

 

(2)升级UI:先设计出基础框架-接着给两个按钮设置点击事件。


花费按钮的内置函数:当塔到达满级时就不再显示升级按钮,

绑定在可视性上,如下:

 

接着给花费设置文本事件去更改每个等级显示的升级金币数量,最后给升级按钮设置点击事件:如下

注意:升级按钮会调用在塔基中的事件(升级),记得设置每个等级升级完成后减少对应的金币数量。

 

下面是出售塔按钮的点击事件,基本操作如上:主蓝图如下:

 

11.塔基升级:

设置点击光圈会出现升级UI,开始先移除所有UI,保证同时只有一个UI:

 

接着生成UI,并且设置其位置在鼠标点击的位置:

 

然后设置自定义事件:升级和出售,如下。

注意:升级塔时设置好每一级会出现的网格体(尤其注意一下大小),还有设置每一级的光圈颜色。出售塔后记得设置光圈颜色到等级0时。

 

12.不同等级子弹的制作:

不同等级子弹拥有不同效果:不同伤害,外型特效,射速以及攻击范围。

一级子弹:绿色,射速1500,伤害10,攻击范围500,发射速度0.5秒一个

二级子弹:蓝色,射速1800,伤害20,攻击范围600,发射速度0.45秒一个

三级子弹:紫色,射速2200,伤害35,攻击范围700,发射速度0.40秒一个

四级子弹:红色,射速2800,伤害50,攻击范围800,发射速度0.35秒一个

五级子弹:金色,射速3500,伤害100,攻击范围1000,发射速度0.3秒一个

标红的范围会鬼畜乱转,暂定600

13.不同等级怪物的血量,价值,伤害与速度:

怪物1:血量200,价值50,伤害5,速度600

怪物2:血量500,价值100,伤害7.5,速度400

怪物3:血量2000,价值200,伤害10,速度500

怪物4:血量5000,价值300,伤害15,速度800

怪物5:血量10000,价值400,伤害20,速度1000

14.不同等级塔的升级花费和售出塔的收获:

建造一级塔:花费20,出售10

建造二级塔:花费50,出售35

建造三级塔:花费100,出售85

建造四级塔:花费200,出售185

建造五级塔:花费400,出售385

15.开始界面,胜利界面以及死亡界面:

开始界面:新建一个地图作为主界面,在其关卡蓝图中添加主界面UI

 

胜利界面: (bug修复完毕)

 

Bug修复:如果游戏失败,但是最后的敌人生成完毕,场上的敌人被销毁,系统检测到敌人没了,就会同时放出死亡和胜利界面。解决方法:

将游戏失败单独封装为自定义事件放入游戏gamemode中,设置布尔值(是否失败?)来解决失败后敌人继续生成的问题

 

最后一波敌人生成后,游戏失败时胜利界面也会出现的问题解决方法:

将gamemode中的(游戏失败?)变量调用,一旦游戏失败就不再检测

 

死亡界面:做好后添加到终点蓝图中(当前已放到游戏模式中了)

 

16.怪物血条

(1)创建怪物血条UI

做完后发现并不是那么美观,就去掉了

 

17.场景美化(自制)

(1)通过素材一点点装饰成自己想要的样子:

 

 

 

 

待实现功能

1.可以制造不同的塔,每种塔伤害不同,而不是只有一种可以升到五级的塔(未完成)

2.玩家可以切换视角到塔台上,体验不一样的视觉感受

3.优化升级UI界面,怪物,人物血条(就是搞好看点)(怪物血条暂定,不是很好看)

4.优化伤害计算,不同类型,不同等级的塔应该有不同的伤害,速度等(完成)

5.优化子弹和特效,同一个塔可以暂时用一个子弹,但是不同塔必须有不同的子弹特效,功能什么的,就是不能太单一,避免无趣(完成,但是没有多种塔)

6.四周场景优化,地图太空,塔台播放动画,音效(完成)

7.是否有几个关卡,每个关卡出现新的怪物?(暂不完成)

8.是否每一个关卡可以制作新的塔台(如第一关只有一种塔,第二关增加一种…?(暂不完成)

9.是否添加可摧毁障碍物和可标记优先进攻敌人和障碍物?(暂不完成)

10.各种音效的添加,塔攻击,升级,出售,怪物死亡等等(会很吵,暂定)

11.剩余敌人数量和波数提示

12.游戏背景音乐(完成)如何实现背景音乐循环:

 

13.起点和终点建筑(暂定)

14.开场动画(完成)


 杨一鸣塔防教程学习完毕,希望能对大家有一些帮助

 

 


UE4蓝图-杨一鸣塔防游戏全套学习笔记的评论 (共 条)

分享到微博请遵守国家法律