【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可以获得编 ...
随机推荐
- 修改Keil uvison4 字体样式
1.点击扳手配置 2.点击Colors & Fonts,选择其中的8051:Editor C Files,选择Text,点击右侧的Courier New... 3.在里面就可以调节字体了
- Laravel - except() 函数
/** * 用户添加 * @param 接收的表单数据 (name,password,id) * @return 返回添加是否成功 */ ...
- [转帖]警惕Oracle数据库性能“隐形杀手”——Direct Path Read
一. 简介 Oracle 的11g版本正式发布到今天已经10年有余,最新版本也已经到了20c,但是Direct Path Read(直接路径读)导致性能问题的案例仍时有发生,很多12c的用户还是经常遇 ...
- vue3自定义指令(防抖指令)与vue3与vue2指令的对比
定义指令的变化 根据vue3文档的描述 https://v3.cn.vuejs.org/guide/migration/introduction.html#%E6%B8%B2%E6%9F%93%E5% ...
- elementui中自定义Select选择器样式自定义
<el-select class="my-el-select" v-model="tenantCont" placeholder="请输入机构标 ...
- # 继续前行github star突破8k即时通讯IM开源项目OpenIM版本发布计划
项目简介 OpenIM继续领跑开源IM领域,在广大开发者的支持下,目前github star突破8k.在数据泄露.信息外泄.隐私滥用的时代,IM私有化部署需求旺盛.其中,政企协同办公对IM需求猛增,随 ...
- Windows 核心编程笔记 [2] 字符串
1. ANSI 和 Unicode Windows 中涉及字符串的函数有两个版本 1)ANSI版本的函数会把字符串转换为Unicode形式,再从内部调用函数的Unicode版本 2)Unicode版本 ...
- Unity2019及Unity2020打包android的环境配置
2019安卓打包只有gradle模式了,因为谷歌把adt删了 unity2019可以自定义gradle模板,国内请把repo地址改成阿里云的源 unity2019打apk配置 引擎版本:unity20 ...
- 从零开始配置vim(24)——自动补全
neovim 自带的代码补全的效果并不好,而且它分为好多类,如果需要人为的去判断使用路径补全.使用当前buffer中的单词补全.亦或者使用include 来进行补全,那样使用起来就很不方便了.针对代码 ...
- python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}
相关文章和数据源: Python自动化办公--Pandas玩转Excel[一] Python自动化办公--Pandas玩转Excel数据分析[二] Python自动化办公--Pandas玩转Excel ...