设计方面不是很懂啦,设计这些动画和触发等肯定是要根据具体游戏的游戏性来决定的。
---------------------------------------------------------------
实现的话,都是按几种情况讨论的,因为按情况来做的话程序量会少很多,就是事件驱动的方式来实现咯。
攀爬过程就是跳跃、攀住和着地这些情况,攀住好办,就根据攀爬点的类型设计好动画,当人物以跳跃状态到达攀爬点的碰撞体并到达一定高度和朝向时候播放攀爬动画就行了。跳跃就有三种情况:
一种是特殊动画的,比如信仰之跃啊、剧情的跳跃之类的都是固定动画的,在信仰之跃的点按跳跃就直接播放预定的动画、剧情的大片式跳跃也是同理,比如暗杀时候,同时镜头也有一定的改变。
第二种是攀爬点的跳跃,像横梁、墙壁这些地方,跳跃的方向是固定几个方向的,比如横梁上向前向后、墙壁向上下左右还能向墙壁反方向跳跃,这些个跳跃要按照攀爬点类型设计人物跳跃动画。
第三种就是自由的平台跳跃了,在屋顶或者地面等地方就分原地跳跃、跑跳、平台落下几种情况分别设计人物动画。
着地的话就两种情况吧,一种是通常着地,通常着地如果没有横向速度,就是稍微屈膝的动画;如果有横向速度就是向前走两步停下。一种是高处着地,如果没有横向速度的话那就是要播放整个人接近跪下的动画;如果是带有横向速度的就是向前滚动咯。
跑酷的话就是分跑的方向,比如在墙壁的攀爬点处向着墙壁跑就是直接沿着墙壁向上走,至于走几步就是你程序定的了;如果你不是向着墙壁,而是与墙壁有一定角度的,那就按照角度计算好一个抛物线路径,然后播放沿墙跑步的动画;还有捉住旗帜晃的也是同理,根据初中物理来计算好人物路径(如果是物理系的游戏的话就直接考物理引擎计算了),然后播放动画就行了,之后角色遇到攀爬点还是掉地上就根据上面的那些情况来决定了。