文档章节

【Unity】动画基础

o
 osc_f8mjcido
发布于 2019/02/16 14:55
字数 1480
阅读 20
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

a.常识

b.动画制作的基本流程

c.Animation面板的使用

d.Blend Tree混合树

e.Avatar Mask动画混合

【1】常识

1.通常胶片中使用每秒24或30帧。

【2】创建动画的基本流程

(以开箱子动画为例)

1.打开Window-Animation面板

2.在层级视图中,选中要创建动画的对象,点击Animation面板中的Create按钮,创建对应的Animation文件。

3.,在Dopesheet(关键帧清单)面板中,确定创建关键帧的对象,添加要改变的属性(Property),会得到第0秒的关键帧,然后将关键帧选到最后一秒,点击红色录制按钮,改变属性对应物体的相应位置,改变数据,然后再次点击结束录制。

(例如箱子,关键帧的对象就是箱子的上半部分,录制开始后,改变盖子的Transform组件中的Rotation,将盖子旋转至打开状态,就可以结束录制。)

4.点击面板右下角Curves曲线按钮,可以看到物体参数在动画进行过程中的改变曲线,选择关键帧中的紫红色节点,可以通过曲线的变化对动画进行优化。

5.点击Dopesheet面板,左键选择关键帧区域,可以通过蓝色竖线或者直接点击每条关键帧最上面的节点,调整关键帧的位置。

6.选择关键帧,点击右上角添加事件,弹出面板选择需要添加的方法(物体本身绑定的脚本中有方法才能添加)。

 【3】Animation面板的使用

1.Animator组件

a.Controller:使用的Animator Controller文件。

b.Avatar:使用的骨骼文件。

c.Apply Root Motion:绑定该组件的GameObject的位置是否可以由动画进行改变(如果存在改变位移的动画)。

d.Update Mode:更新模式:Normal表示使用Update进行更新,Animate Physics表示使用FixUpdate进行更新(一般用在和物体有交互的情况下),Unscale Time表示无视timeScale进行更新(一般用在UI动画中)。

e.Culling Mode:剔除模式:Always Animate表示即使摄像机看不见也要进行动画播放的更新,Cull Update Transform表示摄像机看不见时停止动画播放但是位置会继续更新,Cull Completely表示摄像机看不见时停止动画的所有更新。

2.Animator Controller:用于多个动画的修改、整合,完成播放动画的控制。

当你创建了Animation文件后,会自动生成相关的Animator Controller文件。

三个基本状态:

Entry(表示当进入当前状态机时的入口,该状态连接的状态会成为进入状态机后的第一个状态)

Any State(表示任意的状态,其作用是其指向的状态是在任意时刻都可以切换过去的状态,最高的打断优先级,满足条件后立马跳转到any state)

Exit(表示退出当前的状态机,如果有任意状态指向该出口,表示可以从指定状态退出当前的状态机)

黄色状态表示动画开始后运行的第一个状态。

通过在左边parameters参数栏新建参数来设置状态与状态之间的转化关系。

has exit time:一个有关动画过渡的参数。如果需要达成某一项条件后动画立即转化状态,则不勾选此项。此项可看做额外的过渡条件,勾选此项代表需要同时满足自定义设立的条件和该条件才能转化状态,否则循环到下一次再转化。

Transition Offset:动画状态转化时,下一个动画开始播放的位置,比如Transition Offset为0.5,过渡之后会从B的50%处开始播放。

Transition Duration:过渡的时间。应用场景:当A动画完成不宜马上进入B动画时,例如A动作在空中完成后,需要下落到地上再完成B动作,而不是立即开始B动作。

Interruption Source:打断优先级,当几个条件同时满足,优先级最高的状态指向进行。

3.Dopesheet面板(关键帧清单)

可以Ctrl+c/v的方式复制前一个动画片段Animation Clip的关键帧和相关数据.(例如开箱子,关箱子)

4.Curves面板(曲线面板)

F键可以对正选中的中心。

【4】Blend Tree混合树(1D)

实现不同动画状态之间的切换。

以官方例子,移动共有三个状态,原地不动,走路,跑步。

在Animaion Controller中添加Blend Tree然后在混合树中添加三个Motion,依次设定好三个跑动动画。在左边添加一个Float变量控制三个动画的衔接。

【5】Avatar Mask动画混合

主要实现动画与动画之间的切换

在Animaion Controller中添加新的动画层级,在这一层中添加你想实现的动画。然后再Layer的设置中,添加做好的Avatar Mask,通过脚本控制其中Weight的权重,就可以实现动画的之间的切换,比如从移动到攻击等。

AvatarMask中,打开Humanoid,下面的模型的各个部位,绿色表示可以执行动画,红色表示不可以。

AvatarMask中,打开Transform,将美术导入的Avatar文件拖至Use skeleton from,然后点击Import skeleton,unity会自动将模型所有的骨骼给导入进来,在这里勾选我们需要参与动画混合的骨骼,比如我们需要招手,那就只勾选手部的骨骼,这里会自动勾选他的子节点。

其中,

Override,混合后的动画会覆盖之前的动画。

Additive,仅仅是在需要混合的时候,将混合的动画添加进来,原本的动画不会被彻底覆盖。

o
粉丝 1
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
NSSplitView 扩展--DMSplitView

DMSplitView 对标准的 OS X 的 NSSplitView 控件进行改造,可满足更复杂的要求: 子视图的大小和约束 分隔条位置 可收缩伸展的子视图 动画变换效果 可控制分隔条的粗细和样式 可保存和恢复分...

匿名
2013/01/24
371
0
Flash 皮肤样式--Windows8UIStyle

Windows8UIStyle 模仿 Windows 8 的桌面用户界面,使得 FlashSwing 应用程序在 Windows 8 系统中拥有与传统应用程序一致的用户界面。 Windows8UIStyle 对 FlashSwing 默认主题的修改: 提供和...

Gregary
2013/02/19
1.3K
1
StaticDataTableViewController

StaticDataTableViewController 可以使用动画效果显示和隐藏 UITableView 的静态单元 (created in IB, using the option Content : Static cells)...

匿名
2013/03/08
395
0
视图各种动画效果

自定义视图变换的各种动画效果。其中包括:CALayer、UIViewAnimation、CATransition、CABasicAnimation、CAKeyframeAnimation、CAAnimationGroup、CATransform3D各个知识点实现的动画效果,实...

匿名
2013/03/21
1.4K
0
游戏引擎--DarkGDK

Dark游戏开发工具包是一个完整的游戏引擎技术利用最新DirectX 9.0。 微软公司制作的编游戏的链接库工具,专门配合Visual C++ 2008 Express 和 DirextX 9.0 SDK,可以编辑制作3D,2D游戏,制作...

匿名
2013/04/01
2.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据研发学习之路--Hadoop集群搭建

阅读编译文档 准备一个hadoop源码包,我选择的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的源码 包的根目录下有一个文档叫做BUILDING.txt,这其中说明了编译hadoop所需要的一些...

DSJ-shitou
29分钟前
8
0
OSChina 周五乱弹 —— 特么是别的公司派来的特洛伊木马吧?

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《我会守在这里》- 毛不易 《我会守在这里》- 毛不易 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :股市连跪了五天,...

小小编辑
30分钟前
32
2
如何在find中排除目录。命令 - How to exclude a directory in find . command

问题: I'm trying to run a find command for all JavaScript files, but how do I exclude a specific directory? 我正在尝试为所有JavaScript文件运行find命令,但是如何排除特定目录? ......

法国红酒甜
今天
69
0
《Java8实战》笔记(02):通过行为参数传递代码

本文源码 应对不断变化的需求 通过筛选苹果阐述通过行为参数传递代码 初试牛刀:筛选绿苹果 public static List<Apple> filterGreenApples(List<Apple> inventory){List<Apple> result = ......

巨輪
今天
19
0
JeeSite 4 架构特点、安全方面、为什么好、工匠精神、不忘初心

1、底层架构 以 Spring Boot 2 为基础,Maven 多项目依赖,模块分项目,松耦合,方便模块升级、增减模块。 模块化的数据库自动升级程序,当模块升级代码需要更新数据库时,自动执行对应版本 ...

ThinkGem
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部