虚幻蓝图学习笔记 创建小飞碟并可以发射一个子弹

一,前期准备

1,创建一个Pawn蓝图类,搭建飞碟物体,并添加摄像机Camera,同时添加一个SpringArm

 

 2,创建一个Game Mode Base 蓝图与Controller蓝图

在gmae Mode Base中设置Player Controller Class 与Default Pawn Class为我们新创建的蓝图类

 

 3,在设置键盘映射Project Settings->input(Engine)-》Bindings

Action Mappings中添加开火指令

 Axis Mappings中添加移动与加速指令

 二,在控制器PlayController蓝图添加物体移动与加速的蓝图

1)首先获取当前控制器角色Get Controlled Pawn,并保存到变量存储,

 2)为物体添加一个初速度,在开始开始移动,AddActorLocalOffset

定义两个变量,一个保存当前时间增量秒(以秒为单位返回帧增量时间,由时间膨胀调整),另一个定义当前的初速度,并赋值给X

并使用AddActorLocalRotation控制物体旋转,分别负责Roll,Pitch,Yaw,轴旋转

 

3)为物体添加按空格加速移动获取Thrust,这里主要在按空格是给初速度变量一个值,实现加速运行

这里使用Select Float 用来检测用户是按键;使用Clamp(float)控制移动的最小速度与最大速度。

4)为物体添加上下左右转动MoveUPUP, 使用AddActorLocalRotation,添加偏移量,并定义一个变量控制偏移距离

Finterp to 插值函数(根据与当前位置的距离到达目标,在跟踪位置时提供流畅的感觉)

 

5)为物体左右移动时添加转动,显示的比较平缓,首先获取角色的Roll,如果转动距离过大需要提供一个纠正的办法。先获取偏移量,之后获取UFO物体,并AddLocalRotation设置角色转动,

首先需要检测物体是否转动,使用absolute获取绝对值,并GetActorRotation,称以一个负数,用来摆正偏转物体,使用Select Float选则使用的旋转角度,并通过Finterp TO平缓的转换,最后cast To 我们物体,AddRelative Rotation

 

 

 7)为飞碟设置按键开火指令,

获取输入开火指令,InputAction : Fire  并定义一个开火事件Custome Event,使用set Timer By Event实现只要按住一直开火,松开停止开火,time设置0.5,Looping勾选;使用Clear and invalidate Timer by Handle清除计时器;

开火时先获取物体Arrow并获取向量,使用SpawnActor 发射我们自作的子弹蓝图,

 

 三,在飞碟蓝图中创建控制飞碟移动的

1)我们使用Arrow获取Get WorldRoation;Get ForwardVector和GetRightVector向量用来控制飞碟前后左右移动;GetUp Vector控制上下位移

2)鼠标空视角的上下左右

 3)在event Tick中使用Clamp(float)控制视角,防止视角过大飞行器RelativeRotation翻个

四,为飞行器添加被击中抖动或屏幕显示颜色效果

使用Set Manual Camera Fade设置相机淡入淡出直到Stop CameraFade,或者使用StartCamer Fade设置效果

设置相机抖动效果:StartCameraShake,通过调用蓝图相机抖动:matineeCameraShak设置抖动参数

 

 

原文地址:https://www.cnblogs.com/qq964107326/p/15095752.html