Unity Learning for Day 14

来源:互联网 发布:淘宝店怎么开 编辑:程序博客网 时间:2024/05/19 00:39

1、帧动画,Tween 动画,骨骼动画等动画的关系及分类是怎样的?
动画有哪几种类型?是如何分类的,关于 IK, FK 和帧动画,骨骼动画,tween动画又有什么关系?

应该说所有动画都是基于关键帧的。帧动画:一张一张的图片,每张图片是一个关键帧。骨骼动画:仿照“真实”的骨骼结构,建立一个节点树,每个节点算是一个骨骼的关节,然后在这些关节上指定关键帧,通过一些计算来生成中间帧。所谓FK和IK,都是计算中间帧节点位置的方法。3D骨骼需要两个步骤,一是rigging(绑骨),就是建立一个骨骼框架,而是skinning(贴皮?),就是把3D模型对应到骨骼框架上。2D骨骼其实是一个比较模糊的概念,可以按照3D这个流程走,进行绑骨和贴皮,但是很多游戏所谓的2D骨骼并没有一个严谨的骨骼结构(通常也没有必要),而是直接在“皮”上做动画。在骨骼基础之上,用一些拉伸变形的非骨骼技巧也是非常常见的。FK(Forward Kinematics,翻译成正向运动?):就是直接指定节点的位置,然后简单的计算中间帧位置。IK(Inverse Kinematics,翻译成反向运用?):正向的指定节点位置太麻烦了,根据一些简单的观察,大家(搞机器人和计算机图形的)发现典型的人体运动是有规律的,关节弯曲的时候会以一个尽量“省力”的方法。IK就是定义一个“省力的标准”,自动生成中间节点的位置。比如一个动画师在调手臂的动画,用FK,他需要分别指定手关节和肘关节两个节点的骨骼位置和方向,用IK,他只需要放置手关节的节点,动画工具会根据算法自动生成肘关节的位置和方向。因为大部分IK的实现是基于经验的简单算法,所以通常会有一些死角和不可用的情况。想准确的计算骨骼中间节点位置需要模拟肌肉和骨骼的biomechanics,在一般的动画软件中做不大,也没多大必要。所谓tween动画,我接触这个名字是在flash里。基本意思就是“补间”,也就是把两个关键帧连起来。通常做法就是线性的计算中间数值(也可以是任何函数变换)。这种简单的线性插值计算可以用在任何参数上,位置,大小,方向,等等等等。FK/IK可以说都在用,仅仅是计算两帧之间的中间值而已。