UE4学习手册
文章平均质量分 61
什么战吕布
毕业于某农民学校,拥有超过13年的打诨经验。
展开
-
【UE】一个需求案例掌握Timeline和插值Lerp
使用一个需求案例和DEBUG过程,帮你彻底理解timeline+lerp原理原创 2023-06-29 08:42:39 · 2026 阅读 · 0 评论 -
【UE】大世界子关卡StreamingLevel加载流程源码浅析-虚幻4
受限于硬件,当项目需要制作大世界的时候,整张大地图无法也没必要全部加载进内存。和所有支持大世界的引擎一样,UE采取了分块加载的方式:除了一个持久关卡(PersistentLevel)的加载以外,采用的都是运行时动态加载的方式,我们称这些关卡为子关卡或者流关卡(StreamingLevel)。当玩家到达子关卡边界的时候它们才开始加载。原创 2023-03-05 16:45:48 · 2550 阅读 · 0 评论 -
【UE】pak的mount(带源码解析)
正常的散文件加载是使用等接口来读取文件内容。但pak作为一个类似于压缩包的格式,其中的文件无法直接使用这种方式读取。故需要使用mount来挂载。mount操作告诉系统有哪些文件可以从pak中读到,并提供虚拟路径使系统可以通过等操作普通文件的方法操作pak中的文件。原创 2023-01-15 19:48:08 · 2701 阅读 · 1 评论 -
【UE】字符串及相互转化方式解析
UE中常用的字符串解析原创 2022-12-29 15:53:40 · 1475 阅读 · 0 评论 -
【UE4】引擎配置文件原理学习笔记
为什么saved同级目录下面有一个config,saved里面还有一个config:saved/config?它们有什么区别吗?为什么虚幻加载配置文件的以后还要写文件?记录虚幻配置文件层级和读取流程原创 2022-12-09 10:00:58 · 1228 阅读 · 0 评论 -
【UE】使用git做版本控制gitignore文件应该怎么写
在项目目录下创建`.gitignore`输入如下内容:... ...原创 2022-10-27 07:16:10 · 595 阅读 · 0 评论 -
【UE】Blueprints vs. C++: How They Fit Together and Why You Should Use Both 课程笔记
在使用虚幻进行游戏开发中应该偏重蓝图还是C++,或者何时使用蓝图,何时使用C++?本文为《如何平衡蓝图和C++》课程的笔记原创 2022-10-07 11:43:10 · 863 阅读 · 0 评论 -
【UE】蓝图和C++ Beginplay执行顺序
Beginplay在关卡被加载的时候执行且仅运行时被调用。那么C++和蓝图的Beginplay函数执行顺序如何呢?先说结论:实际上取决于C++在Beginplay函数体中调用父类Beginplay方法的时机。有且仅有调用父类BeginPlay之前的逻辑会在蓝图BeginPlay之前执行。原创 2022-10-05 22:14:35 · 1880 阅读 · 0 评论 -
【UE4笔记】paper2D通过静态图片创建动画序列
本文为官方教程《paper2D项目入门》的学习笔记,详细记录了导入texture后创建人物动画的过程原创 2022-09-12 20:46:03 · 1404 阅读 · 0 评论 -
【UE4】UnrealInsight获取真机性能测试报告
使用UnrealInsight可以看到运行时各个阶段的数据、追踪堆栈调用,帮助我们进行性能的分析。但最佳的测试方式是真机测试,那么如何获取真机的测试报告?有实时打印和获取日志两种方式,由于实时打印存在的教程很多,本文只介绍运行完后获取日志的方式。...原创 2022-07-01 09:23:39 · 1514 阅读 · 0 评论 -
【UE4】AddImpulse/AddForce doesnt work
在想要使用的PrimitiveComponent(如mesh)细节面板中check以下设置:检查碰撞类型是否复杂碰撞,复杂碰撞无法进行物理模拟。需要使用Default检查CollisionEnable是否开启物理(至少需要选择PhysicsOnly,QueryAndPhysics也可以)检查是否开启物理模拟。也可以用SetSimulatePhysics函数设置...原创 2022-04-02 08:04:17 · 1105 阅读 · 0 评论 -
【UE4笔记】学习资源记录
受《UE4有意思吧》这篇文章的影响,想把大佬们推荐的UE学习资源记录下来,做一个索引。这篇文章本身也是一个很好的知识库文章目录设计视频教程编码视频教程动画视频教程设计视频教程【UE官方】性能优化编码视频教程C++游戏开发开发大师级训练教程 by Ben & Samuel动画视频教程【生肉】电影制作(光照+材质+物理等)【Youtube】照明...原创 2022-03-12 10:50:12 · 1334 阅读 · 0 评论 -
【UE4笔记】将蓝图结构体转化为C++《将蓝图转化为C++》 官方视频教程笔记
本章介绍如何将蓝图的结构体迁移到C++中文章目录步骤完整代码步骤修改原有蓝图结构体的名字以作区分(如把FQuestInfo改成DISCARDED_FQuestInfo)新建继承于UObject的C++类,获得如下头文件UCLASS()class BLUEPRINTSTOCPP_API UQuestInfo : public UObject{ GENERATED_BODY()};将其稍作修改:USTRUCT(BlueprintType)struct BLUEPRINTSTOC原创 2022-03-06 12:33:27 · 1974 阅读 · 0 评论 -
【UE4笔记】C++中访问蓝图函数——创造蓝图本地事件《将蓝图转化为C++》 官方视频教程笔记
上一篇我们介绍了蓝图可实现事件(BlueprintImplementableEvent),跟它类似的另一种实现方式:蓝图本地事件(BlueprintNativeEvent)要更像C++的虚函数一些原创 2022-02-27 21:07:21 · 1405 阅读 · 0 评论 -
【UE4笔记】C++中访问蓝图函数——创造蓝图可实现事件《将蓝图转化为C++》 官方视频教程笔记
我们将要使用C++代码声明函数,创造蓝图可实现事件,并在蓝图中重载它——创造定义在C++中,实现在蓝图中的函数原创 2022-02-27 20:11:18 · 927 阅读 · 0 评论 -
【UE4笔记】如何查找蓝图中对应的C++函数《将蓝图转化为C++》 官方视频教程笔记
上一篇博客,我们介绍了如何将蓝图函数转化为C++函数,但在函数体的实现中,应该如何找到蓝图函数体中使用的函数并转化为C++函数呢?文章目录步骤图解情况1:函数体中只有一个函数调用情况2:存在更简单的替换常用的类头文件文字总结步骤图解查看蓝图函数的目标在VS中Ctrl+,搜索该目标名称,找到这个目标的头文件在头文件中搜索函数名,找到实际的C++函数找到函数名对应的函数体(热键Ctrl+左键单击函数名)若其函数体只有一个函数调用,这一个函数就是我们要找的函数。若其函数体比较原创 2022-02-27 18:42:06 · 3455 阅读 · 0 评论 -
【UE4笔记】使用UFUNCTION将蓝图函数改写为C++函数《将蓝图转化为C++》 官方视频教程笔记
文章目录函数改写步骤蓝图变量类型对应的C++类型普通数据类型工具类型(结构体)对象类型完整代码函数改写步骤查看原有函数的返回值,在C++类头文件中添加相同返回值的同名函数(蓝图类型对应的C++类型见下文)在刚刚写好的函数上面新增一行,填写UFUNTCTION预编译指令 UFUNCTION(BlueprintCallable, BlueprintPure) FVector GetMaxGrabLocation() const;其中,BlueprintCallable是必选项,否则无法在蓝原创 2022-02-27 11:53:34 · 1132 阅读 · 0 评论 -
【UE4笔记】使用UPROPERTY将蓝图变量改为C++变量《将蓝图转化为C++》 官方视频教程笔记
UE4反射及蓝图变量改为C++变量使用UPROPERTY将蓝图变量改为C++变量原创 2022-02-27 11:07:07 · 1202 阅读 · 0 评论 -
【UE4笔记】蓝图和C++的通信 ——《将蓝图转化为C++》 官方视频教程笔记
理论将蓝图项目转化为C++项目,就要让蓝图和C++实现通信。但由于C++无法获知任何蓝图的内容,所以要让C++类和蓝图类建立继承关系,只能给已有的蓝图类建立父C++类。即:新建C++类作为已有蓝图类的父类C++和蓝图类的通信只能通过C++类来实现:一个C++类UGrabber要调用蓝图类BP_QuestManager的函数CompleteQuest,实际上只能让UGrabber调用到C++类AQuestManager的CompleteQuest。要让实际运行的是BP_QuestManager的同名函数原创 2022-02-27 10:09:20 · 1290 阅读 · 0 评论 -
【UE4笔记】Collision碰撞
UE4将物体对碰撞的反应分为三种:ignore, overlap(重叠)和block,在Collision Preset(碰撞预设)中设置当两个物体发生碰撞的时候,UE4允许由物体来决定碰撞反应(Object Responses),或者由问询决定(Trace Responses)。如下图所示UE4内置的碰撞通道(图片来源于:UEBlogger James Golding)当两个物体接触的时候,碰撞判定会选择更轻的判定:如一个pawn和一个worldStatic,前者对worldStatic的碰撞预设是原创 2022-02-26 16:09:29 · 2216 阅读 · 0 评论 -
【UE4笔记】Actor与组件《将蓝图转化为C++》 官方视频教程笔记
什么时候使用Actor,什么时候使用Component? 二者区别如下原创 2022-02-21 09:52:02 · 558 阅读 · 0 评论 -
【UE4笔记】Event&Function事件和函数的区别
Event和Function的区别在哪?想封装一个功能的时候,我们在什么时候应该使用自定义事件(Custom Event),什么时候应该定义函数呢?原创 2022-02-20 10:06:09 · 5240 阅读 · 0 评论 -
【UE4笔记】蓝图联机游戏制作
文章目录制作用户界面初始主菜单MainManu搜索服务器界面 FindServer搜索到的单条服务器+加入按钮蓝图逻辑关卡蓝图主菜单MainManu搜索服务器界面 FindServer本文是Youtuber谌嘉诚(Chen Jiacheng)教程的学习笔记, 原教程连接制作用户界面新建三个HUD,分别用于制作初始主菜单、搜索服务器界面和搜索到的单条服务器初始主菜单MainManu搜索服务器界面 FindServer搜索到的单条服务器+加入按钮蓝图逻辑关卡蓝图其中set是显示光标原创 2021-11-16 12:29:36 · 2876 阅读 · 0 评论 -
【Unreal4】gitignore目录减小项目大小
在Unreal项目文件中,Binaries目录存放编译结果的二进制文件。每次编译都会生成,故可以gitignore掉来减小项目内容gitignore方法在项目目录下 git bash heretouch .gitignore 在刚刚创建的.gitignore文件中,vim .gitignore添加Binaries,Esc->:wq保存退出查看git status就已经没有Binaries这个目录了。以后提交到暂存区也不会提交这个目录下面的内容...原创 2021-11-15 11:31:57 · 1075 阅读 · 0 评论 -
【UE4笔记】蓝图升降电梯
本文使用蓝图实现电梯平台的升降(角色登上平台以后启动和按键启动两种)目录创建Actor蓝图类编写蓝图事件逻辑时间轴设置细节设置创建Actor蓝图类一个Box用于处理碰撞,一个cube做升降平台编写蓝图事件逻辑为了让电梯平滑上升,使用一个时间轴(Timeline)+ 插值(Lerp)时间轴设置细节设置如果使用按键启动,需要接收角色输入:在“类默认值”中将细节面板的输入设置为接收玩家0的输入(或者其它玩家)按键启动的蓝图设置:为了让检测碰撞的盒体box和电梯平台一起上升下降,原创 2021-11-10 11:16:56 · 2436 阅读 · 0 评论 -
【Unreal4】虚幻4粒子系统有时显示有时不显示
虚幻4粒子系统时隐时现,可以打开蓝图,选中粒子系统,在右侧细节面板中渲染选项卡下方找到“使用附加父边界”或者“Use Attach Parent Bound ”。勾选即可原创 2021-11-09 19:57:18 · 4803 阅读 · 1 评论 -
【UE4笔记】C++游戏控制的摄像机
目录自主操作题目逻辑代码本文尝试编写了官方文档游戏控制的摄像机中的自主操作题目2自主操作题目使用一个数组变量来存储摄像机,而不是摄像机1(CameraOne)和摄像机2(CameraTwo),这样你就可以遍历任意数量摄像机的序列,而不是仅仅两个。逻辑头文件创建一个EditAnywhere的Camera数组(TArray<AActor*>)(设置成UPROPERTY以便于在虚幻编辑器中绑定具体的摄像机)头文件设置平滑转换两个摄像机的时间间隔SmoothBlendTime(这里将其设置原创 2021-11-04 16:53:15 · 3239 阅读 · 0 评论