zoukankan      html  css  js  c++  java
  • UE4_f2动画添加

    1.移动与跑步

    首先新建一个1D的混合空间

    左边可以改坐标轴的名称,最大值与最小值,以及格子的数量(动画只能插入到格子上)。

    下面第二张图是从左到右分别插入了 站立,步行,跑步,间隔为180。最后留空。

     添加一个动画蓝图,并且到character里在动画选项卡中应用动画蓝图并且添加上要使用的动画蓝图。

     

    然后在动画蓝图的事件图表中,强转获得我们的角色 character0。这样就可以对其中的数值进行操作了 

    //Get velocity-vectorLength获得该角色的速度。

     在动画蓝图的动画图表中新建一个状态机,连接到result上

     双击进入该状态机,添加一个状态。

     双击进入该状态,把我们unarmed的混合空间通过右下侧的资源添加进来,并且把我们在事件图表中获得的speed变量指向unarmed,用来告知unarmed应该播放什么动画

     添加冲刺

    冲刺需要三个动画,冲刺开始,冲刺循环,冲刺结束。

    在状态机中添加这三种状态,并添加条件以及相应动画。 

     

      

     //注意要把sprint_start和sprint_end的循环播放关掉,因为这两个动作只播放一次。

    这样一套循环动作就完成了。

    假设我们要实现按住shift开始跑步,首先要在项目设置中加上shift

    当我们按住shift的时候,把角色的最大移动速度平缓改到800,松开的时候再改回360.

      

    2.跳跃

    首先在输入里新建一个操作jump,通过按空格实现

     在character0里写上跳跃事件触发时的函数。

    因为character0在创建时继承了character类,所以可以直接继承它的跳跃函数。

    注意,当松开空格时要调用stop jumping,确保结束。不然只能跳跃一次。

    然后添加跳跃动画。

    在刚才的状态机里再添加一套状态循环,

     在事件图表中获得角色是否在空中的布尔变量,作为我们判定jump的依据。

     然后像添加冲刺时一样,设置每个状态的动画及触发条件。

     

     

      

     这时有个问题,当我们正在奔跑时突然跳起,那么状态机应该怎么反应呢?

    我们可以在跑步的时候添加一个判断,当is in air为真时,随即转换到起跳的jump_start中,跳跃结束时再回到跑步。

    状态连线及触发条件如下。

    这样就有了一个新的闭环,sprint_start--sprint_loop--jump_start--jump_loop--sprint_loop--sprint_end

     

     3.格挡

    将鼠标右键设为格挡。

    新建一个判断格挡的布尔变量,当按住右键时设为真,松开后设为假

    上面的block为角色蓝图中的block,是没办法直接用到动画蓝图里的,所以我们先要在动画蓝图的事件图表里获得角色的block值,然后赋值给 新建在动画蓝图中的一个布尔变量(这里也叫block)。

     

     同样的,在状态机里新建一套格挡的状态循环。

     

     

     

     

    假如格挡后会产生新的问题,即跑步时能否格挡,格挡时能否跑步,跳跃时能否格挡,格挡时能否跳跃。

    我打算设置的是

    跑步可以格挡,一旦格挡,随即取消跑步。

    格挡时无法跑步。

    跳跃时不可格挡。

    格挡时不可跳跃。

    格挡的蓝图修改如下

     奔跑的蓝图修改如下

     跳跃的蓝图修改如下

  • 相关阅读:
    广商博客冲刺第六七天new
    广商博客沖刺第一天(new ver):
    20150529项目之典型用户与场景
    冲刺第二,三,四,五,六天
    冲刺第一天:
    Android 學習之旅!(2)
    20150512 作业6 团队项目之需求
    Android 學習之旅!(1)
    20150421 作业5 四则运算 测试与封装 5.1 5.2(doing)
    20150421 作业5 四则运算 测试与封装 5.1
  • 原文地址:https://www.cnblogs.com/reluctante1/p/12733672.html
Copyright © 2011-2022 走看看