动画编辑(四)——Any State
作者:追风剑情 发布于:2017-5-13 21:01 分类:Unity3d
Any State所指向的转换只要满足条件就会立即转换,而不管当前处于什么状态。
例如
只要isState2为true就会立即转到State2状态,而不管当前是处于State1还是其他任何状态。
Has Exit Time: 如果不勾上,就不会自动转到下一个状态。
Transition Duration: 这个时间会使动画提前过渡到下一个状态,这会导致状态最后设置的动画事件不会被触发。所以动画事件要设置在开始过渡之前。
Interruption Source:
None: 当动画处于过度状态时,无法打断。
Current State: 当发生A->A2时,只有A->A1和A->A3可以打断A->A2,其他转换则不能打断。
Next State: 当发生A->A2时,只有A2->B1和A2->B2可以打断A->A2,其他转换则不能打断。
Current State Then Next State: 当打断发生时,先考虑当前状态,再考虑下一个状态。
Next State Then Current State: 当打断发生时,先考虑下一个状态,再考虑当前状态。
Orered Interruption: 勾上之后,只能是高优先级的转换打断低优先级的转换。
例如:当正在发生A->A2时,如果Ordered Interruption=True且Interruption Source=Current State,A->A1可以打断A->A2,A->A3不能打断A->A2。如果Ordered Interruption=False且Interruption Source=Current State,则A->A1和A->A3都可打断A->A2。
注意:当发生打断时,状态机会从当前过度点直接向下一个状态转换,不会发生动画跳帧,过度更平滑。
这里需要去掉Can Transition To Self后面的勾,避免不停的自己转到自己造成动画不停抖动。
Trigger: 发生一次转换后会被自动重置为false。
//频繁切换状态时,需要先重置上一个状态,否则有可能无法切换到下一个状态,导致动画没能按预期播放 m_Animator.ResetTrigger("pre_state");
m_Animator.SetTrigger("next_state");
Mute: 勾上之后,会禁止转换到此状态。
Solo:勾上之后,允许转换到此状态。
Mute与Solo同时勾上等效于只勾选上Mute
利用多个层同时播放不同的动画剪辑(即,叠加播放),例如:一边跑一边射箭
同时播放Base Layer与Layer2的动画,利用Weight设置播放权重。
Blending(混合)
Additive: 叠加,不同层的动画同时播放,Weight只影响当前层的播放权重。当Weight=1时,两个层的当前状态动画完全播放。
Override: 融合,不同层的动画同时播放,Weight会影响Source层的播放比例。当Weight=1时,Source Layer的动画将不会播放。
Sync: 将Base Layer的状态逻辑同步到Layer2层,Timing=true表示当Base Layer与Layer2层播放同一个状态时采用Layer2状态的动画时长。需要为Layer2层的状态重新指定Motion。如图
IK Pass: 启用反向动力学。可在 Mecanim 中用于已正确配置的任何人形Avatar骨骼。要为角色设置 IK,通常要在场景周围放置与角色互动的对象,然后通过脚本(尤其是,诸如 SetIKPositionWeight、 SetIKRotationWeight、 SetIKPosition、 SetIKRotation、 SetLookAtPosition、 bodyPosition、 bodyRotation之类的 Animator 函数)来设置 IK。
官方文档: https://docs.unity3d.com/cn/2019.4/Manual/InverseKinematics.html
Mirror: 镜像。勾上之后,左右反向。例如:原来是用左手打招呼,现在会变成用右手打招呼。
Multiplier为Motion播放速度的乘法因子,需绑定一个浮点参数。
Write Defaults: 每个动画都由许多动画曲线组成,两个动画之间的过渡,就是曲线插值。例如,动画A过渡到动画B,A中有一条动画曲线Z,但B中没有Z。勾选上此属性,动画B就使用动画A播放前的Z值作为默认值,过渡过程中正常插值。未勾选此属性,动画B会继承动画A播放后修改过的Z值,过渡过程中不对Z进行插值。
//参见 https://blog.csdn.net/rickshaozhiheng/article/details/77838379 https://www.cnblogs.com/Esfog/p/Unity_WriteDefaults.html //让动画在隐藏之前停留在默认动作的第1帧 //注意:需要在状态Inspector中勾上Write Defaults animator.Crossfade("DefaultPose", 0f); //过渡到默认状态 animator.Update(0f); //让默认状态播放一下 go.SetActive(false); //隐藏动画对象
判断当前正在播放的状态
//获取第0层的动画状态信息 AnimatorStateInfo info = animator.GetCurrentAnimatorStateInfo(0); //判断当前播放的动画是否为Run if (Animator.StringToHash("Base Layer.Run") == info.fullPathHash) //if (info.IsName("Run")) { }
创建一个新的Avatar Mask
Assets/Create/Avatar Mask
为状态添加行为脚本
可以为状态添加继承StateMachineBehaviour的脚本代码
设置哪些部位不受动画影响(红色部位不播放动画)
查看模型轴点、质量重心
Curves(动画曲线)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public Animator animator; void Update() { if (animator == null) return; float WalkCurve = animator.GetFloat("WalkCurve"); Debug.Log("WalkCurve="+ WalkCurve); } }
导入的模型成在的问题都会显示在Import Message
根运动(Root Montion)
Root Transform参数决定动画对根节点的影响。选中Bake Into Pose后,此项将不会对根节点产生影响。loop match为绿色,表示动画的最后一帧与第一帧是相同的,即首尾衔接,如行走动画。官方文档 RootMotion
注意:Animator.gravityWeight 通过 Bake Into Pose 位置 Y 驱动。启用时,如果 disabled = 0,则 gravityWeight = 1。在状态之间过渡时会为剪辑混合 gravityWeight。
标签: Unity3d
日历
最新文章
随机文章
热门文章
分类
存档
- 2024年11月(3)
- 2024年10月(5)
- 2024年9月(3)
- 2024年8月(3)
- 2024年7月(11)
- 2024年6月(3)
- 2024年5月(9)
- 2024年4月(10)
- 2024年3月(11)
- 2024年2月(24)
- 2024年1月(12)
- 2023年12月(3)
- 2023年11月(9)
- 2023年10月(7)
- 2023年9月(2)
- 2023年8月(7)
- 2023年7月(9)
- 2023年6月(6)
- 2023年5月(7)
- 2023年4月(11)
- 2023年3月(6)
- 2023年2月(11)
- 2023年1月(8)
- 2022年12月(2)
- 2022年11月(4)
- 2022年10月(10)
- 2022年9月(2)
- 2022年8月(13)
- 2022年7月(7)
- 2022年6月(11)
- 2022年5月(18)
- 2022年4月(29)
- 2022年3月(5)
- 2022年2月(6)
- 2022年1月(8)
- 2021年12月(5)
- 2021年11月(3)
- 2021年10月(4)
- 2021年9月(9)
- 2021年8月(14)
- 2021年7月(8)
- 2021年6月(5)
- 2021年5月(2)
- 2021年4月(3)
- 2021年3月(7)
- 2021年2月(2)
- 2021年1月(8)
- 2020年12月(7)
- 2020年11月(2)
- 2020年10月(6)
- 2020年9月(9)
- 2020年8月(10)
- 2020年7月(9)
- 2020年6月(18)
- 2020年5月(4)
- 2020年4月(25)
- 2020年3月(38)
- 2020年1月(21)
- 2019年12月(13)
- 2019年11月(29)
- 2019年10月(44)
- 2019年9月(17)
- 2019年8月(18)
- 2019年7月(25)
- 2019年6月(25)
- 2019年5月(17)
- 2019年4月(10)
- 2019年3月(36)
- 2019年2月(35)
- 2019年1月(28)
- 2018年12月(30)
- 2018年11月(22)
- 2018年10月(4)
- 2018年9月(7)
- 2018年8月(13)
- 2018年7月(13)
- 2018年6月(6)
- 2018年5月(5)
- 2018年4月(13)
- 2018年3月(5)
- 2018年2月(3)
- 2018年1月(8)
- 2017年12月(35)
- 2017年11月(17)
- 2017年10月(16)
- 2017年9月(17)
- 2017年8月(20)
- 2017年7月(34)
- 2017年6月(17)
- 2017年5月(15)
- 2017年4月(32)
- 2017年3月(8)
- 2017年2月(2)
- 2017年1月(5)
- 2016年12月(14)
- 2016年11月(26)
- 2016年10月(12)
- 2016年9月(25)
- 2016年8月(32)
- 2016年7月(14)
- 2016年6月(21)
- 2016年5月(17)
- 2016年4月(13)
- 2016年3月(8)
- 2016年2月(8)
- 2016年1月(18)
- 2015年12月(13)
- 2015年11月(15)
- 2015年10月(12)
- 2015年9月(18)
- 2015年8月(21)
- 2015年7月(35)
- 2015年6月(13)
- 2015年5月(9)
- 2015年4月(4)
- 2015年3月(5)
- 2015年2月(4)
- 2015年1月(13)
- 2014年12月(7)
- 2014年11月(5)
- 2014年10月(4)
- 2014年9月(8)
- 2014年8月(16)
- 2014年7月(26)
- 2014年6月(22)
- 2014年5月(28)
- 2014年4月(15)
友情链接
- Unity官网
- Unity圣典
- Unity在线手册
- Unity中文手册(圣典)
- Unity官方中文论坛
- Unity游戏蛮牛用户文档
- Unity下载存档
- Unity引擎源码下载
- Unity服务
- Unity Ads
- wiki.unity3d
- Visual Studio Code官网
- SenseAR开发文档
- MSDN
- C# 参考
- C# 编程指南
- .NET Framework类库
- .NET 文档
- .NET 开发
- WPF官方文档
- uLua
- xLua
- SharpZipLib
- Protobuf-net
- Protobuf.js
- OpenSSL
- OPEN CASCADE
- JSON
- MessagePack
- C在线工具
- 游戏蛮牛
- GreenVPN
- 聚合数据
- 热云
- 融云
- 腾讯云
- 腾讯开放平台
- 腾讯游戏服务
- 腾讯游戏开发者平台
- 腾讯课堂
- 微信开放平台
- 腾讯实时音视频
- 腾讯即时通信IM
- 微信公众平台技术文档
- 白鹭引擎官网
- 白鹭引擎开放平台
- 白鹭引擎开发文档
- FairyGUI编辑器
- PureMVC-TypeScript
- 讯飞开放平台
- 亲加通讯云
- Cygwin
- Mono开发者联盟
- Scut游戏服务器引擎
- KBEngine游戏服务器引擎
- Photon游戏服务器引擎
- 码云
- SharpSvn
- 腾讯bugly
- 4399原创平台
- 开源中国
- Firebase
- Firebase-Admob-Unity
- google-services-unity
- Firebase SDK for Unity
- Google-Firebase-SDK
- AppsFlyer SDK
- android-repository
- CQASO
- Facebook开发者平台
- gradle下载
- GradleBuildTool下载
- Android Developers
- Google中国开发者
- AndroidDevTools
- Android社区
- Android开发工具
- Google Play Games Services
- Google商店
- Google APIs for Android
- 金钱豹VPN
- TouchSense SDK
- MakeHuman
- Online RSA Key Converter
- Windows UWP应用
- Visual Studio For Unity
- Open CASCADE Technology
- 慕课网
- 阿里云服务器ECS
- 在线免费文字转语音系统
- AI Studio
- 网云穿
- 百度网盘开放平台
- 迅捷画图
- 菜鸟工具
- [CSDN] 程序员研修院
- 华为人脸识别
- 百度AR导航导览SDK
- 海康威视官网
- 海康开放平台
- 海康SDK下载
- git download
交流QQ群
-
Flash游戏设计: 86184192
Unity游戏设计: 171855449
游戏设计订阅号