UE4动画模块使用总结(三) - BlendSpace

发表于2015-12-09
评论0 5.1k浏览

 

                                            如何创建和使用BlendSpace

  1. 创建一个BlendSpace

在创建BlendSpace时可以选择创建1个维度BlendSpace1D还是两个维度的BlendSpace,除非是做横版类的游戏选择1D的外,一般来说选择创建二维的BlendSpace,在这个节点下可以编辑四个或八个方向移动。

创建BS时会要求选择一个基础骨骼,这里需注意的是,如果移动或者跑步动作不是基于同一个基础骨骼创建,那BS编辑面板将无法识别该动作,所以在制作之初就要规划好后面的动画公用资源问题。

  1. 编辑BS

BS面板中设置X,Y轴向的名称以及范围值。根据项目的不同可设置不同的移动BS,设置BS的方式有很多种,举例来说,下图第一种按照速度和方向来设置,底部第一排放置walk的动画,当速度到达一定值时就融合到顶排run动画,然后在事件蓝图中根据速度和方向来取值。但是我们在项目的过程中发现这种方式不会很理想,我们可能需要角色瞬间达到最大速度,而不需要中间的速度融合,从待机到跑,从待机到走都是瞬间完成的动作。

在下图中是我们所采取的一种方式,在这个BS中跟速度没有关系,只有方向,在range里我的经验是设置-11的范围,在事件蓝图中设置变量的绝对值取值得到相应的动画,这么做是可以避免在游戏中取值在0.50.1各种情况出现,会导致呈现的动画并不准确。把待机,走,跑都单独做BS再进行运动状态之间的融合切换。也可以变态的把待机,走,跑,蹲各种状态坐在一个BS中,这种方式比较不易于后续的细节表现的添加。

  1. BS在状态机和蓝图的应用

如果我们把角色移动按照各种状态来融合,那么整个状态机的可编辑性强很多,比如说在一个射击游戏中,在拿枪的跑动中可能随时都要瞄准射击,只要在BS末端加入一个骨骼控制节点单独控制某根开枪的骨骼即可实现。

下图我简单罗列了一个射击游戏底层状态机的简单思路,虽然整个状态机图表看似复杂,但易于管理和编辑,由此可以看出我们是按武器的类型的枚举节点来划切换状态,在这个基础上可以衍生更多的状态,比如拿手榴弹,蹲着的状态都可以一目了然。

 

 

 

 

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引