Unreal入门,通过蓝图自定义Pawn移动
1. 自定义Pawn
-
新建Pawn
-
添加相机和网格体
-
网格体设置(新建项目自带资源里随便挑一个)
-
相机设置(主要是旋转和位移,随便设置下,大概能达到俯视效果就行,其它效果也可以,只要能看到自己的Pawn,不然不知道怎么动的)
2. 应用自定义Pawn(默认GameMode不可编辑,不能直接替换Default Pawn)
-
新建GameMode
-
World Settings应用自定义的GameMode以及Default Pawn
3. 自定义输入事件及按键绑定(名字不一定需要一样,叫阿猫阿狗都行)
4. Pawn蓝图中处理刚才自定义的按键事件
-
右键添加MoveForward/MoveRight(或者刚才自定义的阿猫阿狗)事件,输入移动指令
-
Event Tick事件中消耗已输入的移动指令
最终效果
PS:叫阿猫阿狗真的可以
帧率问题,默认帧率60fps,当前设置下,如果帧率翻倍则移动速度也会跟着翻倍,可以将这个值乘以帧间隔时间Delta Seconds即可得到帧独立速度
当前速度 = 帧率 * Movement值 / 1秒 (不应用独立帧率的时候快的飞起)
帧独立速度 = 帧率 * Movement值 * 1帧时间 / 1秒
1帧时间 = 1秒/帧率
帧独立速度 = 帧率 * Movement值 * (1秒/帧率) / 1秒 = Movement值
忽略独立帧率问题的话,其实也可以不用Tick的,直接自产自销
MovementInput太碍事?也可以干掉的
如果是继承自Character的Pawn,让角色移动的步骤就更少了,只用连线AddMovementInput即可达到移动效果,而且移动速度是帧率无关的
修改帧率测试指令
# 显示帧率
stat fps
# 修改帧率为120
t.MaxFPS 120
# 修改帧率为60
t.MaxFPS 60
参考
https://zhuanlan.zhihu.com/p/522287677
https://www.unrealengine.com/en-US/blog/input-action-and-axis-mappings-in-ue4
https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Pawn/Input/AddMovementInput/
https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Pawn/Input/ConsumeMovementInputVector
https://docs.unrealengine.com/4.26/en-US/API/Runtime/Engine/GameFramework/AActor/AddActorLocalOffset/