【Unity3D】动画混合
1 简介
2D动画、人体模型及动画、人物跟随鼠标位置中介绍了 Aniamtion、Animator、人体模型、人体骨骼、人体动画等基础知识及人体动画的应用,本文将进一步介绍动画混合。
实现动画混合有混合树(Blend Tree)和动画图层(Layers)两种方式:
- 混合树:将多个动画片段以位置、速度、角速度为依据经行线性混合;
- 动画图层:每一个动画图层只对动画主体的部分进行控制,其他部分通过遮罩屏蔽,如:边走边喊动画可以划分为 2 个图层,一个图层控制步行动画,一个图层控制喊叫动画。
动画混合的作用主要有:
- 可以生成新的动画;
- 可以通过调整混合动画的参数,实现控制多个动画播放。
2 通过混合树实现动画混合
1)创建混合树
在 Animator 窗口的空白处右键,依次选择【Create State→From New Blend Tree】创建混合树,选中 Blend Tree,在 Inspector 窗口可以重命名。

补充:选中 Blend Tree 后右键,再依次选择【Create State→From New Blend Tree】,可以为 Blend Tree 再添加子混合树。
2)添加动画片段
双击 Blend Tree,再选中 Blend Tree,进入 Blend Tree 配置页面,按以下步骤添加动画片段:

3)设置混合类型
点击 Blend Type 下拉菜单,选择混合类型,如下:

- 1D:1 维混合,混合参数只有一个;
- 2D Simple Directional:2 维混合,所有被混合的动画方向不一致;
- 2D Freeform Directional:2维混合,需要一个没有方向的动画(如:站立 idle 动画);
- 2D Freeform Cartesian:2维混合,对方向不做要求;
- Direct:用户直接控制每个节点的权重。
4)配置阈值计算参数
动画阈值是指从一个动画切换到下一个动画的中间值,这个中间值怎么计算?有什么依据?Unity3D 提供了以下 6 种计算阈值的参数,如:当采用 Speed 作为计算阈值的参数,会根据动画 Speed 对动画进行划分,再使用模糊数学的理论进行线性混合。

5)2D混合
按以下步骤创建 2D 混合。2D 混合需要通过 2 个参数混合。

3 通过动画图层实现动画混合
本节将通过一个 “边走变喊” 的案例讲解通过动画图层实现动画混合。边走边喊动画可以划分为 2 个图层,一个图层控制步行动画,一个图层控制喊叫动画(抬左臂到嘴边呼喊)。
1)创建动画图层

2)创建骨骼遮罩
在 Assets 窗口右键,依次选择【Create→Avatar Mask】创建骨骼遮罩,并重命名为 ShoutMask,单击 ShoutMask 文件,配置遮罩如下:

3)绑定骨骼遮罩
按以下步骤将骨骼遮罩 ShoutMask 添加到 Shout Layer 中。

声明:本文转自【Unity3D】动画混合
【Unity3D】动画混合的更多相关文章
- unity3d 动画卡帧 动画合成 动画层次
2013-02-26 16:22 2059人阅读 评论(0) 收藏 举报 unity3d 中动画的添加 http://unity3d.com/support/documentation/Manua ...
- Unity3d动画脚本 Animation Scripting(深入了解游戏引擎中的动画处理原理)
也许这一篇文章的内容有点枯燥,但我要说的是如果你想深入的了解游戏引擎是如何处理动画片断或者素材并 让玩家操控的角色动起来栩栩如生,那么这真是一篇好文章(当然我仅仅是翻译了一下) 动画脚本 Anim ...
- 关于Unity中Mecanim动画的重定向与动画混合
应用 一个RPG游戏,里面有100种怪物,每种怪物其实都差不多的,行走,跳跃,攻击,难道动画师要调100次动画吗?其实不需要 Unity抽象出人形动画系统,用Unity简化版的骨骼来进行统一的管理,只 ...
- AndroidUI 视图动画-混合动画效果 (AnimationSet)/动画效果监听
在前面介绍了几种动画效果:透明动画效果(AlphsAnimation).移动动画效果(TranslateAnimation).旋转动画效果(RotateAnimation).缩放动画效果(ScaleA ...
- BleedTree动画混合树[Unity]
Unity在中土大陆的大肆推广能从广泛的中文翻译资料中看出.所以,手册才是王道. 游戏动画中的一个常见任务是在两个或更多相似运动之间混合.最佳的已知示例可能是根据角色速度混合行走和奔跑动画.另一个示例 ...
- BleedTree动画混合树
通过Unity动画状态机,能帮我们轻松处理转换各个动画片断,达到想要的效果,但是如果仅仅是一个个动画的硬生生的切换,那么看起来就非常突然,而不真实了,在质量要求比较高的游戏中,特别是动作游戏,我们就不 ...
- Unity3d 动画转换中断
翻译自https://blogs.unity3d.com/2016/07/13/wait-ive-changed-my-mind-state-machine-transition-interrupti ...
- Unity3D 动画回调方法
最近发现很多coder.在用Unity开发游戏的时候都需要一个需求就是..动画播到某一帧就要干什么事情.而且希望能得到回调. 在unity里面的window菜单有个.Animation工具.打开它.然 ...
- Unity3D 动画状态简单控制核心代码
状态机是这样的 包含静止.跑.攻击.死亡四个动画 下面是核心代码(PS:代码高亮插件出问题了,将就看一下吧..) AnimatorStateInfo stateInfo = m_ani.GetCurr ...
- Unity3D动画面板编辑器状态属性对照表
不推荐用AnimationUtility.SetEditorCurve问题很多,推荐AnimationCurve.AddKey.通过AnimationUtility.GetAllCurves可以获得编 ...
随机推荐
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.14)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- [转帖]OS、PFS、DFS 有啥区别?一文搞懂 6 大临床试验终点
https://oncol.dxy.cn/article/670607 说到肿瘤临床研究,就不得不说临床试验终点(End Point),比如大家熟知的 OS.PFS.ORR 还有 DFS.TTP.TT ...
- [转帖]Nginx中absolute_redirect、port_in_redirect配置简述
一.背景: 我们在访问nginx代理下的项目前端页面时,经常会有访问链接最末尾带不带'/'的问题,当我们访问http://xxxx/home时,如果匹配不到location,会自动加上端口port以及 ...
- [转帖]Difference between localhost and 127.0.0.1?
https://www.tutorialspoint.com/difference-between-localhost-and-127-0-0-1#:~:text=The%20most%20signi ...
- [转帖]jmeter学习笔记(二十二)——监听器插件之jp@gc系列
一.jp@gc - Actiive Threads Over Time 不同时间活动用户数量展示 下面是一个阶梯加压测试的图标 二.jp@gc - Transactions per Second ...
- [转帖]sqlserver on linux vs windows
简单对比下sqlserver on windows与linux的特点,发现新的继续添加 对比项 sqlserver on windows sqlserver on Linux 备注 费用 需要wind ...
- [转帖]浅谈Redis大Key与热Key
https://www.cnblogs.com/jelly12345/p/16424080.html 如何定义大 Key 和 热 Key 如何定义大 Key 如何定义热 Key 大 Key 和 热 K ...
- [转帖]iptables命令详解和举例(完整版)
1.防火墙概述 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底 ...
- Java单元测试浅析(JUnit+Mockito)
作者:京东物流 秦彪 1. 什么是单元测试 (1)单元测试环节: 测试过程按照阶段划分分为:单元测试.集成测试.系统测试.验收测试等.相关含义如下: 1) 单元测试: 针对计算机程序模块进 ...
- Lectures
Copy and Paste 3(P9523) Problem Solution 转移方程中的"父问题枚举子问题寻找转移"可以转成"子问题寻找父问题主动转移"处 ...