UE4开发神秘海域类游戏原型 初阶(二):动画资源的整合
前一篇已经确定神海类游戏原型的目标,首先要做的就是3C‘s(Character, Controls, Camera)的开发。
UE4的3C‘s的程序部分开发主要也就是基于他的GamePlay Framework来进行的,只要在C++里开发完成,通过蓝图类继承,把参数暴露给蓝图就可以由策划和美术师来直接使用了。鉴于UE4自带的Learn Project的示例代码里还是有相当多参考示例的,一些基础内容这里就跳过不讲了,具体的功能实现会在面涉及需求时详细说明。官方的介绍在这里。
![GameFramework.png](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175634417-1622231722.png)
角色 Character
因为神秘海域角色一个特点就是各种角色的丰富的动作捕捉动画,这就对UE4的动画系统以及动画蓝图使用有了很高的要求,所以角色的讲解从动画系统讲起。这个教程里,我也是准备使用UE4 Marketplace上的动画资源:
目前暂时是先用这6套动补数据。
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175635464-449615290.jpg)
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175636339-2069886234.jpg)
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175636901-1980508764.jpg)
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175637495-440605388.jpg)
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175638089-1866594519.jpg)
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175638526-227035247.jpg)
把所有资源都导入后,因为每套资源都是绑定的自身项目里的Skeleton,这样没法统一调度,我们需要把所有资源指定到一套Skeleta mesh和Skeleton上
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175639292-1100348404.jpg)
UE4 Marketplace上的动画资源都是使用的Epic Skeleton Template,为Skeleta mesh 指定 Skeleton。
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175639854-386774760.jpg)
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175640448-888308913.png)
接下来要通过UE4 Regtarget,来让绑定一个Skeleton的动画使用到其他的Skeleton上,即便骨架大小,数量不同也可以复制过去(不过效果不会太好)。细节看文档就可以了,如果手里有很多其他游戏的资源,稍微做些配置还是可以用的。
![Retarget1_1.jpg](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175650229-2029838552.png)
使用同样的Skeleton的资源还是有Pose T-Pos 和 A-Pos的区分的。
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175655964-829652936.jpg)
比如CoverAnimsetPro 的就是A Pose
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175700401-1352203073.jpg)
这里我们要做的就是把Source的Skeleton的A Pose修改为T Pose,然后再Retarget到一开始确定那个Skeleton上。
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175701589-1439078825.jpg)
如果做动画资源的Retarget的话,要求Source Target的Pos是一致的,如果图省事,可以根据使用Source和Target Pos动画的数量来决定改哪边的Pose,这里还是以T Pos为准,所以我这里修改了一个部分源动画的Skeleton的Pose。
Source Pose未修改
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175707214-401292255.png)
Source Pose 修改后
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175714761-612200737.png)
下图就是同样一个Idel动作,源Skeleton没匹配(A Pose)和匹配了(T-Pose)的对比。
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175715667-991782738.jpg)
Retraget功能不光是对应Animation Sequence,包括Anim BP(动画蓝图)在内的所有动画资源都可以转化,如果直接转动画蓝图的话,里面引用的Blendspace,Aimoffset也可以一起转换,还是非常方便的。
这样把6套资源都转化为了T Pose的动画,暂时够一款动作冒险类游戏的动画资源使用了。接下来就是规划玩家和敌人的状态,创作动画蓝图了
![](https://images2015.cnblogs.com/blog/503123/201612/503123-20161223175718057-355446448.jpg)