UE4-(蓝图)第二十六课关卡流送(体积域)
前提说明:
关卡流送功能可将地图文件加载到内存中,也可从内存中卸载,并在游戏过程中切换地图的显示。这样一来场景便能拆分为较小的文件块,只有相关的部分才会占用资源并被渲染。
固定关卡
实现关卡无缝混合的第一步是创建固定关卡。它可被视为一个主关卡,主要用于管理哪些关卡将流进和流出。
流送关卡
流送关卡通过 Levels 窗口 进行管理。它可与固定关卡重叠,或偏移创建更大的世界场景。使用流送关卡的流送类型可设为 Always Loaded 或 Blueprint。右键单击关卡分段即可在Levels窗口中开启此设置。
主题:
关卡流分为两种:关卡流送体积域和蓝图控制
一、关卡流送体积域
官方文档中的重要详细信息:
1.所有关卡流送体积都必须存在于固定关卡中。存在于其他关卡内的关卡流送体积不可用于关卡流送,并将在 检查地图错误时生成警告。
2.如果一个关卡具有任何与之关联的流送体积,则该关卡的其他流送方法将无法正确工作。
3.一个关卡流送体积可以影响多个关卡。类似地,一个关卡可以受多个关卡流送体积影响。
4.基于体积的流送可用于分割屏幕。在发出任何加载/卸载请求之前,所有本地玩家的视点都将予以考虑。
基于体积的关卡流送以如下方式工作:
每个流送关卡都可以关联一组关卡流送体积(Level Streaming Volume)。每一帧中,引擎会在每一关卡上迭代, 并检查玩家的视点(摄像机)是否位于与该关卡相关的任何关卡流送体积内。如果该视点在至少一个 关卡流送体积内,则发出请求以开始加载该关卡。如果该视点在所有关卡流送体积之外,关卡将标记为卸载。
注:可以理解为 与玩家的摄像机高度有关,只有摄像机在体积域以内才能触发加载关卡,如果不在已加载的关卡就会卸载。
二、场景
1.在Content Browser窗口下的文件夹内新建关卡命名为LevelStreamingVolume,然后再顶部工具栏选择窗口/关卡,打开关卡窗口,将LevelStreamingVolume拖拽到PersistentLevel 下,在视图右下角可以看到当前选中的关卡是哪个,也可以在关卡窗口看关卡的字体颜色及大小用来区分,添加子关卡时,也可以使用关卡窗口下的关卡选项下新建或者添加进行对子关卡的操作。
2.默认的固定关卡就是新创建的关卡场景,然后选择关卡窗口中的LevlStramingVolume子关卡,增加一个可以按键控制旋转的actor,在ContentBrowser窗口的文件夹中右键创建蓝图类选择actor类型,命名为Cube_Rot.。
3.双击打开,选择蓝图类中的视口界面,将UE4编辑器中模式窗口下的 basic 下的立方体拖入到视口中,
4.选择蓝图类中的事件图表,要达到的效果:玩家进入体积域后加载子关卡物体,然后进行按键控制物体旋转及停止。
注:因为不能在固定关卡的关卡蓝图进行逻辑控制,只能在子关卡的蓝图类中控制物体的旋转及停止,但是在蓝图类actor中,单纯的按键按下是不能够被监测到的,所以,要在蓝图类中开启监测按键事件。获取到玩家控制器,开启输入事件的检测。使用Enable Input节点及get player controller
5.在蓝图类中的我的蓝图下创建bool值变量命名为IsPressed,通过G键按下,利用FlipFlop节点,控制bool值的更改,进而控制物体的旋转/停止,蓝图如下
6.完成蓝图后编译,将Cube_Rot蓝图actor,拖拽到LevelStreamingVolume子关卡中,调整位置。完成后,选择PersistentLevel(固定关卡),放置关卡体积域。(体积域要放在固定关卡中)
7.在固定关卡创建体积域:在模式窗口的体积选项中选择LevelStreamVolume拖拽到场景中,并且调整体积的大小
注:因为该体积域会自动的去检测玩家是否在体积内,进而产生子关卡的加载或者卸载。所以最好将整个子关卡的场景范围全部包裹,检测的是摄像机,如果玩家摄像机离人物模型比较远,就要考虑摄像机抬升时,是否会超过体积域,造成人物模型在体积域,摄像机不在,子关卡场景被卸载掉的问题。
8.选中刚创建的LevelStreamingVlume体积域,在细节面板下,设置体积域的以下属性:取消勾选 Editor Pre Vis Only 和 Disabled;Streaming Usage 应被设为 SVB Visibility Blocking on Load。
说明:Editor Pre Vis Only :将该关卡流送体积标记为编辑器预可视化。
Disabled:当其设置为真时,无论是在游戏中还是在编辑器中,流送体积代码都会忽略该体积。Disabled 可用于禁用关卡流送体积而不将其与关卡分离。
9.选择关卡窗口,选择LevelStreamingVolume子关卡后,选择调出关卡详细信息按钮,打开关卡详细信息界面。
10.在关卡详细信息面板,Streaming Volumes属性增加元素,使用吸取功能选择创建的体积域,完成后不要勾选Initially Loaded及Initially Visible
注:在最下方有个小箭头,点开后,最后一个Min Time Between Volume Unload Requests属性
Min Time Between Volume Unload Requests:卸载请求之间的最小时间。
向卸载请求添加滞后
玩家在关卡流送体积边界上来回移动会导致发出不需要的加载/卸载请求。为了解决此问题,已将滞后添加到卸载 请求。加载请求不存在滞后,因为如果需要加载某个关卡,我们总是希望该关卡能尽快加载。
卸载滞后量可以通过修改体积卸载请求之间的最小时间来调整。 默认卸载滞后为2.0秒。
三、运行
按下G键后物体旋转/停止,摄像机离开体积域后,物体消失
UE4-(蓝图)第二十六课关卡流送(体积域)相关推荐
- OpenGL教程翻译 第二十六课 法线纹理
第二十六课 法线纹理 背景 我们之前使用的光照技术还算不错,光线在模型表面得到了很好的插值,为场景营造出真实感.但是这种效果还能够有非常大的提升.事实上,我们以前使用的这种插值方式在某种程度上来说是对 ...
- NeHe OpenGL教程 第二十六课:反射
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 新版标准日本语初级_第二十六课
语法 1. 小句(动词简体形) + の + は 形です:动词小句加の使其名词化,表示做某动作的意思.这种名词化形式做主语,而谓语是表示性质.状态的一类形容词或二类形容词时,主语要用助词は来表示. ...
- 第二十六课.深度强化学习(一)
目录 强化学习基本概念 数学基础回顾 强化学习中的专业术语 强化学习中的随机性 如何使用AI进行游戏 关于rewards和returns 价值函数Value Functions action-valu ...
- 【问链财经-区块链基础知识系列】 第二十六课 隐私保护方法:多方安全计算和区块链
编者按:私密计算是解决区块链无法保护隐私的问题.因为区块链上的数据天然是全公开的,任何人都可以查看.假如一个人知道了你的钱包地址,就可以看到你的余额.你所有的转账记录.设想一下买保险的场景,买保险需要 ...
- 第二十六课 跟着大师学投资:巴菲特的绝招—未来现金流
Part1 什么是未来现金流贴现? 前提: 投资人能大概预估出未来这家公司值多少钱 Part2 如何运用?
- 第二十六课_C语言开山篇
前言 从这篇文章开始,正式进入C语言的大门,这篇文章不讲技术,只是对C语言相关的东西,谈谈本id现阶段的一些看法.没空的可以忽略此篇文章. "想学好C语言,就要站在编译器的角度思考问题,要想 ...
- 第二十六课:行波和驻波
1.如果要让去曲线向x轴正方向的移动速度为v,只需把方程中的x替换为x-vt. 反之亦然 2. y=2 sin 3x. 3称为波数. y = 2 sin3(x-6t). 6代表了速度 y= A ...
- 实践数据湖iceberg 第二十四课 iceberg元数据详细解析
系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql ...
最新文章
- jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能
- This is Me!——回顾第一个项目的前前后后
- TitleWindow的CloseButtionSkin问题
- PS 工具获取:Photoshop CS6超级免安装精简版来临!不到200M!
- 论文引用参考文献和自动更新的方法
- K、KB、M、MB、G、GB 、TB
- 细谈围城---我的启示录
- 免费计算机论文 阅读,关于计算机的毕业论文
- BBS系统的设计与实现
- javascript世界上最被误解的语言
- 2019.3.8 提高B组 T2 JZOJ 3055 比赛
- Windows 版本的 B站 开源了?
- Druid 介绍和应用
- 合肥市专精特新中小企业申报汇总,申报奖励、认定条件、材料流程时间
- 基于FPGA的交通灯系统
- 用java打印一个圆形
- java 一秒可以循环多少次
- 【R】葡萄牙森林火灾(数据可视化回归分析)
- Vivado工程怎么用VCS仿真
- linux(ubuntu)下英伟达Nvidia 显卡监控工具nvtop使用方法