自定义博客皮肤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)
  • 收藏
  • 关注

原创 ue引擎游戏开发笔记(37)——实现敌人接收攻击伤害,并作出反应

现在已经显示造成实际伤害,但敌人对实际伤害并未产生反馈,例如还击,或者死亡倒地等等,实现敌人对于受击的反馈。1.思路:在动画蓝图中添加死亡动画,并通过bool混合两种动画,再通过bool变量控制两种动画的播放。

2024-05-11 21:12:37 102

原创 [ue5]编译报错:使用未定义的 struct“FPointDamageEvent“

程序没有找到FPointDamageEvent的定义。

2024-05-11 17:54:14 122

原创 ue引擎游戏开发笔记(37)——实现造成伤害

1.思路:ue本身函数FPointDamageEvent就可以解决,在actor库中查看takedamage()所需要的参数,依据参数配置,或者定义,之后调用takedamage函数。在游戏中已经能够射击,并且能得到实际的落点反馈,但本质上这种射击没有任何实际数值伤害,为射击添加实际的子弹伤害数值。FPointDamageEvent需要在头文件包含#include "Engine/DamageEvents.h"2.在装备或者角色类中先写入takedamage()函数:(注意给shanghai一个初始值)

2024-05-11 17:48:24 117

原创 ue引擎游戏开发笔记(36)——为射击落点添加特效

1.思路:很简单,类似开枪特效一样,只要在头文件声明特效变量,在fire函数中应用这个变量即可。在debug测试中能看到子弹落点后,需要给子弹添加击中特效,更真实也更具反馈感。

2024-05-09 22:11:09 264

原创 ue引擎游戏开发笔记(35)——为射击添加轨道,并显示落点

1.思路:可以这样理解,每次射击的过程是一次由摄像机向外抛出物体的过程,那么首先要获取到当前世界中摄像机的具体位置,即旋转,空间位置;获取到当前摄像机的位置后建立弹道,并利用debug检测一下落点即可。我们只添加了开枪特效,事实上并没有实际的效果产生例如弹痕,落点等等。所以逐步实现射击的完整化,先从实现落点开始。为避免空指针,获取摄像机前应当检测是否为空指针。

2024-05-08 23:05:47 239

原创 ue引擎游戏开发笔记(34)——建立射击映射,并添加特效

准备处理射击系统,首先角色需要能射击,有反馈,先建立角色与控制器之间的映射,并添加简单特效,证明映射已经建立。SpawnEmitterAttached来自UGameplayStatics,因此要包含这个类,具体为。2.写一下所用函数fire,是从Gun中调用的,所以去Gun中写:利用spawn函数实现调用特效。

2024-05-07 23:33:01 158

原创 ue引擎游戏开发笔记(33)——武器与角色的匹配,将新武器装备到角色身上

武器能出现在世界中,完成了第一步,下一步需要角色和武器适配,即不论角色跑动,射击等,武器和角色都相匹配,将武器装备到角色身上。即需要找到武器与角色的结合点(weapon_r),通过隐藏这一骨骼点来隐藏武器。3.回到引擎,编译运行。

2024-05-06 22:34:25 321

原创 ue引擎游戏开发笔记(32)——为游戏添加新武器装备

游戏中角色不会只有一种武器,不同武器需要不同模型,甚至可能需要角色持握武器的不同位置,因此需要添加专门的武器类,方便武器后续更新,建立一个武器类。注意如果运行游戏看不到新武器,可以按f8在右侧搜索武器名,双击找到武器位置。

2024-05-06 22:21:43 428

原创 ue引擎游戏开发笔记(31)——对角色移动进行优化:角色滑步处理

1.思路:进入混合空间蓝图,找一条腿做参考计算这只脚从落脚到抬脚相对世界的位移,用位移除以时间计算出相对准确的跑动速度,对步行做相同处理,对两速度取最小公倍数并取整,调整混合空间中最大速度即可。这个问题本质是角色的运动速度并没有匹配世界动画的运行速度,不论世界动画快慢于角色移动速度,都会感到有滑步感。角色的移动与动画不匹配,角色移动起来像是在滑行。4.编译运行看效果进行微调。

2024-05-05 23:18:23 201

原创 ue引擎游戏开发笔记(30)——对角色移动进行优化:实现人物转向

1思路:利用反转换函数inverse transform direction获取正确向量,并通过XVector函数分离出z轴方向,后匹配角度实现移动转向。当前我们只实现了通过控制器可使角色进行前后左右的移动,但角色移动时与动画不匹配,并不会进行转向,实现角色随移动转向。4.编译,保存,运行。

2024-05-05 23:02:18 291

原创 ue引擎游戏开发笔记(29)——实现第三人称角色随手柄力度进行移动

角色可以随手柄力量大小进行走路和跑步,不动时保持角色停顿。1.思路:通过动画蓝图和动画混合实现角色移动和输入的联系。5.回到角色蓝图,设定动画类为自己所建立的新动画类,编译并运行。

2024-05-03 23:56:29 356

原创 ue引擎游戏开发笔记(28)——实现第三人称越肩视角

1.思路:建立一个弹簧臂和摄像机,调整两者位置达到越肩效果。所有旋转长短,只调整弹簧臂,不要调整相机。实现一个第三人称越肩视角。4.编译保存,进行微调。

2024-05-02 23:40:10 271 2

原创 ue引擎游戏开发笔记(27)——解决角色移动及转动存在卡顿掉帧小技巧

建议对rotationrate声明时直接赋一个默认值,否则编译完后,引擎初始化为0,这样无论怎么转动都看不到效果。1.思路:采取捕获最后deltaseconds来逐帧进行旋转或移动,使动作显得不那么卡顿。随之游戏越来越大,难免出现部分时候移动出现卡顿,能否进行一定优化。5.编译,调整细节。

2024-05-02 23:30:41 351 1

原创 ue引擎游戏开发笔记(26)——处理角色死亡敌人仍攻击bug

1.首先分析问题起因,是由于虽然玩家控制的小车被摧毁了,但控制器仍然存在,没有被禁用掉,直接禁用掉控制器可行,当然玩家死亡,显示game over后立即重新开始也是完全可行的。对游戏中存在的各种小问题做细节处理,例如玩家在死亡后,敌人仍对着目标开炮,并且仍然触发爆炸效果。5.此时再编译代码,玩家死亡后敌人不会再继续攻击了。

2024-04-30 14:44:14 875 1

原创 ue引擎游戏开发笔记(25)——增添特效

为了让游戏更真实,需要给游戏增添一些特效,例如敌人被摧毁时出现一个爆炸特效,子弹发射时有尾烟等等。1.与声音类似,首先也需要在需要的地方先建立声明,以便能在引擎中进行设置,3.ok,现在编译代码,之后在引擎中设置各种特效即可。

2024-04-30 14:29:23 187

原创 ue引擎游戏开发笔记(24)——增添声音

2.当然可以立即编译后,在引擎中找到要设置的声音直接替换,但因为发声函数并没有完成编写,也可以等到函数设置完成后,一并编译,那么开始实现发声,要利用playsoundatlocation函数;常规问题,角色死亡或者开炮时应当伴随有声音,这样有戏才显得更真实,所以为游戏添加合适的声音。每次调用声音前应当加个判断,检测是否指向了空指针,避免游戏崩溃。

2024-04-30 14:15:34 208

原创 ue引擎游戏开发笔记(23)——增添小控件显示倒计时

2.现在只是完成了代码侧的构建,如果现在编译完文件并运行游戏,在开始时确实会有3秒玩家无法移动小车,但屏幕上并不会有任何提示,因此下一步,将提示内容显示在屏幕上,利用引擎中widget即控件来实现屏幕输出,首先新建一个widget,选择文本输入(当然制作好图片导入也可)开始设计器建立的文字只是一种样式,具体显示内容与后续蓝图内的输出有关,同时,如果希望每一次输出样式都不同那么就需要建立多个控件。当游戏开始时,需要给玩家一定提示,诸如准备,3.2.1,开始!将这些内容输出到屏幕上,以便玩家能够清晰看到。

2024-04-30 13:59:23 128

原创 ue引擎游戏开发笔记(22)——处理开炮后子弹击中目标变化(2)

1.首先要创建一个游戏模式,在引擎中新建游戏模式,并对游戏模式进行编辑,你可能需要获取整个地图有多少敌人,判断游戏结束时是玩家死亡还是敌人被消灭,依照需求将需要的函数在头文件中声明。有了基本的炮弹反馈,即用子弹击中目标多次后,目标会消失后,需要给游戏增添胜负条件,例如击毁所有炮塔则游戏胜利,玩家被击毁则游戏失败。3.判断角色死亡,如果是玩家死亡,那么游戏直接结束,如果是炮塔死亡,则炮塔减一,直至炮塔为0,游戏胜利。

2024-04-30 13:30:00 137

原创 ue引擎游戏开发笔记(21)——处理开炮后子弹击中目标变化(1)

我们只是单纯使子弹能够发射出去,出去后子弹并不消失,同时击中目标也么没有反馈,诸如血量减少,敌人爆炸等等,先做些简单处理,例如让子弹消失,打几炮后敌人死亡消失等。此时并未完成游戏角色死亡的整体流程,只是完成了对炮塔的摧毁,后续仍需建立游戏模式,用于判断是玩家死亡还是敌人死亡,以便输出胜利,或者gameover。1.首先设定击中函数,这个函数将处理子弹击中敌人后的各种细节,当然,首先会判断子弹是否与目标发生碰撞,之后逐渐添加各种特效声音等等。

2024-04-30 12:46:36 90

原创 ue引擎游戏开发笔记(20)——实现炮塔旋转及开炮

1.首先,射击不止玩家控制的小车能够进行,对方小车或者炮塔也应该能够进行射击,因此考虑建一个类用来存储子弹,这样任何车都可以进行调用。所以先构建基类zidan。炮塔实现旋转后,接下来要实现相对重要的功能,即小车能够向外根据旋转方向发射子弹,因此实现射击的功能。3.在cpp中实现函数,首先获取子弹的位置与旋转,之后调用SpawnActor函数将子弹“扔”出去。注意子弹发出的位置,尽量靠前,否则子弹会与炮管发生碰撞导致不会射出去。4.回到引擎,为子弹选择好模型,建立映射,完成射击。

2024-04-30 00:05:48 180

原创 ue引擎游戏开发笔记(19)——实现炮塔旋转(1)

1.同样类似已经实现过的的抓取,主要思路即建立一条线状通道,捕捉鼠标轨迹再通过rotation函数实现旋转。由于小车的类是继承自基本车类,因此调用函数不需要再包括它,但如果来自其他库或者类,则需要在头中声明。小车由基本移动后,还应有最重要的功能,能战斗!因此第一步让小车炮塔旋转起来,便于后续进行开炮。

2024-04-29 00:42:27 157

原创 [ue5]vs code报错:不能将“xxxxxx”类型的值分配到“xxxxx”类型的实体

加个cast就行了!

2024-04-27 23:28:00 91

原创 ue引擎游戏开发笔记(18)——在c++中实现物体移动转弯(2)

测试移动时,小车无法移动,可能是由于小车的胶囊体与地面接触导致碰撞从而导致无法移动,此时适当抬高小车使其胶囊体脱离地面即可。2.编写turn函数,并注意只允许玩家绕z轴进行方向改变即调用Yew,1.同样,通过bindaxi。继续实现物体转弯功能。

2024-04-27 23:19:21 171 1

原创 ue引擎游戏开发笔记(17)——在c++中实现物体移动转弯(1)

车体模型建立完成后,首先即需要实现能对车体进行移动,转弯等基本操作,这样才能完成诸如后续开火,转动机枪等操作。执行映射,以及获取Deltatime时注意包含必要的头文件,否则会报错。2.在头文件声明需要的变量,诸如速度,旋转速度等等。1.首先基于车的基类建立玩家驾驶的车以及敌人的车。

2024-04-26 23:53:19 209 1

原创 ue引擎游戏开发笔记(16)——在c++中实现静态物体组合构建

1.首先考虑车有很多种,可能不同车拥有不同功能,但基本功能相同,因此构建一个基类,在此基础上实现各种车的特化。如果编译出现UCapsuleComponent未声明等类似错误,在前添加class前置声明即可。准备构建一个简单的小车闯关游戏,利用代码实现车体,车顶,机枪的组合构建。4.完成编译,在ue5中对组件增添材质。

2024-04-26 00:54:41 238 1

原创 error LNK2001: 无法解析的外部符号 “public: virtual void __cdecl AJibenche::SetupPlayerInputComponent(class UI

error LNK2001: 无法解析的外部符号 "public: virtual void __cdecl AJibenche::SetupPlayerInputComponent(class UInputComponent *)"

2024-04-25 00:44:05 208

原创 ue引擎游戏开发笔记(15)——建立触发器(2)

触发系统仍需完善,实现例如回收触发物品,使之与触发装置一同消失的功能,或者替换物品,以达到“偷取”某种物品的效果。有时物体未响应触发器的反应,可能并不是代码本身的问题,也可能由于场景搭建导致物体“卡住”了,注意检查。

2024-04-25 00:38:19 162

原创 ue引擎游戏开发笔记(14)——建立触发器(1)

现在已经实现物体的移动,以及物体的抓取,那么在游玩关卡时,需要玩家将某一物体放到指定位置,从而触发某一装置,诸如门的打开,物体爆炸,怪物出现等等。因此需要设计一个触发器,当指定物体放置时,触发。3.写主要功能函数,建立关联移动,先判断标签是否一致,如果一致,再判断物体是否仍被“抓住”,如果没有,则执行相关函数如跟随移动,引爆物体等等。2.给指定物体添加标签,同时在触发器也添加标签,只有二者匹配,才能够触发函数。注意对物体生成重叠事件,在头文件中也要包括需要调用函数的头文件。

2024-04-23 23:53:13 176

原创 ue引擎游戏开发笔记(13)——用C++实现物体抓取(2)

注意指针指向不能为空,要在引擎中建立对抓取的映射,例如左键单击,空格等。1.首先进行判断,是否存在抓手,并且抓手上是否存在抓取的物体。3.如果目标不可抓取,或抓手不可用,在日志中返回结果。实现抓取之后,要能够释放物体,实现对抓取物体的释放。2.如果均符合,那么通过抓手释放抓取的物体。

2024-04-22 23:07:26 200

原创 ue引擎游戏开发笔记(12)——用C++实现物体抓取(1)

(2)在摄像机前提供一条射线或者柱状线,以便可扫描到要抓取的物体,参考DrawDebugLine函数,及相关DrawDebugSphere函数等,获取到线后利用Engine/World库中SweepSingleByChannel()函数,实现对物体扫描的标记。要注意的细节较多,包括物体与玩家之间的碰撞处理(勾选重叠),未扫描到物体要返回结果,初始位置的获取等,多调试或者参照其他已实现样本进行修改。(1)实现镜头跟随视角转动,保持一致,为后续扫描提供基础。

2024-04-19 00:58:10 145

原创 ue引擎游戏开发笔记(11)——制作关卡交互设施(1)——移动门

2.主要利用VInterpConstantTo()函数,配齐函数需要的参数,包括初始位置,目标位置,移动距离等等,具体代码如下。1.本质是做一个函数模块,可以对任何物体调用这一·模块,使之实现移动功能,所以需要创建一个移动类,在类下编写移动函数。在玩家进入关卡后,可通过解密打开某些装置,例如开门,设置一个能上下左右前后移动的门。一些固定参数可写入头文件,类生成可能会因.net版本问题无法执行,注意更新。3.进引擎进行编译与调试。

2024-04-17 23:51:04 111

原创 [ue5]vs code编译报错:#include错误。请考虑更新compile...禁用波形曲线

2.到工程文件下,找到.uproject文件右键,选择generate visual studio project files。3.重启ue5,工具->刷新vs code。4.再次打开vs code 问题·已解决。所有include均检测不到。1.关闭ue5以及vscode。

2024-04-16 17:19:47 138

原创 [ue5]更改游戏模式后角色无法移动 报错 Called AddMappingContext with a null Mapping

设置完游戏模式后 进入游戏角色无法移动,检查日志只有一条:

2024-04-15 01:05:29 244

原创 ue引擎游戏开发笔记(10)——简单灯光构建(2)

导入蓝图模型,或者自己直接加入光源,调整光源的各项参数,使地牢整体看着舒服,富有美感,这其实是细腻的活儿,加入的模型,元素越多,整体的氛围感就会越强,自己简单搭了搭,先做出主体流程,之后再慢慢修缮细节。外部阳光构建完成后,给地牢内部加入各种灯光,提升氛围。

2024-04-13 23:20:38 155

原创 ue引擎游戏开发笔记(9)——简单灯光构建

1.关卡搭建基本完成后,开始考虑给地牢内部添加灯光,即各种火焰效果,大致有两个问题需要解决:第一个,添加阳光,也就是大环境灯光。第二个,确保地牢内部绝对黑暗,便于火光,各种光线的效果呈现。2.相对麻烦的,即保证地牢绝对黑暗,这个主要是遮挡光线照入,类似在原有的基础上再完全包裹一层,没什么难度,但比较枯燥并费时。大致完成效果(加了点光源)1.大环境光相对容易实现,添加sky light并配置天空球,再加一个照射光,调好角度,重置即可。搭建好的模块尽量放入一个文件夹,便于后续管理,也方便修改。

2024-04-13 00:12:20 135

原创 ue引擎游戏开发笔记(8)——搭建基本关卡(搭积木)

之前都是采用工程中自带已经搭建好的场景,重点放在功能实现上,但实际开发不存在现成场景,需要自己着手自建,自己构建所需场景,添加需要的内容。非常无聊,就是在搭积木,场景好不好看,完全取决于积木本身,当然后续加上灯光,效果等之后一定会漂亮很多。

2024-04-11 23:07:05 69

原创 ue引擎游戏开发笔记(7)——在类中添加旋转功能

实现通过类不断创建子类构建各种移动平台后,一些地方需要添加可以旋转的物体作为障碍,与·移动功能类似,为由类创建的平台添加旋转功能。3.编译完成后,在ue中建子类导入物体,调整参数,完成。

2024-04-10 23:14:41 210

原创 ue引擎游戏开发笔记(6)——蛋疼的实时编译功能

1.事实上ue实时编译功能在实时工作中还是很好用的,方便随时查看自己代码有无问题,功能有没有正常实现,但由于ue引擎的编译只在引擎本身进行修改,所以每次关闭引擎后再打开参数不会得到保留,功能有待完善。2.个人解决方法是,完成工作后,勾掉实时编译功能退出,在code中进行最后一次编译,保存所有修改,每次开始使用时勾选实时编译后重启,使用实时编译功能。每次打开ue,上次在引擎中设置的参数总会莫名消失,一切回到原始-_-|||,需要打开实时编译立刻再重新编译一遍,耗时耗力。

2024-04-09 23:16:14 226

原创 [ue5]vs code编译报错:Unable to build while Live Coding is active. Exit the editor and game

vs code编译报错:Unable to build while Live Coding is active. Exit the editor and game, or press Ctrl+Alt+F11 if iterating on code in the editor or game。

2024-04-09 23:00:38 137

原创 ue引擎游戏开发笔记(5)——代码实现平台移动

速度过快时,最终位置可能会超出移动位置,使用getsafenormal函数调整精确位置。1.通过ue5新建一个移动平台类,在vs code中对其进行编辑。3,在tick中先让平台移动起来,注意乘以DeltaTime。4.判断移动距离是否超出给定距离,如果超出,则向反方向移动。1.用vs code实现ue5中物体的来回移动。2.定义移动距离,初始速度等变量。

2024-04-08 23:22:43 105

空空如也

空空如也

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

TA关注的人

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