【unity知识】Animator动画状态的基本属性介绍

news2024/11/14 22:05:10

文章目录

  • 动画状态的基本属性
    • 1、标签Tag
    • 2、Motion 该状态所管理的动画片段
    • 3、speed 动画的播放速度
    • 4、Motion Time 播放动画片段定在一个特定时间点
    • 5、Mirror镜像动画
    • 6、CycleOffset动画偏移
    • 7、FootIK
    • 8、Write Defaults
  • 参考
  • 完结

动画状态的基本属性

在这里插入图片描述

1、标签Tag

通过打标签我们可以给不同的动画状态进行分类以便于我们的管理

//获取状态机
var animator =GetComponent<Animator>();
//获取状态机的当前状态,参数为层级序号,0表示BaseLayer
AnimatorStateInfo stateInfo=animator.GetCurrentAnimatorStateInfo(0);
//也可以这样写,注意这个stateInfo每一帧都在更新
AnimatorStateInfo stateInfo=animator.GetCurrentAnimatorStateInfo(
	animator.GEtLayerINdex("Base Layer"));
//判断当前状态机的状态的tag是否是tagName
bool flag =stateInfo.IsTag("tagName");

2、Motion 该状态所管理的动画片段

如果这个状态是由混合数BlendTree建立的话,那么这里放的就是它所管理的那颗混合树

3、speed 动画的播放速度

1是正常速度,超过1就是加速,小于1就是减速,如果是负值就是倒放

这个Speed属性是不可以通过脚本更改的,如果我们需要修改游戏中的动画播放速度的话,就需要集合下面这个属性Multiplier,动画的实际播放速度将会是Speed与Multiplier的乘积,我们需要选择一个关联Multiplier的浮点的新变量

如图只需要我们在脚本里更改animSpeed的大小就可以更改动画播放的速度
在这里插入图片描述

//设置动画的播放速度
animator.SetFloat("animSpeed",1);
int speedHash=Animator.StringToHash("animSpeed");
//这行代码与第一行效果一致
animator.SetFloat(speedHash,1);

4、Motion Time 播放动画片段定在一个特定时间点

它也需要关联一个float参数,新建一个变量Process

如果我们给Process的值为0.5,那么这个状态就会一直播放在它所管理的那个动画片段的最中间的那一帧,并且定在那一帧就不动了。如果为0那么状态机就会播放这个动画片段的第一帧也定在那里不动
在这里插入图片描述

5、Mirror镜像动画

只对人形动画有用
在这里插入图片描述

6、CycleOffset动画偏移

比如0.5就是从动画中间开始播放

7、FootIK

它是一种使用了IK的动画校正机制,比如当我们把骨骼系统转化为肌肉系统之后,人形角色的双手和双脚的位置会出现一定的偏移,unity为了解决这个问题,提前为我们保存了骨骼系统下手和脚的正确位置,并把这些位置放置在了四个IK Goal上,把我们脚部的实际位置向这里的IK Goal的位置拉近一点

我们把它勾上看一下
在这里插入图片描述
这里有两点需要注意
首先,Foot IK只是略微的调整脚部的位置,它可以在一定程度上改善脚部动画的不自然,但是不一定能够满足高质量的动画需求。
其次,我们调整IK Goall的位置并不会更改Foot IK的效果,Foot IK所参照的其实并不是这个IK Goalf的本体,而是这个IK Goal当前的或者说初始的位置

8、Write Defaults

从A到B动画的过渡,如果B的动画曲线不包含Scale属性,如果没有勾选WriteDefault,会集成A动画的Scale属性
在这里插入图片描述
如图A动画将cube的scale修改为(3,3,1),如果B状态的属性没有勾选WriteDefault,那么cube在执行B动画时会以scale为(3,3,1)的数值做平移动画,也就是说会继承A播放完成时的动画属性,注意仅限B动画没有Scale变化的动画曲线。如果勾选了WriteDefault,那么cube在执行B动画时scale是(1,1,1),不会继承前动画属性,而是使用一个默认值

那么Unity是在什么时候设置的这个默认值呢,是在Animator组件调用OnEnable方法时,获取Cube的Scale作为默认值,也就是说Cube的enable属性被反复勾选时,Animator会多次读取cube的状态作为默认值。

这可能就会出现一个问题,如果cube在scale为(2,2,2)时setActive(false),然后setActive(true)后,scale的默认值会变成(2,2,2),下次在播放b动画时,会以(2,2,2)的属性做平移(B勾选了WriteDefault的前提)

所以如果动画出现莫名其妙的bug,试试查看是不是WriteDefault导致的。

参考

https://www.bilibili.com/video/BV1vF411v7Z8/

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NIO笔记04-网络编程

文章目录 1 非阻塞 vs 阻塞 ★★★阻塞非阻塞多路复用 2 Selector创建绑定 Channel 事件监听 Channel 事件&#x1f4a1; select 何时不阻塞 3 处理 accept 事件&#x1f4a1; 事件发生后能否不处理 4 处理 read 事件处理添加区分事件类型&#xff0c;客户端发送数据时会报空指…

基于TCP的web端服务器数据库查询商品

背景描述 该系统为创建网络并发服务器&#xff0c;搭建HTML网络页面框架&#xff0c;通过HTTP超文本网络传输与用户建立连接&#xff08;TCP建立连接&#xff09;&#xff0c;从自己建立的数据库中查询用户所需信息&#xff0c;使用户能在网页中直接查询相关内容。本系统包括…

Elasticsearch设置密码报错:ERROR: X-Pack Security is disabled by configuration.

elasticsearch@6ef6c3f5ee45:~$ bin/elasticsearch-setup-passwords auto Unexpected response code [405] from calling GET http://172.17.0.2:9200/_security/_authenticate?pretty It doesn’t look like the X-Pack security feature is enabled on this Elasticsearch n…

Meshy-4:AI驱动3D建模的革命性工具,解锁虚拟创作新高度

Meshy发布了最新的AI驱动3D建模工具——Meshy-4&#xff0c;这是虚拟环境创作领域的一大进步。对设计师和开发者来说&#xff0c;Meshy-4的出现不仅是技术上的飞跃&#xff0c;更是创作效率的极大提升。 Meshy-4的亮点与功能 1. 更清晰、更专业的AI生成3D模型&#xff1a; Mes…

沉浸式体验:ARM 工控机携手 HT for Web 打造智能建筑监控

工业领域技术的进步不断推动着生产和管理方式的革新。随着物联网、大数据、云计算等技术的发展&#xff0c;工业自动化和信息化融合的趋势日益明显。在这样的背景下&#xff0c;HT for Web 和 ARM 工业计算机成为了工业智能化道路上的重要工具。 HT for Web 是一款基于WebGL的高…

2024国赛数学建模备赛|30种常用的算法模型之最优算法,线性规划

1.最优化理论基础 1.1 最优化问题的数学模型 通俗地说&#xff0c;所谓最优化问题&#xff0c;就是求一个多元函数在某个给定集合上的极 值. 几乎所有类型的最优化问题都可以用下面的数学模型来描述: 这里&#xff0c;&#x1d43e; 是某个给定的集合 (称为可行集或可行域)&a…

ffmpeg 视频编码及基本知识

理论 H264编码原理&#xff08;简略&#xff09; 1. 视频为什么需要进行编码压缩 降低视频数据大小&#xff0c;方便存储和传输 2. 为什么压缩的原始数据采用YUV格式 彩色图像的格式是 RGB 的&#xff0c;但RGB 三个颜色是有相关性的。 采用YUV格式&#xff0c;利用人对图像的…

LoRa芯片在RX时产生的中断顺序QA

目录 1 前言2 问题集锦及解答2.1 radio芯片在接包时&#xff0c;preamble、header和Rx done三个中断产生顺序是怎么样的&#xff1f;谁先谁后&#xff1f;2.2 产生了Header error中断后&#xff0c;radio芯片会继续接收本包还是立马丢弃本包&#xff1f;2.3 产生了CRC error中断…

语言中的类型转换

编程语言中必然有很多情况需要转换类型。比如引入const的概念就为了提高安全性&#xff0c;编译器提前检查&#xff0c;避免一些意外修改。当然&#xff0c;有时&#xff0c;我们希望手动转换一个变量的类型&#xff0c;让其变成常量&#xff0c;可以利用编译器提供的cast方法。…

保隆科技半年报:净利同比下滑近两成,ADAS/空悬业务仍亏损

2024年上半年&#xff0c;在全球产业链调整、局部战争仍未平息等事件长期影响下&#xff0c;叠加主要经济体货币政策调整、债务风险上升等周期性因素&#xff0c;全球经济复苏面临较大不确定性&#xff0c;汽车市场尚处在缓慢恢复阶段。 这也导致不少汽车零部件上市公司的半年报…

SQL语言的规则和规范

规则 是什么呢&#xff0c;规则就是我们最基本&#xff0c;每时每刻都要遵守的比如人行道靠右&#xff0c;不能逆行&#xff0c; 规范 呢就是锦上添花&#xff0c;如果你不这么做&#xff0c;是不那么道德&#xff0c;不那么好的&#xff0c;就像小学生见到老师要问好&#…

SAP HCM 如何追踪Z表的日志修改记录

导读 INTRODUCTION 日志记录&#xff1a;这几天遇到一个问题&#xff0c;就是查谁修改Z表的数据&#xff0c;因为HCM系统大部分都是信息类型&#xff0c;信息类型修改是有专门一套的处理机制&#xff0c;那么Z开头的表是不是也有追踪的一套机制。今天我们分析下如何开启Z表追…

新生自我介绍ppt怎么做?用这款在线PPT软件一键自动生成!

新学期伊始&#xff0c;初一新生除了适应新的学习环境&#xff0c;还要制作新生自我介绍ppt&#xff0c;让同学们更好地相互了解彼此&#xff0c;自我介绍成为了一项重要的流程。制作一份精美的自我介绍PPT&#xff0c;无疑能够让你在新班级中脱颖而出&#xff0c;给同学们留下…

Mysql之存储引擎概述

文章目录 存储引擎MySQL体系结构存储引擎特点InnoDBMyISAMMemory总结 存储引擎选择 存储引擎 MySQL体系结构 连接层&#xff1a;最上层是一些客户端和链接服务&#xff0c;主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所…

基于python学生信息成绩的管理系统设计与实现,很详细!

需求分析 1.1数据操纵 &#xff08;1&#xff09;录入并保存学生的基本信息及选课信息&#xff08;如学号、姓名、性别、专业、课程名称、课程成绩&#xff09;&#xff1b; &#xff08;2&#xff09;可以对已经保存的学生基本信息及选课信息进行修改&#xff1b; &#x…

字符串(4题)

目录 1.最长公共前缀 2.最长回文串 3.二进制求和 4.字符串相乘 1.最长公共前缀 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:string longestCommonPrefix(vector<string>& strs) {string ret;int cur 0;while(1){if(strs[0].size() cu…

YOLOv8改进 | 模块缝合 | C2f 融合REPVGGOREPA提升检测性能【详细步骤 完整代码】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

记一种常用的实时数据同步方案:Canal+Kafka+Flume

记一种常用的实时数据同步方案&#xff1a;CanalKafkaFlume 在当今数据驱动的业务环境中&#xff0c;数据同步是确保系统间数据一致性的关键环节。一种高效、稳定且可扩展的数据同步方案对于支撑企业的数据处理和分析需求至关重要。本文将介绍一种结合了Canal、Kafka和Flume的…

【unity游戏开发】Blender导出到Unity,带texture

【背景】 上一篇完成了将Mixamo的动画应用到blender的fbx模型中。但是默认配置导出fbx又导入Unity后发现Texture都没了(mesh和rig都在)。如何将Texture也一并导入呢? 【要点】 Blender导出后的FBX展开Mesh的名称不是文件名称,而是同Blender中的Mesh名称。可以根据这一点…