但如果我们不想强调玩家需要对此行为进行付出代价和学习成本,想要玩家可以更加即时的进行快速位移并且可以无缝进入移动状态来调整走位,则更推荐使用快速发力冲刺的动作表现形式,这个动作的起始帧可以不是站立姿势,直接到发力前的动作,并在3帧之内快速响应进入逻辑位移。
在使用快速位移的过程中的转向方式需要根据项目需求和具体表现来综合考虑。例如翻滚的动作在腾空时与自由转向的兼容度不高,落地接起身时如果可以自由转向表现也会奇怪;但冲刺过程中转向虽然从真实角度出发并不合理,但效果上可以接受;如果是采用闪现的快速位移方式,由于没有中间的移动过程,且落地点位置确定,中途可以忽略转向的因素,但整体闪现过程应尽量快。
6. 左右脚处理
不论是走、奔跑、加速跑还是冲刺急停等等,过程中都会涉及到哪只脚在前哪只脚在后的问题。例如如果目前只有一个奔跑停止的动作,同样的融合时间,如果不区分左右脚表现,那么只有确定的一只脚在前的时候表现是流畅的。
这里介绍一个在UE引擎中较为简单的实现方式:我们以奔跑接停止为例,在奔跑循环动画序列中观察角色动作来标记通知修改一个变量,例如当左脚在前(或空中)时变量为0,右脚在前(或空中)时变量为1,在动画循环时就会根据当前动作情况修改这个变量的值。当在衔接奔跑停止动画时读取该变量的值,根据情况调用对应的左右脚奔跑停止动画即可。
7. 小结
本章节内容主要讲解了几个最基础的移动方式,同时简单介绍了状态机的理念。其实没有最好的,只有最合适的,真正了解项目中想要的是什么,以核心诉求为出发点进行推演才能得出最适合的基础移动的方案,再加入对细节的处理才能让玩家感受到好的操作手感。
大家可能会注意到,基础移动的基础“走跑跳”中跳在这里并未介绍,其实不论是跳跃、游泳、攀爬、飞行来说都可以使用上述分析方法:什么情况下其他状态进入此状态,是否要有衔接状态,衔接是什么表现;什么情况下可以从此状态退出到其他状态,是否要有衔接状态,衔接是什么表现。
熟练运用这个方法之后就是对于细节的处理和打磨了,在此工作的过程中最应具备的是耐心,因为一套成熟的方案都是经过非常非常多次的迭代才能产出的,项目甚至直到上线后依然会再对此部分进行优化。
三、摄像机对基础移动操作手感的影响
3C(Character Control Camera)是近几年来提到很多的一个概念,角色控制和摄像机代表了大部分游戏中最基本的三种元素,从某种程度上3C体验代表了游戏中的“手感”。在游戏精品化的道路上,游戏中这三者永远都是最基础且最应被重视的一部分。
第二章中主要讲的就可以归类到Character和Control这两个模块,而对于Camera而言我更认为是一个锦上添花的模块,它从视觉的反馈上间接影响玩家的手感体验。如果游戏只为做到70分,可能在基础移动这个部分摄像机不需要特别多的细节处理,把前两个部分做好就达标了,但如果为了追求更加优秀的表现,摄像机如何让操作反馈更加舒服就变成了必修课题。
1. 摄像机的基础介绍
提示:此部分内容较为基础,可以酌情跳过~
绝大多数3D第三人称游戏中摄像机通常与主角绑定,这样可以更好的观察主角,摄像机与主角的相对位置关系决定了游戏的基础视角,比如是背后还是越肩,角色在屏幕正中央还是偏左一些。这是一个很大的讨论课题,不同视角会带来各自的优劣,但此章节讨论的重点不在这里,主要是讨论基础移动中摄像机的反馈细节。
摄像机相关的参数可以简单分为两类:
- 位置相关参数
当与角色绑定后,摄像机的位置可以被基于角色信息的空间向量确定(XYZ轴方向及距离)。大多数3D第三人称游戏中玩家可以操作来改变这几个参数,实现从不同位置看向角色。
- 俯仰角相关参数
以摄像机看向角色的角度为基础,摄像机可有附加的角度偏移(Yaw Pitch Roll),由于在基础移动中需要确保摄像机看向角色,故这一组参数在基础移动中几乎不会修改,但在战斗的一些情况下会进行调整。
- 镜头相关参数
亮度,FOV等镜头参数在基础移动和战斗中都不会轻易进行调整。
2. 摄像机与角色的关系
摄像机与角色的绑定关系可以想象成我们在角色身上绑了一个自拍杆儿,这个杆儿并不固定,玩家可以通过操作来调整自拍杆儿的长短、与自身的方位角度和倾斜角度。UE中的SpringArm(弹簧臂)组件就非常形象生动地抽象出了上述功能,只需用该组件将角色与摄像机关联,即可实现我们理想中的摄像机要完成的基础功能。
同时,玩家移动的方向输入是以摄像机的朝向为基础朝向来操纵角色移动的,所以其实整体上玩家和摄像机的关系是:角色位置根据参数决定摄像机位置,但摄像机的朝向(即摄像机与角色所呈的方位角度)决定玩家移动操作的基础朝向。
3. 表现与实例分析
把摄像机理解为绑在角色身上的弹簧另一端的物体,在角色移动过程中摄像机要怎么合理地运动就很容易想象出来了:为了体现角色的速度感,当角色移动时弹簧应该被拉伸或压缩(取决于角色向摄像机朝向还是反向移动)一段长度。当角色停止移动时,弹簧再回到原来的长度。
当玩家在朝左右移动时,也可以使用这种手段处理,但不同的移动方向对于“弹簧”的拉伸效果可以不同,前后效果最明显,其他方向可以根据实际表现情况减小一定程度。
角色在原地跳跃时,由于与摄像机的绑定关系,摄像机会跟随角色运动,但由于角色跳跃在下落后逻辑上速度瞬间归0,如果摄像机不做处理会有一种快速运动骤停的感觉,其实很多游戏对这里是没有特殊处理的,但如果追求表现更好,可以在下落过程中让摄像机提前减速,这样角色落地后摄像机会有一个缓冲,不会从一定下降速度直接到停止。