Unity3D基础论-Animation-Animator-Au

2017-09-10  本文已影响217人  斗魁
动画

Mecanim动画系统:方便的实现人型动画的设置和重用、方便的实现动画剪辑的设置、可视化的动画控制界面、对动画播放的精确控制;

Rig面板:AnimationType动画类型:None 没有动画、Legacy 旧版动画、Generic 新版通用型动画(非人型)、Humanoid 新版人型动画;骨骼创建方式:Create From Model通过模型创建、Copy From Other Avatar拷贝其他骨骼;配置骨骼:必须匹配的骨骼(实线圆圈)、可选匹配的骨骼(虚线圆圈);

Animation面板:Position,Rotation,Scale误差;Clip动画剪辑设置:增加、删除、重命名、设置起始帧、设置结束帧、动画循环Loop Time、姿势循环、循环偏移量、BakeIntoPose烘焙进姿势、BakedUpon烘焙基准、Offset偏移量量、Mirror镜像;

Animator组件:Controller 动画控制器器(动画状态机)、Avatar 骨骼、Apply Root Motion 应用根动作

Animator类:SetFloat/Int/Bool/Trigger:设置动画状态机参数(Float,Int,Bool,Trigger);GetFloat/Int/Bool:获取动画状态机参数(Float,Int,Bool);GetCurrentAnimatorStateInfo:获取当前层动画状态信息、IsName、IsTag;StringToHash(静态方法)将一个字符串转换为哈希ID;

动画层:

动画层设置:Weight权重 该层动画执行的比例、Mask遮罩 该层动画可以控制身体的哪些部分、IK Pass支持IK动画;动画遮罩设置:遮罩设置、IK反向动力学遮罩;

IK动画:

打开IK Pass、IK部位、左手、右手、左脚、右脚、眼镜LookAt

代码实现:

animator.SetIKPositionWeight          animator.SetIKRotationWeight        animator.SetIKPosition        animator.SetIKRotation

动画事件:

1.函数必须是public    2.方法必须是放置在该人物对象身上的脚本组件中   3.参数只能增加一个,且参数类型只能是Float,Int,String,Object之一   4.添加了帧事件,必须要在代码里声明事件方法,否则报错。

Animation  :旧版动画组件,需要手动添加

Animation旧版动画 Animation

添加完组件后到下图设置:

Animation create Add

拉动物体就能修改数值;

Add 循环方式

代码:

调用动画:

获取动画组件 触发播放动画 设置你想要的效果

导入的模型:

动画模型 设置 添加自己设置的动画

Wrap Mode:在这儿修改动画的循环方式

Quaternion:四元数

rotation的类型就是四元数

LookRotation:看向某个物体

Quaternion.LookRotation();

有些模型需要选择新版人型动画:

阿凡达/阿芬达:骨骼 设置 设置动作、事件等

Curves :曲线     Events :事件

Animator:新版动画组件,点击模型就能看到

Animator 控制器 使用控制器 设置控制器 设置控制器 设置控制器 设置控制器 设置控制器 代码控制新版动画

融合数:可以放两个或多个状态

融合数

双击融合数进入新的界面:

设置融合数 设置融合数

使用代码完成融合数里两个动画的切换

遵循迪凯尔坐标系/标准坐标系。

新版人形动画:

设置人形骨骼 设置人形骨骼 设置人形骨骼 设置曲线

动画覆盖:同时做两个动作,跟融合不一样

动画覆盖

可以控制部分区域骨骼做出不同的动作

遮罩 设置遮罩 设置遮罩 设置遮罩

代码控制不同的动作

反向动力学:

Inverse kinematics

一种通过先确定子骨骼的位置,然后反求推导出其所在骨骼链上n级父骨骼位置,从而确定整条骨骼链的方法。

前向动力学系统中,每一个子关节的位置、方向都是由父关节所支配的。在电脑动画软件的发展初期,关节动画都是正向链接系统,它的特点是软件开发容易,最致命的弱点便是工作效率太低。

前向动力学正好相反,反向动力学是依据某些子关节的最终位置、角度,来反求出整个骨架的形态。它的特点是工作效率高,大大减少了需要手动控制的关节数目,缺点是求解方程组需要耗费较多的计算机资源,在关节数增多的时候尤其明显。                                    

拓展:Audio Source-声音组件

声音:发声组件 AudioSource ; 声音选项:2D声音 没有位置概念,在哪都能听到;3D声音有位置概念,只有距离声音较近地方才能听到。

声音文件: AudioClip;

发声方式:

当前对象挂载了了AudioSource组件,并且AudioSource中有声音片段,执行播放方法。通常用于单个声音片段播放

不不需要挂载AudioSource组件,直接通过静态方法在某一位置播放某一声音片段通常用于多个声音片段播放

原理:新建一个空对象,挂载AudioSource组件,添加指定声音片段,播放之后,自动销毁。

缺点:耗CPU调度,耗内存。

静态方法:PlayClipAtPoint(AudioClip,Vector3)

Invoke:

功能:隔一段时间之后,执行一个方法

参数:方法名称(String)  时间间隔(float)

Audio Source

音乐组件翻译

END

上一篇下一篇

猜你喜欢

热点阅读