- 博客(79)
- 收藏
- 关注
原创 P44,45 属性预处理,执行后游戏效果回调,附录指定区域内修改变量
这节课主要是怎么对Attribute进行在进行到游戏角色前先进行处理,以及游戏效果如何回调。Ctrl + h 指定区域内替换关键字。
2024-04-25 11:02:53 392
原创 UE5 GAS开发P41-43 永久效果,去除永久效果,伤害区域,EnumClass,开始重叠与结束重叠事件
这一部分学习了怎么创建一个伤害性的地形(火焰地形,毒沼泽等都可以用这个方式创建)AuraEffectActor.h// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameplayEffect.h" #include "AbilitySystem/AuraAbilitySystemComponentBase
2024-04-24 14:32:27 813
原创 UE5 GAS开发P40 周期性效果,持续治疗
源堆栈指的是同一来源对"目标"可以进行多少次堆栈, 例如蓝量药水,可以同时有2个蓝量药水生效,第3个堆栈会消失,但是这个时候有血量药水,血量药水依然会生效。目标堆栈指的是这个目标可以同时有多少个堆栈,例如也是蓝量药水,目标同时可以有两个任意堆栈.这个时候两个蓝量药水生效,那么第三个蓝量药水和血量药水都会消失。它们在一段时间内以固定的间隔重复应用到目标上。假如同时有三个持续时间在进行,那么这个时候蓝量就会超出Max的范围.这个时候就要引入Stacking(堆栈)的概念。堆栈分为两种,源堆栈和目标堆栈。
2024-04-24 14:31:57 526 1
原创 UE5 GAS开发P35,36,37,38,39 将药水修改为AbilitySystem效果
/这里创建了一个游戏效果规范,GameplayEffectClass 是要应用的游戏效果的类,1.0f 是游戏效果的初始生命周期倍率,TargetASCContext 是游戏效果的上下文. 调用 MakeOutgoingSpec 函数,将会根据提供的参数创建一个游戏效果规范 FGameplayEffectSpecHandle EffectSpecHandle = TargetASC->MakeOutgoingSpec(GameplayEffectClass,1.0f,TargetASCContext);
2024-04-24 14:31:24 641
原创 UE5 GAS开发P34 游戏效果理论
这些能力可能包括移动、攻击、施放法术、使用道具等等,通过赋予能力,游戏角色或实体可以执行特定的行为或操作,从而影响游戏的进行和玩家的体验。游戏标签通常用于描述实体的属性、状态或所属类别,可以在游戏中方便地进行检索、筛选或执行相应的逻辑操作。堆叠的效果通常用于表示叠加性的影响,例如增益效果或减益效果,它们在应用多次后会叠加在一起,产生更强大的影响。这种类型的效果通常用于表示永久性的状态或效果,如永久提升属性或应用永久性的状态效果。开发人员可以编写自己的计算逻辑,根据游戏中的特定条件和规则来确定效果的大小。
2024-04-24 14:30:54 616
原创 UE5 把蓝图内的变量和事件暴露给序列使用
添加关键帧,然后在关键帧右键添加class,在class下绑定事件。在蓝图变量内勾选Expose to Cinematics。在序列内对着角色的+号添加Event,选择Trigger。在角色内添加自定义事件。
2024-04-15 16:57:09 578
原创 UE5 GAS开发P32,33 初始化状态并绑定在HUD上,拾取物品增加血量和减少蓝量
/设置接触到的AuraPlayerState的Health,但是这个太具体了,需要修改为修改任何属性的任何数据.例如修改MaxHealth和Mana MutebleAuraAttributeSet->SetHealth(AuraAttributesSet->GetHealth() + EffectActorHealth);Destroy();
2024-04-15 16:56:37 1050
原创 UE5 GAS开发P31 将hud绑定在自己的角色上
/当角色初始化的时候加载UI的初始化 if(AAuraPlayerController* AuraPlayerController = Cast<AAuraPlayerController>(GetController())) { //获得HUD AAuraHUD* AuraHUD = Cast<AAuraHUD>(AuraPlayerController->GetHUD());
2024-04-15 16:56:06 851 1
原创 UE5 TPS开发p25 设置大厅,销毁会话,快速退出,检查按钮
这节课主要是完善了菜单选择地图作为游戏大厅,MultiPlayerSessionSubsystem的销毁会话函数,然后就是给Menu菜单添加了Quit和禁止使用按钮同时还完善了创建房间的漏洞,因为在创建房间的时候如果退出后就马上加入就会发现自己无法创建房间,这是因为服务器判断房间销毁是有一定延迟的,所以这次使用委托来优化这一段逻辑MultiPlayerSessionSubsystem.h// Fill out your copyright notice in the Description pa
2024-03-20 22:56:54 1010
原创 UE5.1 iClone8 正确导入角色骨骼与动作
下载Auto Setup for Unreal Engine。这样导入虽然动画和骨骼是错误的,但是贴图就能直接导入进来.如果需要贴图的话,就直接FBX导入,选择不使用插件。里面有两个文件夹,使用Auto Setup。在UE内新建Plugins,把插件复制进去。在工具栏出现这三个人物的图标就安装成功了。这个时候我们导入的骨骼和动作就是正常的。这个时候会一直弹出Miss,选择ok。iClone选择角色,导入动作。会出现是否启动插件,选择OK。然后对照左边的材质粘贴就可以。下载后根据使用教程安装。
2024-03-15 16:32:42 931
原创 UE5 GAS开发p30 创建UI HUD 血条
这些参数可以在 Unreal Engine 中进行编辑,并且可以在蓝图中读写 */ USTRUCT(BlueprintType) struct FWidgetControllerParams { GENERATED_BODY() /*FWidgetControllerParams(){}:这是结构体的默认构造函数。
2024-03-13 18:47:17 1635 2
原创 UE5 C++ TPS开发p23 Gamemode 玩家数量 玩家名称 Tips如何搜索 如何查找文档 如何查找源码
我对这一部分的理解是游戏这个框架中分别分为Gamemode和GameState这两块,同时GameMode是可以访问GameState的.Gamemode的作用是游戏规则,移动角色到下一个关卡,设置每个玩家该在的出生点,监听玩家加入(PostLogin)和玩家注销(Logout).GameState是负责当前游戏的状态并且保存下来,比如得分,游玩进度,多人游戏则是把每个玩家作为变量放在数组内,再通过这个数组去分别对每个玩家的状态进行处理。这节课学习了创建游戏模式,可以读取到现在的玩家有多少人。
2024-03-12 23:49:28 676
原创 UE5 C++ TPS开发 学习记录(10
p22这节课把创建,查找,加入游戏房间的菜单类,以及插件内的系统类给补完了.说实话这节课有点绕,因为需要一直使用委托进行传值,先由菜单类Menu向系统类Subsystem发送函数传值请求,然后监听Subsystem的委托回调,同时系统类Subsystem向Session的工具发送请求,监听回调,再返回给Menu类进行传值.MultiPlayerSessionSubsystem.h// Fill out your copyright notice in the Description page o
2024-03-11 23:56:32 634
原创 UE5 C++ TPS开发 学习记录(九
true:false;if(OnlineSessionInterface->CreateSession(*LocalPlayer->GetPreferredUniqueNetId(), NAME_GameSession , *LastSessionSettings)) { /*这里是创建失败*/ OnlineSessionInterface->ClearOnCreateSessionCompleteDelegate_Handle(CreateSessionCompleteDelegate_Handle);
2024-03-05 22:48:11 1156
原创 UE5 C++ TPS开发 学习记录(八
这一次到了p19完善了UI和写了创建房间MultiPlayerSessionSubsystem.h// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Subsystems/GameInstanceSubsystem.h" #include "Interfaces/OnlineSessionInterface.
2024-03-03 23:42:10 1122
原创 UE5 C++ TPS开发 学习记录(七)
// Fill out your copyright notice in the Description page of Project Settings. #include "MultiPlayerSessionSubsystem.h" #include "OnlineSubsystem.h" UMultiPlayerSessionSubsystem::UMultiPlayerSessionSubsystem(): CreateSessionCompleteDelegate(FOnCreateSessio
2024-02-28 22:45:41 437
原创 UE5 C++ Gas开发 学习记录(三)
添加AuraPlayerState,AuraAbilitySystemComponentBase和AuraAttributeSet在Build.cs里添加// Copyright Epic Games, Inc. All Rights Reserved. using UnrealBuildTool; public class MyGas : ModuleRules { public MyGas(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = P
2024-02-23 19:00:32 902
原创 UE5 C++ Gas开发 学习记录(二)
/在MyGas.h内自定义了一个常量CUSTOM_DEPTH_RED GetMesh()->SetCustomDepthStencilValue(CUSTOM_DEPTH_RED);//在MyGas.h内自定义了一个常量CUSTOM_DEPTH_RED GetMesh()->SetCustomDepthStencilValue(CUSTOM_DEPTH_RED);制作材质函数MF_OutLine。把后处理材质修改为材质接口。
2024-02-23 19:00:02 1086 1
原创 UE5 C++ Gas开发 学习记录(一)
/初始化所需的Attach Parent和SocketName,以便在组件注册时附加 Weapon->SetupAttachment(GetMesh(),FName("WeaponHandSocket"));
2024-02-22 18:53:16 1043
原创 UE5 C++ TPS开发 学习记录(五)
这节课创建了新的游戏关卡Lobby,制作了属于自己的游戏名字"Match Type",制作了加入游戏会话的委托和函数,最后可以用IP就可以把客户端链接到服务端.h// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/Character.h" #include "Logging/LogMacros.h" #include "OnlineSu
2024-02-21 23:08:31 632
原创 UE5 路径追踪渲染设置测试
设置Bloom为Convolution,强度为0.0512。新增后期处理效果,点开infinte Extent。把Screen Percentage修改为150。修改对比度和饱和度为1.1。把渲染模式改为路径追踪。修改路径追踪,打开深度。
2024-02-19 18:35:12 883
原创 UE5 C++ TPS开发 学习记录(二)
if(OnlineSubsystem) { //获得当前会话的指针 OnlineSessionInterface = OnlineSubsystem->GetSessionInterface();在普通模式,我们链接的是UE的本地Subsystem Null。
2024-02-17 22:25:00 645
原创 UE5 C++ TPS开发 学习记录(一) 切换关卡
} void AMyTestCharacter::CallOpenlevel(const FString& Address) { //最基础的openlevel UGameplayStatics::OpenLevel(this, *Address );
2024-02-17 22:24:02 446
原创 Microsoft.MakeFile.targets(45, 5)报错
Microsoft.MakeFile.targets(45, 5): [MSB3073] 命令“"C:\Program Files\Epic Games\UE_5.1\Engine\Build\BatchFiles\Build.bat" MyProjectEditor Win64 Development -Project="C:\Users\1\Documents\Unreal Projects\MyProject\MyProject.uproject" -WaitMutex -FromMsBuild”已退
2024-02-06 17:53:03 488
原创 UE5 C++报错找不到include DesktopPlatform目录
解决方法:报错原因是因为在项目属性内的VC++目录下的包含目录内缺少引擎路径.新建一个项目,新建C++内容,把包含目录下的路径重新粘贴到原项目下。
2024-02-06 17:46:06 408
原创 UE5 调用Windows文件选择框并播放视频
这个时候会报错winioctl.h(10326): [C4668] 没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif”最后在蓝图内的MediaPlayer变量使用OpenFile。在项目设置里将RHI设置成DX11。需要在Build.cs内修改。
2024-02-06 17:45:34 414
原创 UE5 C++ 手写WebSocket
/链接协议 TSharedPtr Socket = FWebSocketsModule::Get().CreateWebSocket(ServerURL,Serverprotocol);
2024-02-06 17:45:00 1094 1
原创 UE5 PAK包热加载
/这里是使用Windows的文件资源选择器 EFDCore::OpenFileDialogCore(TEXT("Choose a .pak file"), FPaths::ProjectDir(), "", ".pak", EEasyFileDialogFlags::Single, OutFilenames);
2024-02-06 17:44:23 1686
原创 UE5 Niagara粒子随骨骼或者网格体位置消散
写完后在Particle Spawn这里点击加号并且选择做好的特效,其中Animation是是否显示,staticmesh是设置网格体。创建一个材质参数集,在内容浏览器右键,然后输入Material Parameter。这里输出的Alive要在左下角Data Instance创建Alive。然后是粒子消散,需要新建一个Niagara。在蓝图内通过Timeline控制材质参数。创建一个新的Niagara模块脚本。在需要使用的函数内添加材质函数。左边一定要选择公开到库。用的是自带的喷泉模板。
2024-02-06 17:42:00 550
原创 UE5 解析Base64加密的json并解决中文乱码
FString UMyBlueprintFunctionLibrary::LoadStringBase64Decode(FString BaseStr) { //去除多余的换行和空格 BaseStr = BaseStr.Replace(TEXT("\n"),TEXT(""));//将uint8转为UTF8格式的CHAR防止中文乱码 FUTF8ToTCHAR Convert(reinterpret_cast<const char*>(bytes.GetData()), bytes.Num());
2024-02-06 17:40:39 622
原创 UE5 获得UE内的音频组件与频谱
在Constant QNRT的变量内获得当前事件,Get Channel Constant QAt Time获得当前信道的所有频谱。这里需要先运行SetSound,然后获得当前音频的总长度,Get Duration并设置变量。在Actor里添加Constant QNRT变量,选择刚刚创建的NRT。创建好后选择Settings,下面的sound选择你要选择的音乐。绑定时间Playback Percent用来获得当前播放的百分比。在绑定事件下面把百分比和总长度相乘可以获得当前音频播放的秒数。
2024-02-06 17:39:21 640
原创 UE5 获得频谱让nigara随音乐律动
在Properties的Sim Target改为GPU,Calculate Bounds Mode改为Fixed模式。Submix下的MasterSubmixDefault是需要在文件内打开引擎内容才能选择。这里是创建了一个Niagara的脚本,用来获取频谱让粒子位置改变。这里的BoxSize可以选择修改,具体作用是粒子初始生成的范围。最后选择你的输出效果是Mesh还是Sprite就可以了。Drag,阻力,用来限制粒子的速度。速度,使粒子更新后有一个向外的力。扰乱,让粒子拥有涡流的效果。
2024-02-06 17:38:06 256
原创 UE5 使用Postman测试WebsocketServer
只需要使用者绑定上即可,msg就是字符串信息,至于你喜欢json还是xml还是巴拉巴拉你自己做决定就行啦。注意:发送信息是发送给所有客户端,按客户id发送这个需要大家自己努力啦,我只是开个头哦。因为最近工作需要,所以需要一个websocket服务,用来直接和多个网页交互。所以也需要引入该插件,当然插件里面已经写好了,装插件也会自动开启,放心啦。5.源码是开放的,大家随便改,加自己喜欢的功能喽。怎么打开,怎么绑定事件,怎么发送信息,都有示例。我在这里重新更新了一个5.1的版本,地址是。
2024-02-06 17:35:40 681
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人