Unreal入门,通过蓝图自定义Pawn移动

image

1. 自定义Pawn

  • 新建Pawn
    image

  • 添加相机和网格体
    image

  • 网格体设置(新建项目自带资源里随便挑一个)
    image

  • 相机设置(主要是旋转和位移,随便设置下,大概能达到俯视效果就行,其它效果也可以,只要能看到自己的Pawn,不然不知道怎么动的)
    image

2. 应用自定义Pawn(默认GameMode不可编辑,不能直接替换Default Pawn)

  • 新建GameMode
    image

  • World Settings应用自定义的GameMode以及Default Pawn
    image

3. 自定义输入事件及按键绑定(名字不一定需要一样,叫阿猫阿狗都行)

image
image

4. Pawn蓝图中处理刚才自定义的按键事件

  • 右键添加MoveForward/MoveRight(或者刚才自定义的阿猫阿狗)事件,输入移动指令
    image

  • Event Tick事件中消耗已输入的移动指令
    image

最终效果

image

PS:叫阿猫阿狗真的可以

image

image

image

image

帧率问题,默认帧率60fps,当前设置下,如果帧率翻倍则移动速度也会跟着翻倍,可以将这个值乘以帧间隔时间Delta Seconds即可得到帧独立速度

当前速度 = 帧率 * Movement值 / 1秒 (不应用独立帧率的时候快的飞起)
帧独立速度 = 帧率 * Movement值 * 1帧时间 / 1秒
1帧时间 = 1秒/帧率
帧独立速度 = 帧率 * Movement值 * (1秒/帧率) / 1秒 = Movement值

image

忽略独立帧率问题的话,其实也可以不用Tick的,直接自产自销

image

MovementInput太碍事?也可以干掉的

image

如果是继承自Character的Pawn,让角色移动的步骤就更少了,只用连线AddMovementInput即可达到移动效果,而且移动速度是帧率无关的

image

修改帧率测试指令

image

# 显示帧率
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/

posted @ 2023-11-01 08:50  BuzzWeek  阅读(506)  评论(0编辑  收藏  举报