bilibili吧 关注:4,483,374贴子:138,679,005

回复:在这简单的记录下自制的方舟同人像素act的过程吧

只看楼主收藏回复

3.考虑新状态与各个状态之间切换条件
以通常的ACT为标准,我们设置下蹲键为方向键 “↓”。那么各个状态切换条件也很简单了。
下蹲:处于地面并按住下蹲键“↓”,进入下蹲;
起身:处于地面并放开下蹲键“↓”,离开下蹲。
当然,由于下蹲是我们新增加的动作,且与移动互斥,因此还需要额外考虑下蹲、移动、静止之间的切换关系。大致的移动切换应当如下:

实际上我设置的状态机还将移动细分为加减速,但这里为了让图片显得整洁,我将有关移动动作整合起来了,总之,状态机分配因人而异,仅供参考。
移动↔静止:移动和静止应当是自由切换的。
移动/静止→下蹲:无论是静止状态下,还是在移动中,都可以通过按键进入下蹲状态。
下蹲↔起身:下蹲之后必须经由起身,且起身状态只能由下蹲状态进入。同时,在起身进行一半时,能够再次进入下蹲,这是常见的蹲起运动。
起身→静止:由于下蹲动作将清除X轴的移动速度,因此起身后人物必然处于静止状态。
还有,不要忘记了跳跃动作与下蹲之间的联系。

和移动相似,只需要注意一下,起身过程中其实是可以跳跃的。(不过这点也可以不设置,因为这只是我个人喜好而已。)


IP属地:福建155楼2019-11-14 08:48
回复
    4.分析动作并为动作增加数据
    进入下蹲时,角色应当是无法进行移动的。因此在此状态下的X轴与Y轴的速度应当设置为0。当然,也可以设置个缓冲效果。


    IP属地:福建159楼2019-11-14 08:53
    回复
      5.分析动画并为动作增加动画
      下蹲动画主要分为三个部分。
      1.下蹲动画;2.下蹲中动画;3.起身动画。
      结合之前的状态切换考虑,动画播放关系如下

      1.下蹲动画
      这里需要分为2种情况,其依据在于下蹲的时间是否足够长。
      若在操作时持续按住“↓”不放开,那么下蹲的时间将足够长,则下蹲阶段动画能够成功的过渡到下蹲中动画。 若在操作时按了一次“↓”后马上放开,那么下蹲的时间将变得十分短暂,使得下蹲阶段动画无法顺利过渡到下蹲中动画。
      在不同的情况下,动画播放的处理也有所不同。这在移动设置时也提到,可以对照的那个思路进行思考。

      2.下蹲中动画
      在确保下蹲足够长后,才会播放的动画。

      3.起身动画
      其实就是下蹲动画的翻版。
      整个下蹲动画大致如下作者:


      IP属地:福建160楼2019-11-14 08:53
      回复
        6.对以上动作不断修复完善
        可能需要额外注意的问题有:
        ★碰撞代码
        通常,下蹲的碰撞盒是要小于站立状态的,因此可以借由下蹲系列的动作,进入比较狭小的地形。因此在一些地方需要注意,如:在角色处于下蹲状态且头顶存在障碍物时,我们希望在放开下蹲键后,角色能仍然保持下蹲状态。(有些游戏这种情况起身会直接判定死亡,例如洛克人X系列)

        对此,解决的办法有很多,这里我说下我的做法。
        在起身之前,也就是放开下蹲键时,进行一次碰撞的检测,在这一瞬间将下蹲的碰撞盒修改为站立时的碰撞,如果碰撞盒中存在障碍物,将无法进入起身状态,一直保持在下蹲状态中。(其实这也是我为什么将下蹲和起身分隔开来的原因。)
        -----
        下蹲时碰撞盒:

        在起身前先进性一次碰撞盒的判定


        IP属地:福建161楼2019-11-14 08:57
        回复
          大致互斥和独立的状态机设置结束大概都说的差不多了,之后的新增状态分析我应该是不会写的这么详细了(虽然本来也详细不到哪里去),会相对更多说一些可能需要注意的问题。
          因为要考虑写笔记,所以实际进度会比笔记进度快很多,如果有兴趣的话,可以加一下游戏的测试群:774219186 ,有比较大的更新我会第一时间将游戏放到测试群里的。


          IP属地:福建162楼2019-11-14 08:58
          回复
            技术贴


            IP属地:辽宁来自Android客户端163楼2019-11-14 09:04
            回复
              大佬


              IP属地:四川164楼2019-11-14 09:15
              回复
                尼妹?


                IP属地:广东来自Android客户端165楼2019-11-14 09:23
                收起回复
                  说对了,太强了,我是驴


                  IP属地:辽宁来自Android客户端166楼2019-11-14 09:37
                  回复