Unity动画系统基础_macanim-程序员宅基地

技术标签: Animator  Unity  Humanoid  Macanim  动画系统  

Unity动画系统基础

##1Mecanim动画系统

++++1Macanim功能强大的动画系统

++++2、方便的实现人型动画的设置和重用

++++3、方便的实现动画剪辑的设置

++++4、可视化的动画控制界面

++++5、对动画播放的精确控制


++++1Mecanim工作流程

++++2、动画类型

++++3、人型动画设置

++++4、设置Avator

++++5、设置动画剪辑

++++6Animator组件

++++7Animator控制器啊

++1.1Mecanim工作流程

++++1、资源导入,这一阶段由美术师或动画师通过三维工具来完成。

++++2、角色的建立,主要分为以下两种方式。

--第一种:人形角色的建立,Mecanim通过扩展的图形操作界面和动画重定向功能,为人物模型提供了一种特殊的工作流,它包括Avator的创建和对肌肉定义(Musicle Definitions)的调节。

--第二种:一般角色的建立,一般为运动物体和四足动物而设定,动画重定向对此不适用。

++++3、角色的运动,包括设定动画片段以及其相互间的交互作用,也包括建立状态机和混合树、调整动画参数以及通过代码控制动画等。

++1.2、动画类型

++++动画类型分为四种:

--None :无任何动画

--Legacy :旧版Animation动画

--Generic :一般动画(非人形动画)

--Humanoid :人形动画


++1.3、人型动画设置

++++1、选择骨骼创建方式

++++2、配置骨骼Avatar

++++3、检测骨骼是否匹配


++1.4、设置Avatar

++++1、必须匹配的骨骼(实心圆圈)

++++2、可选匹配的骨骼(虚心圆圈)

++++3、选择配置部位

++++4、选择具体骨骼

++++5、完成匹配


++++AvatarMecanim系统中极为重要的模块,因此为模型资源正确的设置Avatar也至关重要,不管Avatar自动创建过程是否成功,用户都需要进入【Configure ... Avatar】界面中确认Avatar的有效性,即确认用户提供的骨骼结构与Mecanim系统预定义的骨骼结构是否正确的关联起来,并且模型处于T形姿态。


++++Mecanim使用肌肉(Muscle)来限制不同骨骼的运动范围,一旦Avatar配置完成,Mecanim就能解析其骨骼结构,进而用户就可以在Muscles选项卡中调节相关参数。在此可非常容易的调节角色的运动范围,确保看起来真实自然。

++++用户可以在视图上方使用预先定义的变形方法对几根骨骼同时进行调整,也可在视图下方对身体上单根骨骼进行调整。


++1.5、设置动画剪辑

++++1、选择动画选择卡

++++2、导入动画

++++3、动画压缩,可以进行关键帧压缩

++++4、用来设置动画曲线的精确程度

++++5、模型中所包含的动画剪辑

++++6、可以增加或者删除动画剪辑


++++7、动画剪辑起始帧和结束帧

++++8、动画循环

++++9、镜像

++++10、根动作设置:包括旋转、Y轴水平位置和XZ平面位置

--Bake Into Pose :烘焙进姿态

--loop match :当需要让一个动作重复时,后面的圆点颜色就代表重复质量。

  ---绿色表示该动画的第一帧和最后一帧角色的姿态相似,黄色次之,红色质量最差。

--Based Upon :定根动作的参考点。

--Offset :偏移量用来设置指定根动作,在运动时的偏移量。


++1.6Animator组件

++++控制器: 添加在角色身上的Animator控制器用来设置角色身上的行为,包括状态机、融合树和通过脚本控制的事件。

++++Avatar :当前角色的Avatar系统。

++++应用根动作: 使用角色自身动画的运动属性移动角色位置,还是使用脚本来实现。

++++更新模式:

--1Update更新;

--2、基于物理更新;

--3、能够不依赖Time.timeScale更新动画系统。

++++剔除模式: 动画的剔除模式。


++1.7Animator控制器

++++1、创建动画控制器: 在Project视图中点击Create,然后选择Animator Controller

++++2、重命名后,双击创建的 Animator Controller可以打开Animator视图。

++++3、只需要把动画剪辑拖入Animator视图即可。

--第一个加入的动画会设为默认状态,如果需要更改默认状态,需要在状态上单击右键选择设为默认。


##2State Machine状态机

++2.1、状态机

++++将动画加入状态机后,我们需要实现动画间的过渡。


++++动画间的过渡需要使用状态机和状态参数实现,目前支持的参数类型有4种。


++2.2、设置动画状态

++++1、状态名

++++2Tag:状态标签

++++3Speed:动画默认速度

++++4Motion:动作对应的动画剪辑

++++5Foot IK:脚部动画约束

++++6Mirror:镜像动画

++++7Transitions:从这个状态产生的动画过渡


++2.3、设置过渡条件

++++1Has Exit Time:勾选时,过渡不可被中断

++++2Settings:状态切换融合设置

++++3Conditions:设置过渡条件


++2.4Animator

++++常用方法

--SetFloat/GetFloat :设置/获取float类型参数的值。

--SetTrigger :设置一次触发。

--GetCurrentAnimatorStateInfo :获取某一层的状态机信息。

--IsInTransition :判断是否在执行动画过渡。

--StringToHash :返回状态机所代表的Hash值。


++2.5、使用代码控制状态机

++++首先,需要得到状态参数的散列表IDAnimator组件。

--获取状态参数的散列表ID

int speedFloat = Animator.stringToHash(“Speed”);

int deadBool = Animator.stringToHash(“Dead”);

++++然后,通过SetXxxxx函数改变状态参数的值

--改变Float类型状态参数的值:

animator.SetFloat(speedFloat, 2.0f);

--改变Bool类型状态参数的值:

animator.SetFloat(deadBool, true);


##3BlendTree融合树

++3.1BlendTree融合树

++++融合树的功能是将两个或多个相似的动作进行融合。

++++将走路和奔跑动画融合在一起。

++3.2、动画融合

++++使用一个参数控制融合状态。


++++动画融合

--双击融合树后进入融合树界面;

--融合树名字;

--Blend Type :融合类型;

  ---1D ,使用一个参数进行融合;

  ---2D简单定向, 所有动作都是不同方向时使用的简单融合。

  ---2D自由定向, 也用于混合朝向不同的动作,但它有一个原点动作。

  ---2D自由笛卡尔坐标, 可以在XY轴使用不同的定义,自由定义动作。

--Parameter :参数

--动作示意区

--Motion :动画剪辑

--Thresl :临界值

--时间缩放

--镜像

--添加删除

--Automate Thresholds :自动设置临界值

--Adjust Time Scale :调整时间缩放




#立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++立钻哥哥推荐的拓展学习链接(Link_Url

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++++Unity引擎基础https://blog.csdn.net/vrunsoftyanlz/article/details/78881685

++++Unity面向组件开发https://blog.csdn.net/vrunsoftyanlz/article/details/78881752

++++Unity物理系统https://blog.csdn.net/vrunsoftyanlz/article/details/78881879

++++Unity2D平台开发https://blog.csdn.net/vrunsoftyanlz/article/details/78882034

++++UGUI基础https://blog.csdn.net/vrunsoftyanlz/article/details/78884693

++++UGUI进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78884882

++++UGUI综合https://blog.csdn.net/vrunsoftyanlz/article/details/78885013

++++Unity动画系统基础https://blog.csdn.net/vrunsoftyanlz/article/details/78886068

++++Unity动画系统进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78886198

++++Navigation导航系统https://blog.csdn.net/vrunsoftyanlz/article/details/78886281

++++Unity特效渲染https://blog.csdn.net/vrunsoftyanlz/article/details/78886403

++++Unity数据存储https://blog.csdn.net/vrunsoftyanlz/article/details/79251273

++++Unity中Sqlite数据库https://blog.csdn.net/vrunsoftyanlz/article/details/79254162

++++WWW类和协程https://blog.csdn.net/vrunsoftyanlz/article/details/79254559

++++Unity网络https://blog.csdn.net/vrunsoftyanlz/article/details/79254902

++++C#事件https://blog.csdn.net/vrunsoftyanlz/article/details/78631267

++++C#委托https://blog.csdn.net/vrunsoftyanlz/article/details/78631183

++++C#集合https://blog.csdn.net/vrunsoftyanlz/article/details/78631175

++++C#泛型https://blog.csdn.net/vrunsoftyanlz/article/details/78631141

++++C#接口https://blog.csdn.net/vrunsoftyanlz/article/details/78631122

++++C#静态类https://blog.csdn.net/vrunsoftyanlz/article/details/78630979

++++C#中System.String类https://blog.csdn.net/vrunsoftyanlz/article/details/78630945

++++C#数据类型https://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity3D默认的快捷键https://blog.csdn.net/vrunsoftyanlz/article/details/78630838

++++游戏相关缩写https://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++设计模式简单整理https://blog.csdn.net/vrunsoftyanlz/article/details/79839641

++++U3D小项目参考https://blog.csdn.net/vrunsoftyanlz/article/details/80141811

++++UML类图https://blog.csdn.net/vrunsoftyanlz/article/details/80289461

++++Unity知识点0001https://blog.csdn.net/vrunsoftyanlz/article/details/80302012

++++U3D_Shader编程(第一篇:快速入门篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372071

++++U3D_Shader编程(第二篇:基础夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372628

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/


--_--VRunSoft : lovezuanzuan--_--

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/VRunSoftYanlz/article/details/78886068

智能推荐

如何用java开发一个网站?_java开发网站-程序员宅基地

文章浏览阅读1w次,点赞25次,收藏196次。问题:如何用java开发一个网站?下载了最新的JDK软件、最新的Eclipse、数据库mysql以及tomcat、struts但是不知道怎么连接起来,在数据库连接的时候mysql-connector-java-5.1.44中没有Driver.jar,tomcat配置环境的时候也有问题,tomcat plugin没有和最新的JDK配套的怎么办?看了问题,我建议题主还是好好先学一轮基础的东西。基于问题我简单提几点:Eclipse是开发工具,最新的没问题。JDK其实不需要用最新,现在市面上大多数还是JDK_java开发网站

HDU 3605 Escape(最大流+状态压缩)_acm3605题答案csdn-程序员宅基地

文章浏览阅读338次。题意:现有n个人要移居到m个星球去,给定一个n*m的矩阵,第 i 行第 j 列如果为1,表示第 i 个人可以去第 j 个星球,如果为0,表示不可以去。然后给出这m个星球都最多分别能住多少人,问你n个人是不是都能找到星球住? (1 思路:看到这个n的范围我震惊了...然后不知道怎么做了... 明显的最大流问题,不过n数目太大,直接做肯定超时. 留意到m最多有10个,所_acm3605题答案csdn

Debug调试_r语言0如何进入debug模式-程序员宅基地

文章浏览阅读174次。一.Debug调试先设置断点--》Debug 试图和java试图交换最右边两个,如果debug试图不出现的话可以选择最左边的让他加进去Step over是下一步 红方框是可以停止二.快捷键_r语言0如何进入debug模式

mac谷歌浏览器怎么登陆账户_在 Mac 上的 Safari 浏览器中自动填充用户名和密码...-程序员宅基地

文章浏览阅读1.4k次。在 Mac 上的 Safari 浏览器中自动填充用户名和密码借助“自动填充”,您可以轻松填充先前存储的用户名和密码。您还可以在网站上设置密码时创建强密码。已输入信息的栏以黄色高亮显示。填充用户名和密码在 Mac 上的 Safari 浏览器应用 中,执行以下一项操作:如果您先前储存了网站的用户名和密码,请使用“自动填充”输入信息并登录。点按用户名栏,然后选取您的用户名(或使用触控栏)。如果您的 Ma..._mac下webdrive启动chrome自带账号和密码

gif透明背景动画_用“万彩动画大师”点亮你的微课-程序员宅基地

文章浏览阅读893次。由于万彩动画大师更新速度非常快,首次使用请自行到官网下载软件并进行安装哦。网址:http://www.animiz.cn。(最新版的“语音合成”功能已经要收费使用,幸好存有老版本)(请注意32位和64位的区别) 安装程序执行完毕,万彩动画大师已经成功安装到您的电脑,现在您可以开始制作专属的多媒体动画视频、动画宣传片!万彩动画大师界面介绍快速简单的操作体验万彩视频制作大师界..._万彩动画大师画布透明

AWS EC2 安装 Docker 并修改其启动端口号_sudo usermod -a -g docker ec2-user-程序员宅基地

文章浏览阅读1.9k次。一、安装最新的 Docker Community Edition 程序包:sudo yum install -y docker二、启动 Docker 服务:sudo service docker start三、将 ec2-user 添加到 docker 组,以便您能够执行 Docker 命令,而无需使用 sudo:sudo usermod -a -G docker ec2-user四、可以使用命令验证时候安装成功docker -v五、修改Docker端口号:vim /usr/li_sudo usermod -a -g docker ec2-user

随便推点

Python多进程Pool与Process区别,以及用Process实现Pool--part1_python pool 和process 区别-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏8次。Python多进程Pool与Process主要区别(1)Process需要自己管理进程,起一个Process就是起一个新进程;(2)Pool是进程池,它可以开启固定数量的进程,然后将任务放到一个池子里,系统来调度多进程执行池子里的任务;Python中多进程主要是通过multiprocessing实现的,通过私有函数all查看,需带双下划线;import multiprocessing..._python pool 和process 区别

Spark MLlib分布式机器学习源码分析:决策树算法_sparkmlib 训练决策树模型-程序员宅基地

文章浏览阅读1k次。Spark是一个极为优秀的大数据框架,在大数据批处理上基本无人能敌,流处理上也有一席之地,机器学习则是当前正火热AI人工智能的驱动引擎,在大数据场景下如何发挥AI技术成为优秀的大数据挖掘工程师必备技能。本文结合机器学习思想与Spark框架代码结构来实现分布式机器学习过程,希望与大家一起学习进步~目录1.决策树理论2.Spark实例3.源码分析 本文采用的..._sparkmlib 训练决策树模型

获取元素到页面可视区域底部的距离_js获取元素距离底部的距离-程序员宅基地

文章浏览阅读5.3k次,点赞2次,收藏13次。1. 思路分析当前可视区域的高度 - (元素到文档顶部的距离 - 滚动条滚动的距离)- 元素自身的高度2. 实现JS:window.innerHeight - (dom.offsetTop - window.pageYOffset) - dom.offsetHeightdom是当前要获取的元素jquery:$(window).height() - (dom.offset().top - $(document).scrollTop()) - dom.height()dom是当前要获取_js获取元素距离底部的距离

计算机网络技术基础知识-程序员宅基地

文章浏览阅读1w次,点赞31次,收藏214次。一、 计算机网络的概念:利用通信设备和线路将地理位置不同的,功能独立的多个计算机系统互连来,以功能完善的网络软件(即网络通信协议,信息交换方式和网络操作系统等)实现网络资源共享和信息传递的系统。 1、 计算机网络的功能:通信功能 、资源共享 、高可靠性、提供分布处理环境 、集中管理与处理、负载分担与均衡 、跨越时间和空间的障碍 2、计算机网络的应用:办公自动化 、远程教育 、工业过程控制 、金融电子..._计算机网络技术基础知识

RecyclerView列表控件的使用_recyclerview item-程序员宅基地

文章浏览阅读234次。RecyclerView循环视图,可实现各种增强型列表,包括线性列表布局,普通网格布局,瀑布流网格布局等,并对循环视图进行动态更新操作。_recyclerview item

Android中的ALERTDIALOG使用_优就业-程序员宅基地

文章浏览阅读237次。IT优就业 2016-11-23 14:01在Android开发(http://www.ujiuye.com/zt/android/)中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式。下面我们模拟卸载应用程序时弹出的最为普通的警告对话框,如下图:

推荐文章

热门文章

相关标签