目录

虚幻FPS开发-day02开枪以及光线追综

虚幻FPS开发 day02:开枪以及光线追综

0.下面所有的操作都是基于day01的基础上开始的

1.开火音效

首先设置音效资产变量,在蓝图中动态的设置音效资产

https://i-blog.csdnimg.cn/direct/d9bf3c2f8bae47d9a11bcfc8cfdcc0d9.png

绑定开火事件,在输入事件中设置鼠标左键按下事件

https://i-blog.csdnimg.cn/direct/3f05d9cd684449c4b0eeb79b8d5d0e3d.png

在代码中设置当鼠标左键按下时对应的槽函数,

https://i-blog.csdnimg.cn/direct/1bfb904201f145c2ac8e565980df8519.png

https://i-blog.csdnimg.cn/direct/71126d30ac804486bb62082dc188a57a.png

绑定输入事件和槽函数之间的关系

https://i-blog.csdnimg.cn/direct/3d5686e40a4e417ea4bf6c1ccfc813bc.png

获取开火资产

https://i-blog.csdnimg.cn/direct/d6517295d197499981de3029d08f689d.png

创建音效蓝图

https://i-blog.csdnimg.cn/direct/f3d429e42a094e58b82b0f671ab74590.png

https://i-blog.csdnimg.cn/direct/8928f9d202f74f2682a039406070ae22.png

在BP_Character中设置资产

https://i-blog.csdnimg.cn/direct/0d7a54c20e084c8190a163b0390ddd7e.png

至此,开火音效已经实现

2.开火粒子特效

首先创建开火粒子特效变量以动态绑定资产,在我看来蓝图类就像是配置文件

https://i-blog.csdnimg.cn/direct/ff1c492a8b464ef8bfd7d5f5c290c26c.png

在鼠标左键点击开火时调用的回调函数 FireWeapon 中在指定的位置生成粒子特效

该位置为武器的枪口,所以需要在武器枪口创建一个插槽,用来生成后续的粒子特效

打开蓝图Cahracter,点击对应的网格体,跳转到对应的资产位置并打开

https://i-blog.csdnimg.cn/direct/204f117c1e054b25aa5c27888be1f516.png

点击骨骼

https://i-blog.csdnimg.cn/direct/10b3e5e52d49473980a9d2b4e7933ed9.png

点击武器,在武器下新建一个插槽

https://i-blog.csdnimg.cn/direct/7d5604112816456b8c7e735b33d4a7e4.png

我这边已经添加好了

由于后期需要获取插槽的向前向量,所以此处将X轴调整为枪口方向

https://i-blog.csdnimg.cn/direct/a43a51e859d743b0a05f73aa36278e19.png

开火粒子特效资产

在上一节导入的资产包中已包含

https://i-blog.csdnimg.cn/direct/8c60c15bb677402194a8364fde25d6c4.png

由于该资产下开一枪会蹦出三个子弹,修改所有的发射器

https://i-blog.csdnimg.cn/direct/6079e501cf6441fabe286ab2efbf0efe.png

https://i-blog.csdnimg.cn/direct/fe6a5f0c2a1140cea1005b3481854bf5.png

修改好后,在蓝图Character中设置该资产引用

https://i-blog.csdnimg.cn/direct/68fa901a5338435bb05e131ab226cfac.png

在对应的回调函数中先获取武器插槽,在生成枪口火焰

https://i-blog.csdnimg.cn/direct/7c4844cab83d42469fc15d1f1683f4a6.png

遇到头文件缺失问题,如果之间说的跳转到对应的.h文件在切换.cpp文件获取头文件的方式不奏效,可以采取下面这种,在下载的虚幻编辑器中

https://i-blog.csdnimg.cn/direct/5f892cb26ff941d5b52d181e4a25c710.png

https://i-blog.csdnimg.cn/direct/b5e9dc974a36442c95104e6de5ec4042.png

https://i-blog.csdnimg.cn/direct/4a86b4a27ed940caa37382bfb9c4f1ac.png

3.开枪蒙太奇

在c++类中创建蒙太奇动画变量,供蓝图Character添加该资产

https://i-blog.csdnimg.cn/direct/54e3721f919c4c4a83d261d727899cdd.png

在编辑器中创建开枪蒙太奇动画

https://i-blog.csdnimg.cn/direct/adba6c58ae5d41f5a4539103545a3d9d.png

https://i-blog.csdnimg.cn/direct/48bdb52cc5b14d3992fff17721b2304f.png

在蓝图Character中添加对应的动画蒙太奇资产

在开火对应的回调函数中添加播放开火蒙太奇

https://i-blog.csdnimg.cn/direct/1114cf90be20468c985660bcc43467a7.png

4.碰撞特效

创建变量,在蓝图Character中动态的导入资产

https://i-blog.csdnimg.cn/direct/8e84501fe5764a4487f678ddeb3f195e.png

https://i-blog.csdnimg.cn/direct/2daa3c8db0dd406fbe892e777319d873.png

https://i-blog.csdnimg.cn/direct/4feb9a8ed7614d7eb2db29c25f51f069.png

5.轨迹粒子特效

同上

https://i-blog.csdnimg.cn/direct/a787b6ccec864d83aa2bae6e2b3fc2fe.png

导入轨迹资产

https://i-blog.csdnimg.cn/direct/b1471b05364e4bcaa184d5a13852aabc.png

在蓝图Character中导入该资产

https://i-blog.csdnimg.cn/direct/dd1797f51dd842bc81eea86e1a574e0a.png

在对应的回调函数中,绘制射线

https://i-blog.csdnimg.cn/direct/589d1e1485484d7680e584530ebfe4b2.png

6.准星

绑定信号槽

设置新的按键输入,鼠标右键点击瞄准,再次点击正常视角

https://i-blog.csdnimg.cn/direct/b0335be3e9f149788cef1fdc8655e1f3.png

设置bool变量判断是否在瞄准

https://i-blog.csdnimg.cn/direct/5d5619b6a9904eacb5dcd2411d3676bb.png

绑定对应的回调函数

https://i-blog.csdnimg.cn/direct/c0683f6d454d4a43907c1da4da937f8b.png

绘制准星

创建HUD

https://i-blog.csdnimg.cn/direct/bf2e1ef1ade04e7bba9e280fcf1877f9.png

https://i-blog.csdnimg.cn/direct/a588d256fc2d45dda108fadefb10019f.png

https://i-blog.csdnimg.cn/direct/40a86619b4db4d599980eee9291bda3b.png

获取准星资产

https://i-blog.csdnimg.cn/direct/9c1b0c34e12248a6aa75b6b457732a6a.png

https://i-blog.csdnimg.cn/direct/da6114b2ff7d4babadf3b34569390883.png

7.完整的鼠标左键点击对应的开火回调函数

https://i-blog.csdnimg.cn/direct/b49a1fc409634ced8358ae9b38dfaf69.png

https://i-blog.csdnimg.cn/direct/1fd6d6753e4b4566934fb6a95fe5a7e8.png

8.视角缩放的插值

https://i-blog.csdnimg.cn/direct/69e21eefafe74d57b1c8e5ebcd2149d7.png

https://i-blog.csdnimg.cn/direct/f62e72d3de7649e687c86997db8eec33.png

9.至此开火的音效,火焰,射线以及受击特效和准星瞄准已经设置完毕