UE教程

用心搭建好场景

Unreal游戏中的关卡流送使用分享

大家好,我是很久不见,主要从事的方向是引擎美术。上次文章介绍了地形制作,UE4中使用真实世界地形的制作案例  。这一次的文章,我们介绍一下虚幻引擎关卡流送的使用内容。

先来看一下最终的效果展示:

1、关卡流送的方式

关卡流送体积域

Unreal游戏中的关卡流送使用分享

使用UE4体积中的关卡流送体积流送子关卡,这种方法易于使用,不要求脚本编写,是控制关卡流送的理想方式。此外,基于体积域的关卡流送和基于脚本的流送相比更易于维护:加载系统的需求发生变化时,调整体积域的大小即可对关卡加载/卸载行为进行修改。

使用蓝图进行关卡流送

关键函数为 Load Stream Level 和 Unload Stream Level,并指定关卡按命名加载。

使用C++进行关卡流送。

2、具体的使用方法

首先需要将关卡手动进行拆分,以下我将关卡拆分为了两个子关卡,

Unreal游戏中的关卡流送使用分享

这里我简易的给每个场景放入了不同的基础模型

Unreal游戏中的关卡流送使用分享

然后在体积中找到“关卡流送体积”并放入场景中,

Unreal游戏中的关卡流送使用分享

在关卡详细信息中可以对关卡流送体积进行操作,

Unreal游戏中的关卡流送使用分享

在这里点击加号把刚才拖入场景中的关卡流送体积添加进来,

Unreal游戏中的关卡流送使用分享

这里也可以一次加载多个流送体积,

Unreal游戏中的关卡流送使用分享

这样在运行的时候,就可以进行关卡之间的动态加载。

Unreal游戏中的关卡流送使用分享

使用蓝图进行关卡流送,就不需要关卡流送体积,但是需要触发事件去启动关卡的流送,这可以是某个键盘按下的操作,也可以是某个响应去触发。这里我新建了两个盒体触发器来驱动关卡的流送。

Unreal游戏中的关卡流送使用分享

在关卡蓝图中对盒体触发器开启了碰撞事件,并简单做了一个关卡加载和卸载的蓝图,这里关卡的加载卸载与触发器的触发离开可以根据实际需要灵活操作。

Unreal游戏中的关卡流送使用分享

运行一下看下效果。

Unreal游戏中的关卡流送使用分享

3、关卡流送的灵活应用

当然在实际的项目中,场景资源不管是复杂程度还是资源量都要庞大的多,在加载中也可能会有卡顿的情况,这里就需要在两个关卡加载的时候做一些停顿的技巧,一般比较常见的是做一个界面的加载进度条。

这里做一个控件蓝图,

Unreal游戏中的关卡流送使用分享

在界面中创建一个进度条

Unreal游戏中的关卡流送使用分享

做一个进度条从0到1的进度动画

Unreal游戏中的关卡流送使用分享

下面我将关卡一设为固定加载,并在关卡蓝图中做了一个触碰到盒体触发器后加载2秒进度条,并开启关卡二的蓝图。

Unreal游戏中的关卡流送使用分享

运行一下看下效果。

Unreal游戏中的关卡流送使用分享

当然也可以更加丝滑的使用场景中的角色相机进行过场动画的播放。

Unreal游戏中的关卡流送使用分享

下面运行看一下效果

Unreal游戏中的关卡流送使用分享

实际上这里利用了中间播放过场动画的时间,加载了下一个关卡。

Unreal游戏中的关卡流送使用分享

这也是在运行大型游戏时候,中间出现过场动画的原因,一般此时都是在后台进行下一个关卡的加载。当然,将关卡流送运用得当的话,在沙盒类游戏中玩家是感觉不到关卡加载的过程的,这也是有些人一直觉得沙盒游戏没有所谓的关卡,实际上这是一种错误的概念,只是优化体验很友好,让玩家没有感觉到关卡的存在而已。

以上就是本次教程案例的内容了,希望大家可以从中有所收货。

下一期的文章会接着关卡流送延伸到大型地图世界场景构成方面的内容。

本次案例是我的个人练习,如有不足之处,希望大家可以一起交流学习,一起变得更强!

– End –