UE4
UE4 自定义StaticMesh碰撞失效
将画刷编辑的Actor转换成静态网格体后,原有的碰撞消失了,解决办法如下: 1. 首先在内容浏览器中找到需要更改碰撞配置的网格体 ![image](https://img2023.cnblogs.com/blog/1857566/202306/1857566-20230610152647539-12 ......
[UE4]资源异步加载(Assets Asynchronous Loading)与内存释放(Free Memory)
为什么需要异步加载资源,因为当一次性加载的资源较多或者单个资源较大时,普通的LoadObject()方式会阻塞引擎的主线程。 假设测试工程叫TestTD4,自定义Character叫ATestTD4Character(头文件为TestTD4Character.h) 假设在Content/Assets ......
UE4 Standalone Object继承树
obj classes Object (48) GCObjectReferencer (120) TextBuffer (88) Field (56) Struct (192) ScriptStruct (208) MovieSceneKeyStructType (400) UserDefinedS ......
【虚幻引擎】UE4源码解析FWorldContent、UWorld、ULevel、UGameInstance、UEngine
一、UEngine Engine,因为也是很基础的类,再加上开发过程中会经常访问到该类型,因此UE4引擎也在代码全局范围内定义了一个该类型的全局变量:UEngine* GEngine供开发者直接调用。该最基础的类型分化成了两个子类:UGameEngine和UEditorEngine。 UGameEn ......
UE4添加人物动画之前后左右移动
这也一节,我们来使用动画状态机的逻辑。 1) 编译一下,回到 UE4 编辑器双击我们的动画蓝图,选择动画图标,创建一个状态机,并双击状态机。 2) 点击引脚拉出来一个节点选择添加状态。 3) 更改名字为 Idle 说明是静止状态,然后在 Idle 节点拉出一个 Move 节点表示是移动状态,然后再从 ......
UE4添加人物动画之状态机
这一节我们创建一个动画蓝图并在C++中把它绑定到角色身上 。 状态机 状态机是可以让动画过渡到另一个动画的工具,它大大简化了动画设计流程。 1) 在 UE4 编辑器中,我们以 AnimInstance 为父类创建一个名为 CharacterAnimInstance 的子类。 2) 进入到我们的骨骼网 ......
UE4添加人物摄像机
在这一节中,我们需要添加两个组件分别是摄像机弹簧臂组件和摄像机组件。 摄像机弹簧臂组件 摄像机弹簧臂组件,可以想象成是我们的手臂和手。手拿着摄像机,当我们想移动摄像机的时候,我们移动的是我们的手臂而不是摄像机。 1) 打开VS编辑器,在PlayingCharacter.h文件添加摄像机弹簧组件和摄像 ......
UE4添加人物模型
在正式使用 UE4 添加人物模型之前,我们先来解释几个概念。 什么是组件 在添加人物模型之前先介绍一个概念叫“组件”,组件是什么呢?组件的作用是为了让 Actor 实现一个功能,比如说:我们现在的角色,没有模型,我们需要一个模型那怎么办呢?那么我就要在 Character 身上挂一个“骨骼模型组件” ......
UE4实现人物跳跃
这一节我们来实现人物的跳跃。 1) 首先我们打开 UE4 编辑器,点击项目设置,点击输入,添加 BindAction 类型的按键绑定,名字为 Jump,按键是空格键。 2) 打开 VS 编辑器,在我们的角色类 APlayingCharacter 头文件的末尾声明两个函数,分别是开始跳跃和停止跳跃: ......
UE4设置人物移动和人物视角
本节我们先讲解 UE4 人物移动的设置,然后再讲解 UE4 人物视角的设置。 UE4 设置人物移动 1) 打开 UE4 编辑器,点击“编辑”然后点击“项目设置”: 2) 选择“输入”: 3) 点击“AxisMappins” 的 添加按键输入,我们创建 6 个按键输入: 4) 更改按键和按键的名字,这 ......
UE4设置默认角色和控制器
上一节我们设置了默认地图和关卡,这一节我们来设置默认的角色和控制器和默认地图不一样,默认角色和控制器需要设置在 GameMode 里面。 1) 打开 VS 编辑器, 打开“APlayingGameModeBase.h”文件,声明一个构造函数: 2) 在“APlayingGameModeBase.cp ......
UE4新建人物和地图模式
在 UE4 中,每一个世界(World)有多个 Level(关卡),而每个关卡又可以设定自己的 GameMode(游戏模式),从而控制游戏的玩法。 新建 GameMode 1) 打开 UE4 编辑器,我们点击左下角的“显示/隐藏资源面板”。 2) 点击 "C++类" ,选中"GameProject" ......
UE4新建项目
打开 UE4 启动器,选择 4.21.2 版本的虚幻引擎,点击“启动”按钮。 点击之后会出现如下图所示的界面,可以对新建项目进行设置。 “项目”这一栏存放着你新建后的项目。我们点击“新建项目”,点击“C++”,选择“基础代码”,选择“没有初学者内容”,然后写上项目名字,注意不能有中文,然后点击创建项 ......
UE4使用什么编译器?
UE4 的底层虽然是用 C++ 实现的,但它又不仅仅是一个 C++ 库,它还实现了自己的编译机制。换句话说,UE4 对现有的 C++ 语法进行了改进,以适应游戏开发的场景。 当然,UE4 也不会疯狂到自己去开发一个 C++ 编译器,它还是需要依赖传统的 C++ 编译器以及相关的编程套件。 熟悉 Qt ......
UE4的下载和安装(UE4开发环境的搭建)
使用 UE4 开发游戏之前,必须先搭建开发环境,具体包括: UE4 引擎的下载和安装 Visual Studio 下载和安装 UE4 的下载和安装 1) 首先,打开任意一个浏览器输入 UE4 官方网站的网址 https://www.unrealengine.com/zh-CN/,点击右上角的“下载” ......
UE4是什么?虚幻4引擎是什么?
UE4 的全名是 Unreal Engine 4,中文译为“虚幻引擎4”。UE4 是一款由 Epic Games 公司开发的开源、商业收费、学习免费的游戏引擎。 从 1998 年发行至今,UE4 一共经历了 UE、UE2、UE2.5、UE3、UDK、UE4 多个版本,它的迭代速度极快,现在已经到了 ......
UE4字符编码
# CharacterEncoding 此文为Character Encoding (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。 这篇文章提供了UE4所使用字符编码的概览。 # Text格式 有很多格式可以用来展示文本和 ......
UE4编成基础
# 框架相关的 # 编程基础 一个游戏是由一个包含所有代码,内容和相关设置的游戏项目定义的。Gameplay代码被包含在一个或多个gameplay模块中,每个游戏项目必须包含至少一个模块。游戏的内容,比如美术资产,声音等等需要被导入到编辑器然后被保存成包和地图,对于游戏可配的设置定义在配置文件中,该 ......
UE4断言
# 断言 此文为Assertions (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。 UE4中断言是一种工具,用于确认一段给定代码所依赖的假设,假如运行一段逻辑前必须要确保某个变量不为空,如果该变量为空则停止执行或给出提示 ......
UE4配置文件
# 配置文件 此文为configurationcategories (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。 包含配置gameplay或者引擎行为属性设置值的文本文件。 在工程加载时,配置文件可以被用来给一些需要初始 ......
UE4字符串调试日志
# 在运行时打印输出信息 原作者:Rama (opens new window) 此文为Logs, Printing Messages To Yourself During Runtime (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不 ......
UE4中控制台变量
# 前言 此文为Console Variables in C++ (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。 一个控制台命令是用户输入字符发送到引擎然后引擎以某种方式反应(比如console/log变量,改变内部状态) ......
UE4中的蓝图函数库
# 蓝图函数库 此文为AssertionsBlueprint Function Libraries (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解 我们在开发中经常发现需要一系列工具函数来让开发更简单。这些函数经常是无状态的 ......
UE4字符串系统FName
# FName 此文为FName (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。 当你在内容浏览器中命名一个新的资产时,改变一个动态材质实例的参数,或者获取SkeletalMesh上的一个骨骼,你在使用FNames。FNa ......
UE4中的字符串处理类
# StringHandling 此文为String Handling (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。 概览UE4中的字符串处理类,还有FName,FText和FString的入门向导。 # FName 当 ......
UE4代码编写标准
# 代码编写标准 此文为Coding Standard (opens new window)的原创翻译,本文内容版权归原文所有,仅供学习,如需转载望注本文地址,翻译不易,谢谢理解。 在Epic,我们有一些编码标准和约定。这个文档不打算讨论或进行改进,相反,它反映了Epic的当前编码标准。 编码约定对 ......
UE4时间管理
# 时间管理 定时器是在短暂延迟或一段时间后计划执行一些操作。比如,你可能想让玩家获取一些东西后变无敌,在十秒后变回原状态,又或者你想让玩家在一个充满毒气的屋子里移动时每秒掉多少血。这样的行为都是通过定时器来实现的。 定时器是被全局Timer Manager(FTimerManager类)中管理的, ......
UE4 源码解析----引擎初始化流程
在研究UE4的源码过程中着实不理解的地方有很多,今天给大家分享一下UE4引擎的初始化流程。 一、引擎的函数入口 C++的函数入口都是Main() 函数入口,UE4也是一样,Engine\Source\Runtime\Launch\Private Windows函数入口 引擎入口函数为:Guarded ......
UE4材质入门
前言:在学习的过程中笔记是不可缺少的,匆匆看过一遍不记笔记和实操的话总会忘掉一些知识点或者是记的不牢固,所以我写了本系列文章,一方面是强迫自己认认真真的看完一章课程,另一方面记笔记加深一下自己的记忆以及思考。所以本系列文章是我学习过程中的笔记,思考,实操以及作业然后分享给大家,欢迎大佬们指正。 纹理 ......