第一人称视角旋转

在UE5中实现视角旋转,最核心的机制就是将鼠标或摇杆的输入,转化为对摄像机旋转(Yaw和Pitch)的控制。根据游戏类型(第一人称、第三人称或RTS),实现方式略有不同,但都推荐使用增强输入系统(Enhanced Input System)。

实现步骤

  1. 捕获输入: 创建 InputAction 数据资产,类型选 Axis2D (Vector2D),用来读取鼠标横向(X轴)和纵向(Y轴)的移动值。

  2. 绑定事件:在角色蓝图或玩家控制器中,把输入操作和响应函数绑定。触发事件通常选 Triggered,这样鼠标移动时就会持续触发。

  3. 蓝图实现: 调出输入节点,节点触发事件选择Triggered,这样移动鼠标时就会持续触发。拉出引脚调出add控制器Yaw输入节点,通过更改Yaw的值来实现视角的旋转(z轴),同理添加Pitch输入节点(y轴)。从输入的 Action Value 节点拉出引脚,拆分为 X (Yaw) 和 Y (Pitch) 值,分别连接到 Add Controller Yaw Input 和 Add Controller Pitch Input 节点即可。

此时鼠标上下移动是在模拟人的头部运动,鼠标向前推(输入正值):视角向下(Pitch负值);鼠标向后拉(输入负值):视角向上(Pitch正值)。所以会出现“反向”的视角旋转。

解决方法:1.在原有的传入鼠标Y值乘以-1;2.在输入映射中给输入操作添加一个修改器,索引选择否定,因为x轴和z轴不需要反转,所以只需要勾选y轴使控制视角反转y轴即可。

自动门功能

在UE5中实现自动门功能,核心原理就是检测玩家靠近➡触发门体旋转或滑动动画。

实现步骤

  1. 创建蓝图类,添加两个静态网格体组件(门框和门体),调整位置。

  2. 添加组件box collision(碰撞盒),调整大小。

  3. 创建组件开始重叠和结束重叠事件节点,使用timeline控制门体旋转动画(0s➡1s,0°➡90°),添加设置相对旋转节点并连接门体组件,拆分旋转轴(x,y,z),只改变Y轴(门体旋转)。

这里要注意timeline的长度要与时间长度相同。

  1. 时间轴节点中的play是开始动画,reverse是倒放动画,则将结束重叠事件节点的输出连接到reverse,实现关门动画。