Unity 2D Animation 介绍 & FAQ(持续更新)

原创 2013年12月01日 21:35:09

今天带来的主题是 Animation,在 Unity2D 中加入了 Sprite,并支持了 Mecanim 的 Sprite 动画,不过目前不支持 Legacy Animation,另外 Sprite Animation 也不支持蒙皮骨骼动画。

由于 Sprite Animation 中新加了 Dope Sheet 形式的 编辑,Sprite Animation 可以分为两类:简单的帧动画,每帧用一个 Sprite;带多个节点的“关节”动画(与骨骼动画相比,缺少了蒙皮)。

接下来介绍一下制作 Sprite Animation 的一般流程:

1. 首先需要制作 Sprite,这部分就不具体介绍了,过程很简单。一般我们都把一个动画所需要的 Sprite 拼在一个 Texture 中,这对渲染效率意义重大。

2.a 如果是制作简单的帧动画,直接将所有帧的 Sprite 选中,拖入 Scene View 就会自动生成对应的 GameObject,并绑定 Animator 组件,以及创建对应的 AnimationClip。
2.b 如果是节点动画,那么首先为每一个 Sprite 创建一个 GameObject,然后需要手动搭建起 Sprite 间的父子节点关系。之后会得到一个树状的节点分布。打开 AnimationView 后点击根节点,便可以为它添加 AnimationClip,并自动绑定 Animator 组件。




3.  在 Animation View 可以编辑动画,并在 Scene View 中预览动画。





FAQ 部分


对于 Sprite 来说,physics 2D 没有 z 的概念,z 值仅仅影响深度;

Physics 中不同 layer 间的交互关系在 Editor-> Project Settings 中;

目前不支持 Physics 2D 与 ParticleSystem 的碰撞;

粒子系统渲染的深度可以用的 sortingLayer 和 Order in Layer  来控制,从而保持与 Sprite 的正确遮挡;

Polygon Collider 编辑: 按住 shift 后,鼠标可以拖动现有的顶点,或者在边缘上添加新的顶点;按住 control 后,鼠标可以通过点击来删除现有顶点;

CharacterController 只支持 3D, 2D 角色的移动用 Physics-based 方式(rigidBody.Addforce, rigidBody.velocity),不过新版本应该会出现 CharacterController2D;

Sprite 默认使用 Sprite-Default Shader 可以手动修改 Sprite-Diffuse,从而可以接受光照的影响;

Physics 2D 与Physics 3D 不能交互,因为从底层来说,用的引擎就不同 (Box2D / PhysX) 


Animation(Legacy Animation组件)

这是逻辑动画组件,在引进Unity的当前动画系统之前,被用来添加到游戏物体。 这个组件仅仅为了向后兼容而保留。请为新工程使用Animator组件。 Properties ...
  • liulangdejianxin
  • liulangdejianxin
  • 2015年10月23日 14:00
  • 365

Physx Unity3D同步模拟

对于同步,碰撞等效果需要引入物理引擎进行模拟的。就涉及到服务器和客户端同时模拟同步的问题。经过一定时间的测试,已经能够在客户端使用Unity3D 3.4.2服务器使用Phyxs 2.8.1的情况下,实...
  • heartrude
  • heartrude
  • 2012年09月17日 10:33
  • 4037

「Unity2D」使用Unity创建一个2D游戏系列-3

创建玩家和敌人 在上一章节里,我们添加了一个背景以及场景小道具。现在是时候添加一些有用的游戏元素了,比如玩家之类的。 创建玩家 创建一个玩家可控实体需要一些元素:sprite, 控制...
  • s556699
  • s556699
  • 2017年02月15日 22:44
  • 1607

PhysX入门教程(全)

一、安装 在国际上出名的物理引擎有Havok,Vortex,ODE,Novodex,Takamak等等其中ode是一个免费开源的物理引 擎,而Novodex就是PhysX的前身被Ageia收购之后改...
  • pizi0475
  • pizi0475
  • 2010年03月08日 17:04
  • 6225

unity3d 使用GL 方式画线

这个是画线部分 private Vector3[] linePoints; public int m_LineCount; public int m_PointUsed; ...
  • pizi0475
  • pizi0475
  • 2016年08月30日 18:13
  • 1166

Learning Unity Physics by K Aava Rani

  • 2015年11月18日 10:32
  • 3.89MB
  • 下载
收藏助手
不良信息举报
您举报文章:Unity 2D Animation 介绍 & FAQ(持续更新)
举报原因:
原因补充:

(最多只允许输入30个字)