Unreal丨游戏中的关卡切换
UE4虚幻引擎游戏技术Thepoly 14728 0
实名

通过了实名认证的内容创造者

发布于 2022-3-25 19:12:41

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 Thepoly 于 2022-3-25 19:20 编辑

             640.jpg
174551k9r66ex7z719e99h.jpg




Hello . 大家好
今天给大家带来虚幻引擎关卡流送的使用
我是很久不见


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

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




1关卡流送的方式




关卡流送体积域


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

使用蓝图进行关卡流送
关键函数为 Load Stream Level 和 Unload Stream Level,并指定关卡按命名加载。

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


2具体的使用方法



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


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


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


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


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


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


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


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


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


运行一下看下效果。



3关卡流送的灵活应用



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

这里做一个控件蓝图,


在界面中创建一个进度条


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


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


运行一下看下效果。



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


下面运行看一下效果



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


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

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

- End -


喜欢Thepoly的可以通过三种方式与我们建立联系。分别是公众号、微信群以及QQ群。公众号是我们最为官方的窗口,更多内容都必须关注公众号后才能获取。另外现已开通网站:www.thepoly.cn更多精彩请关注我们。

         

本帖被以下画板推荐:

还没有设置签名!您可以在此展示你的链接,或者个人主页!
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表