动画共用存在的问题

常规的游戏做法在会制作两套动画,一套全身动画用于第三人称,一套只包含手臂的动画用于第一人称

而在 Escape from Tarkov (逃离塔科夫)和 Arma(武装突袭)中,采用了同一套动画

这种做法的好处在于:

  • 节省动画资源
  • 确保玩家本地观察到的和其他玩家观察的表现是一致的

但同时也会存在着不少问题:

  • 在塔科夫中,移动的时候没法精确移动,按一下按键会移动很大距离
  • ads 的时候动画没法贴摄像头很近,如果太近会导致其他人看自己时穿模的

参考资料:
The BEST Tactical Shooter | Ground Branch
A Deep Dive into Escape From Tarkov's Movement Mechanics

开火点的选择

在使用第三人称 + Projectile 的情况下,为了保证在第三人称下,能够观察子弹的飞行轨迹,需要采用枪口处为开火点,而非相机位置作为开火点

但枪口作为开火点也会带来一些需要解决的问题

枪口遮挡时的处理

当角色弹道遇到阻碍时,需要提示玩家弹道遇到阻碍,同时提示实际落点位置

当枪口遇到阻碍时,为了保证枪械不会穿模射击,需要对枪口做偏移操作

射击弹道转正

由于开火点与相机不在同一直线,所以生成的子弹的角度是会向相机看向的方向偏移的

角度的偏移会存在两种情况:有目标位置和无目标位置
COD第三人称 - 镜头变化.avi
有目标位置的时候直接偏移向目标位置即可

当不存在目标位置时,需要让子弹在飞行过程中逐渐向相机看向方向偏移,以保证下坠位置的可预期的

在飞行速度较快的枪械中该问题不明显,可以不考虑转向修正,在速度较慢的箭矢中会该问题会明显影响射击体验,需要加入修正机制

一三人称镜头切换导致瞄准点错位问题

存在的问题:一三相机切换时,由于位置存在偏移,导致瞄准的位置不同

解决的方法

方法一:旋转法,切换相机时打出射线,将要切换的相机角度看向射线点
方法二:位移法,移动当前镜头至即将要切换的镜头位置

第三人称镜头遮挡处理

当第三人称相机受到指定层级的物体遮挡时,相机拉近距离,确保相机不会穿透到遮挡物体中