零、学习路径、心得
通过制作三个截然不同的游戏来学习,仅仅是学习。
一、角色蓝图
- 组件设计:Capsule Component下添加SpringArm组件,作为摄影杆,SpringArm下添加Camera组件。
- 设置:SpringArm组件中Camera Settings,勾选Use Pawn Control Rotation一项,以便添加输入系统后可以移动镜头视角。
二、输入系统
- Input文件夹下创建两个Input Action:IA_Move和IA_Look,分别代表角色行动和镜头行动。将两者的Value Type值都改为Axis2D(Vector2D),因为两者都能在两个轴上移动(角色的前后左右和镜头的上下左右)。
- Input文件夹下创建Input Mapping Context:IMC_PlayerInput,用来映射IA_Move和IA_Look到不同的键位。
- IA_Move的绑定:将WASD绑定为前后左右移动,由于Axis2D的默认向量是X轴上向右的,WS键要添加变轴的Modifiers,S和A键要添加逆转向量的Modifiers。
- IA_Look的绑定:绑定为鼠标在XY轴上的移动。
- 蓝图设计重点:
- Add Mapping Context,将IMC_PlayerInput添加到角色中来。
- 通过Get Player Controller启用Enhanced Input Local Player Subsystem。
- IA_Move的Action Value拆分为X和Y值,各自Add Movement Input,分别Get Right/Forward Vector,另外用Get Control Rotation使控制的移动方向与镜头“一致”(否则角色在世界坐标下移动)。
- IA_Look的Action Value拆分成X和Y值,各自Add Controller Yaw/Pitch Input,Pitch(Y方向上)的移动向量要逆转(乘-1)。
三、动画系统
- Characters文件夹中的Animations文件夹下创建Animation Blueprint:ABP_Player。角色蓝图中的Animation中的Anim Class选择ABP_Player。
- Blend Space 1D的使用:为了实现从静止到跑动动画的平滑过渡,创建Blend Space 1D:Idle_Jog。Blend Space 1D根据某一变量的值平滑过渡角色动画。将角色的速度(Speed)设置为水平轴的名称,最小为0,最大500;将角色蓝图的Character Movement组件中Max Walk Speed同样设为500。随后将静止、行走和跑步的动画分别拖到Idle_Jog水平轴中,对应的Speed分别为0,250,500。
- Smoothing Time适当调整,增加跑动前摇。