分享

关于帧动画,Tween 动画,骨骼动画等动画的关系及分类是怎样的? |

 pgl147258 2014-07-25

【AvatarYe的回答(26票)】:

这里面混杂着好几种不同性质,无法类比的概念。一个一个说。

首先“帧动画”应该是指的是逐帧动画,也就是动画的每一帧都独立地保存在媒体内,连续播放这些帧即形成了连续动态。一般常见于GIF动画。广义上来说,所有的视频都属于这个范畴。

“Tween动画”是一个比较特殊的叫法。我估计可能是受到了Flash的影响。Tween其实是In-between的简写,指的是计算机自动插值补全关键帧Keyframe之间的动画。补全的动画既可以是动态Motion也可以是变形Morph。所以Tween其实只是一个补全的过程,更加合理的称呼应该是关键帧动画。

逐帧动画和关键帧动画才是相对应的两个概念。在实际制作的过程中,由于成本的原因,很少有人逐帧制作了,但也有例外,可以查一下Rotoscoping,不展开了。即使传统手绘动画制作的过程中也是“原画”和“动画”两组人马分开进行——前者相当于Keyframing,后者Tweening。

“骨骼动画”并不是一种动画制作形式,而是一种制作手段。目前的动画物体,特别是有机体,其构成和变形非常复杂,比方说一个由成千上万个点构成的3D角色。尽管动画本质上是这些点在空间内做位移构成的,但直接驱动这些点非人力能为。因此我们把运动简化成骨骼来代表,并把点一一映射到骨骼上。构成骨骼的过程叫Rigging,把点映射到骨骼上的过程叫蒙皮Skinning。目前技术所限,Rigging和Skinning的过程基本上都是手工为主。专业的生产流程中由专人负责。

骨骼蒙皮完成后,采取何种形式动画,那就是你的自由了。

反向动力学IK和正向动力学FK是一对骨骼系统特有的概念,指的是两种相反的骨骼层级控制方式。举个典型的例子,在上臂——前臂——手的层级上进行动画,利用IK我们可以直接动画手,前臂和上臂会自动调整成合理的角度,这是因为通过逆向动力学,我们可以计算出上臂和前臂骨骼应有的角度。如果没有IK,而是使用FK,子物体是无法影响父物体。如果想让手抬起来的话,就要先抬一点上臂,再抬一点前臂,最后调整手。这种显然反直觉的动画方式是效率非常低的。

总结一下,“逐帧动画”和“关键帧动画”是动画制作形式。“骨骼动画”是动画制作手段,而IK和FK则是基于骨骼系统的两种相对的控制方式。

【一张钞票的回答(7票)】:

应该说所有动画都是基于关键帧的。

帧动画:一张一张的图片,每张图片是一个关键帧。

骨骼动画:仿照“真实”的骨骼结构,建立一个节点树,每个节点算是一个骨骼的关节,然后在这些关节上指定关键帧,通过一些计算来生成中间帧。所谓FK和IK,都是计算中间帧节点位置的方法。3D骨骼需要两个步骤,一是rigging(绑骨),就是建立一个骨骼框架,而是skinning(贴皮?),就是把3D模型对应到骨骼框架上。2D骨骼其实是一个比较模糊的概念,可以按照3D这个流程走,进行绑骨和贴皮,但是很多游戏所谓的2D骨骼并没有一个严谨的骨骼结构(通常也没有必要),而是直接在“皮”上做动画。在骨骼基础之上,用一些拉伸变形的非骨骼技巧也是非常常见的。

FK(Forward Kinematics,翻译成正向运动?):就是直接指定节点的位置,然后简单的计算中间帧位置。

IK(Inverse Kinematics,翻译成反向运用?):正向的指定节点位置太麻烦了,根据一些简单的观察,大家(搞机器人和计算机图形的)发现典型的人体运动是有规律的,关节弯曲的时候会以一个尽量“省力”的方法。IK就是定义一个“省力的标准”,自动生成中间节点的位置。比如一个动画师在调手臂的动画,用FK,他需要分别指定手关节和肘关节两个节点的骨骼位置和方向,用IK,他只需要放置手关节的节点,动画工具会根据算法自动生成肘关节的位置和方向。因为大部分IK的实现是基于经验的简单算法,所以通常会有一些死角和不可用的情况。想准确的计算骨骼中间节点位置需要模拟肌肉和骨骼的biomechanics,在一般的动画软件中做不大,也没多大必要。

所谓tween动画,我接触这个名字是在flash里。基本意思就是“补间”,也就是把两个关键帧连起来。通常做法就是线性的计算中间数值(也可以是任何函数变换)。这种简单的线性插值计算可以用在任何参数上,位置,大小,方向,等等等等。FK/IK可以说都在用,仅仅是计算两帧之间的中间值而已。

【chenchen的回答(0票)】:

因为接触移动端比较多,所以讲下在移动端使用到的情况.

帧动画和补间动画(tween)

帧动画

逐帧动画是一种常见的动画形式(Frame By Frame),其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。 因为逐帧动画的帧序列内容不一样,不但给制作增加了负担而且最终输出的文件量也很大,但它的优势也很明显:逐帧动画具有非常大的灵活性,几乎可以表现任何想表现的内容,而它类似与电影的播放模式,很适合于表演细腻的动画。例如:人物或动物急剧转身、 头发及衣服的飘动、走路、说话以及精致的3D效果等等。

比如我们看的动漫,都是一张一张画出来,效果细腻,想象空间大

在移动端的实现中,都是事先准备好一些需要循环的图片,通过线程去循环播放。

这就涉及到了一个问题,资源。

补间动画

补间动画则是通过在两个关键帧之间补充渐变的动画效果来实现的。在程序的实现中,可以选择性的添加透明度(alpha),位移(translate),旋转(rotate)等animation来实现效果。

相对于帧动画来说,补间动画占用资源少,调用方便。

嗯,暂时想到了这些,想到了会继续补充。

抛砖引玉之用。

【老蔡的回答(0票)】:

IK, FK是关节运动解算的两种方式,IK是通过控制子关节来带动父关节的运动;FK是正向动力学,通过父关节来影响子关节,就好比手办玩具。IK/FK都是通过控制单一关节的位移来计算整条关节连中各关节在一定结构下的运动角度,是一种很方便的控制方法,是动画的工具,仅此而已。

帧动画

所有的动画都可以称之为帧动画,没有帧就没有动画这个概念,甚至就连影像这个概念都不会有。

骨骼动画

动画制作中使用到骨骼工具就算是用骨骼制作的帧动画,简称骨骼动画。

tween动画

tween就是补间,所谓补间就是根据前后两个关键帧来自动计算中间的过度画面。补间的帧数和时间长度是完全可控的,但是在处理复杂运动时,效果非常不理想,通常需要大量手动修改。

楼主可以从基本的二维软件,如Flash开始学起,单看概念很容易木。

补充一下:动画就是动画,动起来的画。一般只有在风格和表现手法上进行分类,很少会单纯从技术上分类。就好比电影,你不会太在意拍摄时用了多少特效,用的什么摄像机,胶片还是数字,色彩空间和宽容度是多少。

原文地址:知乎

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多