游戏人物设定:
(资料图片)
前期人物准备工作:
1.新建文件夹(Player),Mesh用来存放人物模型;Anim用来存放人物动画(要选中人物骨骼导入);bp存放我们玩家的蓝图。
2.bp中新建Player,复制一个小白人的模然后双击将网格体改成我们导入的模型。改变胶囊体的长度,然后保留时间图表中我们需要的人物动作蓝图。将左下方的角色转向和锁定方向变量删除。
3.删除复制bp中的小白人,将自己创建的人物模型拖进去。右侧Player自身搜索poss,将自动控制玩家设置为玩家0——目前人物已经可以移动但是没有动画。
中期人物动画设置工作:
4.在bp中右键新建动画——混合空间1D——选择我们导入的游戏角色骨骼——取名:PlayerBlendSpace1D——双击进去,将Axis Settings名称修为speed,用速度来控制角色的动作变化。
5.具体动作数值设定——最大轴值600,网格分区数量24格——速度为0时将右侧站立的动作选到时间轴,速度为125时为行走的动作,速度为600为奔跑动作。
6.创建动画蓝图——选择我们导入的游戏角色骨骼——取名:PlayerAnimBlueprint——双击进去,右键新建状态机,链接到输出姿势——双击进入状态机,添加状态(idle/walk/run),链接到entry——双击进入状态(idle/walk/run),将4中建立的混合空间1D拖入链接输出动画姿势——将混合空间1D的speed提升为变量。
7.在动画蓝图的事件图表中写人物蓝图与人物动作之间的绑定。尝试获取Pawn拥有者——判断是否有效(?is Valid)——有效就获取速度——速度是一个浮点,所以获取它的向量长度。 逻辑关系梳理: 事件蓝图更新动画的动作发生条件,①判断Pawn拥有者事件是否有效,获取Pawn拥有者的速度。②如果有效就设置speed的速度,从速度的向量长度获取。
8.将动画蓝图给到人物角色上,Player中网格体右侧动画——动画类选定为我们的6中的动画蓝图。
9.运行发现角色没有播放行走的动画,这是因为Player中角色移动右侧行走的最大行走速度是600。为了解决这个问题,我们需要写一个奔跑的逻辑。
奔跑逻辑的编写操作: 项目设置——引擎输入——操作映射,加号添加run,选择操作键左shift——在Player事件图表中,进行引入。右键输入run,最下面输入操作run——把左上方的角色移动拖到事件图表中,链接出maxspeed。输入操作run按下后,链接set的最大速度600;松开的时候,链接set的最大速度125。
10.在Player中角色移动右侧行走的最大行走速度设为125。
11.继续设置人物角色的跳跃逻辑。在Anim中的jump上右键创建动画蒙太奇。
12.在Player事件图表中对jump内容进行编写——将左上的网格体拉到事件图表——链接播放蒙太奇动画(也链接跳跃事件)——在播放蒙太奇的选框中选择11中创建的蒙太奇。 运行之后没有播放蒙太奇动画,要是想播放蒙太奇动画,需要在动画蓝图中添加一个插槽(slot)——链接到状态(idle/walk/run)
13.针对动画播放太快的问题,在Player事件图表右侧——跳跃Z速度设置为450——播放蒙太奇事件的Play Rate调到0.8,将播放速度放慢。
14.发现在从高处跳下时,播放完动画自动切换为跑的动画,显得非常不自然。 修改操作:要添加下落的蜷缩动作 ——在6中的状态机中新建一个状态下落fall,将其链接到状态(idle/walk/run)——在右下侧新建一个变量(是否下落:is fall)——在动画蓝图中,右键添加事件蓝图初始化动画——类型转换为Player(Player只是一个名字代称,取决于自己最初设置的蓝图中角色名称——获取Pawn拥有者——将类型转换的As Player提升为变量,方便我们实时引用它。
15.将is fall的变量连到7速度变量的后面——把As Player获取应用进事件图表——获取Character Movement——是否正在掉落——链接到速度变量后的is fall
16.双击进入fall状态,从右下侧拖入掉落动作链接到输出动画姿势——回到状态机,双击双向箭头——把左下侧变量is fall与结果链接(播放我们掉落动画)——回到状态机,从fall向(idle/walk/run)拉一根箭头,双击该双向箭头——把左下侧变量is fall拖过去,拖出not,接上结果(播放我们移动的动画)。 出现问题:按空格,角色卡定一个悬空的动作。为了解决问题,实行操作: 添加一个判断——Player中输入操作Jump的press链接一个Do Once——complete连到播放蒙太奇动画——蒙太奇播放完成或中断时再次执行Do Once。
17.由于在调试过程中,出现人物停止时出现僵直,所以我们在混合空间1D中修改采样插值,修改为4。
18.为了修改人物视角不够灵活的问题,我们在Player蓝图中左上侧CameraBoom选中,在右侧滞后栏中勾选启用摄像机旋转延迟。目标臂会和人物有一个时间差,看起来会比较丝滑,修改目标臂长度的大小25。
学习笔记整理自@vvuka 1kk大佬的教学视频
关键词: