目录
效果
步骤
一、无限生成砖块
二、制作门
三、停止移动并生成门
四、进入门
效果
步骤
一、无限生成砖块
1. 新建一个Basic关卡,再新建一个Pawn类,这里命名为“BP_MyPawn”
打开“BP_MyPawn”,添加一个胶囊体碰撞组件和一个摄像机组件
在事件图表中先添加一个布尔变量,用于表示玩家是否点击,当该布尔为false时摄像机就一直往前走,为true时就停下并生成一道门。这里变量命名为“IsStop”
在事件图表中添加如下节点,表示当“IsStop”为false时就让Pawn每帧沿着X轴负方向走1cm。当按下1键后设置IsStop为True
让摄像机旋转180°
2. 在世界大纲中设置注意一下天空的可移动性要为“可移动”,位置为世界中心。不然当Pawn一直移动就会走出这个天空球体区域
向场景中拖入两个立方体,位置分别为(0,50,0)、(0,-50,0)
设置立方体也是可移动的
再拖入一个玩家出生点放置在两个方块的正上方
多复制一些立方体用于表示道路,这里一共放了14个立方体
我们可以将这些立方体都放置到同一个文件夹中
3. 新建一个actor蓝图,这里命名为“BP_MenuRoad”
打开“BP_MenuRoad”,添加两个立方体静态网格体组件,这里分别命名为“Cube_L”和“Cube_R”
设置“Cube_R”和“Cube_L”的位置也分别为(-600,-50,-400)和(-600,50,-400)
继续添加一个公告板组价和一个盒体碰撞区域组件
设置一下盒体碰撞区域组件的位置和盒体范围
为了方便观察我们可以让盒体碰撞区域组件显示
4. 将“BP_MenuRoad”拖入场景中,设置一下位置为(-100,0,50)
此时在左视图中可以看到在“BP_MenuRoad”中两个方块如果提升高度的话正好可以补充后续的道路
5. 回到“BP_MenuRoad”,在事件图表中添加盒体碰撞组件重叠时的触发逻辑:
首先当pawn进入到盒体碰撞区域后判断一下玩家是否停止移动。
如果停止移动就生成门,没有停止的话就继续生成道路砖块
添加道路砖块:
生成砖块之后用一个随机布尔来控制左右哪个砖块先上升,
布尔为true就左边砖块先上升,然后约0.1~0.3s后让右边砖块上升。布尔为false就右边先上升然后再左边上升。
时间轴曲线如下,三个关键帧分别为(0,-400),(2,20),(3,0)
最后延迟10s,若玩家没有停止就删除砖块。
合并上面的节点,这里命名为合并后的图表为“EndlessRoad”
此时运行效果如下:
二、制作门
6. 这里准备用Niagara制作一个传送门,具体参考:【UE Niagara】制作传送门_Part1_ue
效果如下:
注意每一个发射器都需要勾选“本地空间”
三、停止移动并生成门
7. 新建一个Actor蓝图用于表示门,这里命名为“BP_Door”。该蓝图中添加了一个Niagara组件。
Niagara系统资产使用“NS_Portal”
在事件图表中添加如下节点,表示当“BP_Door”创建后就按照时间轴曲线修改粒子的Z轴上的位置
时间轴曲线如下,三个关键帧分别为(0,-500)、(2,300)、(3,200)
8. 在“BP_MyPawn”中设置停止后创建“BP_Door”
此时当我们按下1键后,效果如下:
9. 我们希望Pawn停止的时候有一个惯性来慢慢停止移动,可以用时间轴来慢慢减少Pawn的偏移量
时间轴曲线如下,两个关键帧分别为(0,-1)、(2,0)
此时运行游戏可以观察到当我们按下1键停止时会有一种惯性的效果让视角继续向前移动一点距离,然后生成门。
四、进入门
接下来我们希望点击按钮进入门,然后进入新关卡
10. 可以先创建一个控件蓝图,这里命名为“WBP_StartGame”,该控件主要包含一个覆盖全屏的按钮和一个文本
当控件蓝图创建后,将“点击进入”字样的文本弹出,然后显示鼠标
当按下按钮后让pawn快速向前移动,然后逐渐开始白屏,最终进入新的关卡
11. 在“BP_MyPawn”中设置当创建了门后就创建控件
最终效果如下:
参考视频:
https://www.bilibili.com/video/BV1K44y1W7vh/?spm_id_from=333.999.0.0&vd_source=36a3e35639c44bb339f59760641390a8
https://www.bilibili.com/video/BV1yT4y1D7wA/?spm_id_from=333.788.recommend_more_video.5&vd_source=36a3e35639c44bb339f59760641390a8