UE4
  • 2024-06-24UE4 C++ 随机生成迷宫地图
    参考参考原理就是利用一个房间的三个方向(排除进入口)出口(可以减少,即设置墙壁),从而获得下一次房间生成的位置,其中涉及到对于多个房间重叠,生成结束后如何对缺口进行修补等功能实现RoomBaseActor该Actor类是后续创建房间的基类,如果想要固定所有房间形状即只改变出口个数,那么在该类
  • 2024-06-20UE4之LoadingScreen机制
    1.当IsMoviePlayerEnabled()为false或使用nullrhi来运行游戏时,会使用FNullGameMoviePlayer(空MoviePlayer)来跑2.FDefaultGameMoviePlayer为实现LoadingScreen的核心类,包括视频数据流(IMovieStreamer)、UI界面(SWindow)、多线程更新(SlateLoadingThread)3.各个平台(Android、iOS、Win
  • 2024-06-17UE4 C++ AI实现跳跃(上下平台)
    NavLinkProxyPointLink:点对点,不提供可处理的事件SmartLink:提供可处理的事件,当AI到达Link位置时,可以接受函数通过ReceiveSmartLinkReached事件进行绑定函数操作实现简单的跳跃通过接口,定义函数,在AI基类中进行实现。主要通过两个函数实现UGameplayStatics::SuggestPro
  • 2024-06-16UE4 C++ AI感官获取检测结果
    重写ActorsPerceptionUpdated函数有委托OnPerceptionUpdated,可以自己编写函数然后进行绑定。也可以直接对ActorsPerceptionUpdated进行重写,该函数会在有感官变化时进行调用其会根据委托获得一个数组,即AI感知到的所有发生变化的Actor。通过对这些Actor的判断即可判断是进入范围还
  • 2024-06-09UE4动作游戏实例RPG Action解析-导语
    UE实战篇(动作游戏)概述解析官方示例游戏《动作RPG》动作角色扮演游戏示例项目(简称ARPG)是一个快节奏的第三人称砍杀类游戏本篇作用是从零开始写官方示例游戏重要部分,学完这篇再去研究官方示例,会轻松很多学完会获取以下知识:1.Unreal写一个C++项目2.学习UnrealGAS系
  • 2024-06-04UE4 AI
    UE4中的AIUE4中AI一般通过行为树来实现行为树控制了AI的动作,而该执行哪些动作则是由AIController(本质上是一个类)进行判断,然后传入BlackBoard的Key中,之后在行为树里利用Selector或者Sequence进行执行对应的动作每个Actor类都可以选择一个AIController类行为树中的两个节点S
  • 2024-05-31UE4 攀爬2
    说明正式的攀爬功能,攀爬功能其实就是跳跃功能的Plus版本,在面对不同凸起地面墙壁时,有不同的动画效果,使得角色可以越过障碍,而不是只有跳跃动画以及跳跃高度恒定,导致角色无法运动该攀爬功能实现了面对薄墙(高、低)和厚墙(高、低)的基础攀爬动作,在面对厚墙时,角色在成功攀爬后会站在平台
  • 2024-05-29UE4中PhysX BroadPhase(碰撞检测的粗略阶段)
    PhysX的BroadPhase(碰撞检测的粗略阶段),具体是用AABB(轴向包围盒)来做碰撞检测具体算法有两种:SAP(SinglePruningBox,单个剪枝盒)和MBP(MultiPruningBox,多个剪枝盒) SAP(Single PruningBox,单个剪枝盒)当场景中有大量的物体(大世界有百万级别)时,即使它们已按AABB的三个轴向xyz做了排序
  • 2024-05-29HO引擎近况20240529
    一晃半年多忘了更新了新公司的工作太忙,期间公司还搬了一回家晚上9点多才下班的情况以前的公司也有过,但是这次不知道为什么我的身体总是不舒服先是后背感觉像拉伤了一新疼了小半年然后就是我的眼最近也开始看远处的景物有点模糊,不知道是不是我工位上的一排射灯导致不过这些都
  • 2024-05-25UE4之宏与预编译指令定义
    在UBT中添加宏定义UnrealEngine\Engine\Source\Programs\UnrealBuildTool\Configuration\ModuleRules.cs UnrealEngine\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildPlatform.cs UnrealEngine\Engine\Source\Programs\UnrealBuildTool\Con
  • 2024-05-21UE4 动态生成网格
    说明在游戏中动态改变网格数量和形状等,该功能是寻路功能的前期准备,即在基础移动地基上方,构建一层网格,任何移动的操作都可以基于该网格进行计算。从而在编辑器模式下能够更方便进行调试InstancedStaticMeshComponent其是一种用于优化静态网格渲染性能的技术。InstancedStaticMes
  • 2024-05-19UE4 C++ 攀爬功能
    UE中的TEXT()UE中使用TEXT()包含字符串后,将字符串转换为宽字符,其将被处理为支持Unicode和跨平台兼容性,而普通类型的字符串为一个窄字符类型,可能在跨平台出现问题。最主要的问题是在FString的构造函数中是接受TCHAR的所以对于FStringFNameFTEXT的构造需要传入TEXT("xxxx")。
  • 2024-05-05UE4 -- 实现用于网络连接的插件
    插件UE中的插件就相当于一个模块,在引擎界面点击创建新的插件后,会在项目文件夹中生成插件的文件夹,在该文件夹内,只需要像游戏项目一样编写插件逻辑,最后在插件选择界面开启该插件即可当新建插件后,UE会自动生成继承于IModuleInterface的类,说明该文件夹的内容为插件。在InsideUE4中
  • 2024-05-04UE4 C++ 杂
    TMap中的Find和FindRef在对蓝图节点进行C++重写时,发现UE对于TMap的Find有很多方式。首先是基础的Find,其就是返回对象类型的指针,如果不存在于TMap中其会返回nullptr接下来是FindChecked,其返回的是对象类型的引用,并且会在内部检测指针是否为空,如果没有会触发断言FindRef其
  • 2024-04-27UE4之StaticMesh和SkeletalMesh类关系图
    StaticMesh类关系图StaticMesh渲染数据结构 SkeletalMesh类关系图 USkinnedMeshComponent::CreateRenderState_Concurrent函数voidUSkinnedMeshComponent::CreateRenderState_Concurrent(FRegisterComponentContext*Context){LLM_SCOPE(ELLMTag::SkeletalMesh
  • 2024-04-25UE4 寻路
    寻路就是对图的遍历,目前主要处理对可转换为二维矩阵的方格图遍历DFS与BFS两种最基础的遍历方式,DFS采用回溯思想,将从起点开始沿着一个方向搜索,直到超出界限(回溯)或者到达目的地(返回结果)//只考虑上下左右四个方向vector<vector<pair{int,int}>>res;vector<pair{int,int}
  • 2024-04-13UE4 iOS打印出所有线程的调用栈
    在Xcode15.2中调试UE4游戏(Development包),执行btall打印出所有线程(共116个线程)的调用堆栈*thread#1,queue='com.apple.main-thread',stopreason=signalSIGSTOP*frame#0:0x00000001f9c7d178libsystem_kernel.dylib`mach_msg2_trap+8frame#1:0x00000001f
  • 2024-03-30UE4 c++ 通过枚举寻找DataTable中的数据
    DataTable中的数据DataTable中每一行数据是一个结构体在C++代码中定义结构体,然后可以在蓝图中可以创建以此结构体为单元的DataTable枚举变量定义一个头文件来存储枚举变量,然后可以在要使用的文件中利用MyEnumPtr=FindObject<UEnum>(ANY_PACKAGE,TEXT("EGridShapEnum"),tr
  • 2024-03-29UE4 C++ Widget的NativeConstruct 与 NativePreConstruct
    构造函数由于Widget是由UE的反射系统创建的,其生命周期由UE引擎管理,所以并不存在构造函数,UE为Widget类定义了两个虚函数NativeConstruct与NativePreConstruct来充当构造函数的作用。而这两个函数的调用都必须在Widget被实例化之后才能进行调用如何在Widget中获取角色在蓝图节
  • 2024-03-26UE4 存档
    基本目标:存档按键TAB保存P键显示读档界面读档后位置重置到读档内容存档界面关于每一条信息的变量和读取按钮点击事件存档存档主要的逻辑是存到内存中并存到本地显示的就是内存中的打开关卡时加载本地到内存其实整个保存的目前只是一个Location,应该封装成对象比较好,
  • 2024-03-25UE4 UI
    2DUI点击后控制权切换制作2DUIDesignerGraph在关卡蓝图/控制器类中使用UI【一般是控制器类】效果暂停游戏制作UI暂停游戏点击事件增添UI动画3DUI全自动/半自动制作UI添加点击事件制作UI蓝图类并连接到UI上增加WidgetInteraction设置一个对外的
  • 2024-03-24UE4 创建角色 绑定动画 蒙太奇动画
    UE4文档:https://docs.unrealengine.com/4.27/zh-CN/AnimatingObjects/SkeletalMeshAnimation/CharacterSetupOverview/角色-动画蓝图动画蓝图中包含多种动画创建角色输入【这里设置使用OrientRotationtoMovement后,没用,发现是需要设置摇臂中的UsePawnControlRotati
  • 2024-03-24UE4 射线检测 拾取物品
    第一视角玩家这里比较重要的点是PickUp是一个接口,调用的是接口PickUp接口定义接口实现接口的Actor类继承这个接口,实现的时候,就变成了事件(当接口没有返回值时就可以作为事件被触发)在Projectsetting中添加tracechannel,在碰撞体上勾选一开始的时候,把网上找的骨骼网格放进
  • 2024-03-23UE4上下车
    上下车描述上车:车获得控制权玩家做到位置上玩家和车一起动进入感应区按F上车下车:玩家获得控制权玩家下车位置解除一起动的关系车减速停下版本1ThirdPersonCharacter增加IsInSedan的变量增加Car的变量Sedan蓝图类-上下车事件图表增加ThirdPersonCharacter的变量
  • 2024-03-23UE4 c++ -- 简单的UMG
    说明学习一下如何将Widget蓝图与C++连接起来,将处理逻辑写在C++中基础在蓝图中,我们显示Widget是通过一个Actor或者PlayerController,甚至关卡蓝图,利用CreateWidget以及AddToViewPort使得Widget显示在屏幕上的所以在C++中也是一样,一般来说由于Actor的销毁比如角色死亡,会导致其