文档章节

3.Blend Tree(混合树 融合树?)

扶殊88
 扶殊88
发布于 2015/07/21 14:45
字数 1436
阅读 25
收藏 0
有时你需要混合播放2个或多个动画
比如你有向左,向前,向右奔跑的动画
但你想要得到稍微向左,向前或向右跑的动画

另外一个常见的例子是:你有行走和奔跑的动画
但你想让角色以这个动画之间的速度移动
Blend Tree可以实现这些功能

创建Blend Tree的方法是 邮件点击 “Animator"视窗的空白处
选择Create State ->From New Blend Tree

状态的"Motion"选项变成了"Blend Tree"而不是之前的单一动画
双击状态可以对"Blend Tree"进行编辑

左上角的导航提示我们正在编辑Blend Tree 
左上角的导航提示我们正在编辑"Blend Tree"
点击 "Base Layer"可以退出"Blend Tree"编辑模式

选中"Blend Tree"后 可以在"Inspector"中看到它的属性
首先你注意到"Blend Tree"有名称属性
Blend Tree的名称可以于状态的名称不通
下一个属性是Blend Type

我们先来讲"1D Blend Tree"
一会儿再讲解其他"2D Blend Tree"

"1D Blend Tree"通过单一单参数控制动画的播放
对于之前提到的向左-向右奔跑的例子 它的参数可能是方向或角速度

对于行走-奔跑的例子 它的参数可以是速度

下面是 "Motion"列表
点击这里的"+"按钮 可以添加"Motion"
点击后会提示"Add Motion Field"或"New Blend Tree"选项
选择New Blend Tree会嵌套另一个"Blend Tree"让你可以根据更多的参数来混合动画
但是如果你需要这样做的话 使用"2D Blend Tree"会更方便
所以我们只讲解"Add Motion FIeld"选项
每个Motion栏都代表一个动画
你可以直接拖入动画文件 或是通过后面的圆圈按钮选择文件
或是通过后面的圆圈按钮选择文件
每个"Motion"栏有3个属性
"Threshold"是参数的阀值 表示这个动画混合比例
举个例子 比如你有行走和奔跑的动画 
它们的"Threshold"分别为5和10
如果你把速度参数设为10 那么"Blend Tree"只会播放奔跑的动画
如果速度设为7.5 那么行走和奔跑动画会以50/50的比例混合播放

下一个属性是Time Scale"表示动画播放的速率
它跟状态中的Speed参数作用相同
最后一个选项决定动画的左右是否对调(动画镜像)

添加一个"Motion"后 会在Motion在列表上面显示蓝色交叉样式的图表
这张图在标尺上显示每个"Motion"的"Threshold"值
最小值在左边,最大值在右边
你可以通过图表中的红色进度条,预览动画混合的过程
如果你像要改变"Motion"的顺序,可以拖拽它的最左侧
在"Motion"列表下面还有一些属性,帮助你调整"Motion"的属性
通常先把所有需要的"Motion"和对应的动画都添加后再进行设置
如果勾选了"Automate Thresholds"选项
那么所有的Threshold"值将变更为固定的,无法进行修改
如果不勾选它,那我们就可以使用下面2个属性Compute Thresholds 、Adjust Time Scale
Compute Thresholds 会计算每个"Motion"的Threshold
它会根据你选择的Root Motion的属性进行计算
这些属性包括速度,速度X,速度Y,速度Z,角速度(弧度) 角速度(角度)
由于Blend Tree的Threshold"通常会根据这些Root Motion的属性而定
所以这几个属性也经常作为动画参数使用
使用Adjust Time Scale可以让每个动画以均匀速度播放
也就是说每个动画的播放速度都与"Root Motion"的播放速度相同

2D Blend Tree与 1D Blend Tree非常类似
但会根据2个参数来混合播放动画 而不是一个参数
这里有3中类型的2D Blend Tree
其中的2个是根据方向的 它们是2D Simple Directional 和2D Freeform Directional
它在参数不表示方向时使用

 
2D Simple Directional 在移动动画根据方向参数进行混合时使用
并且要每个方向都有动画,比如有向前走,向后走,向左走等等

2D Freefrom Directional"与它类似 但它不能在同一个方向中包含多个动画
但它不能在一个方向中包含多个动画
比如向前走和向前跑

2D Freefrom Cartesian在参数不表示方向时使用比如速度和角速度

这3个2D Blend Tree的工作方式相同
当你选择好类型后,要指定表示X轴和Y轴的参数

对于Direciton类型 X轴参数可能是速度X
Y轴参数可能是速度Z

对于Freeform Cartesian类型,可选择的更多

当你制定好参数  下一步要添加"Motion"
跟1D Blend Tree一样,可以添加另一个Blend Tree或Motion
与1D Blend Tree不同的是"Motion"的添加顺序不受限制
当你添加好"Motion"后 这张图表会根据每个"Motion"的"Threshold"显示它们的位置
这还是与"1D Blend Tree相同 但因为图标是基于"X/Y Threshold" 两个值的 所以图表是2D的
可以在图表中通过拖拽调整每个"Motion"的位置
或直接给"Threshold"赋值
这与1D  Blend Tree中的Compute Thresholds的选项功能相同
但它是根据两个参数计算的

1D Blend Tree使用红色进度条预览动画
而2D Blend Tree通过拖拽红点的位置来预览动画

© 著作权归作者所有

上一篇: lua_call的使用
扶殊88
粉丝 28
博文 154
码字总数 35546
作品 0
浦东
程序员
私信 提问
Unity3D之Mecanim动画系统学习笔记(九):Blend Tree(混合树)

认识Blend Tree 我们在Animator Controller中除了可以创建一个State外还可以创建一个Blend Tree,如下: 那么我们看下新创建的Blend Tree和State有什么区别: 唯一的区别就是Montion指向的类...

bobo553443
2018/04/04
0
0
[概念辨析 系列 之四] 树的概念

刚做老师的时候,在考试、面试等场合发现大家对计算机科学中"树"的概念理解地非常不好,各种逻辑混乱的答案频繁出现。当时还不太理解,过了一段时间之后,对这个问题有了更全面的认识。"树"...

黄宇
2017/02/09
0
0
vim插件--nerdtree.vim

Nerd tree可以让你浏览文件系统并打开文件或目录。你可以通过键盘或鼠标控制它以树状图显示文件系统,也可以在其中进行一些简单的文件系统操作。 nerdtree 提供如下功能及特性: *以继承树的...

匿名
2011/05/17
9K
0
DART-Dropouts Multiple Additive Regression Trees

一句话简述: (将dropouts思想引入MART中,在每棵树的迭代过程中不再单单去拟合前一棵树的残差,而是从前面已有的树中sample一部分树,ensemble一个新model,然后去拟合这部分的残差,从而使...

tantexian
2018/08/21
0
0
iMatrix平台中组织结构树标签acsTags:tree用法

1 组织结构树标签(acsTags:tree) 1.1 引入js <script type="text/javascript" src="${resourcesCtx}/widgets/ jstree/jquery.jstree.js"></script> 1.2 用法 1.2.1 开发系统中添加以下资源;......

iMatrix
2014/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rsync工具常用选项以及同步的两种方式

rsync -av /etc/passwd /tmp/1.txt #rsync的本机传输写法 rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt #rsync的远程传输rsync格式rsync [OPTION] … SRC ......

林怡丰
今天
3
0
GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238 (Address already in use) 官方文档虽然有相同的问题,但是对我的问题没起作用…… 后面发现自己手贱...

wenzhizhong
昨天
3
0
REST接口

文章来源 https://zhuanlan.zhihu.com/p/28674721?group_id=886181549958119424 http://www.ruanyifeng.com/blog/2014/05/restful_api.html REST 对请求的约定 REST 用来规范应用如何在 HTTP......

Airship
昨天
5
0
Spring Cloud Config 统一配置中心

Spring Cloud Config 统一配置中心 一、统一配置中心 统一管理配置 通常,我们会使用配置文件来管理应用的配置。如一个 Spring Boot 的应用,可以将配置信息放在 application.yml 文件中,如...

非摩尔根
昨天
6
0
android ------ AAPT2 error: check logs for details解决方法

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录...

切切歆语
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部