3d打印
焦卫峰

1
2
3
4
5
6

新建目录

发布时间:2020-08-22 20:41   发布人:焦卫峰   浏览次数:401

1. Animation编辑器

Unity提供了Animation编辑器,可以编辑物理动画。例如场景中背景有一个来回摇动的秋千,它不会与其他游戏对象交互,这时可以使用Animation编辑器来完成。

选中要加动画的游戏物体,Window/Animation,打开Animation窗口,可以录制关键帧动画。Ctrl 6(添加Animator组件,这时候在animation窗口中制作的动画不是legacy动画,不能单独把动画挂到animation中,除非打开debug模式,将animationclip改成legacy)

选中游戏对象,添加Animation组件。用ctrl 6打开(不添加Animator组件,是传统动画,legacy模式)

2.录制关键帧动画

点击录制按钮,添加属性Add Property,然后添加关键帧,修改属性下对应的值,点击播放预览

Animation界面设置

Samples   采样,可以修改速度(如果不显示,右上角点击三个点的按钮)

Create new Clip... 创建新的动画片段

Curves     曲线

Add Key  添加关键帧

Delete Keys  删除键

Clamped  Auto  限制自动

Auto    自动

Free  Smooth  自由平滑

Flat    平坦的

Broken 折断

Tangent  切线

 

滚轮缩放

快捷键:

A F

 

注意:

按下录制按钮时,在场景中调节位置等参数,会自动记录到关键帧;否则需要在animation窗口中调节数值。

3. Animation Event

什么时候需要给动画添加事件?

当我们需要在某个动画执行过程中触发某个方法的时候,可以采用为动画添加事件的方式实现。

例:

攻击动画,触发一个特效

添加事件,然后编辑事件,为编辑动画的对象添加脚本,选择脚本中对应的方法

4. Animation组件

Animation  当前播放动画

Animations  动画片段集合,把所有要控制的动画放入到该集合中

Play Automatically  运行自动播放

Animate Physics 选此项后,角色动画可以与unity的物理引擎进行交互。尤其在更新函数中,可以使动画正常播放。

Culling Type  控制角色在场景中的显示方式,一种是AlwaysAnimate,此项是角色总会有动画,角色不在摄像机范围内,角色的动画仍会进行;另一种是BaseOnRenderers,当角色不在摄像机范围时,角色仅会播放自身带有的rootMotion,而身体中的其他动画就不会播放了。

6. 动画切换

Wrap Mode 循环模式

Default  默认

Once     一次

Loop    循环

Ping   pong  往返循环

Calmp  Forever   限制动画在最后一帧

 

例:

长按W键播放动画1,松开W键时播放动画0(注意导入Lux动画时要选择legacy动画,同时注意打开环境光照亮场景)

Animation ani = GetComponet<Animation>();

Ani.Play(“Animation组件中集合Animations里的名字”);

7.常用方法

IsPlaying 是否正在播放某个动画

Play  播放动画

PlayQueued  顺序播放,在前一个动画播放完成后播放该动画(wrap mode应该为once)

CrossFade  在一定时间内淡入名称为name的动画并且淡出其他动画(比较常用)

CrossFadeQueued  在前一个动画播放完成之后淡入淡出下一个动画。

 

动画倒播:

ani.Play(“xx”);

ani[“xx”].time = ani[“xx”].length

ani[“xx”].speed = -1;