专栏名称: 虚幻引擎
Epic Games 旗下 Unreal Engine 虚幻引擎官方订阅号
目录
相关文章推荐
51好读  ›  专栏  ›  虚幻引擎

我希望我能早点学到这些 | UnrealFest演讲精粹

虚幻引擎  · 公众号  ·  · 2025-01-13 11:58

正文

请到「今天看啥」查看全文


前言

在使用虚幻引擎进行创作的时候,我们常常会在某一部分耗费大量的时间,但是否有想过这些过程其实可以通过其他一些操作来节省时间,在这篇文章中,我们会与您分享一些您可能还没知道的虚幻引擎小提示或者小技巧,帮助我们更有效率地使用虚幻引擎进行创作。

以下小技巧出自该视频: https://www.youtube.com/watch?v=m0T8euG9Rh8 ,由Alex Coulombe演讲分享。

PPT链接: https://drive.google.com/file/d/1vSNDIqbvi6Q35uyMrx53_dE0rzFmbCIY/view?usp=drivesdk

目录

一、项目与编辑器

1.1.暂时去除C++模块

1.2.将小关卡作为编辑器启动地图

1.3.别让您的电脑过热了

1.4.减少烘焙大小

1.5.属性矩阵批量编辑(多选批量修改)

1.6.建模工具

1.7.不要改引擎里的东西

1.8.量尺与框选

1.9.添加游戏模式

二、插件

2.1.变体管理器插件

2.2.像素流送插件

2.3.虚拟摄像机

2.4.全都远程控制

三、蓝图

3.1.使用组件解耦功能

3.2.断点、打印字符串、实例Debug

3.3.音效3.4.软引用

3.5.事件分发器

3.6.接口

3.7.蓝图内搜索

3.8.MultiGate

3.9.Switch

3.10.通过控制台呼叫自定义事件

3.11.蓝图函数库、宏

3.12.插值

四、优化

4.1.使用实例化静态网格体

4.2.简化您的材质

4.3.尽可能优化性能

4.4.寻找瓶颈

五、序列

5.1.材质参数集

5.2.事件轨道和保持状态

5.3.允许不兼容的骨架

六、VR

6.1.协作查看器模板

6.2.模拟立体视角

6.3.XR Scribe

6.4.基于OpenXR

一、项目与编辑器

1.1.暂时去除C++模块

如果您正在尝试打开一个带有C++的项目时,您可能会遇到这种情况,哦不!他需要让我重新编译模块,并且我还暂时没办法能成功编译这个模块,但我只是想现在就打开这个项目,我是不是得费老大劲把项目中的C++内容全部移除备份呀!

不用这么干,您只需要以下几步就能暂时去除这个项目中的C++内容,首先将您项目文件夹中的Source和Plugin文件夹暂时命名为SourceBackup和PluginBackup,这样项目就暂时识别不出来您的源代码文件夹与插件文件夹了。

然后使用文本编辑器打开您的项目文件,将模块描述删掉,并且关闭项目启用了的C++插件。

完成这几步,您就能打开一个暂时没有任何C++内容的项目了。


1.2.将小关卡作为编辑器启动地图

您似乎成功打开项目了,但是 正在编译着色器(12,345)...... ,为什么要编译这么多着色器呢?可能是因为您在打开项目的时候,编辑器自动帮您打开了一个超级无敌消耗性能的场景,如果您有时间,您可以去倒杯咖啡然后慢慢等,但是对于那些希望一打开项目就能”做项目!爽!“的开发者,就需要使用这个小提示了: 尽量不要把很消耗性能的关卡作为编辑器启动地图

编辑→项目设置→地图与模式 中将编辑器启动地图设置成一个更简单流畅的关卡,或者在 文件→新建关卡 中新建并设置成一个空关卡。

如果您确实需要在打开项目之后编译所有的着色器,可以先使用过滤器筛选出本项目中的所有关卡资产(过滤器也是一个不错的小提示,能够帮助您快速定位到想要的资产类型),然后选择内容文件夹,筛选关卡类型资产,这样我们就能筛选出所有项目内的关卡。

然后全选这些关卡右键,就可以让编辑器加载这些关卡资产,帮您准备所有的着色器,如果您还不信,可以从 窗口→关卡 打开关卡管理窗口,将关卡全部拖入持久关卡中加载,这同样也会帮您准备着色器等所需的内容。

1.3.别让您的电脑过热了

我们其实可以调节我们在虚幻编辑器内的“图形设置”,让我们能够更加流畅地使用虚幻编辑器,如果您希望Lumen能够正常工作,全局光照与反射需要至少高或者以上。

如果您希望看到各种视图下的场景内容,可以调整视图面板的显示模式。

如果您之前是按照红箭头所示去显示当前FPS以及各种状态的,不妨试试黄色箭头的方法,将信息显示在您编辑器的顶栏中,这样就不会在视图界面中占用空间了。

如果不限制帧数运行虚幻编辑器,导致您的电脑太热了,您可以限制虚幻编辑器内的运行帧率,通过“t.maxfps”这个控制台指令,后面接一个需要限制的帧数/秒,一般来说大多数对于数字进行限制类的指令或者执行节点,0一般是不做限制,这个限制帧数指令同理,最好不要在项目设置中使用Fixed Frame Rate,这样会导致您打包出来的游戏限制在设置的帧率里,用户都会看起来有很差的性能表现。

如果在您的场景内有比较复杂的实时计算,可以暂时将实时选项关闭,这样在用户不控制视图内的摄像机时,不会进行实时计算,减少性能消耗。

1.4.减少烘焙大小

现在我们来到打包了,如果您希望在您的庞大项目中只打包出来您想要的游戏内容,这两个选项必不可少,它们将会帮助您只导出您希望导出的地图引用的所有资产而忽略其他地图。

如果您还有精力与时间,最好去插件面板看看您有什么不需要用到的插件,将他们禁用来减少烘焙和打包大小。

1.5.属性矩阵批量编辑(多选批量修改)

假如我们需要定位所有4k分辨率的纹理并且限制它们的分辨率以适配移动端,这时我们可以使用 过滤器 过滤纹理,并且使用 列表模式 来筛选分辨率。

右键→资产操作→属性矩阵批量编辑

然后设置您想要的分辨率,最好是2的幂,这样能够帮助我们生成mipmap,插播一个小贴士就是,纹理不一定是正方形,可以是长方形,比如1024*4096分辨率。

1.6.建模工具

虚幻5编辑器可以调整为建模模式,允许用户在编辑器内快速调整一些模型相关的数据,比如原点,有些模型可能存在相当离谱的原点位置,这时候我们就可以通过 建模工具 中的 原点编辑 帮助我们调整原点。

编辑模式下也有很多自带的对齐,比如底部,顶部,左侧右侧之类的,也可以自己调整原点位置。

当我们在使用End键来让模型贴在地面上时,实际上它是碰撞贴碰撞,跟原点没什么关系,这对我们进行地编工作也是有很大的帮助的。

当导入的模型UV看起来很奇怪,我们也是可以在建模模式进行修正的,虽然说不能适用于所有情况,但是在某些情形下能够很大程度的节省我们的时间,不用在原来的DCC中进行修正。

1.7.不要改引擎里的东西

如果您正在共享项目进行工作,千万不要修改引擎中的内容,除非您的共享项目也包含引擎,如果您确实想修改引擎内的某些资产,可以将其复制到您的项目内容中再做出修改。

如果您真的修改了引擎中的资产,您可以通过在Epic启动器中验证并修复您的引擎版本。

1.8.量尺与框选

在正交视图中按鼠标中键拖动可以量距离,左键可以直接框选。

但是如果希望在透视视图框选,请使用 Ctrl+Alt+鼠标左键 来框选物体。

1.9.添加游戏模式

虚幻引擎自带了很多游戏模板,包括第一人称,第三人称等等,我们可以导入这些内容包到我们的项目中,但是我们的项目就会有很多游戏模式,我们应该如何设置这些游戏模式呢?首先每张地图都可以设置各自的游戏模式,其次我们可以在项目设置中设置我们默认的游戏模式(假如地图没有设置游戏模式,就会使用项目默认的游戏模式)。

二、插件

2.1.变体管理器插件

虚幻引擎有一个叫做Variant Manger的插件,他能帮我们创建不同的变体用在编辑器或者是运行时当中,这个功能可以运用在建筑或者虚拟制片中,还是相当方便的一个插件。

当我们打开自动捕获,编辑器就会帮我们自动捕获我们做出的修改,并且应用到变体上,切换变体开关就能看到不同的变体效果。

2.2.像素流送插件

不是所有人的电脑都能很流畅地运行虚幻引擎,而像素流送插件就能让我们将打包好的项目上传到提供像素流送服务的网站上,帮助我们保证所有用户的使用体验。除此之外,我们还可以通过像素流送插件让其他用户访问我的电脑,帮助我解决问题,就像远程桌面或者远程协助一样,甚至还可以使用手机访问这台电脑。

在运行准备完成后,就会提供Ipv4地址,就能在本地手机中访问。

2.3.虚拟摄像机

在进行虚拟制片时,我们希望能够在现实有一个虚拟摄像机用来控制虚幻编辑器会话中的摄像机,这样就能手动调整镜头变换,更有效更方便地进行摄影工作。首先我们需要在编辑器内添加VCam Actor,然后手机上安装Unreal VCam应用程序并运行,连接上像素流送插件中设置好的IPV4地址,选择需要连接的设备,是Editor还是添加的VCam,然后我们就可以用手机来控制编辑器内的VCam Actor了。

如果脱离了VCam之后,您的视角可能看起来会很奇怪,所以可能需要在世界中新建一个相机,控制它然后再脱离控制,这样就能恢复原来的编辑器视图视角。

2.4.全都远程控制

在一些场景中,我们希望能够通过网络远程控制一些参数,特别是在广播、现场直播或者是舞台的运用场景中使用得比较多,而OSC和Remote Control API插件能够帮助我们很好地远程控制参数,启用插件之后,我们可以在各种参数中选择是否启用网络控制,这样我们就可以通过本地或者远程网络控制参数,调灯光什么的。

三、蓝图

3.1.使用组件解耦功能

您可以给您的Actor BP添加一些自定义组件,因为组件是可以添加在不同的Actor上并且可以在同一个Actor中叠加多个Component,所以您可以像Collab Viewer Template中的Actor BP一样将功能作为组件添加在上面。

3.2.断点、打印字符串、实例Debug

跟着蓝图流程走,添加断点和打印字符串,帮助您更有效率更准确地Debug游戏逻辑。

3.3.音效

在播放音效时,您希望您的音效播放的时候不会显得太重复,可以通过调整音量和音高使得音效更具随机性。

3.4.软引用

尽可能使用软引用,如果您的项目里充满了强引用,就会导致关卡加载的时候会“拖着”很多当前可能还用不到的资产一并加载,导致内存占用较高,而软引用更加间接,例如:关卡A强引用资产B软引用资产C,关卡A加载时会顺带加载资产B,但是资产B加载时不会加载资产C,因为资产B是软引用了资产C,所以我们想使用资产C的时候就需要先异步加载这个软引用资产再使用它。

3.5.事件分发器

事件分发器是一个很方便的,让Actor对某个东西做出反应的蓝图功能,举个生动的例子就是,您有一个天空蓝图,用来处理四季,当来到春天时,天空蓝图调用事件分发器中的“来到了春天”事件,所有分配了这个事件的动物蓝图就会执行各自的逻辑。

3.6.接口

接着上一个例子,当您动物可以相互捕食,动物A捕食了动物B,动物A调用动物B的被捕食事件,以此类推,每个动物的被捕食事件的实现都各不相同。

3.7.蓝图内搜索

如果您的游戏逻辑在运行过程中打印了某些奇怪的字符串,您就可以使用蓝图内搜索功能定位这个奇怪字符串的位置。

3.8.MultiGate

MultiGate可以帮助我们按顺序执行某些游戏逻辑,可以选择是否循环和是否随机。

3.9.Switch

Switch是按照输入的整数或者是枚举来选择对应要执行的游戏逻辑。

3.10.通过控制台呼叫自定义事件

您大概率不知道我们可以通过控制台呼叫当前关卡蓝图中的自定义事件,比如关卡蓝图中有个事件叫Hello,并且有个字符串输出,当控制台输入Ce Hello blabla时,这个事件就会以blabla作为输出触发,如果想调用所有Actor中的Hello事件,就输入Ke * Hello

3.11.蓝图函数库、宏

如果您希望您的蓝图逻辑能够被迁移或者是能够被任意蓝图调用,就可以使用蓝图函数库来编写共用蓝图函数。

宏适用于那些需要时间的操作,比如异步加载、延迟等操作,并且宏可以输出多个执行口。

3.12.插值

一个十分有用且强大的功能,能够让参数随时间慢慢接近某个数值。

四、优化

4.1.使用实例化静态网格体

它们一起只调用一次Draw Call,所以尽可能Batch您的静态网格体Actor。

4.2.简化您的材质

没有用到的纹理会影响性能,减少材质通道和纹理参数,使用浮点参数可大大减少着色器指令,在多出来的纹理参数上设置为Shared-Wrap可以让GPU共享采样。

4.3.尽可能优化性能

尽可能使用Master Material(父材质),减少场景Draw Call;尽可能使用软引用,强引用会导致物体时刻被加载;保证纹理大小都足够合适,例如粗糙度、法线或者AO纹理,它们一般都会比基础颜色纹理要小;减少基础LOD的细节;烘焙光照,减少实时光照的使用,保证移动平台和VR平台的性能与部署。

4.4.寻找瓶颈

使用Stat Unit控制台指令,检查Draw和Game的所用时间,判断当前是CPU瓶颈还是GPU瓶颈,然后根据Stat Game或者Stat GPU检查各自的耗时最多的那一部分。

五、序列

5.1.材质参数集

一个很酷的东西,可以通过蓝图或者Sequence控制材质参数集中的参数,需要注意的是,修改材质参数集只会影响使用了该材质参数集的材质。

5.2.事件轨道和保持状态

事件轨道有点像自定义事件,会在Sequence播放到对应位置的时候触发自定义事件,保持状态就是在Sequence播放完毕之后,告诉这个在Sequence的Actor保持现在的状态,可以用在操控的玩家进入过场动画时,然后结束后保持过场动画结束的状态。

5.3.允许不兼容的骨架

Sequence可以播放不兼容的骨骼的动画,Metahuman也可以使用普通UE4或者UE5的Mannequin的动画

六、VR

6.1.协作查看器模板

这是一款虚幻引擎自带的,开箱即用的多人VR模板,可以帮助建筑、工程等领域更快地构建原型

6.2.模拟立体视角

您不需要必须拥有VR头显才能检查您的场景和视角是否看起来正常,并且使用vr.Spectator等控制台指令能够帮助您更好地检查VR场景,在编辑器选项中可以启用模拟立体视角

6.3.XR Scribe

这个插件可以录制和回放VR的“录像带”,调DefaultEngine.ini里面的配置,0录制,1播放,“录像带”存在Saved文件夹中

6.4.基于OpenXR

最好基于OpenXR开发项目,如果您这么做了,您将会适配以下这些硬件:Meta、Vive、Valve、Varjo、Index、Pico、Apple等等,甚至是Apple Vision Pro,是不是非常方便非常酷!

总结

以上就是我们今天要给大家分享的虚幻引擎小贴士与小技巧,希望能够帮助到您在使用虚幻引擎创作时节省时间,提高效率,如果还想深入了解并学习虚幻引擎深层次内容,还是强烈推荐您能前往虚幻社区学习板块以及虚幻官方文档获取更多虚幻引擎学习相关资料,祝学习顺利,创作愉快!

近期焦点

Epic全新一站式内容商城Fab今日上线!
Epic for Indies现已登陆Epic开发者社区
虚幻引擎里你可能不知道的功能 | UnrealFest演讲精粹
使用简单的通用材质来提高UI性能 | UnrealFest演讲精粹
为手机优化生存游戏 | UnrealFest演讲精粹

扫描下方二维码,关注后点击菜单栏按钮“更多内容”并选择“联系我们” 获得更多虚幻引擎的授权合作方式和技术支持
长按屏幕选择“识别二维码” 关注虚幻引擎
“虚幻引擎”微信公众账号是Epic Games旗下Unreal Engine的中文官方微信频道,在这里我们与大家一起分享关于虚幻引擎的开发经验与最新活动。







请到「今天看啥」查看全文