新开局时,角色开始既无自动目标,也无锁定目标
当任意角色移动,或主角旋转时,会由主角的面向方向 与每一个在范围内的敌方角色(正面对 180 度内,大约 120 码以内),做一个夹角检测,检测到最小夹角的敌方角色,会带一个绿色三角特效,标识为自动目标,可以理解为,程序认为你期望进行攻击的目标
这个夹角,是用主角的面向向量,与主角和敌方的位置向量差做一个夹角,就是点乘得到夹角后,看哪个夹角小。哪个就是自动目标
当控制主角攻击(Pose 号大于 200) 任何自动目标时,无论对方是否防御住,无论招式是否与对方发生碰撞,当前自动目标将成为锁定目标(只要存在自动目标的话),摄像机开始寻找,以主角和该目标为组的最佳观察视点,这个视点的寻找算法,还不清楚,而锁定目标将会带一个金色三角特效。可以理解为,当前锁定的攻击目标
当具有锁定目标后,自动目标标志将会被清除,而且自动目标不会再进行更新,在锁定目标离开主角一个范围,或者锁定目标死亡,或者按 Q 解除锁定后,自动目标将重新开始刷新,而锁定目标特效将消除,同时摄像机开始以主角为唯一目标重新作为第三人称摄像机
当具有锁定目标时,在战斗中,除了按下防御时,不会自动切换角色的角度以外,任意动作执行后,都会自动瞬间朝向锁定目标(这是没有角速度的),而且,主角向前跑动时变得可以推开锁定目标(而在没有锁定目标时,主角是无法推开任意敌方的,也就是开碰撞,但是不可推开)
当存在锁定目标时,默认动作转变为持当前武器下的准备动作,只有当解锁时,或者锁定目标死亡,与锁定目标距离超过限制值时,这个默认动作又还原为 Pose 0 动作.
现在要解决的问题呢,有以下几点
第一要仿造原作的锁定逻辑,控制锁定情况下的摄像机视角选取。(这个相对来说较复杂)
第二要计算受击时,确定攻击者方位与受击者方位之间的关系,来决定调用哪个受击动画。现在的问题是,不知道前后左右受击动画的前后左右是依据什么作为确定条件
第三就是物理碰撞上,要让角色跳跃起来之后无法站立到敌方头顶上。然后是,锁定的角色要可以被推开的。
摄像机的群组视角还没做,所以有点问题.
其次是跳跃到其他角色头顶,这个问题还不知道怎么解决(据说是在碰触到的那一帧给 2 个角色相反的速度,让互相推开),在跳跃落地前把跳跃角色的 CharacterController 与其他角色的 CharacterController 的碰撞关闭掉不知道行不行.
最好的解决办法是模拟写一个自己的 CharacterController,然后把胶囊体碰撞器替换为组合碰撞器。
然后还有一个,锁定攻击角色之后,还是无法推着角色跑,这个问题,也没有什么好办法解决。
还差轻功
怪物 AI
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于