Unreal Engine 4(虚幻引擎)
文章平均质量分 90
总结UE4使用经验,深入引擎架构原理
Jerish_C
知乎专栏:https://www.zhihu.com/people/chang-xiao-qi-86/columns
微信公众号:游戏开发那些事
B站技术视频:https://space.bilibili.com/306838835
展开
-
我是如何学习游戏引擎的?
这是【游戏开发那些事】第51篇原创前言:游戏引擎,表面上看是一个工具,实质上却是一本“技术图谱”,每一个点击行为的背后都有着其独到的意义。每一个模块都索引着数以万行的工程代码、数以百计的科...原创 2021-09-27 09:45:00 · 7050 阅读 · 7 评论 -
虚幻引擎与现代C++:转移语义和右值引用
所谓的“现代C++”,就是指C++ 11标准之后的C++语言,与之相对应的是“经典C++”,也就是C++ 98/03标准的C++语言。Unreal En...转载 2020-03-13 09:00:00 · 825 阅读 · 0 评论 -
游戏中的角色是如何“动”起来的?
原创: Jerish, 微信公众号——游戏开发那些事这篇文章是为我的《Exploring in UE4》移动组件详解[原理分析] 做科普的。从红白机时代的超级玛丽,到PC时代CS里面的反恐精英,再到如今主机上栩栩如生的“荒野大镖客”。随着技术的进步,游戏中的这些角色,在移动的表现上愈加真实。我们会想,为什么有些游戏中的人物,移动起来非常不自然?而有些制作精良的游戏里,每个角色动起来都...原创 2019-10-27 22:17:26 · 4770 阅读 · 1 评论 -
UE4蓝图碰撞检测解析
虽然UE4官方文档对碰撞好像讲的很清楚,但是尝试的时候发现有很多问题,而且和官方文档描述的总会出现一些差异,所以自己总结一下所有有关碰撞的内容,持续更新吧~下面总结了一般的碰撞以及多组件碰撞的一些问题.如果对UE4碰撞一点也不熟悉建议先看看链接 UE4碰撞规则详解(2016.7.12更新)如果想进一步深入UE物理引擎相关内容,请参考博客(UE4物理模块分析)...原创 2016-04-10 17:34:25 · 45703 阅读 · 14 评论 -
UE4碰撞规则详解(2016.7.12更新)
UE4的碰撞设置在官方的文档的 物理模拟模块(链接:点击打开链接)。但是操作起来感觉坑还是比较多,所以这里总结一下,以防平时经常会漏掉或忽略某些条件。如果想看关于碰撞响应触发,可以参考链接(UE4蓝图碰撞检测解析)如果想进一步深入UE物理引擎相关内容,请参考博客 (UE4物理模块分析)现在开始讲解并总结一下UE4里面的碰撞规则:1.只有拥有Collision属性的实体...原创 2016-05-01 12:45:26 · 35832 阅读 · 9 评论 -
UE4 Config配置文件详解(2017.4.1更新)
之前文档中的错误已经更正,欢迎大家随时指出文章的不足。(如果只是想了解如何使用,直接看第三章节就可以了)一 配置总体概述UE4中,配置文件(Config)其实就是.ini文件。可以用于设置加载时要初始化的属性的值,配置信息按照键值对的格式来实现。虚幻4官方文档只有简单的使用规则,要想深入了解还需要查看源代码才行,所以这里我把自己的学习成果分享给大家。一个完整的配置文件格式如下图1-1所...原创 2016-10-13 00:01:47 · 35681 阅读 · 3 评论 -
UE4反射系统简析(含实例过程分析)
一、UE4中的反射系统1.简述:1.1 什么是UE4反射在UE4里面,你无时无刻都会看到类似UFUNCTION()这样的宏。官方文档告诉你,只要在一个函数的前面加上这个宏,然后在括号里面加上BlueprintCallable就可以在编辑器里面调用了。按照他的指示,我们就能让我们的函数实现各种各样特别的功能,那这个效果就是通过UE4的反射系统来实现的。这看起来确实非常棒,不过同时给UE4原创 2016-10-23 15:44:25 · 25608 阅读 · 1 评论 -
UE4锚点使用解析
之前对锚点一直不理解,在使用的时候发现完全搞不懂。这时候在网上查的时候发现也没有什么好的资料,所以仔细研究了一番,总结下来。除了虚幻4,其他的引擎在使用上应该也是相似的,这篇文档应该能解决你对锚点的疑惑。一.锚点解析为了说明锚点与画布大小没有关系,这里使用的是500*500的canvas。窗口的大小是1280*720。锚点的参数:左上角为(0,0)(0,0)。右下角为(1,1)(1,1)情况一:锚...原创 2016-12-03 20:40:22 · 14449 阅读 · 1 评论 -
虚幻4DPI自适应缩放规则解析
UMG 支持与分辨率无关的 UI进行自动缩放,可以设置UI随窗口大小变化的股规则。在 ProjectSetting-Engine 部分下的 设置 菜单中,提供了应用于每个项目的默认 DPI 缩放规则。(4.6版本与新版本所在位置不同,看下图) 图 1 4.9版本的DPI设置界面 ...原创 2016-12-03 21:01:55 · 19685 阅读 · 0 评论 -
UE4命令行参数解析
一 .命令行参数简述命令行参数是一连串的关键字字符串,当运行可执行文件时可以通过命令行或者可执行文件的快捷方式将其传入。它们的目的是自定义引擎运行的方式,以便符合开发人员或用户的需要。一般用途如下,注:命令行不区分大小写第一,这可以使得运行编辑器而不运行游戏变得很简单(只要加上几个字符即可,见图1-1)。第二,可以更方便的配置客户端IP,服务器以及其他更丰富的运行信息。第三,它也可以更加复...原创 2016-12-09 21:49:33 · 15221 阅读 · 1 评论 -
UE4后处理简述
虚幻4提供了后处理特效的功能,可以实现景深,光溢出,色调调整,饱和度等等。要使用虚幻4的后处理,就一定要用到PostProcessVolumn,这是一种特殊的体积,可以放置在场景中的任何位置。 每个 PostProcessVolume 实质上是一个类型的混合层。其他混合层可以来自游戏代码(比如命中特效),UI 代码(比如暂停菜单),摄像机(比如暗角效果),或者 Mat...原创 2016-12-09 22:07:50 · 15412 阅读 · 0 评论 -
UE4摄像机系统解析
一.摄像机工作原理在游戏中,摄像机是玩家的眼睛,他控制了玩家的视点(POV即PointOfView,后面简称POV)位置以及玩家的视野大小(FOV即FieldOfView,后面简称FOV)。一句话,摄像机决定了我们去观察这个游戏世界。游戏的类型多种多样,有第一人称的FPS游戏,有第三人称的动作游戏,还有需要统筹全局来观察的RTS游戏。简单来说,第一人称就是把POV放在人眼睛的位置,第三人称就是把P...原创 2017-04-01 20:21:39 · 70640 阅读 · 1 评论 -
详解UE4静态库与动态库的导入与使用
一.基本内容概述 最近做项目时经常看到build.cs文件,就想研究一下UE4中第三方库的使用。通过网络以及wiki确实获取到不少有用的信息,但是没有一篇文章,让我看完就立刻明白的。所以,我在这里详细的描述dll与lib在UE4中的使用,同时简单描述一些基本原理,解决网上的一些文章由于描述不清而造成的误导。 UE4本身有很多功能使用的是第三方的库,如物理physX,模型...原创 2017-05-10 20:41:03 · 25314 阅读 · 9 评论 -
UE4物理模块分析
一.Mesh组件与物理之间的关系 关于UE物理的基本使用,官方文档以及我之前的文档已经做了较为详细的介绍。(官方文档链接,UE4蓝图碰撞检测解析,UE4碰撞规则详解(2016.7.12更新)) 这里主要是从代码方面,简单分析一下UE4里面的物理是如何使用与生效的,StaticMesh以及SkeletalMesh对应的物理都是如何产生与作用的。第三部分...原创 2017-10-15 18:28:29 · 13690 阅读 · 1 评论 -
UE4网络同步详解(一)——理解同步规则
这篇文章主要以问题的形式,针对UE同步的各个方面的内容,做一个详细而充分的讨论。对于新手理解UE的同步机制非常有帮助,对于有一定的基础而没有深入的UE程序也或许有一些启发。如果想深入了解同步的实现原理,可以参考UE4网络同步(二)——深入同步细节 问题一:如何理解Actor与其所属连接? 附加:1. Actor的Role是ROLE_Autho...原创 2017-10-15 21:41:40 · 47016 阅读 · 8 评论 -
UE4网络同步(二)——深入同步细节
前言UE同步是一块比较复杂而庞大的模块,里面设计到了很多设计思想,技巧,技术。我这里主要是从同步的流程分析,以同步的机制为讲解核心,给大家描述里面是怎么同步的,会大量涉及UE同步模块的底层代码,稍微涉及一点计算机网络底层(Socket相关)相关的知识。 PS:如果只是想知道怎么使用同步,不建议阅读这篇文章,不过可以参考我另外一篇博客 UE4网络同步(一)——理解同步规则 另外,博主参考的源...原创 2017-10-29 11:54:18 · 27150 阅读 · 16 评论 -
UE4流关卡与无缝地图切换总结
目录一.Level Streaming的使用与注意 流关卡的使用与注意 世界构成器 World Composition 二.地图切换流程分析 ClientTravel ServerTravel Browse 三.无缝地图切换 无缝切换流程 无缝切换时保存Actor 无缝切换时的一些问题与解决方法 一.Level S...原创 2017-11-08 23:08:40 · 44786 阅读 · 8 评论 -
UE4 SaveGame保存游戏注意事项
保存数据的流程参考官方文档的例子足够(https://docs.unrealengine.com/latest/CHN/Gameplay/SaveGame/index.html) 这里说一些注意事项以及对SaveGame使用相关的分析理解。1.首先,UE提供的游戏保存的基本原理是序列化对象,通过构建一个SaveGame对象,并把要保存的数据赋给该对象的成员属性,再把SaveGame对象序列化...原创 2017-11-09 19:47:05 · 24297 阅读 · 0 评论 -
一张图搞定UE4中代理(delegate,event)的使用
UE4中的代理实现与普通C++的代理实现思路相同,不过特殊处理了UObject继承体系下类成员函数的绑定与执行。由于官方文档没有例子,大家可以参考下面的图片来使用(其实例子大家完全可以到UE源码里面去找,这里算是帮助各位总结了一下) 不过既然是使用UE4,C++代理说完了怎么能少了蓝图代理的使用? 其他注意事项:如果想使用带有RPC的代理事件,需要在创建Event的同时断开任何连线,这样点...原创 2017-11-14 09:41:19 · 11976 阅读 · 0 评论 -
UE4移动组件详解(一)——移动框架与实现原理
前言 关于UE4的移动组件,我写了一篇非常详细的分析文档。由于篇幅比较大,我将其拆分成三个部分。分别从移动框架与实现原理,移动的网络同步,移动组件的优化与改造三个方面来写。这三篇文档中难免有问题和漏洞,所以我也会在发现问题时及时更新和修改,也希望大家能给出一些建议。一.深刻理解移动组件的意义在大部分游戏中,玩家的移动是最最核心的一个基本操作。UE提供的GamePlay框架就给开发者提...原创 2017-11-29 20:44:29 · 38764 阅读 · 3 评论 -
UE4移动组件详解(二)——移动同步机制
第一部分从移动相关架构以及单机情况下移动的处理细节讲起 UE4移动组件详解(一)——移动框架与实现原理 而第二部分是关于移动组件同步解决方案的描述,里面有诸多细节来让移动的同步表现的更为流畅。关于移动网络同步这一块内容,博主还有一些地方还没有完全梳理清楚,会在之后的时间里慢慢完善。四.移动同步解决方案前面关于移动逻辑的细节处理都是在PerformMovement里面实现的,我们可以把...原创 2017-11-29 21:10:12 · 16633 阅读 · 1 评论 -
UE4开启SkeletalMesh三角面碰撞失败(EnableperpolyCollision无效)
解决方案:不要在角色蓝图里的SkeletalMeshComponent里面勾选EnableperpolyCollision,要找到SkeletalMesh资源蓝图,在资源蓝图里面勾选EnableperpolyCollision。(在UE4官方论坛也有人问过)分析:这可能是UE引擎里面的一个Bug。为了完全弄清这个Bug,我特意跟踪了一下代码,想深入了解原因的可以继续往下看。 首先要知道,开启...原创 2017-12-03 21:17:20 · 2697 阅读 · 0 评论 -
UE4移动组件详解(三)——RootMotion与特殊移动模式的实现思路
更多相关内容参考 UE4移动组件详解(一)——移动框架与实现原理 UE4移动组件详解(二)——移动同步机制五.特殊移动模式的实现思路这一章节不是详细的实现教程,只是给大家提供常见游戏玩法的一些设计思路,如果有时间的话也会考虑做一些实现案例。如果大家有什么特别的需求,欢迎提出来,可以和大家一起商讨合理的解决方案。5.1 二段跳,多段跳的实现其实4.14以后的版本里面已经内置...原创 2017-12-08 21:50:59 · 16009 阅读 · 0 评论 -
UE4打包(烘焙)错误 CSC : error CS2012: Cannot open '...BuildGraph.Automation.dll' for writing '...'
原本打包是正常的,因为不小心修改了一些打包相关配置(具体内容记不清了),导致再次打包或者Cook的时候就提示错误(如图所示)。 检查了各种配置发现不出问题,就只能研究日志内容。引擎提示无法打开自动化文件生成的F:\UnrealEngine4.14\Engine\Source\Programs\AutomationTool\BuildGraph\obj\Development\BuildGraph原创 2018-01-16 14:42:33 · 3199 阅读 · 0 评论 -
UE4 AssetToolss的基本使用
一. 什么是AssetTools在..\Engine\Source\Developer路径下,Developer文件夹里面有UE4引擎的各项工具,包括日志输出工具MessageLog,崩溃显示工具CrashTracker等。每一个文件夹都是一个模块,都有一个Build.cs文件。AssetTools是其中的一个模块,用来在编辑器里处理UE4的不同类型的资源文件并显示相关信息。 如...原创 2018-02-03 09:12:40 · 5026 阅读 · 0 评论 -
UE4中的OnlineSubsystem与Session
想弄清UE里面的网络模块,始终绕不过OnlineSubsystem与Session这两个概念,博主一开始对这一块也挺头疼的。后来花了点时间,参考网上的资料,对这一块进行了一个相对全面的分析,希望对大家能有所帮助。总的来说,博主暂时把UE网络分成三个部分: 第一个部分是网络同步,包括同步机制,RPC等。(参考 UE4网络同步详解(一)——理解同步规则,UE4网络同步(二)——深入同步细节) ...原创 2018-02-03 09:51:46 · 8058 阅读 · 1 评论 -
2018 Unreal Open Day参会总结
今年是第二次参加UnrealOpenDay活动,收获颇丰,也认识了很多业界大咖。这里稍微详细点的总结一下会议内容和参会心得。首先是行程:会议9点签到,9:45正式开始。地点和去年一样还是在宝华万豪酒店,位于上海马戏城地铁站旁边,从火车站到酒店也就半个多小时,很方便。今年可能是因为会议持续两天,会场变大等原因增加了活动预算,所以既没有衣服也没有午餐(附近有一个商场)。23号当天有三个...原创 2018-05-26 11:47:04 · 3288 阅读 · 0 评论 -
《Exploring in UE4》多线程机制详解[原理分析]
目录一.概述二."标准"多线程三.AsyncTask系统3.1 FQueuedThreadPool线程池3.2 Asyntask与IQueuedWork 3.3 其他相关技术细节四.TaskGraph系统4.1 从Tick函数谈起4.2 TaskGraph系统中的任务与线程4.3 TaskGraph系统中的任务与事件4.4 其他相关技术细节五.总结一.概述多线程是优化项...原创 2018-09-23 15:02:31 · 3018 阅读 · 3 评论 -
AnimMontage(中文翻译)——UE4官方文档
最近学习UE4的使用,发现这篇官方文档没有中文翻译,就想着翻译一下给大家参考参考吧。由于水平有限,里面一些翻译掺杂了我个人的理解,如果有任何问题欢迎提出,我会及时修改的~同时这里需要声明一点,官方的中文文档已经有很久没有更新(当前文档的版本应该是4.7以前的),如果需要的话,我可能会将当前的英文官方文档(当前是4.9版本)翻译出来。https://docs.unrealengine.com/latest/CHN/Engine/Animation/AnimMontage/index.html(官方中文文翻译 2016-03-30 17:00:25 · 9135 阅读 · 2 评论 -
The global shader cache file'X:/XXXX/GlobalShaderCache-PCD3D_SM5.bin' is missing——UE4工程运行失败
今天在学习UE4的时候,新建一个C++工程,编译启动后在编辑器里添加了一个新的类。然后我停止了编辑器的运行,进行简单的修改后发现可以生成却不能运行,提示如下。 提示我一个全局的shader缓存文件丢失,可是我基本上没添加什么代码,也没做什么修改。然后我就去晚上搜,发现都是在说方舟(游戏)启动出错的解决办法。没办法,就硬着头皮再去好好读一下提示信息。你正在运行一个去加载...原创 2016-03-30 19:46:37 · 24951 阅读 · 7 评论 -
AnimMontage(中文)——UE4官方文档翻译与理解
这篇文章里面完全是中文翻译,不含英文,只是为了不熟悉英文又想快速了解AnimMontage的朋友,由于水平有限,里面一些翻译掺杂了我个人的理解,如果有任何问题欢迎提出,我会及时修改的~同时这里需要声明一点,官方的中文文档已经有很久没有更新(当前文档的版本应该是4.7以前的),如果需要的话,我可能会将当前的英文官方文档(当前是4.9版本)翻译出来。这里对AnimMontage动画系统稍作解释,蒙太奇现在一般是指一种拍摄手法。在UE4里面一般是用来更好的融合与衔接角色不同动作的动画。他可以让你的角色在上半身原创 2016-04-03 16:50:14 · 13864 阅读 · 0 评论 -
Physics Bodies(中文翻译)—UE4官方文档
Physics Bodies Reference(物理实体参考)注:文中红色的部分都是我在实践中的一些理解,建议大家参考一下这页包含一个列举了所有物理属性和碰撞属性的的参考文档。这里要特殊说明一下Custome Plane里的三个参数X,Y,ZMax Depenetration Velocity最大脱离重叠速度Walkable Slope Override重写在该实体上可行走的坡度翻译 2016-04-06 23:04:17 · 11705 阅读 · 2 评论 -
Introduction to C++ Programming in UE4——UE4官方文档翻译与理解(一)
UE4这篇官方文档大体上讲解了UE4本身的诸多特性以及如何编写基本的C++代码,对理解UE4的编程基础内容非常有帮助,还是因为没有对于的汉语翻译。所以,这里我把这篇文档翻译出来,之后还会简洁的对其进行必要的总结。由于内容比较多,会分两个部分进行编写,持续更新~Unreal C++ is Awesome!(虚幻4的C++是了不起的)This guide is原创 2016-05-10 11:22:01 · 5505 阅读 · 0 评论 -
Introduction to C++ Programming in UE4——UE4官方文档翻译与理解(二)
虚幻4的编程以C++为主,虚幻引擎根据自自身特点重写了很多数据类型与结构,而且里面用到了很多新的C++标准内容以及自有的特性。研究UE4能同时提升我们对C++的理解以及对虚幻引擎的理解~在我写第一部分的时候还没有官方的汉语翻译,所以第一部分是由本人自己翻译的。既然现在已经有了官方翻译,那我就整理一下中英对照,不过我仍然会在其中加入自己的理解来帮助大家分析UE4本身的一些特性。原创 2016-08-28 13:40:19 · 2457 阅读 · 0 评论 -
Unreal Open Day 2017 参会总结与心得
2017.04.24,一年一度的Unreal Open Day在上海宝力豪酒店如期举行,确实来了很多大咖。这次我很侥幸的从腾讯GAD的活动中获取到了一张免费门票,(活动链接:http://gad.qq.com/content/wendetail/7194642 不知道以后还有没有这活动了~~)否则我可能与大会失之交臂,毕竟7,8百的价格让一些新人很难承受的起。这里顺便提一句,GAD上面还是有很多不...原创 2017-04-30 11:08:31 · 6259 阅读 · 0 评论 -
Unreal Open Day 2017 参会总结——NVIDA GameWorks 在UE4中的应用
GameWorks是英伟达开发的一套闭源的特效以及物理方面的SDK,今天介绍了内容包括Ansel截屏工具,Flow,Physics,VRworks以及HairWorks与WaveWorks。因为GameWorks,AMD与NVIDA还产生了不小的矛盾,两家在网上还公开论战过。其实主讲人基本上讲的都比较表面的,没有太深入烦人原理,而且我本身并不擅长渲染,所以只是把现场的一些内容搬运过来,仅供参考。原创 2017-05-01 15:47:28 · 4343 阅读 · 0 评论 -
Unreal Open Day 2017 参会总结——ACT(动作)游戏制作经验分享
国产游戏 失落之魂 (英文名 Lost Soul Aside ) 是由杨冰先生独自一人花费3年左右的时间开发的一款动作游戏,目前还处于并不完整的demo阶段。前不久杨冰先生在网上上传了一个宣传视频,网友纷纷点赞,很快就达到了200万的播放量。下面是B站宣传视频的一个链接,大家看一看,不得不说宣传视频里面的效果足以媲美欧美的动作大作了(比如鬼泣)http://www.bilibili.com/v原创 2017-05-01 17:06:50 · 7456 阅读 · 0 评论 -
Unreal Open Day 2017 参会总结——腾讯逆战游戏项目制作经验分享
逆战是腾讯2011发布的一款FPS游戏,采用虚幻3引擎制作,可以说是国产FPS的第二号游戏吧(不得不承认相比穿越火线,名声确实差了很多)。在听讲今天的分享前,我都不知道逆战是采用虚幻引擎开发的。现在想一下,国内腾讯和西山居在虚幻引擎的使用上已经有了很多年的经验了,按理说应该会有几款虚幻引擎的游戏,然而实际上却寥寥无几,这里面应该有一定的原因的。这个分享里面针对性能优化的内容比较多。大体上分为两原创 2017-05-01 19:24:55 · 5004 阅读 · 0 评论