【虚幻引擎】UE4初学者系列教程实战篇——坦克大战案例操作全流程(简单回合制版/复杂版)

目录

目录

目录

一、准备工作

二、制作相机

三、实时更新相机的位置

1.相机摇臂的长短

2. 开始使用摇臂

四、调整地形

1.修改悬崖的颜色

2.修改地面的颜色

3.修改Building01的材质

4.修改Building02的材质

5.修改Green的材质

6.修改Column的材质

7.修改Crater01、Dunes01、Dunes02的材质

8.修改Helipad的材质

9.修改OilStorage的材质

10.修改PalmTree的材质

11.修改PumpJack的材质

12.修改Radar的材质

13.修改Refinery的材质

14.修改Rocks01、Rocks02、Rocks03的材质

15.修改Ruins01的材质

五、调整光线

六、动态修改坦克颜色

七、子弹生成

1.修改按键截图

2.添加子弹

3.修改子弹发射频率

八、血条

1.添加血条

2.更新血条状态

3.子弹血量

九、切换玩家

1.添加按键输入

2.添加玩家

十、加强子弹的制作

1.导入箭头

2.填写箭头的3d缩放

3.修改子弹的重力

十一、制作回合

1.创建蓝图存放游戏数据

 2.辨认哪一个玩家死亡

3.创建获胜的UI

4.生成UI让玩家不能控制

十二、重置关卡部分

1.暂停游戏并上传数据

2.创建关卡重置的UI

3.创建游戏存档

十三、运行画面



一、准备工作

创建两个文件夹,分别取名为蓝图和模型(meshes)

将素材包中的模型导入到meshes文件夹内,注意导入的时候要选中合并静态网格体,不然会出现tank散架的情况。

在blueprints里面,创建一个GameModeBase游戏模式基础,取名叫做TankGameMode。

再复制一个第三人称小白人,到blueprints里面粘贴。

在TankGameMode,类里面修改默认pawn类选TanksCharacter。

在项目设置中找到地图和模式,默认模式选择成TankGameMode。

在TanksCharacter,蓝图里面修改自己想要的内容

修改小白人的可视化,点击tank添加网格体

修改胶囊体组件,修改胶囊体的数据

删除画面中的小白人,拖动TanksCharacter到画面中

给坦克一个控制权,搜索poss给玩家控制权,设置玩家0和玩家1

二、制作相机

制作一

制作二

创建一个actor类的蓝图,取名叫做CamerasControl

进入,CamerasControl添加上camera,来填写一下蓝图的内容:

表面方面,我们期望在切换角色时,不是生硬地切换镜头,而是线性的画面转移,所以涉及到新节点set view(中文名:使用混合设置视图目标)

在UE4中,设置混合设置视图目标的节点是用于在游戏中切换摄像机视角的一种方法。以下是对各个参数的解释:

  1. 目标(Target):这是你想要切换到的新的视图目标,可以是一个角色、一个物体或者一个位置。

  2. 新视图目标(New View Target):这是你想要设置为当前视图目标的对象。它可以是一个角色、一个物体或者一个位置。(就是让当前的摄像头去新的目标,比如切换后,使用新角色为目标。)

  3. 混合时间(Blend Time):这是切换到新视图目标时的混合时间,用于平滑过渡。你可以设置一个时间值,以控制从当前视图目标到新视图目标的过渡效果。(当前摄像头去新目标,所需花费的时间。)(混合速度的曲线,比如由快而慢或由慢而快。)

  4. 混合函数(Blend Func):这是用于控制混合过渡的函数。UE4提供了几种不同的混合函数,如线性、平方根和立方根等。你可以根据需要选择适合的混合函数。(渐变方法(由慢而快,由快而慢,线性,或者其他一些改变视角的方式))

  5. 混合指数(Blend Exp):这是混合函数的指数值,用于调整混合过渡的曲线形状。较小的指数值会产生更平滑的过渡效果,而较大的指数值会产生更快速的过渡效果。

  6. 锁定输出(Lock Outgoing):这是一个布尔值,用于控制是否锁定当前视图目标。如果设置为true,那么在切换到新视图目标后,将无法再切换回之前的视图目标。

连接到玩家控制器,注意玩家控制器数值为0/1。

将相机的位置信息复制到新建立的actor上面,将两个位置重合。

三、实时更新相机的位置

添加自定义事件,来实时更新摄像机的位置,

1.相机摇臂的长短

取名为UpdatePos (搜索自定义再取名)

 Initial Start Delay是开始延迟0.5秒间隙才开始进入定时器

Time是0.02秒过后进入事件(EVENT)

EVENT:就是每过两秒要进入的事件,当前事件为UpdatePos

Looping:就是设置循环,每0.02秒过后进行一次进入事件。(不止一次)

先建立一个相机的位置

再创建一个目标位置

通过数组设置当前玩家的位置

接着来判断一下数组的长度,长度不等于0,则表示不是空值

不是空值就可以进行赋值

获取player0的两个位置,get玩家1玩家2

让这两个向量相减,获取到这两个向量的长度

算出来的长度也可能是负数,搜索abs,让他变成正数,成为绝对值

由于地图很大所以地图里面的数据也会很大,所以这个时候要取他的平方根,开完方得到的数据就是他们的距离

需要乘一个长度,为了给摇臂动态数值,乘一个小数调节长度。*(float×float),并且提升为一个变量

2. 开始使用摇臂

设置目标臂长度和数据相连接

当两个太近或是太远 可能返回值是10或者20,那么摇臂摄像机和坦克就叠在一起了,所以现在还要调整一下返回值的长度,将数值限定在一个范围内,有最小值,有最大值

数值给到500最小,5000最大

那么第一步的摇臂长度已经做完了

再来调整相机拍照位置,在两个坦克之间,给newpos赋值,相加后在除以2

拉动到set右侧

可以直接连接赋值,将他们设置为平滑移动

V插值是一种用于平滑插值两个值之间的节点
Current:表示当前的值或状态。
Target:表示目标值或目标状态。
Delta Time:表示两次更新之间的时间差。在游戏中,每帧都会有一个时间间隔,Delta Time就是这个时间间隔的值。
Interp Speed:表示插值的速度或者过渡的速度。它决定了从当前值到目标值过渡的速度有多快。
V插值节点可以用于各种情况,比如平滑移动物体、平滑过渡动画等。它通过在每一帧更新当前值,使其逐渐接近目标值,从而实现平滑过渡效果。
 

将oldpos设置一下,oldpos=newpos

调整一下间隔碰撞

设置摄像机碰撞

四、调整地形

拖动地形,terrain

选择这个当作地面地图,修改他的参数

调整光照效果(可移动)

1.修改悬崖的颜色

颜色9F6D3E

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值