P44,45 属性预处理,执行后游戏效果回调,附录指定区域内修改变量 这节课主要是怎么对Attribute进行在进行到游戏角色前先进行处理,以及游戏效果如何回调。Ctrl + h 指定区域内替换关键字。
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
UE5 GAS开发P40 周期性效果,持续治疗 源堆栈指的是同一来源对"目标"可以进行多少次堆栈, 例如蓝量药水,可以同时有2个蓝量药水生效,第3个堆栈会消失,但是这个时候有血量药水,血量药水依然会生效。目标堆栈指的是这个目标可以同时有多少个堆栈,例如也是蓝量药水,目标同时可以有两个任意堆栈.这个时候两个蓝量药水生效,那么第三个蓝量药水和血量药水都会消失。它们在一段时间内以固定的间隔重复应用到目标上。假如同时有三个持续时间在进行,那么这个时候蓝量就会超出Max的范围.这个时候就要引入Stacking(堆栈)的概念。堆栈分为两种,源堆栈和目标堆栈。
UE5 GAS开发P35,36,37,38,39 将药水修改为AbilitySystem效果 /这里创建了一个游戏效果规范,GameplayEffectClass 是要应用的游戏效果的类,1.0f 是游戏效果的初始生命周期倍率,TargetASCContext 是游戏效果的上下文. 调用 MakeOutgoingSpec 函数,将会根据提供的参数创建一个游戏效果规范 FGameplayEffectSpecHandle EffectSpecHandle = TargetASC->MakeOutgoingSpec(GameplayEffectClass,1.0f,TargetASCContext);
UE5 GAS开发P34 游戏效果理论 这些能力可能包括移动、攻击、施放法术、使用道具等等,通过赋予能力,游戏角色或实体可以执行特定的行为或操作,从而影响游戏的进行和玩家的体验。游戏标签通常用于描述实体的属性、状态或所属类别,可以在游戏中方便地进行检索、筛选或执行相应的逻辑操作。堆叠的效果通常用于表示叠加性的影响,例如增益效果或减益效果,它们在应用多次后会叠加在一起,产生更强大的影响。这种类型的效果通常用于表示永久性的状态或效果,如永久提升属性或应用永久性的状态效果。开发人员可以编写自己的计算逻辑,根据游戏中的特定条件和规则来确定效果的大小。
UE5 把蓝图内的变量和事件暴露给序列使用 添加关键帧,然后在关键帧右键添加class,在class下绑定事件。在蓝图变量内勾选Expose to Cinematics。在序列内对着角色的+号添加Event,选择Trigger。在角色内添加自定义事件。
UE5 GAS开发P32,33 初始化状态并绑定在HUD上,拾取物品增加血量和减少蓝量 /设置接触到的AuraPlayerState的Health,但是这个太具体了,需要修改为修改任何属性的任何数据.例如修改MaxHealth和Mana MutebleAuraAttributeSet->SetHealth(AuraAttributesSet->GetHealth() + EffectActorHealth);Destroy();
UE5 GAS开发P31 将hud绑定在自己的角色上 /当角色初始化的时候加载UI的初始化 if(AAuraPlayerController* AuraPlayerController = Cast<AAuraPlayerController>(GetController())) { //获得HUD AAuraHUD* AuraHUD = Cast<AAuraHUD>(AuraPlayerController->GetHUD());
UE5 TPS开发p25 设置大厅,销毁会话,快速退出,检查按钮 这节课主要是完善了菜单选择地图作为游戏大厅,MultiPlayerSessionSubsystem的销毁会话函数,然后就是给Menu菜单添加了Quit和禁止使用按钮同时还完善了创建房间的漏洞,因为在创建房间的时候如果退出后就马上加入就会发现自己无法创建房间,这是因为服务器判断房间销毁是有一定延迟的,所以这次使用委托来优化这一段逻辑MultiPlayerSessionSubsystem.h// Fill out your copyright notice in the Description pa
UE5.1 iClone8 正确导入角色骨骼与动作 下载Auto Setup for Unreal Engine。这样导入虽然动画和骨骼是错误的,但是贴图就能直接导入进来.如果需要贴图的话,就直接FBX导入,选择不使用插件。里面有两个文件夹,使用Auto Setup。在UE内新建Plugins,把插件复制进去。在工具栏出现这三个人物的图标就安装成功了。这个时候我们导入的骨骼和动作就是正常的。这个时候会一直弹出Miss,选择ok。iClone选择角色,导入动作。会出现是否启动插件,选择OK。然后对照左边的材质粘贴就可以。下载后根据使用教程安装。
UE5 GAS开发p30 创建UI HUD 血条 这些参数可以在 Unreal Engine 中进行编辑,并且可以在蓝图中读写 */ USTRUCT(BlueprintType) struct FWidgetControllerParams { GENERATED_BODY() /*FWidgetControllerParams(){}:这是结构体的默认构造函数。
UE5 C++ TPS开发p23 Gamemode 玩家数量 玩家名称 Tips如何搜索 如何查找文档 如何查找源码 我对这一部分的理解是游戏这个框架中分别分为Gamemode和GameState这两块,同时GameMode是可以访问GameState的.Gamemode的作用是游戏规则,移动角色到下一个关卡,设置每个玩家该在的出生点,监听玩家加入(PostLogin)和玩家注销(Logout).GameState是负责当前游戏的状态并且保存下来,比如得分,游玩进度,多人游戏则是把每个玩家作为变量放在数组内,再通过这个数组去分别对每个玩家的状态进行处理。这节课学习了创建游戏模式,可以读取到现在的玩家有多少人。
UE5 C++ TPS开发 学习记录(10 p22这节课把创建,查找,加入游戏房间的菜单类,以及插件内的系统类给补完了.说实话这节课有点绕,因为需要一直使用委托进行传值,先由菜单类Menu向系统类Subsystem发送函数传值请求,然后监听Subsystem的委托回调,同时系统类Subsystem向Session的工具发送请求,监听回调,再返回给Menu类进行传值.MultiPlayerSessionSubsystem.h// Fill out your copyright notice in the Description page o
UE5 C++ TPS开发 学习记录(九 true:false;if(OnlineSessionInterface->CreateSession(*LocalPlayer->GetPreferredUniqueNetId(), NAME_GameSession , *LastSessionSettings)) { /*这里是创建失败*/ OnlineSessionInterface->ClearOnCreateSessionCompleteDelegate_Handle(CreateSessionCompleteDelegate_Handle);
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.
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
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
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。把后处理材质修改为材质接口。