【UE 从零开始制作坦克】6-坦克开炮

效果

步骤

1. 添加初学者内容包(需要用到其中的音效和粒子效果)

2. 接下来制作坦克的炮弹

首先新建一个Actor蓝图类,作为所有发射物体(炮弹、机枪子弹等)的父类,这里命名为“TotalCategoryOfProjectile”

打开“TotalCategoryOfProjectile”,添加一个发射物移动组件

然后设置一下抛射物的初始速度和发射物重力范围

 

 添加一个球形碰撞组件

 将球形碰撞组件作为根组件

3. 创建子蓝图类

 

 命名为“TankShell”,表示坦克炮弹

打开“TankShell”,由于美M1主战坦克的火炮口径为120mm,因此这里球形碰撞组件的半径设置为6cm

 添加静态网格体组件

 

 赋予一个模型

 调整静态网格体的缩放,使得球形碰撞组件能够差不多包裹住子弹模型

 设置静态网格体的碰撞预设为“NoCollision”

4. 打开“TotalCategoryOfProjectile”(发射物总类),设置球形碰撞组件的碰撞预设为“Custom”,碰撞响应为阻挡。

 这样它的子类中继承的球形碰撞组件的碰撞预设也为“Custom”

5. 打开骨骼“SKEL_West_Tank_M1A1Abrams”

 显示所有插槽

 可以看到炮口处有一个名为“gun_1_jntSocket”的插槽,因此我们可以使用这个插槽来生成炮弹和炮火粒子效果

 5. 打开“BP_West_Tank_M1A1Abrams”

 添加如下节点,实现按下鼠标左键生成“TankShell”(坦克炮弹类)

 接下来添加开炮时的音效

6. 添加一个音效衰减

 命名为“AttenuationOfFiringSound”,这里先保持“AttenuationOfFiringSound”的默认设置

7. 打开“BP_West_Tank_M1A1Abrams”

 在事件图表中添加如下节点来播放坦克开炮时的音效

设置音效衰减 

 接下来希望在开炮时能够展示炮口火焰。

选中“GunFire”,然后父项套接字设置为“gun_1_jntSocket”

 同样的,选中“ShockWave”,父项套接字设置为“gun_1_jntSocket”

 将这两个粒子系统组件位置归0

 在开炮时激活这两个粒子系统组件,这样开炮时就能看到开炮时产生的粒子效果

 由于坦克开一炮后会存在一段装填时间,因此使用“Do Once”和“延迟”节点来模拟这个装填状态,即只有延迟时间结束后才会重置“Do Once”节点:

 8. 接下来添加炮弹击中目标时执行的逻辑

打开“TankShell”(坦克炮弹蓝图类)

 

 选中“Sphere(继承)”,添加一个组件命中时的事件

 添加如下节点

 最终效果如文章开头所示。

猜你喜欢

转载自blog.csdn.net/ChaoChao66666/article/details/131272900