自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jkchen's Haven

尽身为莲,花开佛现

  • 博客(980)
  • 资源 (2)
  • 收藏
  • 关注

原创 UE4 & C++ 笔记

创建名为Name的USceneComponent组件对象USceneComponent* P = CreateDefaultSubobject<USceneComponent>(TEXT("Name"));开启TickPrimaryActorTick.bCanEverTick = true;资源查找器static ConstructorHelpers::FObjectFinder<资源类别> CubeVisualAsset(TEXT("资源路径"));if..

2021-02-25 18:53:29 4806 1

原创 ACM中的数学问题合集

数学在ACM竞赛中通常会占很大的比重,例如这次暑假的多校比赛中,几乎所有题目都和数学有着很大的联系所以统计一下一些常用的知识点数论欧拉定理威尔逊定理中国剩余定理费马小定理...

2019-08-20 22:30:35 11675 3

原创 ACM 模板Main

数学相关图论相关数据结构 其他算法做题思路

2018-09-23 19:59:55 845

原创 Unreal 智能指针原理分析

TSharedPtr,有两个成员,占用 16 个字节,分别是对象指针和引用控制器。控制器内有两个计数器 Shared 和 Weak。TWeakPtr 内的是 FWeakReferencer,其内部也是 TReferenceControllerWithDeleter,之所以有区分,可以看下小节TSharedRef 内部和 TSharedPtr 基本一致,没有提供空构造函数,而且在赋值和构造函数内,都会用 check 保证指针非空。

2024-05-26 17:18:41 282

原创 Unreal 编辑器工具 批量重命名资源

右键 - Editor Utilities - Editor Utility Blueprint,基类选择 Asset Action Utility。然后编译后,就可以在选中资源后右键的菜单内看到 Scripted Asset Actions 内,会有你刚刚创建的函数。然后新建一个函数,加上4个输入:ReplaceFrom,ReplaceTo,AddPrefix,AddSuffix。在类默认值内,可以添加筛选器,筛选指定的类型。

2024-05-02 16:23:21 1085

原创 关于 Unreal 的各种坐标系、输入与逻辑的转换问题

对于旋转,Roll(X)的正方向为(右上左),Pitch(Y)的正方向为(后上前),Yaw(Z)的正方向为(左前右)你会发现 X 轴 Y 轴变来变去,正的方向也变来变去,这到底是怎么回事?在世界原点往 X 轴方向看去,ForwardVector 为。手柄摇杆、鼠标移动朝右得到的。屏幕上,向右移动的输入为。,此时的右手边的方向为。

2024-03-31 15:34:48 1066

原创 Stable Diffusion启动时gradio报错导致WebUI交互按钮报错(Textbox.update() got an unexpected keyword argument ‘info’)

【代码】Stable Diffusion启动时gradio报错导致WebUI交互按钮报错。

2024-03-30 15:39:26 267

原创 Unreal:蓝图内继承C++接口,C++Cast接口指针返回nullptr问题

比较简单的解决办法是在C++内部去创建一个类继承这个接口,但是既然在蓝图内继承了,可能是基类已经确定且无法在基类内部继承。如题,在C++内定义接口,然后蓝图内继承该接口。,返回的确实nullptr。来访问蓝图实现的函数。

2024-03-28 11:44:13 176

原创 Unreal 中的四元数 FQuat

四元数:Quaternion,四维数域内的数,可用于描述点在三维空间内的旋转(因为三维的旋转可以理解为绕某个轴旋转一个角度,所以需要4个维度的信息),也就是单纯的旋转信息,不包含位移信息(绕着不通过原点的线,可以先把点和轴平移,再旋转,再把点平移回去),同时表示一个三维空间的旋转,那么自乘的结果内,有一项为。,同时加上以下设定:(不满足交换律)注意这里的旋转的轴,指的是从原点到。这样子,我们就可以让乘法的结果也是。,参考二元数的共轭值定义,时,可以推出各个系数为(表示二维坐标系内的向量。

2024-03-24 17:16:26 741

原创 Obsidian Win+Android Onedrive/Git 同步

此仓库安装Remotely Save插件,远程服务选择为OneDrive,然后授权。替换清华源:https://mirrors.tuna.tsinghua.edu.cn/help/fdroid/管理SSH,生成一个SSH,然后点击生成的SSH,把ssh-rsa开头的公钥复制,到Github上添加SSH。知道有修改的时候,在MGit内Pull;新建一个相同名字的仓库,然后也安装Remotely Save插件,同上设置好后就会同步了。然后克隆仓库,url为github下,SSH对应的链接,例如。

2024-02-19 17:04:44 792

原创 Unreal FFastArray 实现原理

对于 FFastArraySerializer,ArrayReplicationKey 用于判定整个数组内是否存在变化(ConditionalCreateNewDeltaState内判断)对于 FFastArraySerializerItem,ReplicationID 为该Item的标识,ReplicationKey 用于判定是否有修改。

2024-01-03 14:18:39 662

原创 Unreal 断线重连、AI控制

在AGameModeBase::PostLogin内,完成PS初始化后,调用HandleStartingNewPlayer,开始匹配、创建角色。当服务器判断某个玩家掉线的时候,会删除对应的PlayerController。

2023-11-02 15:00:34 442

原创 Unreal 序列化版本控制

若之前没有添加版本信息,则读取版本为:BeforeCustomVersionWasAdded也就是0。之后序列化Save的时候,都是保存的当前的LatestVersion值,也就是最新的版本值。所以下次更新版本,版本数++后,读取的旧的LatestVersion值就自然变化了。Unreal支持在序列化的时候,获取旧的文件所在的版本号,和新的版本号。可以拿这两个版本号,进行序列化定制。一个就行:只需要和其它版本GUID不一样就好,从概率上来说几乎是不可能重复的。

2023-09-20 10:39:39 378

原创 unreal 同步UObject

UObject分为两种同步形式:自己维护要同步的registration list、同步时通过函数ReplicateSubobjects自动获取,通过。其实UActorComponent的同步就是走的这个,参考 AActor::ReplicateSubobjects。重写 ReplicateSubobjects,手动对 Subobject 进行同步。需要借助同步的Actor或者Component来进行同步,一般是谁创建,谁同步。以UGameplayTasksComponent为例。移除是也需要手动移除。

2023-09-04 17:45:37 526

原创 Unreal View Model结合GAS使用

这个东西真的难用,各种问题,记录下官方文档:https://docs.unrealengine.com/5.2/zh-CN/umg-viewmodel/

2023-08-12 23:50:24 447

原创 Unreal DataTable使用

float XXX;类的元数据加上 BlueprintType继承 FTableRowBase需要编辑的参数加上 UPROPERTY 标签参数的元数据加上EditAnywhere, BlueprintReadWriteCategory 不能多层,例如 “A|B”

2023-08-11 14:30:49 301

原创 Unreal Struct序列化、复制、比较、导出、类型转换、垃圾回收

定义NetSerialize和TStructOpsTypeTraits。

2023-07-03 18:08:19 978

原创 unreal UObject序列化

会和CDO进行比较,将不同的属性序列化进去,依据FPropertyTag解决结构不完整的问题先复制一份CDO,然后将序列化的属性设置到Object内if(!

2023-04-28 10:35:52 749 1

原创 unreal 关于贴图在缩小后的清晰度

Texture Group 默认 World就好,Mip Gen Settings 改为 TMGS_FromTextureGroup,Filter 改为 TF_Trilinear。Anti-Aliasing Method 用默认的 AAM_TemporalAA 就好。噪点:在no mip的情况下,直接缩小会产生严重的锯齿,然后抗锯齿算法计算导致不稳定。

2023-04-19 00:17:41 215

原创 UnrealEditor-RHI.dll 没有被指定在windows上运行

去 Engine\Binaries\Win64 目录下,删除 UnrealEditor-RHI.dll,重新编译即可。

2023-03-29 16:35:18 693

原创 Unreal AI 感知模块解析

一般是直接调用AActor::MakeNoise进行发声,调用流程大致是:在UAIPerceptionSystem的Tick内,调用每种已注册的UAISense的Tick,进行Update,这个是所有AISense感知的主要函数在UAISense_Hearing::Update内,对于每个Listener(FPerceptionListener,包含感知组件、队伍ID等数据),分别对每个FAINoiseEvent进行处理,是否能被听到是依据:这里还用了一个延时处理(PerseptionSys->Regist

2023-01-06 11:32:47 951

原创 Unreal 读写自定义配置文件

上面的方式,要么需要手动写配置文件,要么需要主动调用SaveConfig,比较不直观。在开发过程中的一些参数,想要方便的调整,可以创建一个类继承自UDeveloperSettings。在修改项目设置的时候,会生成 / 保存到对应的ini文件,当UCLASS存在defaultconfig时,ini文件将会生成到。首先需要自定义一个继承自UObject的类,UCLASS加上config标志。将想要和配置文件交互的属性,UFUNCTION加上Config标志。需要在过程中恢复设置内的配置,需要手动加载。

2022-12-27 15:56:54 1959

原创 UE AIPerception感知非Pawn对象

AI之所以只感知Pawn,是因为被感知的对象需要手动注册,而非全局搜索。在BeginPlay阶段,为所有的AISense,调用RegisterAllPawnsAsSourcesForSense并且之后再通过RegisterSenseClass新注册的AISense,也会调用RegisterAllPawnsAsSourcesForSenseRegisterAllPawnsAsSourcesForSense则是检索所有的Pawn进行注册处理新生成的Pawn在UAISystem::PostInitProp

2022-12-05 15:39:03 525

原创 Unreal 寻路系统介绍

首先,在项目设置内,Navigation System 内可以配置一些Agents。

2022-10-26 12:44:01 2468 2

原创 在UE内添加控制台工程(Programs)

在下新建文件夹 XmlToProto内部新建文件夹Source,以及5个文件,文件内容见最下方cmd 运行UBT会刷新.sln项目文件,之后重新打开VS就可以看到该工程了可以像正常项目一样引用模块、插件(PublicDependencyModuleNames)把主流程写到 XmlToProtoMainWindows.cpp 内的main函数内即可(RequestEngineExit之前,且这个函数不能跳过)XmlToProto.Build.csXmlToProto.Target.cs

2022-06-22 15:39:12 565

原创 C++类成员函数返回类型推断、模板封装getter和setter

C++类成员函数返回类型推断、模板封装getter和setter

2022-06-06 14:54:00 886 1

原创 UE 添加模块的全局宏

在XXX.build.cs内,添加PublicDefinitions.Add("MacroName=MacroBody");即可。这个是基于文本的填充,所以可以写各种花里胡哨的 MacroBody,例如:PublicDefinitions.Add("MACRONAME_AAA(x)=for(int32 i=0;i<x;++i)");在 Build 后,在 Intermediate\Build 内会生成 Definitions.ModuleName.h 的文件,内部就包含了这样一句宏#defi

2022-05-20 11:25:38 1043

原创 C 宏与注释

宏内部无法使用 // 进行注释,这样末尾无法使用反斜杠进行换行#define AAA axax\/*注释*/ \ax /* 多 行 注 释 */ \axax

2022-05-06 16:51:48 486

原创 正则表达式

学习测试替换:在匹配的表达式内,使用()截取部分字符,在替换表达式内,使用$N代表第N个截取内容。例如想要匹配#include <GameCore/XXX.h>#include<GameCore/XXX.cpp>那么匹配表达式就是:// \s* :任意个空白字符// .* :任意个任意字符#include\s*<(.*)>我们都知道<>用于引用系统文件,想要改为"",并且统一一下格式,那么替换的表达式就是:#include "$1

2022-04-15 17:04:29 144

原创 UE5 StateTree

文章目录After all状态转移数据配置方式After allStateTree就是分层状态机,稍稍结合一点Sequence目前比较简陋,提供的节点就几个,大部分都要自己写,例如PlayMontage、Wait、MoveTo、EQS等模型比较像行为树加一个Goto,EnterCondition=Decorator,Upper Task=Service,State=CompositeNode状态转移子状态激活时,上级状态也处于激活状态。此时如果满足上级状态的转移条件,会发生转移怎么转移进入

2022-04-10 18:56:55 3339

原创 Unreal - Environment Query System(EQS)

文章目录什么是EQS形成测试点评分标准化什么是EQS在指定区域内形成测试点根据环境(战场情况)对每个测试点做出评分,最后选出一个评分最高的点结果:提供下一次Do Something的较佳目标点,例如AI的移动形成测试点以环形为例评分当DistanceTo存在多个时(EQContent),每个各自算出评分,最后通过Multiply Content Score Op算出最后的分数标准化参考函数:void UEnvQueryTest::NormalizeItemScores(

2022-04-01 15:29:18 627

原创 关闭 切换Caplock时出现在屏幕的提示图案

右键 - 显示设置 - 高级显示设置 - 显示适配器属性 - 屏幕配置 - 启用屏幕显示 取消勾选

2022-03-21 15:45:11 4487 2

原创 Windows修改桌面、下载、垃圾桶、照片等默认位置

好处:减轻系统盘大小压力、系统重装的时候不会丢数据右键图标 - 属性 - 位置 - 移动应用

2022-03-08 17:39:40 399

原创 Unreal-GAS 源码解析:同步、预测

GameplayAbility赋予能力UGameplayAbility* AbilityAbilitySystemComponent->GiveAbility(FGameplayAbilitySpec(Ability, 0, INDEX_NONE, this))// ActivatableAbilities 所有可激活的能力数组UPROPERTY(ReplicatedUsing=OnRep_ActivateAbilities, BlueprintReadOnly, Category =

2022-02-25 16:01:24 2333

原创 升级VS后,小番茄出问题

卸载VA注册表,删除HKEY_CURRENT_USER/SOFTWARE/WHOLE TOMATO下面的项管理员运行Trial-reset扫描,清除重新安装VA复制PatchVCS_0.9.2.5文件夹到VS安装目录(C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\)管理员运行PatchVCS_0.9.2.3.exe,弹出对话框内选中当前目录下的devenv.exe...

2022-02-25 14:29:48 776

原创 UE源码解析:UCharacterMovementComponent - RootMotion

Montage部分最后的产出RootMotionMontageInstance外部通过UAnimInstance::GetRootMotionMontageInstance获取FAnimMontageInstance * ACharacter::GetRootMotionAnimMontageInstance() const{ return (Mesh && Mesh->GetAnimInstance()) ? Mesh->GetAnimInstance()-&gt

2022-02-14 15:42:30 1311

原创 Copy视频动作到UE | plask

打开https://plask.ai/,注册登录Get Started找一个视频,下载或者录屏拖入库下方可以左右调整,确认之后按下Extract Motion导出动画拖动库中生成的动画到骨骼上然后拖入场景导出下载速度捉急操作快捷键视图页面:Alt+LMB 改变角度Alt+RMB 移动滚轮 放大缩小H 摄像机归位K 插入关键帧帧页面:滚轮 缩放时间轴鼠标点击 单选Alt 多选右键选择删除选中后可以拖动位置,也可以Ctrl C V进行复制粘贴骨骼:W

2022-01-22 22:38:33 2535

原创 UE源码解析:UCharacterMovementComponent - 模拟端平滑

实现关键信息: 位置、朝向、速度Actor内有一个FRepMovement用于存根组件的移动// 根组件移动UPROPERTY(EditDefaultsOnly, ReplicatedUsing=OnRep_ReplicatedMovement, Category=Replication, AdvancedDisplay)struct FRepMovement ReplicatedMovement;修改ReplicatedMovement的调用链:int64 UReplicationGrap

2022-01-16 17:25:26 1312

原创 UE5 引擎源码版

https://www.epicgames.com/account/connections#accountshttps://github.com/EpicGames之后有一个提示邀请你加入Epic Team,确认之后在https://github.com/orgs/EpicGames/repositories?type=all里面就可以看到仓库链接:https://github.com/EpicGames/UnrealEngine切换分支下载源码......

2022-01-12 11:18:47 11098

原创 UE Error:Cannot Flush Async Loading while async loading is suspended

开始游戏时调用AsyncLoadGameFromSlot报错原因:我在GameInstance::OnStart内调用,可能有一些初始化任务没有完成,无法异步加载解决办法:SetTimer 0.1s,让世界初始化之后再去异步加载

2022-01-07 19:40:46 2209

VA_X 相关资源 内含Trial-Reset和安装程序

VA_X 相关资源 内含Trial-Reset和安装程序

2022-02-25

mnist手写数字数字集

5000个mnist手写数字数字集,4500个训练集(Xtrain,ytrain),500个测试集(Xtest,ytest)。 每个样本X有400个特征,10种答案(1~10,10表示0)

2019-12-11

空空如也

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

TA关注的人

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