文章目录
- 一、创建动画蓝图
- 二、创建 Location 地标
- 三、Character 和 PlayerControl 的控制
- 四、实现效果
一、创建动画蓝图
这里以 UE5 从零开始制作跟随的大鹅-CSDN博客 创建的动态资产创建动画蓝图;需要用到的资产列表有:大鹅的骨骼网格体,大鹅物理资产,Idle 动画和 Walk 动画以及一些材质;
首先我们将 Physics Asset 配置给 Skeletal Mesh,然后使用两个动画创建一个 Blend Space 1D 资产;命名为 BS_goose;在 Blend Space 中,命名横坐标为 speed,并设置最大值为 120,将两个动画拖入到资产之中;
处理完毕后我们创建动画蓝图,命名为 ABP_goose;进入到 AnimGraph 中,配置 BlendSpace 1D 资产;
处理完毕后,进入到 Event Graph 之中,在这里我们需要做一个东西,那就是按照 Tick 来更新 Speed 参数进而改变 Animation 的状态;
到这里动画资产就创建完毕了;
二、创建 Location 地标
地标可以直接从网上下载也可以自己随便定义,这里是从网上下载得到:Download - MEGA;下载完毕后拖入到 UE5 中资源的文件夹中,得到如下:
其中材质可能需要重新配置,材质页面如下,这里是使用 A 通道连接到 Opacity Mask;
接下来使用静态网格体创建一个 Blueprint Actor 对象,命名为 BP_Location,该 Actor 中实现的功能很简单,简单配置 Static Mesh 和 Materials,然后在 BeginPlay 中实现一个延迟摧毁功能
Location 地标创建完毕!
三、Character 和 PlayerControl 的控制
首先创建一个 Character 命名为 BP_Character_Goose,配置好 Skeletal Mesh Asset 和 动画,调整好 Transform;接着创建一个 Spring Arm,在其中放置一个 Camera;
由于是 TopDown 游戏模式,需要调整一下 SpringArm 的长度和旋转角度,在这里需要固定旋转角度不受方向的变化,因此这里不能使用相对旋转而应该使用绝对旋转;
接着我们需要关闭掉 Use Controller Rotation Yaw 和 开启 Orient Rotation to Movement 可以让 Character 转向;
然后我们可以降低一下鸭子的速度,这里设置最大速度为 200;
在这里 Character 的基础配置就完成了,接下来创建 PlayerControl:在 UE5 初始化的 TopDown 游戏中,采用的就是 PlayerControl 来控制输入;同时,为了实现按住不放运动的功能,这里可以使用 Input Mapping Context 来实现输入;创建好 Input Action 和 Input Mapping Context 如下;
配置 Input Mapping Context 如下;
这样 Input Mapping Context 就配置完毕了,接下来进入 PlayerController 中实现功能;首先是配置 Input Mapping Context 到事件中;
添加完毕后就可以正常使用 Mapping Context 功能,在这里先创建一个函数命名为 GetLocationUnderCursor,该函数主要用来获取鼠标下的位置;并设置为 Pure 而不需要主线链接;
接下来创建一个函数命名为 Follow,该函数用于实现按住不放引导 Character 移动的功能;在 Inputs 端口接受一个目标位置 Vector 变量;
接下来创建一个函数命名为 MoveTo,实现将 Character 移动到目标点的功能;在 SpawnActor 中,我们可以将 Class 提升为变量方便后续进行设置;这里的 Location 需要在 z 轴上加一个小数避免被遮挡;
最后将函数和 AI_Click 搭配如下,并在 Class Defaults 中设置 show Mouse Cursor 以至于在游戏中可以看到鼠标;其中提升了两个变量,第一个变量 Cached Location 是用来缓存 Location 方便后续移动到指定位置;第二个变量 PressedThreshold 可以防止频繁的点击移动;
设置完毕后我们可以对参数进行配置;FXCursor 可以配置为之前设置的 BP_Location,PressedThreshold 可以设置为 0.5;