自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 RPG18.设置慢动作动画通知与设置声音

2.打开,重载两个函数,接收通知开始与接收通知结束。然后对light和heavy的蒙太奇都做相同操作。4.打开lightAttack1。1.启动项目,新建动画通知状态。在合适的位置添加动画通知状态。3.打开角色重击的蒙太奇2。右键添加播放声音的通知。

2025-06-01 09:48:55 35

原创 RPG17.蓝图函数库与轻重攻击连击

3.接下来轻重攻击,做成的效果是:当轻击第三下后,再点击重击,此时打出重击最后一下。打开GA_LightAttack,三处改动位置。打开GA_HeavyAttack,三处改动位置。完成以上则能做到效果。

2025-05-29 21:38:21 254

原创 RPG改进1.轻击与重击的搭配与连续释放

就比如,当玩家想abaaba/aabaab/ababaa/abababab/aaaba/baabaa等搭配的释放时,可以进行改进。3.打开LightAttackMaster,添加变量。4.打开HeavyAttackMaster。2.打开攻击的蒙太奇,添加动画通知。

2025-05-29 17:39:06 201

原创 RPG16.重攻击

打开BP_Axe,细节栏搜索hero,添加HeavyAttack的Abilities。3.资产搜索HeavyAttack,找到两个动画序列,确认开启根运动,创建蒙太奇。创建子类GA_HeavyAttack_Axe,设置子类的标签。4.像LightAttack那样,创建映射,一样的逻辑。2.打开,然后设置实例化策略为每个实例化Actor。3.添加输入,复制LightAttack,重命名。打开DA_InputConfig,添加输入。打开为Axe设置的IMC,绑定为右键。5.进入子类,设置蒙太奇映射。

2025-05-29 17:25:55 205

原创 RPG15.轻攻击

因为我们是将能力赋予给武器,玩家装备武器后就有了这些能力。然后打开Master的子类,在子类内设置好蒙太奇映射。5.打开GA_LightAttackMaster,然后创建刚刚创建好的GA的子类用于Axe的轻攻击。同样的设置对于装备武器与卸下武器的GA同样适用。打开GA_LightAttackMaster。打开Axe的蓝图,细节栏搜索hero。确保根运动开启,创建他们的蒙太奇。4.打开子类蓝图,更改标签。打开IMC,添加输入操作。将本GA的实例化策略改成。然后打开ABP,添加插槽。接下来开始做战斗系统。

2025-05-29 15:07:17 162

原创 RPG14.装备武器与卸载武器

要完成这一步,我们需要在武器内设置一些默认的Ability和新的映射输入,这些过程是在角色装备武器时赋予的,所以这些数据应该在武器数据内完成。13.打开玩家武器,创建新变量用于存储赋予的能力,因为是私有变量,所以还需要一个Getter和Setter。在函数内分别实现取消武器接口动画层的连接,将装备武器后的默认输入更换,移除赋予武器上的能力。15.打开卸下武器的GA,在收到卸下武器的标签传递后,将手里的武器附着到背部的插槽。12.打开装备武器的GA,新建一个函数用于处理装备武器时的逻辑。

2025-05-28 10:58:28 782

原创 RPG13.创建子动画蓝图,混合空间,装备任意武器

添加节点PropertyAccess,绑定参数为当前角色的战斗接口的当前武器的Tag(这里能或取到这个变量是因为在c++内的uproperty内设置了BlueprintReadOnly等)。参考lyra的动画层,我们希望做出来的动画系统支持不同类型的武器(为了每不同类型的武器的姿势不一样)。先创建动画层接口并声明我们需要的角色状态,然后将在我们的主要的动画蓝图中实现接口。5.基于一个已经创建的C++的接口创建动画蓝图,负责实现动画蓝图的接口。原因是因为创建的接口内没有设置动画,仅仅设置了装备武器的Tag。

2025-05-26 17:48:50 500

原创 RPG12.将武器装备到手上

上一节中,成功将能力与输入在内部的XMBStartUpData中绑定,这一节将完成AbilityInput绑定到ASC内,这一步将在玩家角色中创建战斗函数。先转到GA,添加节点Wait Gameplay Event节点,该节点的作用是如果接收到一个带有此节点内设置的标签的事件,当播放蒙太奇时,这个节点的“接收到事件”的引脚就会被触发。意思是在蒙太奇里,选择一个合适的时机,让武器生成在手上(通知GameplayAbility)。12.打开角色的动画蓝图混合移动的动画与装备的动画。打开GA,设置对应的Tag。

2025-05-22 09:42:38 419

原创 RPG11.创建玩家Ability类

1.启动项目,创建ARPGGameplayAbility类的子类,用于给玩家以后创建GameplayAbility做基础。本节介绍如何创建一个玩家的GameplayAbility类,玩家以后的GameplayAbility都继承于此类。3.在该类内创建获取角色、玩家控制器、战斗组件的函数,并且使用弱指针存储角色和控制器,减少引用和内存占用。9.启动项目,打开GA_InputConfig,将GA_Jump复制一份,改名为GA_EquipAxe。12.启动游戏,按一下回车左边的引号键,数字小键盘按3。

2025-05-09 17:53:05 198

原创 RPG10.装备武器

7.进入PawnCombatComponent(敌人和玩家共用的CombatComponent)6.启动项目,打开角色,看到CombaComponent表示成功。之前实现武器的装备是通过GA实现,现在通过组件来实现更多功能。4.重新启动项目,再创建CombatComponent的子类。2.先清除原有的函数,再在该类内创建三个模板函数。在public部分创建获取当前角色该组件的函数。在private部分创建该组件。8.创建武器的标签,打开Tag。3.打开项目,创建该类的子类。创建获取战斗组件的函数。

2025-05-08 16:38:59 275

原创 RPG9.修改武器GA

创建好改引用后,应该在角色内读取该资产的内容并应用于角色的ASC(因为该资产只存GA,所以直接应用就好)6.在Data内创建一个C++类,用于在启动游戏时对角色Ability的初始化。5. 打开创建好的玩家手上的武器GA,设置好对应的类,附加的骨骼也对应好。14.现在已经完成数据资产的设置了,启动项目,打开玩家角色蓝图。2.基于武器基类,创建一个子类,该子类为玩家手上的武器。11.创建子类的蓝图,可以看到里面有两个可设置的数组。15.打开生成武器的GA,修改这两个变量的默认值。

2025-05-07 13:44:09 190

原创 RPG8.增加武器

4.启动项目,创建XMBWeapon的蓝图类,命名为BP_WeaponBase,再创建这个蓝图类的子类,命名为BP_PlayerWeapon,用于玩家的武器。3.进入WeaponBase,只留下构造函数,并且将bCanEventTick改为false,增加组件。2.创建武器WeaponBase的子类,给玩家的武器。1.创建一个Actor的c++类。

2025-05-04 21:03:18 322

原创 RPG7.准备GAS的工作

9.我们需要给AbilitySystemComponent赋予Ability,当玩家尝试激活Ability时,实际上是从ASC中激活能力。5.进入CharacterBase内,添加gameplayasystem和attributbeset,覆写PossessedBy()和GetAbilitysystemcomponent()继续创建一个GameplayAbility的c++类,然后在其内创建一个激活策略的枚举,覆写两个函数。10.启动引擎,右键即可创建一个刚才自己创建的gameplayability类,

2025-05-03 21:14:30 349

原创 RPG6.添加动画序列

这一节介绍如何为角色添加动画序列,在玩家待机的时候会自动进入待机的动作。2.进入PlayerInstance里进行函数覆写。1.打开玩家角色ABP,添加新状态。

2025-05-02 13:42:50 159

原创 RPG_5.角色动画

8.启动引擎,创建一个属于PlayerAnimInstance的动画蓝图。创建好后打开,在左侧栏填入变量名称,并且把x值最大改为400,3.继续创建该类的子类,但是作用是用来链接(以后会详细解释)4.基于PlayerAnimInstance类创建一个子类。创建好后选择这个,并且能看到变量内有自己创建的变量,则成功。12.设置完后进入角色蓝图,然后设置对应的蓝图动画即可。10.进入动画蓝图,创建一个状态机。5.目前一共创建了四个c++类,2.创建该实例的c++子类。玩家控制的角色的武器的类。

2025-05-01 21:34:16 211

原创 RPG4.设置角色输入

7.打开引擎,进入角色蓝图,细节面板搜索data,更换成自己的dataasset。4.在SetupPlayerInputComponent函数内进行输入绑定。这一篇是进行玩家移动和视角移动的介绍。3.进行移动和视角移动函数的创建。2.创建增强输入资产的变量创建。5.对Move函数进行设置。6.对视角移动函数进行设置。1.在玩家内进行移动覆写。

2025-04-30 18:03:56 268

原创 RPG3.角色输入

需要创建输入配置数据资产,通过这个资产,将标签映射到角色的唯一动作,通过输入的文本来识别应该做哪一个动作。3.在创建好的Tag头文件内创建命名空间,其中的ARPG_GRIVITY_API 是根据自己项目的命名,项目名_API。16.启动引擎,在项目设置内搜索InputComponent,将默认的增强输入组件更换成自己的。9.在主体的public内,创建输入映射上下文,输入动作,和用输入标签查找输入动作的函数。15.在新建的增强输入组件内进行绑定输入操作。需要绑定输入,创建不同的输入回调。

2025-04-30 16:19:31 334

原创 RPG2.设置角色摄像机

为了能在debug中方便输出一些打印信息,创建一个空白的c++类文件,我是用的是RIDER,直接在public内进行类创建即可。3.在玩家类里重写beginplay,在beginplay内进行debughelper的函数使用。出现logtemp,说明debughelper使用成功。可以使用debughelper用以测试。2.在debughelper内创建一个命名空间namespace。接着在玩家角色内创建构造函数,在构造函数内实现创建组件。1.创建debugHelper。6.打开项目,见此则成功。

2025-04-29 17:16:00 183

原创 RPG_1.角色、控制器、gamemodebase的创建和项目设置

4.基于CharacterBase类创建玩家控制的Character类(玩家用)2.创建角色类(玩家和敌人共用)9.设置gamemode内的设置。3.进入角色类,只留下构造函数。8.创建gamemode蓝图。10.设置gamemode。1.创建GameMode。7.创建玩家控制器蓝图。5.创建玩家控制器类。6.创建玩家角色蓝图。

2025-04-29 14:17:51 136

原创 aura小笔记-输入

输入东走可以使不同得到类型,可以换成bool( true or false),1D(float),2D(Fvector2D),3D(Fvector)的动作,创建简单的bool动作或更复杂的Fvector3D动作。在3D游戏里,比如输入轴位ZXY(x,0,z),则在输入时,以Z轴和x轴为优先,输入时仅接受X轴与Z轴的方向和速度。若设置好修饰符,当玩家在进行输入后,将会根据修饰符对输入的值进行额外的操作。输入映射上下文是一个层级结构,最上层的是一组动作,下层是可以触发各个动作的用户输入,如按键或按钮或动作轴。

2025-04-11 13:31:17 889

原创 aura项目小笔记一 · 相同效果 · 有关Stack的duration和period的刷新

故在2s时,总增量为1+2,3s时总增量为1+2+3,此时第一层效果的Duration计时结束,但是因为Stacking Expiration Policy选择Remove Single Stack and Refresh Duration的影响,Duration刷新,仅减少一层效果,所以还有一层效果。则在3s时总共获取的量为1(一层)+2(二层)+3(三层),在4s时总共获取的量为1+2+3+3。所以从3s到6s期间,,总增量为1+2+1+1+1=6,经过了{[1+(x-1)+1]+[1+1+1]}s。

2024-12-20 12:21:56 486

原创 开发日记1-换模型(2)

打开1,这里我们需要判断,从“站立”到“跑”这两个动画切换需要的条件是什么,我们这里使用刚建立的变量“速度”来判断,即:速度大于0时开始“跑”按住左ctrl移动鼠标至左端(让轴上的x达到左端),将idle(站立)拖入,表示在速度为0时,玩家站立的状态。改名为速度后,最大轴值即为速度为该轴上的某个数值时所放的动画,后面可用于。继续拖动该x,大概两百的位置(即当前角色速度为两百),插入行走的动画。打开跑步节点,新建浮点变量“速度”,将混合空间拖入,将速度连上。在空白处右键,点击“添加状态”,命名为“站立”

2024-09-17 21:02:22 269

原创 开发日记4-导入动作

1.一般导入模型会自动建立有重定向器(A),导入动画时使用mixamo的模型,通过A来转换第一个动画。2.用目前正在用的模型自动建立的重定向器(B),来转换第一个动画,即可。导入的动画(mixamo模型)第一个动画(小白人模型)

2024-09-15 21:42:14 232

原创 开发日记-2.简单的ui及加血扣血设计

创建了一个actor,内置逻辑。2.用人物血量来绑定文本。4.在人物蓝图内设置变量。(不做太多ui的介绍)1.加进度条,创建绑定。

2024-08-03 17:45:56 271

原创 开发日记—1.换模型

当把优先级调整至大于100后,在导入.pmx文件或者其他一些动作的时候,将优先运行vrm4u进行导入。3.选择最开始的那个网格体,搜索可视,关闭,剩下我们自己导入的骨骼网格体就好。2.1下载好对应版本的插件后,将插件放到需要使用的引擎的plugins里。检查骨骼网格体,骨骼,在重定向器内验证都能一致就好。2.导入.pmx类型的文件需要下载插件vrm4u。2.在组件栏内点击网格体,新建->骨骼网格体。在2处选择动画蓝图对应的骨骼网格体。从模之屋下载好的模型进行解压,我重命名为BP_XMB。

2024-07-30 11:37:09 525

原创 开发日记—0 计划

(什么都没有)

2024-07-28 16:33:50 368

原创 UE5,4.5 人物钩锁

2.2.1为网格体添加组件cable(揽绳组件)和一个staticmesh(静态网格体)并且将静态网格体改名为TmpMesh。10. 框中选中的分支节点输出为false时(判断端口检测为,钩爪抓到的物体不含有GrappleWall标签)其中,A图的Input pin和D图的break vector的 In vec的值都从这里来。9. 当抓钩抓到物体时,检测抓到的物体是否能进行钩爪(是否含有标签GrappleWall)其中节点lerp(vector)的B输入接口的值从这里获取。

2024-06-20 22:01:17 616

原创 UE5,4.4角色蹬墙跳

为真(说明角色现在正在墙上),并且使用节点set velecity设置角色角色的速度。将角色的方向向量和变量wallcheckdisance相乘,再合角色的世界位置相加,并将结果连接到“end”输入端口interp speed 用来限制角色在墙上的摩擦力(该值越大,角色在墙上的滑行时间越短)4.2 使用节点get actor rotation来设置 角色在跳跃时的旋转=玩家鼠标的旋转。将角色的世界位置连接到“start”,这样,当角色将获得射线检测。分别来设置角色在墙上的速度和获取当前过去了多少秒。

2024-06-20 15:37:58 574

原创 UE5,4.3角色变大+变小,角色加速移动

1.6变大后同样设置角色的行走速度(set max walk speed),跳跃时的速度(set jump z velocity),下落时的重力(set gravity scale),增加跳跃数量(set jumo max count)使用节点get acot location 和 节点 get actor rotation获取角色当前的位置和当前的方向。再通过branch来判断角色是否变大,以此来设置角色在变大前/后的奔跑速度。设置角色变大倍数,先使用插值,节点lerp(vector)

2024-06-20 11:17:11 1413

原创 UE5,4.2物体透视

创建一个参数(用于控制距离,该距离的内容为:在这个范围内看到的物体将显示高光),将其和自定义深度的分离通道后的结果相减(B),同样限制在一个范围内。新建一个操作映射,命名为“toushiwaigua”,并且为其添加映射(指按键启动该映射),我用鼠标右键启动.按住“4”创建一个四通道节点,将其提升为参数,设置为红色(透视时看到的将是红色)对于场景深度和场景颜色,当视线里的物体被遮挡时,物体的自定义深度比场景深度大;当视线里的物体没有被遮挡时,物体的自定义深度和场景深度是一样的。

2024-06-17 15:40:20 943

原创 UE5,4.1人物飞行

当我们按下N键时,角色会进入"正在飞行“模式,从节点Branch的True端输出,连接到set movement mode上,节点Is Flying会检测角色当前的运动模式为飞行,输出”真“;(因为角色一开始不是飞行模式,所以节点isflying检测为假,当按下N键时,branch会输出真,所以从True端输出)set movement mode节点的作用是更改目标移动模式,其中我们将True端输出为飞行模式,flase端输出位掉落模式,分别设置了按下N键的前后模式。我设置的“进入飞行状态”的按键为N。

2024-06-14 00:18:13 1251 2

原创 ue5,3.4节点四(switch on xxx,is valid)

举个例子,这个is valid可以检测子弹是否被创建。当开枪的时候,子弹是临时创建的一个物体,用is valid 可以检测该子弹是否被创建,若是被创建,由输出端is valid继续执行;若没有被创建,由is not valid 继续执行。上图的例子是说,当按下2时,会从0,1,2,3里挑一个数,而挑的这一个数会通过当前对应的接口输出。switch on int就像一个选择输出器。selection是指选择哪一个接口进行输出.2.节点is valid是判断是否有效。is valid判断是否存在该物体。

2024-05-31 15:49:36 851

原创 ue5,3.3节点三(gate,multigate)

open和close是设置当前门的状态,当门处于open时,可以enter,通过exit输出;当门处于close状态时,不能enter(不能输出)。倘若当前的门处于open状态,可以通过一次toggle将门设置为close;倘若是这样,随机数有{0,1,2,3},但是输出端口只有{0,1},这是一个值的控制板,只有当随机整数和对应端口指定的值相等时才可输出。toggle 指管理open、close的状态(管理门的开关)start index 是指 设置哪一个输出是最开始的。close 指关闭的进程口。

2024-05-28 01:51:00 2725

原创 ue5,3.2节点二(for loop,for loop with break,while loop)

①:获取A和B的值比较大小,A<=B时,进入while loop。is A 输出“第一次输出是否是A”的bool值。completed 指循环完成后的下一步。当按下1时,输出A,当在按下1时,输出B。1. 节点 for loop,循环节点。first index 循环的起始数字。③:让A加1,设置A,然后重新进入循环。last index 循环的最大数字。break 指判断break的条件。loop body 指循环的内容。index 指当前循环的次数。同上,多了一个break,

2024-05-28 01:20:38 1626

原创 ue5,3.1节点一(branch,sequence,do once,doonce multilnput)

reset 表示重置,start closed 表示第一次启动时时候能输出(最开始时是否阻断)3. 节点 do once(进行一次,执行一次后必须要reset后才能重新进行)顺序执行 then 0 ,then 1 ,then 2。reset out 是指输出“按下重置键"的下一步流程。整数 N代表循环几次,exit 是指输出到下一个流程。completed 表示当执行该操作时下一个流程。A out 是指输出到下一步的流程。3. DO N 该节点是循环节点。reset in 是指重置。

2024-05-27 23:57:45 826

原创 ue5,2.4 发射球具有粒子效果

1.4 但是这么写会有bug,比如会触发特效但是没有得分,这时候加这个delay(延迟)可以解决。1.3 放置节点spawn emitter at location(在位置处生成发射器)当人物发射弹幕的时候,弹幕碰到物体可发生爆炸,爆炸的效果就是这个粒子特效。1. 打开子弹的父类蓝图(父类是actor)框框内的是粒子效果,我直接用引擎有的。

2024-05-26 00:28:32 437

原创 UE5,2.3 关卡触发器

所以,先添加节点set view target with blend,节点cast to 主角,节点get player controller,同理,现在设置“如何退出俯视视角”,点击“关卡触发区”,回到关卡蓝图,添加事件end overlap。2.1在选中触发区域后,在关卡蓝图内右键,先为该区域添加事件。回到主页,点击摄像机,再打开关卡蓝图,右键,添加摄像机组件。一. 设置一个区域,当角色进入这个区域时,触发事件。即,当玩家进入到该区域后,视角转换为俯视。这样,当玩家离开该区域时,视角变回原相机。

2024-05-24 11:09:42 785 1

原创 UE5,2.2 设置一个区域,碰撞时触发效果

ps 4.2.1 使用delay时,当多个小球连续经过碰撞区域,因为发光的时间是从第一个小球开始计时到结束为止,所以还是会有”灭灯“(即一秒结束后到下一个小球开始经过该区域的时间)ps 4.2.2 使用retriggerable delay,从第一个小球开始经过该区域,在一秒内有新的小球开始经过该区域时,计时重新开始计算。4.点击设置的collision区域,在细节栏内,找到“事件”,点击“组件开始重叠时”在2.1为人物设置了可发射球,现在在设置一个区域,检测球在经过该区域时触发效果。

2024-05-21 16:10:58 1277

原创 UE5,2.1 为人物设置发射

打开函数,从spawnactor节点将class拖动给“创建球”函数,即可连接上。在class处选择新建的颜色,(我设置1发射绿球,2发射蓝球)新建一个蓝图类(A),双击打开,在左上角添加一个球体。创建好球体后,为了方便区分,创建一个材质,自发光为绿色。③:接下来多设置一种颜色,“按下‘2’可发射蓝色的球”目标:现在想要通过“按下键盘‘1’来发射绿色的球”2.打开人物蓝图(B),新建图表(“课程蓝图”)通过设置“球体速度”,设置发射出去的球的速度。连接上后,回到课程蓝图。这是“按下键盘‘1’发射球”

2024-05-20 19:16:46 398 1

原创 UE5, 1.2 人物模型导入及骨骼绑定

在资产浏览器的ThirdPerson文件夹,内有Blueprints,我们可以看到里面有一个BP_Third_Person,对其右键->复制,然后双击复制品,在细节栏里拖入我们想要导入模型的源模型。在“解算器堆栈”栏,先新建一个“设置变换”的解算器,然后在骨骼层级选择最中心(最头or最根本)的骨骼,一般都是命名为pelvis(骨盆)然后堆spine_05右键,点击“新的IK目标”,然后再选择spine_01右键,点击“在选定解算器上设置为根骨骼”。完成后,界面有IK重定向栏,有解算器堆栈栏,有骨骼栏。

2024-05-08 23:01:32 4898

空空如也

空空如也

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

TA关注的人

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