自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (6)
  • 收藏
  • 关注

原创 UE5 Lyra中的UI层级与资产管理

UE5 lyra中基于CommonUI制作的项目插件CommonGame主要实现了层级管理与UI动态加载,本文对其源码与使用方式进行拆解。其存在的问题:无法在添加UI时同时放入参数,以及特定项目需要无法满足,但是很棒的UI层级管理实例...

2022-06-30 17:21:25 2704 1

原创 UE4 基于GAS的插件ArcInventory拆解-5_交换技能: UArcAbilityTask_SwitchInventory、UArcInvAbilityTask_SimpleTarget

通过ArcInventory中的几个Task示例可以了解GAS中的AbilityTask、TargetData、Predicting之间的相互协作一、UArcInvAbilityTask_SimpleTarget1.1、属性FGameplayAbilityTargetDataHandle ServerTargetData;简洁,仅有一个TargetDataHandle负责数据传输1.2、方法重写了AbilityTask的函数,同时提供虚函数调用给子类重写virtual void Acti.

2021-10-20 20:49:28 576

原创 UE4 基于GAS的插件ArcInventory拆解-4_库存组件子类:UArcInventoryComponent_Bag/Equipable/Active

一、UArcInventoryComponent_Bag最朴素的背包1.1、属性 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Inventory) int32 BagSlotCount; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Inventory", meta = (AllowPrivateAccess = "true")) FGameplayAt

2021-09-11 14:23:50 462

原创 UE4 基于GAS的插件ArcInventory拆解-3_物品生成器:UArcItemGenerator_Unique/Static/Perk/SimpleRandom

一、UArcItemGenerator使用生成器将ArcItemStack生成,其仅仅用于生成固定种类的Stack与UI数据,而动态变化的Definition和Rarity则作为函数参数传入1.1、属性栈类、Tag、UIDataUPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Default")TSubclassOf<UArcItemStack> ItemStackClass;UPROPERTY(EditDefaul

2021-09-09 17:48:46 741

原创 UE4 基于GAS的插件ArcInventory拆解-2_物品实体:UArcItemStack、ItemDefinition

一、FArcInventoryItemSlot继承自FFastArraySerializerItem,优化网络传输1.1、基础属性主要是:物品/上一个物品、筛选/被筛选Tag、自身信息 UPROPERTY(BlueprintReadWrite, VisibleInstanceOnly, Category = Inventory) UArcItemStack* ItemStack; TWeakObjectPtr<UArcItemStack> OldItemStack; UPROP

2021-09-08 11:15:14 329

原创 UE4 基于GAS的插件ArcInventory拆解-1_库存核心:ArcInventoryComponent、FArcInventoryItemSlot

零、资料插件地址:https://www.unrealengine.com/marketplace/zh-CN/product/arc-inventory文档地址:https://redirect.epicgames.com/?redirectTo=https://punyhumangames.github.io/ArcPluginsDocumentation/arcinventory/一、ArcInventoryComponent1.1 主要属性 FArcInventoryItemSlotA

2021-09-07 17:02:57 860 3

原创 UE4 GAS 踩坑与实践汇总

零、本文目的仅用于记录个人在GAS中遇到的小问题汇总,如果有遇到相似问题一、GAS Debug插件推荐:1.1、GASAttachEditor用于简单调试,可以实时查看属性、能力、Effect,简单好用,重点是免费二、InitAbilityActorInfo的调用位置1.1、当AbilityComp在PlayerState时无需多言,在PossesBy函数中调用就可1.2、当AbilityComp在Character时需要在BeginPlay后调用,即彻底同步客户端后调用不能再

2021-08-13 20:19:46 1194

原创 Rider For Unreal 常用快捷键与基础操作整理

今早試用了一下Rider,傻逼VS喋屎去吧,哈哈哈哈哈哈哈整理一下Rider中目前比較常用的快捷鍵,歡迎私信或評論補充,確實常用的話我會立即加上不知道爲啥輸入法變繁體了,1s前還好好的,忍一忍吧操作快捷鍵編譯Ctrl+F9編譯並運行Shift+F10快速切换声明与实现Ctrl+B快速添加所需头文件选中类、Alt+Enter->Add Include快速生成函數定義Alt+Ins->Difinition查询Ctrl+F全

2021-07-20 14:29:08 16423 1

原创 UE4 GAS 04 -伤害设置

初学GAS,仅用作自己查缺补漏,不想再做时又去找视频参考教程:英文原版(联机):Ambience Lee:https://www.udemy.com/course/introduction-to-unreal-engine-4-ability-system/中文翻译重置(单机):小明:https://space.bilibili.com/149146076/channel/detail?cid=127939&ctype=0一、碰到敌人时给自己推送伤害消息,Target为敌人二、在.

2021-07-13 21:14:54 642

原创 UE4 GAS 03 -创建人物属性

一、创建属性集合并放进Character中1.1、c++逻辑AttributeSetBase.h#pragma once#include "CoreMinimal.h"#include "AttributeSet.h"#include "AttributeSetBase.generated.h"/** * */UCLASS()class GASTEST_API UAttributeSetBase : public UAttributeSet{ GENERATED_BODY()

2021-07-13 11:56:13 451

原创 UE4 GAS 02 -创建一个普攻

初学GAS,仅用作自己查缺补漏,不想再做时又去找视频参考教程:英文原版(联机):Ambience Lee:https://www.udemy.com/course/introduction-to-unreal-engine-4-ability-system/中文翻译重置(单机):小明:https://space.bilibili.com/149146076/channel/detail?cid=127939&ctype=0一、创建一个能力二、Character逻辑1.1、获取到.

2021-07-13 10:34:45 168

原创 UE4 GAS 01 -基础环境搭建

初学GAS,仅用作自己查缺补漏,不想再做时又去找视频参考教程:英文原版(联机):Ambience Lee:https://www.udemy.com/course/introduction-to-unreal-engine-4-ability-system/中文翻译重置(单机):小明:https://space.bilibili.com/149146076/channel/detail?cid=127939&ctype=0一、插件环境1.1、在Editor中勾选GameplayAb.

2021-07-13 10:26:43 310

原创 基于ubuntu server 20.04.2的Gitlab14环境搭建最全全流程

目录欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器

2021-07-11 18:01:12 1069

原创 UE4 C++ 使用GameInstance实现简单加载界面调用

SeamTravel可以保存数据,但如果再TravelMap里放上加载界面效果极差,又希望把加载功能尽量做小且可以使用UMG,所以不使用AsyncLoadSystem,异步线程太麻烦。结合网络文章写了一个简单测试版。零、主要思想0.1、通过GameInstance的PreLoad广播+PostLoad广播实现界面自动创建与销毁0.2、使用中的MoviePlayer实现UMG在Slate线程显示加载界面,而不再被主线程阻塞0.3、只完成最简单的加载界面逻辑,且尽量描述啰嗦0.4、 参考文档C.

2021-06-04 10:26:14 3104 1

原创 ue4 c++ 定位打包错误地点的方法

仅记录自己遇到的打包问题以及解决的方法,有空会搜寻别的童鞋的打包解决方案。一、断点+ -game1.1、根据报错信息找到对应文件函数地址以4.26才遇到的打包问题Cannot create SoftObjectPath with short package name ‘False’ ! You must pass in fully qualified package names.为例1.2、找到该文件并在该文件下ctrl+F找到对应报错信息地址,添加断点1.3、打开VS,属性->.

2021-05-14 09:48:50 857

原创 ue4源码下载后vs的基本配置(包含编译版本简单设置)

一、修改solutionConfiguration宽度1.1 右键上方工具栏,选择custom1.2 按步骤选择需要配置的显示宽度效果:可以分清Debug与Debug Editor模式二、关闭Git源码控制提升项目启动速度2.1 Tool->Option,将Git源码控制设置为None...

2021-02-23 13:57:29 711

原创 给QMainWindow添加背景图片并拉伸

问题:无论是使用样式表还是设置brush都无法解决QMainWindow或QWidget背景拉伸问题解决方法:只能在c++中 新建一个label并放置到底层 //显示背景图片 QPixmap pixmap(":/Resources/BackgroundImg.jpg"); QLabel* label = new QLabel(this); label->setPixmap(pixmap.scaled(QSize(geometry().width(), geometry().height())

2021-01-06 20:14:22 1109

原创 2.2 UE4反射分析——带函数与变量的AActor拆解

一、在AActor中添加函数与变量较之上一节我们添加了两个UBoxComponent作为变量,以及从TestFunc1——6共六种常用的函数其中TestFunc5需要在cpp中有实现MyActor.h// Fill out your copyright notice in the Description page of Project Settings.#pragma once#...

2020-08-06 13:36:50 421

原创 UE4 杂项笔记

2020/7/16一、使用SwitchWiget切换同一场景下的不同Widget二、使用GameInstance创建Loading动画三、关卡参数传递四、在编辑器实现ESC按键五、继承SButton实现Focus切换效果六、Loading加载界面6.1 Openlevel时Level名尽量加上路径,否则ue4会遍历全局寻找地图6.2 多人关卡切换ServerTravel...

2020-08-06 13:35:44 220

原创 UE4 VehicleSystemPlugin Vehicle_DemoBase_Roket拆分

总结该蓝图只有一个核心变量RocketEngaged核心逻辑仅为LeftShift出发RocketEngaged,后25TPS进行SetLinearPhysicsVelocity一、ConstructInitRocketExhaust二、BeginPlay基本就是获取动态材质三、Event 25TPS步骤:Lerp 喷火时的声音判断是否需要加速满足条件则加速约束VehicleMesh.LinearVelocity=AirSpeed[200,350]映射[100,

2020-08-04 17:36:01 432

原创 UE4 VehicleSystemPlugin Vehicle_Base拆分

Vehicle_Base拆分一、EventBeginPlay1.1、参数初始化1.2、定时更新数据二、每隔0.04s一次的更新2.1 UpdateInput2.1.1 CaluclateThrottle2.1.2 Calculate Brakes2.1.3 Calculate Steering2.2 EngineSimulate2.2.1 设置CurrentThrottle2.2.2 Calculate Speed2.2.3 Calculate Speed Target2.2.4 Transmissiona

2020-08-01 17:47:09 1126 2

原创 UE4 适用于多人游戏的简单小地图制作探索

网络上大部分使用Capture2D直接映射小地图方式不仅没有扩展性,且性能要求直接翻倍,实际效果极差,不可支持多人,多物件显示麻烦。纯浪费时间的sb方案。除了初学者超小demo制作,建议不学,学了不使用。该博客仅用于多次制作时快速翻阅,要详细学习请移步:参考视频一、地图基础1、采集原始地图1.1、选出合适的高度后,将RendTexture导出到PS做处理后大小不变导回ue。导回图片后记住OrhtoWidth,不管/删除上文图片采集工具1.2、制作地图材质MapImage是Texture.

2020-07-22 21:29:35 1175

原创 UE4遇到的各种奇葩问题

本文仅针对奇葩问题进行描述与解决,顺便看看究竟有多少人中招一、在编辑器界面什么都没做,镜头自动上移/下移至最顶点,拔了鼠标键盘也没用,其他一切正常。大概率是手柄插了后忘了拔下来,UE4编辑器支持手柄操作。...

2020-07-22 15:30:38 2500

原创 UE4 CarSelection拆解

第一部分——主要逻辑一、BP_CarSelectionGameMode1.1、BeginPlay获取并保存StartGame关卡送过来的参数1.2、InitializeHUDForPlayer对该函数进行重写来控制HUD的生成,参考:AGameModeBase Document1.3、变量和默认值Use Seamless Travel:游戏使用无缝旅行,对多人游戏极其重要。好处是背景加载Level和客户端不断开链接1.4、BP_CarSelectionGameState二、

2020-07-20 17:51:52 529

原创 UE4 Base准备

一、BP_CarPlayerState1.1、ServerSetCarLookupName设置名字,简单易懂1.2、CopyProperties用于在关卡跳转后储存原关卡的PlayerState数据,只有PlayerState有这个功能NewPlayerState:跳转后关卡的State,可以对其直接操作和赋值1.3、变量与默认值...

2020-07-20 16:01:25 193

原创 UE4 StartMenu拆解

StartMenu拆解第一部分——主体逻辑一、BP_StartMenuGameMode二、BP_StartMenuPlayerController2.1、BeginPlay2.1.1、UI创建与按钮Focus2.1.2、针对多人逻辑2.2、变量与默认值2.2.1、默认值ShowMouseCursor2.2.1、Seesion引用三、BP_StartMenuPawn3.1、OnBecomeViewTarget四、总结:第二部分——UI逻辑一、BP_StartMenuWidget1.1、OnConstruct1

2020-07-20 12:00:53 273

原创 UE4 C++引擎崩溃+打包失败记录

1、2020/7/151.1、症状:**可以打开项目,编译任意蓝图,有任意蓝图被系统编译必崩溃。**1.2、原因:想搞一个接口变量存储在类成员中,官方不给TScriptInterface包裹就不能用,用了官方推荐的TScriptInterface后就出现上述问题UPROPERTY(BlueprintReadOnly, Category = "Vehicle") TScriptInterface<class IVehicleInterface> VehicleRef;1.3、解

2020-07-15 11:12:52 5775 1

原创 2.4 UE4-OSS对象存储-创建域名

创建域名一、进入地址二、查域名三、加入清单、结算![在这里插入图片描述](https://img-blog.csdnimg.cn/20200712155016636.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMDI2MDA5,size_16,color_FFFFFF,t_70)一、进入地址二、查域名三、加入清单、结算

2020-07-12 15:52:30 233

原创 UE4 AdvanceVehicleSystem文档翻译

AdvanceVehicleSystem文档翻译一、项目设置:ProjectSetting1.MIN/MAX CONTACT SETTINGS2.MAX TERMINAL AND ANGULAR VELOCITIES二、创造一辆汽车Step 0:前置条件Step 1: 绑定输入按键Step 2: 创建汽车基类2.1 创建一个基于Vehicle_Base的蓝图2.2 打开蓝图并创建springarm和camera2.3 启动引擎2.4 绑定你之前设置的按键到指定功能Step 3: 基于这个基类创建你所需汽车3

2020-07-08 17:56:11 1082

原创 UE4 容易被遗忘的操作

1.将组件设置为private时报错,不允许私有成员为VisibleAnywhere在UPROPERTY中添加 meta=(AllowPrivateAccess=“true”)private: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta=(AllowPrivateAccess="true")) class USpringArmComponent* SpringArm;......

2020-05-21 16:49:27 1379

原创 UE4简单功能——C++小功能

一、任意ENUM(int)枚举与FString、FName互相转换基本思路:通过名字Enum名查找到对应的ENUM,然后调用对应函数,粗暴且效率不高,胜在逻辑简单。 //ENUM转FString template<typename TEnum> FORCEINLINE FString (Enum2String)(const FString &Name, TEnum ...

2020-05-01 21:12:03 950

原创 UE4简单功能——物体描边(后处理材质实现)

一、下载后期材质链接:https://download.csdn.net/download/qq_40026009/12373015二、将材质解压到项目根目录(content)三、在项目中修改合适的参数四、放置后期盒子关于后期盒子以及后处理材质的使用自寻官方文档或其他平台学习,本文仅提供最简单实现注意:array+后点击选择->资源引用就能变成上图效果五、逻辑...

2020-04-29 15:10:16 3095 1

原创 UE4 C++ 利用反射获取到类、类的成员

一、获取到特定类的对象实例1.1、GetObjectsOfClassGetObjectsOfClass(类型::GetStaticClass(),存储结果的数组); TArray<UObject*> Objs; GetObjectsOfClass(UClass::StaticClass(), Objs); TArray<UObject*> ActorObjs;...

2020-03-26 16:43:13 11486

原创 2.1 UE4反射分析-空AActor拆解

一、空AActor1、创建一个继承自AActor的空类AMyActor,对GENERATED_BODY()宏Alt+G不断深入(需安装Visual Assist)2、展开GENERATED_BODY()2.1、第一次展开//GENERATED_BODY()展开后CURRENT_FILE_ID___LINE___GENERATED_BODY//再次替换后Reflect_Source_R...

2020-01-08 15:40:58 585

原创 1.5 从0创建蓝图编辑器-使用官方Pin+第一部分源代码

一、使用官方提供的SlatePin1.1、创建一个宏,用于分开之前的自定义Pin/Node与现在的官方Pin/Node的使用TestGraphAndBlueprint.h#define SELF_SLATE 11.2、给GraphNode添加更多的GraphPinUTestNode_HelloWorld::AllocateDefaultPins():void UTestNode_...

2019-12-22 16:09:54 495

原创 1.4 从零创建蓝图编辑器-创建自定义Node显示

一、创建空Node1、创建两个空类:SMyGraphNode_HelloWorld FMyGraphPanelNodeFactorySMyGraphNode_HelloWorld需要添加模块:EditorStyleSMyGraphNode_HelloWorld.h// Fill out your copyright notice in the Description page of ...

2019-12-18 16:18:20 660

原创 1.3 从0创建蓝图编辑器-创建节点之间的连接线

一、让节点可以相互连接UTestGraphSchema重写CanCreateConnection函数制定连接规则TestGraphSchema.h /** * Determine if a connection can be created between two pins. * @param A The first pin. * @param B The second pin. *...

2019-12-15 22:52:40 475

原创 1.2 从0创建蓝图编辑器-创建右键菜单、第一个节点、节点右键菜单

一、创建空节点节点类:TestNode_HelloWOrldTestNode_HelloWOrld.h#pragma once#include "CoreMinimal.h"#include "EdGraph/EdGraphNode.h"#include "TestNode_HelloWorld.generated.h"UCLASS()class TESTPLUGINANDBP_A...

2019-11-16 21:07:54 576

原创 1.1 从0创建蓝图编辑器-创建编辑器界面

1、新建插件:2、进入TestPluginAndBP创建变量TestPluginAndBP.h UEdGraph* GraphObj; TSharedPtr<SGraphEditor> GraphEditSlate;TestPluginAndBP.cppTestPluginAndBPModule::OnSpawnPluginTab ...

2019-11-12 16:59:13 516

原创 C++实现异构链表的节点

写程序时需要写到与异构链表的Node相似的结构。因为项目用不到链表逻辑,所以本文只实现数据存储部分。CSDN里关于c++异构链表的实现帖子也挺少的。直接贴代码。//存储任意类型的数据结构struct AnyElement{ //什么都不用干的父结构体 struct BaseElement { public: virtual ~BaseElement() {} }; //...

2019-10-15 10:33:00 270

UE4描边效果后期材质

用于在UE4中实现物体描边效果,整体效果还算不错,可以自定义颜色粗细等,使用方式详见博客。下载后直接放在项目根目录。

2020-04-29

2.1 空AActor的反射解析

空AActor自动生成代码的逻辑结构。主要为GENERATED_BODY()宏的展开和gen.cpp的自动生成代码分析

2020-01-08

从0创建蓝图编辑器(源码+思维导图)

UE4从0创建蓝图编辑器第一章的可运行代码,其制作为一个独立窗口插件,引擎版本4.23。思维导图包含本章用到的类之间关系,以及整个编辑器的设计思路。

2019-12-22

1.4从零创建蓝图编辑器 思维导图 XMind

文章从0创建蓝图编辑器1.4节相关类关系思维导图。较于1.3新增加了用于绘制Pin的SGraphPin类。

2019-12-18

1.3 前端数据开发-创建节点之间的连接线 类函数关系 Xmind

1.3主要覆盖了UEdGraphSchema的CreateConnectionDrawPolicy函数,引出FConnectionDrawPolicy类,其中重点使用了他的CreateConnectionDrawingPolicy函数来实现自定义连接线样式

2019-12-15

BlueprintGraph.xmind

宏观角度解释1.2节以前用来的类代码关系,之前也尝试过使用UML描述,但效果并没有使用思维导图好,可读性也较差,请结合文章观看。

2019-12-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除