UE4动画功能整理
转自:http://blog.ch-wind.com/ue4%E5%8A%A8%E7%94%BB%E5%8A%9F%E8%83%BD%E6%95%B4%E7%90%86/
工欲善其事必先利其器,最近一段开始了对UE4动画功能的系统性整理和学习。好在现在UE4的文档中文化已经开始了,有的文档是中文的,读起来也轻松很多。
当前使用的UE4版本为4.6.1。
AnimBlueprints
动画蓝图分为通常的事件图表和专有的动画蓝图两种,其中动画蓝图主要负责通过读取到的变量进行相应的动画播放。事件图表则是负责更新数值和状态变量。
Animation Composite
动画合成的作用是将多个动画进行组合变成新的合成动画,对于经常性的会进行序列播放的动画将其整合成一个进行管理和使用比较方便。
Skeletal Controls
骨骼控制可以实现在动画播放的过程中精确到单个骨骼的播放控制,这样可以使得代码对动画的播放拥有更多的灵活性。操作相对简单,可以在使用到时参考文档。
Physics-Based Animation
基于物理的动画,可以对骨架中的部分骨骼开启物理模拟。不过要正常的打开物理模拟需要为物体指定物理资源。
IK
IK的作用相信玩过相关游戏的童鞋都比较清楚,简单的来说就是用脚来控制大腿的感觉。通过脚、手的位置来逆向的沿着骨架调整动画。其作用是让动画变得更加真实,和骨骼控制相配合即可。需要用到时参照官方的示例即可。
Animation Retargeting
就是将动画共享给其他模型,减少动画制作的成本。主要分为两种形式,一种是在骨骼相同的模型之间使用相同的动画。另一种是通过Rig这个中间件使得骨骼结构不同的模型得以使用共享的动画。Rig的原理类似于对骨骼进行映射,相对的同骨骼架构本身就是可以共享动画的。这个部分相对简单,需要实际应用时参照官方文档操作即可。
Animation Notifications
动画通知可以使得我们在动画播放的某个阶段进行声音的播放、粒子系统的演出或者触发事件接口。

Animation Curves
通过曲线来对变形动画动画的数值进行更改和控制。
AnimMontage
Montage的主要功能是动画的管理和组织,通过将放置于slot中的一个或多个动画在sections中重组,可以让代码更好的对动画播放进行控制。同时Montage还提供了section播放时的分支点功能,分支点的功能和动画通知事件类似,区别之处在于分支点是同步的。因此分支点在时间上将会更加精确,同时也更加消耗系统资源。AnimMontage的一个重要作用之一,就是通过Slot的形式给予了代码层对AnimGraph的动画播放的控制权限。
Root Motion
根骨骼的功能是为会产生移动的动画提供锁定。例如美术资源的动画是包含位移的情况,直接应用这个动画就会导致角色的碰撞检测实体和显示的物体之间的分离。官方的演示图片很直观的展示了这个问题:

Blend Space
动画混合可以将两个或多个动画混合起来,通过调整暴露出来的值来调节混合的程度。例如当速度小于100时播放行走动画,当速度大于300时播放奔跑动画。而在100~300之间则播放行走和奔跑动画的混合。而如果进一步的混合向左、向右和向后的行走和奔跑动画的话,就可以轻松的实现八方向行走动画了
![]()
Additive Animations
UE4可以在动画混合时将动画单独指定给某个骨骼以及其所有的子节点。这样以来就可以实现只给上半身播放特定的动画,而人物可以进行行走、下蹲或者站立不受其影响。其核心的部分是Layered blend per bone结点:

在其属性LayerSetup中进行指定:

就可以实现只将射击动画传递到上半身。详细的实现可参照文档。
Aim Offset
Aim Offset是用来实现多方向瞄准的动画混合。和其他的动画混合一样,需要提供面向各个方向瞄准的动画作为blend的基础。官方的示例中演示了如何从动画中通过删除帧数来生成这些动画的过程。

得到上面那些动画之后,给每一个动画指定Additive Settings为正射的动画即可新建Aim Offset了。

操作模式是blend通用的。
Socket
通过在骨骼上附加Socket,可以使得额外的物体可以附加在骨骼上。


可以在游戏逻辑中通过蓝图进行附加操作,也可以直接在编辑其中进行附加以检测或改变模型的外观。
———————
总体而言,UE4提供的动画工具都是比较直观明了的。主要的概念也就上面总结的这些,有需要具体使用时再详细的参照文档进行实现。操作过两三遍之后应该就能熟练掌握了。
UE4动画功能整理的更多相关文章
- CSS3中的动画功能(一)
css3中的动画功能分为transitions功能和animations功能,这两种功能都可以通过改变css属性值来产生动画效果.今天带大家一起来看看css3动画功能中的transitions的用法. ...
- CSS3基础(2)—— 文字与字体相关样式、盒子类型、背景与边框相关样式、变形处理、动画功能
一. CSS3 文字与字体相关样式 1. 给文字添加阴影 text-shadow: length length length ccolor; 属性适用于文本阴影,指定了水平阴影,垂直阴影,模糊的距离, ...
- css3动画功能介绍
一:过渡动画---Transitions 含义:在css3中,Transitions功能通过将元素的某个属性从一个属性值在指定的时间内平滑过渡到另一个属性值来实现动画功能. Transitions属性 ...
- 不定期更新的IDEA功能整理
目录 不定期更新的IDEA功能整理 idea 命令 Preferences 和 Project Structure Keymap HTTP Proxy Postfix Completion 插件 插件 ...
- (六)Unity5.0新特性------新动画功能
unity 5.0 中的新动画功能 这里是你能够期待的新动画功能高速概述 ! State Machine Behaviours状态机行为 在Unity 5 中,你会能够将StateMachine ...
- Android 项目框架功能整理记录
用来记录自己在项目用到的框架工具等,新人新记录,希望能对你搭建项目有所帮助 常用框架整理 视图绑定注解框架: butterKnife 网络请求框架: OKHttp 图片加载缓存:Gilde 数据格式解 ...
- OpenCASCADE动画功能2
OpenCASCADE动画功能2 eryar@163.com OpenCASCADE是一个开发平台,主要提供三维曲面和实体建模.CAD数据交换及可视化等功能.OCCT最适用于开发三维建模CAD软件.加 ...
- OpenCASCADE动画功能
OpenCASCADE动画功能 eryar@163.com 1.Introduction OpenCASCADE提供了类AIS_Animation等来实现简单的动画功能. 从其类图可以看出,动画功能有 ...
- UE4高级功能--初探超大无缝地图的实现LevelStream
转自:http://blog.csdn.net/u011707076/article/details/44903223 LevelStream 实现超大无缝地图--官方文档学习 The Level S ...
随机推荐
- Gradle 一(Android)
参考一:Gradle 完整指南(Android) 参考二:深入理解Android(一):Gradle详解 参考三:Gradle for Android 第一篇( 从 Gradle 和 AS 开始 ) ...
- 【Java】Serializable 接口
本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/4356840.html 参考资料: http://xiebh.iteye.com/b ...
- 【spark】示例:求极值
我们有这样的数据 1.建立SparkContext读取数据 (1)建立sc (2)通过sc.textFile()读取数据创建Rdd 2.过滤数据 通过filter(line => line.tr ...
- 【Hive】数据类型
1.基本类型 整型:tinyint / samllint / int / bigint 浮点型:float / double / Decimals 布尔型:boolean 字符串:string / v ...
- MongoCola使用教程 1 - MongoDB的基本操作和聚合功能---Mongdb客户端软件操作说明
前言 在开始正文之前,感谢博客园的Nosql爱好者对于MongoCola工具的试用(使用).特别感谢 呆呆 这位朋友的Bug报告,让我纠正了一个很严重的Bug.同时也感谢以前的多个网友在博客留言中给我 ...
- shell编程-数组
#!bin/bash/ A=(a b c hello) echo ${A[*]} echo ${A[@]} ]} ]} ]} ]} ]}echo ${#A[*]} #测数组长度方法1echo ${#A ...
- Java基础学习-代码块
/*代码块: * 用{}修饰的代码 * 1.局部代码块:控制变量,存在方法中,控制变量的生命周期(作用域) * 2.构造代码块:提取构造方法中的共性,每次创建对象,都会执行,并且在构造方法执行之前执行 ...
- SWF文件加密、混淆
简单说下SWF文件的混淆原理,(已经明白的请跳过本段):我们的AS源代码被编译完成后,SWF内部会形成一个字符串映射表,包含源码里出现的所有字符串(类名,包名,成员变量名,常量等).一个数字(相当于地 ...
- [Mvel]Mvel2.0使用指南一 基础
MVEL在很大程度上受到Java语法的启发,作为一个表达式语言,也有一些根本的区别,旨在更高的效率,例如:直接支持集合.数组和字符串匹配等操作以及正则表达式. MVEL用于执行使用Java语法编写的表 ...
- Hibernate之mappedBy【必读】
[http://www.cnblogs.com/redcoatjk/p/4236445.html] 一.mappedBy 单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段 数据库中1 ...