上一次我们尝试学习了通过C++使人物具有基本移动能力,但是我们可以看到,此时的人物本身并不能移动,只是一个平移的模式。这次我们尝试用已有的资源让人物跑动起来。
在人物骨架网格体的文件夹下创建一个混合空间1D(Blender 1D),命名为RunDemo。双击进入,得到界面如下:
我们首先将水平坐标名称改为Speed,意为根据数值变化混合动画,这里特指根据速度大小播放待机、行走、奔跑的动画。再将最大轴值改为400,避免速度过快只能播放奔跑动画。
接着我们就开始混合动画,方式很简单,只需要根据你的预期将动画资源拖动到下面框中的对应位置。如下图:
图中三个点即代表三个动画资源speed =0的地方是待机动画,100处为行走动画,400处为奔跑动画。拖动图中的绿色光点可以预览混合效果。保存。
在此目录下创建新的动画蓝图。命名为HeroAnimatation。
首先创建两个变量,一个bool类型的isJump,一个float的Speed,然后通过蓝图将其与角色属性相连。如下图:
之后再在动画图表中搜索machine,添加新的状态机。双击进入,添加状态和转换条件。如下图:
其中起跳和落地动画切换的条件都是isJump相关,为true时播放跳跃动画,为false时播放行走奔跑的动画。而下落过程中的条件为前一段动画剩余时间小于等于0.1秒时切换。逻辑编写完成,进行编译。编译完成,在人物的细节面板的动画蓝图选择HeroAnimitation。保存,运行,发现可以实现。
oAnimitation。保存,运行,发现可以实现。