虚幻引擎

虚幻4随笔6 Object和序列化

我怕爱的太早我们不能终老 提交于 2020-02-06 23:16:07
诚如之前所说,虚幻4主要的一些特性都是由UObject穿针引线在一起的,想把虚幻玩到比较深的程度,UObject是迟早要面对、回避不得的问题,所以,准备在其它主题之前,先把UObject好好弄一下。UObject主要完成了哪些工作呢?私以为: 反射系统 UObject体系构建了整个虚幻反射系统的核心,每个UObject都来自于一个UClass,这个Class可以是Unreal Header Tool(以后统一遵循官网命名:UHT)生成的,也可以是来自于Blueprint生成的(UBlueprintGeneratedClass)。反射可以说是现在主流引擎的构建基础,对国内多数人而言,可能更熟悉的是Unity透过Mono构建出来的反射,它的重要性不言而喻。 反射很大一坨的东西,具体就不说了,它最大的作用,相当于在运行时动态生成代码,可以省掉很多手写代码的工作量。否则像UE这样复杂的界面,全部Hardcode,100人是绝对不够的,改一次所需的时间也是无法接受的。有了反射之后,剩下的很多就是很好理解的一条路就顺下来了:属性编辑器自动生成、自动消息包收发、自动序列化、自动生成BP节点、BP和C++的自动接口交互、自动浅拷贝深拷贝、甚至按照设定规则来进行拷贝……不胜枚举。 共通性都是一样:Get Class,Get Property,或者Get Function

虚幻4随笔4 从project開始

为君一笑 提交于 2020-02-06 23:14:17
 前文说到UE3開始。虚幻就使用了UnrealBuildTool(下面简称UBT)来编译和生成代码。 为什么这么做而不是使用VS是非常好理解的:由于VS跨平台会比較麻烦。像虚幻这样体量的project,单为project做一次VS配置就基本是一天的时间 并且UE4还不像UE3那样就十几个project,把全部uproject都看做project的话,得几十了。依赖关系复杂度几何增长,用VS的工具去维护……并且要维护各个平台和配置……再加上维护完后Mac、Linux还得维护一遍…… 可是为什么不使用成熟的CMAKE呢。私以为可能是由于UBT里有一系列错综复杂的规则,用CMAKE制作出来,即便可读性OK,调试也比較麻烦。并且CMAKE对引擎使用者提出了一定的要求,而UBT则相对简单——仅仅要你不纠结它怎样实现。 官网的这篇文章详解了为什么要做一个Build Tool出来: https://docs.unrealengine.com/latest/INT/Programming/UnrealBuildSystem/ProjectFileGenerator/index.html What are the advantages of generating project files? 能够先看看UBT的基本规则: https://docs.unrealengine.com/latest

初识UE4 VR开发一

时光怂恿深爱的人放手 提交于 2020-01-15 07:53:35
初识UE4 VR开发一 开篇 开始开发前的准备 编程基础 C++类 C++ 类定义 C++类的实例化 开篇 我是一个2020年毕业软件专业的毕业生,快要毕业了,已经厌倦了用java去创建一个工程,编写一个软件,所以在毕业设计选题时,我没有选择软件开发,因为对软件开发流程太熟悉了,感觉没有挑战,所以我选择了UE4 VR游戏设计,主题是基于Unrea Engine4/Unity 3D的VR数字电路实验室设计。我打算7号开始进行开发,开始开发后的每天我都会在博客中发表一篇文章来记录我的进度和学习到的内容。欢迎大佬的指点丫。 开始开发前的准备 首先我们需要准备以下几个必须要用到的环境需要配置: Steam VR 下载地址 Steam VR就不过多介绍了,它说白了就是steam玩VR游戏时所使用的一个插件 Unreal Engine 4 下载地址 (小声bb~~我不太知道怎么去介绍虚幻4引擎,就随便复制了一段百度百科)虚幻引擎总是能赋予开发商更强的能力,所见即所得’的平台。要知道,很多早期的引擎还需要自己编辑文本文件,或者是无法预览效果。2016年晚些时候,当人们欣赏到虚幻引擎4后,会被其深邃的特效所震撼到,”马克·瑞恩说道。正在进行的年度D.I.C.E峰会上,我们也希望了解到更多有关这款新引擎的情报。美国著名媒体《连线》日前有幸见识了Epic的旷世“新作”,虚幻引擎4的演示Demo

虚幻4属性系统(反射)翻译

泄露秘密 提交于 2019-12-17 12:30:55
反射是程序在运行时进行自检的一种能力。它非常有用且在虚幻引擎中基础技术,支撑了诸如 编辑器中的细节面板、序列化、垃圾回收、网络复制、以及蓝图与C++交互等功能。然而,C++原生并不支持任意形式的反射,因此 虚幻引擎有它自己的系统用来 利用、查询以及操作关于C++类、结构体、函数 、成员变量以及枚举的信息。我们特意把反射叫做属性系统,因为反射也是一个图形术语。 反射系统是可以选择加入的。你需要给暴露给反射系统的类型或属性添加注解,这样Unreal Header Tool (UHT)就会在编译工程的时候利用那些信息生成特定的代码。 标记 为了标记一个头文件包含反射类型,需要在文件顶部添加一个特殊的include文件。这让UHT知道它需要考虑这个文件,并且在反射系统的实现里也是需要的。 #include "FileName.generated.h" 你现在可以使用UENUM()、UCLASS()、USTRUCT()、UFUNCTION()、以及UPROPERTY()来在头文件中注解不同的类型以及成员变量。每一个宏都会出现在类型或者成员变量的前面,并且可以包含额外的修饰符关键字。让我们来看一个真实的例子(从StrategyGame截取一部分): /////////////////////////////////////////////////////////////////////////

如何下载和安装虚幻引擎

淺唱寂寞╮ 提交于 2019-12-04 03:57:52
下载Epic Games Launcher 步骤 百度搜索"what is ue4" 点击第一个搜索结果, 进入ue4官网 进入官网首页,点击右上角下载 创建并登录账号,选择游戏开发者,开始下载 动图示意 安装Epic Games Launcher 步骤 双击下载下来的安装包 一直下一步 动图示意 下载虚幻引擎 步骤 打开安装好的 Epic Games Launcher 点击左侧菜单栏中的"虚幻引擎" OR "Unreal Engine" 点击"Engine Version" OR "引擎版本"旁边的"+"号,选择想要的引擎版本,点击"install" OR "安装",选择合适的文件夹 动图示例 来源: https://www.cnblogs.com/kenwar/p/11829633.html