- 博客(63)
- 收藏
- 关注
原创 [ue5]建模场景学习笔记(6)——必修内容可交互的地形,交互沙(4)
现在我们已经有了可以在世界内近于无限的跑动痕迹,现在需要对痕迹进行细化,包括例如当人物跳起时便不再绘制痕迹,以及痕迹应该存在深浅,应该由两只脚分别绘制,同时也应该对地面材质进行进一步处理,至少应该让角色踩在类似沙粒的材质上从而出现痕迹。1.主要思路与之前相同,此时在画板上绘制的笔刷变为角色的两只脚,以角色脚抬起的高度决定绘制的大小与深浅,把每次绘制的印记保留在数组中同时传给画板,最后再针对m_sand对地形材质做处理。6.将材质应用到地形上,调试,修改(省去大量bug,莫名其妙问题)
2024-06-12 22:57:21 830
原创 [ue5]建模场景学习笔记(5)——必修内容可交互的地形,交互沙(3)
5.第一想法直接clear掉,但直接clear会把想要保留的痕迹一并去除,跑起来就没有痕迹!所以不行,要做一个转载,先把痕迹保留在一个载体上,清楚原来痕迹,用sandsave表示,再把这个载体的痕迹保存回原来rt,这样之前的痕迹被清空了,只留下了保存在载体上的部分,正好符合我们想要的部分。我们现在已经能够让这片地形出现在任意地方,只要角色走在这片地形上,就能够产生痕迹,但这片区域总是需要人工指定,又无法把这片区域无限扩大(显存爆炸),因此尝试使角色无论走到哪里都能产生痕迹。否则绘制不到画板上。
2024-06-09 21:20:36 452
原创 [ue5]建模场景学习笔记(5)——必修内容可交互的地形,交互沙(2)
继续制作可交互沙子内容,前面我们已经让角色在指定区域留下痕迹,那么能否让区域移动起来,这样才能逐步满足角色走到哪里都能产生交互痕迹,满足更大的地图。4.将位置和大小公开到库中,并把平面设置到画板内方便操作;
2024-06-08 00:34:42 386
原创 [ue5]建模场景学习笔记(4)——必修内容可交互的地形,交互沙(1)
1.思路:这是一个相对复杂的工程,要考虑玩家踩到沙子上面产生形变,留下痕迹,同时脚印要有深浅,另外要满足开放世界需求,不能只在一小片地方产生痕迹,超出范围后痕迹消失,因此,逐步实现,首先先实现在人物脚下产生痕迹。现在的沙漠场景仅仅只是一张贴图,人物走过不会留下任何痕迹,很不真实,尝试优化一下,做出可交互的沙漠效果。可以看到角色脚下的确生成了目标图案。
2024-06-07 00:22:44 486
原创 [ue5]建模场景学习笔记(3)——利用noisebrush实现沙漠沙丘和风刃效果
只利用地形雕刻形成沙漠地形并不理想,有点像山地,不太像沙漠,没有风吹形成的类似风刃的地形,只有沙丘表现效果较好,尝试优化一下。调大左上参数值到4-5之间,可得到较好的风刃效果,之后在原层的基础上再套一层,用来表现沙丘即可。
2024-05-31 00:08:43 463
原创 [ue5]建模场景学习笔记(2)——用vectornoise降低重复率
利用改uv的方式降低重复率并不理想,在一定程度上的确能够达到降低重复率的效果,但远看仍然有较清晰的重复效果,尝试优化一下。对比下来还是非常明显的。
2024-05-30 00:10:01 577
原创 [ue5]建模场景学习笔记(1)——混合材质
卷首:这部分会记录建模场景等相关学习内容,与ue引擎学习笔记不同的是,可能会略过一些基础内容,因为部分知识在blender中已经学习过了,不再继续记录。1.首先找到你想要的材质球,当然自己创建,或者从素材网站下载均可,ue5本身自带了bridge上就有相当多不错的材质,但网络可能存在问题,下载缓慢。想构建一个山地的场景,在ue5中先构建好基本模型,下一步进行材质贴图,希望构建一种混合材质的贴图。3.重复这一操作,把每种材质都连接好。
2024-05-28 23:55:38 702
原创 效率工作:一键为多种资产添加统一材质(小插件)
链接: https://pan.baidu.com/s/1sGNsNOoHIrKWJe8q5Ck7HA?pwd=6ma5 提取码: 6ma5。当导入一批资产,或者有同一批结构体需要添加相同材质时,单独为每个模型都添加材质费时费力,有没有什么办法,能同时为多个资产添加材质。2.具体操作方法b站有教程,压缩包里也有地址,按正常控件安装即可。1.在网上找到了一款插件,经过验证,可以解决问题。
2024-05-28 23:35:10 319
原创 ue引擎游戏开发笔记(47)——设置状态机解决跳跃问题
目前当角色起跳时,只是简单的上下移动,空中仍然保持行走动作,并没有设置跳跃动作,因此,给角色设置新的跳跃动作,并优化新的动作动画。1.实现跳跃不复杂,考虑使用状态机完成动作设置,并对之前角色死亡,移动等进行优化。6.编译,运行,调试。
2024-05-21 22:19:41 461
原创 ue引擎游戏开发笔记(46)——简单UI设计
玩家操作界面应该有基本的准星和血量显示等内容,告知玩家角色的基本状态。1.较为简单的内容,在控件面板建立相应内容,之后链接到游戏中即可!2.先做准星,在画布上搞个准星,画或者图片,+号都行。
2024-05-20 21:51:10 287
原创 ue引擎游戏开发笔记(45)——添加游戏音效
截至目前,我们仍然在一个无声的世界游玩游戏,所以有必要为游戏增添一些声音,例如开火声,子弹撞击声等等。1.这是一个较为简单的功能,类似特效的实现方法,在引擎中选择需要的声音,并且去代码端声明这些变量就行。4.编译,运行,调试。
2024-05-19 20:47:55 353
原创 ue引擎游戏开发笔记(44)——游戏胜负显示
在击杀完最后一个敌人,或者玩家自己死亡后,游戏应该有所提示,显示一下死亡和胜利的界面。1.这个之前做过,在小车游戏中就做过结算界面,参照那个示例进行实现即可。
2024-05-18 23:41:42 218
原创 ue引擎游戏开发笔记(43)——行为树的建立:射击bug修复
1.首先先分析一下,因为摄像机在人身后,而设计的子弹发出点又是从摄像机前,所以应该是由于发射的“子弹”因碰撞,无法通过导致看起来像是在射击自身。实现了射击,但射击本身存在问题,ai只会射击自己,不能射击玩家(额......),修复这个bug。在角色类中,禁用控制,并把胶囊体设为无碰撞,这样它会从世界跌落,等同于消失掉。4.此时再编译运行,已不存在bug。
2024-05-17 20:50:42 191
原创 ue引擎游戏开发笔记(42)——行为树的建立:ai射击实现
在完成ai的基本移动和巡逻后,另一个比较重要的ai功能就是攻击,ai要能够主动攻击玩家,实现ai对玩家的主动攻击。1.思路:射击功能本身已经实现了,现在只需要完成对ai方位,视角的获取,再调用射击函数,就可以进行射击。现在的ai射击存在问题,机器人只会射击自身,并不会射击玩家,下次笔记进行修复。
2024-05-17 20:32:00 218
原创 ue引擎游戏开发笔记(41)——行为树的建立(2)--丰富ai行为:巡逻后返回原处
就敌人ai而言,追踪到敌人有可能丢失目标,丢失目标后应该能返回原来位置,实现这一功能。1.思路:利用clear value函数,禁用掉当前的追踪功能,执行之后的返回函数即可。5.编译,保存,调试。
2024-05-16 00:41:26 238
原创 ue引擎游戏开发笔记(40)——行为树的建立:丰富ai行动
敌人的ai行为随着开发的不断更新,会不断增加,如果每次都进入c中编写会很不方便,也无法凸显ue引擎中行为树的优势作用,因此有必要将敌人的ai行为,全部转到行为树中实现。1.思路:先实现已完成的部分:追踪玩家,首先要建立行为树和黑板,之后在行为树中掉用黑板中的变量来实现相关功能。7.编译,运行,调试。
2024-05-16 00:27:08 194
原创 ue引擎游戏开发笔记(39)——npc的ai设定:追踪玩家以及瞄准
实现对npc的击杀和死亡反馈后,下一步需要赋予npc基本的ai,首先就是敌人要能够追踪或者说跟随玩家,这才能为后续npc开枪,对射做好准备,首先实现追踪玩家。ue引擎对此提供了相对完整的可用模块,简单设置调用即可。5.编译运行,调试。
2024-05-14 00:23:02 222
原创 ue引擎游戏开发笔记(38)——实现敌人接收攻击伤害,并作出反应
现在已经显示造成实际伤害,但敌人对实际伤害并未产生反馈,例如还击,或者死亡倒地等等,实现敌人对于受击的反馈。1.思路:在动画蓝图中添加死亡动画,并通过bool混合两种动画,再通过bool变量控制两种动画的播放。
2024-05-11 21:12:37 237
原创 ue引擎游戏开发笔记(37)——实现造成伤害
1.思路:ue本身函数FPointDamageEvent就可以解决,在actor库中查看takedamage()所需要的参数,依据参数配置,或者定义,之后调用takedamage函数。在游戏中已经能够射击,并且能得到实际的落点反馈,但本质上这种射击没有任何实际数值伤害,为射击添加实际的子弹伤害数值。FPointDamageEvent需要在头文件包含#include "Engine/DamageEvents.h"2.在装备或者角色类中先写入takedamage()函数:(注意给shanghai一个初始值)
2024-05-11 17:48:24 268
原创 ue引擎游戏开发笔记(36)——为射击落点添加特效
1.思路:很简单,类似开枪特效一样,只要在头文件声明特效变量,在fire函数中应用这个变量即可。在debug测试中能看到子弹落点后,需要给子弹添加击中特效,更真实也更具反馈感。
2024-05-09 22:11:09 333
原创 ue引擎游戏开发笔记(35)——为射击添加轨道,并显示落点
1.思路:可以这样理解,每次射击的过程是一次由摄像机向外抛出物体的过程,那么首先要获取到当前世界中摄像机的具体位置,即旋转,空间位置;获取到当前摄像机的位置后建立弹道,并利用debug检测一下落点即可。我们只添加了开枪特效,事实上并没有实际的效果产生例如弹痕,落点等等。所以逐步实现射击的完整化,先从实现落点开始。为避免空指针,获取摄像机前应当检测是否为空指针。
2024-05-08 23:05:47 357
原创 ue引擎游戏开发笔记(34)——建立射击映射,并添加特效
准备处理射击系统,首先角色需要能射击,有反馈,先建立角色与控制器之间的映射,并添加简单特效,证明映射已经建立。SpawnEmitterAttached来自UGameplayStatics,因此要包含这个类,具体为。2.写一下所用函数fire,是从Gun中调用的,所以去Gun中写:利用spawn函数实现调用特效。
2024-05-07 23:33:01 213
原创 ue引擎游戏开发笔记(33)——武器与角色的匹配,将新武器装备到角色身上
武器能出现在世界中,完成了第一步,下一步需要角色和武器适配,即不论角色跑动,射击等,武器和角色都相匹配,将武器装备到角色身上。即需要找到武器与角色的结合点(weapon_r),通过隐藏这一骨骼点来隐藏武器。3.回到引擎,编译运行。
2024-05-06 22:34:25 431
原创 ue引擎游戏开发笔记(32)——为游戏添加新武器装备
游戏中角色不会只有一种武器,不同武器需要不同模型,甚至可能需要角色持握武器的不同位置,因此需要添加专门的武器类,方便武器后续更新,建立一个武器类。注意如果运行游戏看不到新武器,可以按f8在右侧搜索武器名,双击找到武器位置。
2024-05-06 22:21:43 793
原创 ue引擎游戏开发笔记(31)——对角色移动进行优化:角色滑步处理
1.思路:进入混合空间蓝图,找一条腿做参考计算这只脚从落脚到抬脚相对世界的位移,用位移除以时间计算出相对准确的跑动速度,对步行做相同处理,对两速度取最小公倍数并取整,调整混合空间中最大速度即可。这个问题本质是角色的运动速度并没有匹配世界动画的运行速度,不论世界动画快慢于角色移动速度,都会感到有滑步感。角色的移动与动画不匹配,角色移动起来像是在滑行。4.编译运行看效果进行微调。
2024-05-05 23:18:23 536
原创 ue引擎游戏开发笔记(30)——对角色移动进行优化:实现人物转向
1思路:利用反转换函数inverse transform direction获取正确向量,并通过XVector函数分离出z轴方向,后匹配角度实现移动转向。当前我们只实现了通过控制器可使角色进行前后左右的移动,但角色移动时与动画不匹配,并不会进行转向,实现角色随移动转向。4.编译,保存,运行。
2024-05-05 23:02:18 466
原创 ue引擎游戏开发笔记(29)——实现第三人称角色随手柄力度进行移动
角色可以随手柄力量大小进行走路和跑步,不动时保持角色停顿。1.思路:通过动画蓝图和动画混合实现角色移动和输入的联系。5.回到角色蓝图,设定动画类为自己所建立的新动画类,编译并运行。
2024-05-03 23:56:29 414
原创 ue引擎游戏开发笔记(28)——实现第三人称越肩视角
1.思路:建立一个弹簧臂和摄像机,调整两者位置达到越肩效果。所有旋转长短,只调整弹簧臂,不要调整相机。实现一个第三人称越肩视角。4.编译保存,进行微调。
2024-05-02 23:40:10 400 2
原创 ue引擎游戏开发笔记(27)——解决角色移动及转动存在卡顿掉帧小技巧
建议对rotationrate声明时直接赋一个默认值,否则编译完后,引擎初始化为0,这样无论怎么转动都看不到效果。1.思路:采取捕获最后deltaseconds来逐帧进行旋转或移动,使动作显得不那么卡顿。随之游戏越来越大,难免出现部分时候移动出现卡顿,能否进行一定优化。5.编译,调整细节。
2024-05-02 23:30:41 642 1
原创 ue引擎游戏开发笔记(26)——处理角色死亡敌人仍攻击bug
1.首先分析问题起因,是由于虽然玩家控制的小车被摧毁了,但控制器仍然存在,没有被禁用掉,直接禁用掉控制器可行,当然玩家死亡,显示game over后立即重新开始也是完全可行的。对游戏中存在的各种小问题做细节处理,例如玩家在死亡后,敌人仍对着目标开炮,并且仍然触发爆炸效果。5.此时再编译代码,玩家死亡后敌人不会再继续攻击了。
2024-04-30 14:44:14 1148 1
原创 ue引擎游戏开发笔记(25)——增添特效
为了让游戏更真实,需要给游戏增添一些特效,例如敌人被摧毁时出现一个爆炸特效,子弹发射时有尾烟等等。1.与声音类似,首先也需要在需要的地方先建立声明,以便能在引擎中进行设置,3.ok,现在编译代码,之后在引擎中设置各种特效即可。
2024-04-30 14:29:23 236
原创 ue引擎游戏开发笔记(24)——增添声音
2.当然可以立即编译后,在引擎中找到要设置的声音直接替换,但因为发声函数并没有完成编写,也可以等到函数设置完成后,一并编译,那么开始实现发声,要利用playsoundatlocation函数;常规问题,角色死亡或者开炮时应当伴随有声音,这样有戏才显得更真实,所以为游戏添加合适的声音。每次调用声音前应当加个判断,检测是否指向了空指针,避免游戏崩溃。
2024-04-30 14:15:34 273
原创 ue引擎游戏开发笔记(23)——增添小控件显示倒计时
2.现在只是完成了代码侧的构建,如果现在编译完文件并运行游戏,在开始时确实会有3秒玩家无法移动小车,但屏幕上并不会有任何提示,因此下一步,将提示内容显示在屏幕上,利用引擎中widget即控件来实现屏幕输出,首先新建一个widget,选择文本输入(当然制作好图片导入也可)开始设计器建立的文字只是一种样式,具体显示内容与后续蓝图内的输出有关,同时,如果希望每一次输出样式都不同那么就需要建立多个控件。当游戏开始时,需要给玩家一定提示,诸如准备,3.2.1,开始!将这些内容输出到屏幕上,以便玩家能够清晰看到。
2024-04-30 13:59:23 211
原创 ue引擎游戏开发笔记(22)——处理开炮后子弹击中目标变化(2)
1.首先要创建一个游戏模式,在引擎中新建游戏模式,并对游戏模式进行编辑,你可能需要获取整个地图有多少敌人,判断游戏结束时是玩家死亡还是敌人被消灭,依照需求将需要的函数在头文件中声明。有了基本的炮弹反馈,即用子弹击中目标多次后,目标会消失后,需要给游戏增添胜负条件,例如击毁所有炮塔则游戏胜利,玩家被击毁则游戏失败。3.判断角色死亡,如果是玩家死亡,那么游戏直接结束,如果是炮塔死亡,则炮塔减一,直至炮塔为0,游戏胜利。
2024-04-30 13:30:00 179
原创 ue引擎游戏开发笔记(21)——处理开炮后子弹击中目标变化(1)
我们只是单纯使子弹能够发射出去,出去后子弹并不消失,同时击中目标也么没有反馈,诸如血量减少,敌人爆炸等等,先做些简单处理,例如让子弹消失,打几炮后敌人死亡消失等。此时并未完成游戏角色死亡的整体流程,只是完成了对炮塔的摧毁,后续仍需建立游戏模式,用于判断是玩家死亡还是敌人死亡,以便输出胜利,或者gameover。1.首先设定击中函数,这个函数将处理子弹击中敌人后的各种细节,当然,首先会判断子弹是否与目标发生碰撞,之后逐渐添加各种特效声音等等。
2024-04-30 12:46:36 140
原创 ue引擎游戏开发笔记(20)——实现炮塔旋转及开炮
1.首先,射击不止玩家控制的小车能够进行,对方小车或者炮塔也应该能够进行射击,因此考虑建一个类用来存储子弹,这样任何车都可以进行调用。所以先构建基类zidan。炮塔实现旋转后,接下来要实现相对重要的功能,即小车能够向外根据旋转方向发射子弹,因此实现射击的功能。3.在cpp中实现函数,首先获取子弹的位置与旋转,之后调用SpawnActor函数将子弹“扔”出去。注意子弹发出的位置,尽量靠前,否则子弹会与炮管发生碰撞导致不会射出去。4.回到引擎,为子弹选择好模型,建立映射,完成射击。
2024-04-30 00:05:48 304
原创 ue引擎游戏开发笔记(19)——实现炮塔旋转(1)
1.同样类似已经实现过的的抓取,主要思路即建立一条线状通道,捕捉鼠标轨迹再通过rotation函数实现旋转。由于小车的类是继承自基本车类,因此调用函数不需要再包括它,但如果来自其他库或者类,则需要在头中声明。小车由基本移动后,还应有最重要的功能,能战斗!因此第一步让小车炮塔旋转起来,便于后续进行开炮。
2024-04-29 00:42:27 214
原创 ue引擎游戏开发笔记(18)——在c++中实现物体移动转弯(2)
测试移动时,小车无法移动,可能是由于小车的胶囊体与地面接触导致碰撞从而导致无法移动,此时适当抬高小车使其胶囊体脱离地面即可。2.编写turn函数,并注意只允许玩家绕z轴进行方向改变即调用Yew,1.同样,通过bindaxi。继续实现物体转弯功能。
2024-04-27 23:19:21 229 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人