动画生成

2024-07-28

动画生成(精选4篇)

动画生成 篇1

0 引 言

中国的动画艺术家在上世纪50年代末就开始尝试制作剪纸风格的动画片,并取得了巨大的成功。随着计算机动画技术的飞速发展,利用计算机生成剪纸动画,可以大大降低剪纸动画的制作成本,提高剪纸动画的制作效率。一些国内外学者都开始对计算机生成剪纸动画产生了浓厚的兴趣,并取得了不少研究成果。近十余年发展迅猛的非真实感绘制和非真实感动画技术为计算机生成剪纸动画带来了希望。

近几年一些学者开始对计算机生成剪纸效果感兴趣。张显权等[1,2,3,4]以手工剪纸动物为对象,分解出构成剪纸的纹样,然后用计算机方法构成动物剪纸纹样库。Liu等[5]通过分析手工经多次对折之后剪出的圆形剪纸图案,再将之分解成若干扇形,然后合成新的对称式的剪纸图案。Li等[6,7,8]构造了一个系统用于生成三维剪纸效果。Xu等[9]使用图像合成来生成剪纸风格的效果。涂传鹏等[10]对手工剪纸中的流水纹样进行分类与建模,在生成流水动画时对各种波纹在时空上进行有机组合,最后生成涟漪、缓流和激流等流畅的剪纸风格流水动画。

关于计算机生成剪纸风格动画背景图,目前相关文献不多。本研究提出一种计算机生成剪纸动画背景图的方法。首先建立了庞大的剪纸图案库,用户可以从中直接导入或通过输入少量参数并进行少量的鼠标和键盘交互来自己创作各种剪纸图案。通过将各类剪纸图案放入不同位置,并按意愿进行简单调控,便可组合出一幅幅完全不一样的剪纸动画背景图。系统中还设置了用户作品库以便用户随时保存自己的作品。

1 建立剪纸图案库

首先建立了剪纸图案库,以便用户直接导入,每个剪纸图案的生成方式都有所不同。手工剪纸作品中的松树如图1所示,松树作为较为典型的一种剪纸图案,下面将介绍它的建模过程。

1.1 树的主干

剪纸图案的建模的核心的算法是样条插值算法。对于树干,首先选取3个初始控制点,分别对应树顶、树底和树的中心。通过插值,可以得到一组控制点,它们就像骨架一样,决定了树干的大致形状。由于松树的主干一般不是绝对竖直的,可对所有控制点的横坐标作少量偏移,得到最终决定树的主干的控制点,如图2所示。

其中,黑色点P1、P2、P3分别为表示树顶、树的中心和树底的控制点,空心点集为经过插值之后的控制点集合,半空心点集为经过偏移后最终的点集合。

有了控制点之后,便可确定树的轮廓。如图3所示,P1、P2、P3、P4为上述经过偏移后最终的点集合中的前4个连续的点。对于(P1、P2、P3…Pn)中的任意一点Pi(i=1,2…n),要获得这样两个点Qi,Qi′,使得QiQi¯经过点Pi且垂直于ΡiΡi+1¯。其中QiQi¯的长度决定了树的主干的宽度,可根据树的高度与宽度的比例决定QiQi¯的长度。

找准所有的点集Qi,Qi′之后,便可对树干进行颜色填充,如图3所示第一个要填充的便是以Q1,Q1′,Q2,Q2′为顶点的矩形,后续依次类推。填充颜色可选用手工剪纸中常用的灰色。对于主干中表示树皮的大量白色区域,由于这些白色区域都类似于矩形,可使用同样的方法,找准表示矩形的4个顶点,使用白色填充之便可实现。

1.2 树枝

直接与主干相连的树枝称为第一代树枝,直接与第一代树枝相连的树枝称为第二代树枝,以此类推。首先生成第一代树枝。

第一代树枝的生成方法与树干类似,但由于树枝的形状类似于衰减波,因此,初始控制点的选择也较为复杂。可用一个较为复杂的表达式来选择初始控制点P1、P2、P3、P4、P5,如图4所示,同样经过插值和偏移,得到最终一组控制点用于控制树枝的形状。最后经过与树干相似的填充方法生成第一代树枝。松树树枝的结构如图4所示。

由于剪纸风格树的树枝一般不会超过第三代,此方法最多生成第三代树枝。第二代和第三代树枝的生成方法将在3.1节中介绍。

1.3 松果

松果的形状较为圆润,因此在进行插值的时候可以多设置一些控制点,来消除锯齿的感觉。如图5所示,首先选取7个初始控制点,分别对其作4次插值,所传入的控制点参数分别为(P1,P6,P5)、(P1,P2,P3)、(P5,P4,P3)、(P2,P7,P4),由此得到4组控制点,将其坐标分别保存在4个数组里,分别对应数组abcd

得到了控制点坐标,便可以对图5中灰色区域进行填充来模拟手工剪纸中的松果。现在感兴趣的是数组b中的P2和P3之间的部分控制点坐标、数组c中的P3和P4之间的部分控制点坐标,以及整个数组d,这3个部分便形成了一个多边形,将其合并在一个数组中之后,再进行灰色填充即可。

将松果按照一定的概率和角度嵌入树枝中,每个松果的偏转角与它所连接的树枝的偏转角相关联。如图5所示,Ρ3Ρ6¯代表了松果的偏转角,对于每个松果,Ρ3Ρ6¯垂直于它所连接的当前树枝。最后,得到整个松树模型,如图6所示。

2 剪纸图案位置分布

在手工剪纸作品中,各种剪纸背景图案之间一般只有连接,没有覆盖。因此,计算机模拟手工剪纸时,也要尽量避免剪纸图案之间互相覆盖。系统中加入了相交判断,来尽量减少剪纸图案之间的覆盖问题;如果不幸生成的剪纸背景图仍有极个别覆盖情况,可使用系统中的鼠标调控功能,通过非常简单的鼠标拖拉即可将图案拖拽到合适位置。

2.1 剪纸图案之间的覆盖判断

一幅完整的剪纸背景图包含多种不同的剪纸图案,应该尽量避免它们之间的相交。但直接判断它们的边界是否有相交,计算量过大,为了提高效率,可通过判断剪纸图案所占的大致范围来判断两个剪纸图案是否相交。选择效率最高的一种办法也许是明智之举,把每种剪纸图案的范围看成一个圆。这样大大简化了剪纸图案之间的相交检测。

设剪纸图案Pi和Pj的圆心分别为Oi和Oj,其半径分别为Ri和Rj,若Oi和Oj之间的距离大于Ri+Rj,则可判断出两个圆不相交,且不覆盖。

2.2 剪纸图案之间的覆盖避免

2.1节所讲述的方法中,运算效率是首要考虑因素。考虑到难免会有漏网之鱼,可使用系统附加的鼠标调控功能。用户只需简单地选中剪纸图案并拖动一下鼠标,即可将之拖拽到合适位置。

在2.1节中,剪纸图案的范围被看成一个圆,同样为了提高效率,在鼠标选中图案时,根据剪纸图案的形状,可将之分别看成圆或者多边形。例如由于竹子的特征是细高,可将其范围看成矩形;棕榈树的特征是圆滑,可将其范围看成圆等等。

对于一幅完整的剪纸背景图,用户随时可能希望调整其中某个图案的位置以增加美感,因此,加入手工鼠标调控是必要的,它的好处至少包括3点:

(1) 简单的手工调控,高效率地避免相交;

(2) 随时调整目标图案来增加美感;

(3) 在现有剪纸图案情况下不需重新布置便可生成多幅新的背景图。

3 剪纸图案的细节调控

剪纸图案千变万化,多样性极强。使用计算机手段模拟手工剪纸最大的优势便在于可以随意调整剪纸图案的形状、大小、角度以及其他参数的设置。

3.1 编辑剪纸图案形状

如图7所示,黑色为控制点,每个控制点都可以通过鼠标拖拽实现形状编辑。例如用鼠标选中图7中的点P1和P2之后将其分别拖动到P3和P4所示位置,便生成了一棵经过形状调控后的新的松树,如图8所示。

由图7和图8可以看出,控制点只用于控制第一代树枝的形状,而并不出现在第二代和第三代树枝中。事实上,此系统中,主干和第一代树枝都是在松树生成的时候确定的,不会随着用户对形状的调控而改变;而第二代和第三代树枝以及松果都是随机生成的。这样既简化了用户的操作,又提高了效率。

3.2 调整剪纸图案坐标和大小

在2.2节中讲过,通过鼠标点击选中剪纸图案,可将其拖拽到绘制区内的任何坐标。此功能不仅可以避免覆盖,亦能增加用户创作的美感和灵活性。同时,通过树干高度、宽度、树枝长度、宽度等参数的设定,便可轻易调控所生成剪纸图案的大小。由于部分比较特殊的剪纸树(如迎客松),主干的角度会比较弯曲,因此加入了参数设置,使得用户能容易地调整主干的偏角。

4 动画背景图结果示例

该系统是在Pentium 2.4 GHz CPU,512 MB内存,NVIDIA 5700显卡,Windows XP操作系统下实现的,开发软件为Visual C++.Net 2005。

由此系统所实现的剪纸图如图9~图12所示。通过比较可发现,用户通过此系统可创作出与手工剪纸作品十分相似的剪纸图案,且具有更高的制作效率和更大的灵活性。

5 结束语

本研究提出了如何用较为简单的数学算法模拟手工剪纸动画片中常见的背景图案,并将之组合在一起形成一幅完整的背景图。与手工剪纸相比,该系统的创作具有更高的制作效率和更大的灵活性。用户可以按照意愿随时对设计进行编辑修改,而不需要重新创作一幅新的背景图。用户也可以将自己创作的作品保存在用户作品库中。该系统使得手工剪纸动画中种类繁多、形状复杂的背景图变为只需用户少量交互就可以生成,并具有极大的灵活性,这对于制作剪纸动画片具有很重要的意义。它不仅大大降低了剪纸动画片的制作成本,提高了制作效率,更为中国学派的动画在国际动漫节中重振雄风带来了希望。

接下来可以在现有系统的基础上继续开展如下工作:

(1) 彩色剪纸。为了实现彩色剪纸效果,需要建立相应的渲染模型来对剪纸图案进行渲染。

(2) 创建更为庞大的剪纸动画背景图案库。笔者只对现有的部分手工剪纸动画背景图进行了模拟。今后可对其他不常见的剪纸动画背景图案进行建模,甚至对手工剪纸动画片中未曾出现的剪纸图案进行建模。

参考文献

[1]张振赢,王毅刚,叶乐晓.投影显示中光笔交互技术的研究[J].机电工程,2009,26(6):77-79.

[2]许育燕,张森林.纹理映射技术在织物场景仿真系统中的应用[J].机电工程,2008,25(3):103-106.

[3]张显全,于金辉,蒋凌琳.计算机辅助生成剪纸形象[J].计算机辅助设计与图形学学报,2005,17(6):1378-1382.

[4]张显全,于金辉,蒋凌琳.基于纹样的计算机剪纸系统[J].计算机工程,2006,32(11):248-25.

[5]LIU Y X,HAYS J,XU Y Q,et al.Digital Papercutting[C].Computer Graphics Proceedings,Annual ConferenceSeries,ACM SIGGRAPH.Los Angeles:[s.n.],2005.

[6]LI Y,YU J H,SHI J Y.3D paper-cut modeling animation[J].The Journal of Computer Animation and Social A-gent,2007,18(4/5):395-404.

[7]LI Y,YU J H,ZHANG H X.Generating 3D paper-cuttingeffects[J].Lecture Notes in Computer Science,2006,3942:1062-1065.

[8]LI Y,YUJ H,SHI J Y.A3D paper cutting oriented meshtrimming algorithm[J].Journal of Software,2006,17(Supp1):169-175.

[9]XU J,CRAIG K,MI X F.Compute-generated Papercutting[C]//Proceedings of the 15th Pacific Conference on Com-puter Graphics and Applications.Hawaii:[s.n.],2008:343-350.

[10]涂传鹏,于金辉.计算机生成剪纸风格流水动画[J].计算机辅助设计与计算机图形学报,2009,21(7):949-953.

动画生成 篇2

关键词:虚拟装配,仿真动画,快速生成,装配路径

0引言

在一个产品的生产环节中,装配是个很重要的节点。装配的工作效率和工作质量对产品的制造周期和产品的质量都有着极大的影响。随着数控机床的广泛应用,装配工作却仍是以人为主,主要依赖于工作人员的技艺水平。因此,装配质量又成了提高产品精度的瓶颈环节,利用计算机进行装配工艺设计成了现代制造系统计算机应用的难点。提高装配的工作效率和工作质量,降低装配成本,提高装配的规范化程度是虚拟装配的重要任务[1]。

本文所研究的用于虚拟装配培训的虚拟装配仿真动画的快速生成技术在保证建模软件强大的装配仿真优势的情况下,针对VRML动画编码制作过程进行分析总结,最终在CAD软件装配仿真开发环境下使用插件式开发平台的方式实现了VRML动画生成,大大提高了机械产品虚拟装配仿真动画的开发与应用范围。

1系统平台的总体设计

1.1系统平台的功能架构

根据VRML动画的开发需要,本文所述的虚拟装配培训仿真动画生成平台总共分为三大功能模块,三维模型导出、虚拟动画定义、虚拟动画导出。 如图1所示。三维模型导出是通过二次开发获取零件模型在整个机械装配体中的三维关系,并根据模型结构树录入零部件间的装配关系信息,并自动生成虚拟场景三维模型。虚拟动画定义是通过可视化操作定义或输入运动参数等信息,制作机械产品的VRML仿真动画。

1.2系统平台的流程设计

针对机械设备的VRML动画开发进行调研,总结了制作的一般过程,根据实际存在的问题及需求确立课题研究的总体思路,制定如图2所示的开发设计流程图。首先,CAD软件中建立模型并导入; 其次,将CAD系统中运动仿真关键参数转换成VRML场景中的参数,实现场景衔接; 然后,将转换后的参数填入标准格式代码中,实现了VRML运动仿真代码生成; 最后,将VRML运动仿真动画代码从生成系统中导出,成为一个. wrl文件。

2装配仿真动画制作的装配路径动画原理与碰撞检查

2.1装配路径动画原理

虚拟场景中的装配运动是有其物理运动规律的,多是以平移、旋转为主,以及既有平移又有旋转的运动,因此,装配运动可以看作是一系列具有确定运动规律的运动段的总和,即:

这里的相邻运动段mi与mi + 1之间的转折点就是运动关键点。为了便于分析与制作动画,本文将装配运动从一个关键点到另一个关键点之间的任何一种运动均简化为平动与转动或平动加转动的合成,才能适用于装配运动的实现[3]。以螺栓螺帽的装配为例,图3中螺帽从P0位置到预定装配位置P3要发生了三次变换,P0到P1位置是一次平移变换,P1到P2是旋转变换,P2到P3是平移变换,共确定出四个关键点。

根据用户和虚拟环境的交互方式,装配路径生成有两种方式: 用户预先指定装配路径的关键点,装配路径以离散点的形式进行定义与记录,通过离散点插值产生连续的装配路径; 将输入设备( 如鼠标、 激光笔、操纵杆等) 的运动与部件的运动关联,用户通过虚拟环境交互,直接控制装配路径[4]。在虚拟装配仿真动画的开发过程中,主要通过前者来生成装配路径,首先指定各部件在空间若干关键点处的平移、旋转、缩放的变化量,然后将这些数据连同模型一起导出,以VRML格式文件存储。装配路径随模型加载到场景中,用户在场景中选择要装配的部件,部件就沿装配路径运动,实现装配仿真[5]。

如果只记录关键点位置,还不足以精确描述装配的细节,所以在演示过程中采用插值法细化关键点之间的位移变化,以图3关键点为例,在“P0 → P1”的路径段设置装配时间后,就会作匀速直线运动,同理在“P1→P2”的路径段作匀速旋转运动。通过插值法运算就能使用户更流畅地观看整个装配过程,不会有跳跃感。

2.2碰撞检查

碰撞检测用于监测两对象的接触关系,以及何时、何处形成碰撞,根据机械设备物理外形的复杂性和检测精度,计算两几何模型间的相互位置。因此对简单模型例如平面与球状物体的判断比较容易, 而对自由曲 面等复杂 结构碰撞 所需的计 算量较大。

目前常用的碰撞检测算法有四种[6]: 几何分析法、扫描法、包围盒法、空间分解法。在VRML中Collision节点的碰撞检测实际上采用的是包围盒法。VRML利用Collision节点简单地实现了碰撞检测,当一个给定的节点经过某些变换( 例如被平移、 旋转、缩放等) 时,测定是否会遭遇以另一个节点形式存在的障碍物,通过ECMAScript接口,利用Collidee和Collision对象实现VRML环境下物体之间的碰撞检测。前者作为被变换的节点的代理物,包含有变换矩阵等相关参数,承载了变换矩阵的参数和其它相关数据; 后者描述了在一次碰撞的情况下, 和另一个节点相撞的一个节点的要点[7],存储有每一个待检测是否产生碰撞的表面的位置,法线,面的序号以及路径等信息。具体的属性以及成员函数如表1 - 2所示。

3虚拟装配仿真动画的快速生成技术的实现

3.1基于模板的代码生成模块的流程

基于模板的代码生成模块的流程如图4所示。 实现生成的VRML代码包括四部分: 模型节点代码、动画原型节点PROTO、动画代码和动画连续播放脚本代码。模型节点代码中包含了模型描述信息; 动画原型节点定义了动画的参数和内部的逻辑运算关系,在此,定义一个生成模块使用的模板,来完成原型节点的封装; 数据定义文件是通过键码定义或者对话框输入的形式,对动画参数设定,由于该部分参数数据量不是很大,所以,在程序实现中,并没有采用数据库单独存放,而是直接定义了一个矩阵存放; 动画代码也就是将动画原型节点输入参数进行实例化,生成了一步装配动画的动画代码; 动画连续播放脚本代码是指制作虚拟装配仿真动画时, 动画是按照装配步骤来制作的,每一步的装配对应着一步动画,在每步动画之间需要实现连续播放,这就需要生成动画连续播放脚本代码。动画连续播放脚本代码是根据每一步动画节点引用以及每步动画的持续时间来生成的。

写出代码文件功能最终将模型节点代码、动画原型节点PROTO、动画代码、动画连续播放脚本代码整合到一个VRML文件中。具体的整合方法是: 通过函数creat VRML( ) 新建VRML文档,然后通过参数赋值的方式将模型节点代码、动画原型节点PROTO、动画代码、动画连续播放脚本代码分别赋给四个文本参数,将这四个参数的内容写入新建的VRML文档。

3.2虚拟装配仿真动画的快速生成的实现

3.2.1最小运动单元装配仿真动画生成的实现

生成模板中对应的变量实际上在Solidworks运动仿真中都具有一个对应参数,生成一步装配仿真动画的过程,实际上就是将对应的参数赋予给模板中的变量的过程。其对应关系如表3所示。

由此可知,生成程序抛去赋予的过程,还必须要有获取Solidworks中对应参数的功能,以实现鼠标选取的零部件包含空间位姿信息的变换矩阵的功能,其代码实现如下:

在实际开发过程中,坐标属性会出现偏差,究其原因,是Solidworks软件与VRML的空间坐标系的不同,这有必要实现两者坐标系的统一,然后进行赋值生成。为此,设计一个输入界面来完成,如图5所示。

3.2.2由Solidworks向VRML场景坐标转换及完整装配仿真动画生成

Solidworks环境下,用卡氏右手立体坐标系统描述空间位置,三维模型相对于世界坐标系原点的位置和方向可以用一个包含16个元素的4 × 4阶矩阵表示。如图6所示,从变换功能上可将此4阶方阵分为四个子矩阵,其中左上角的3 × 3矩阵可产生比例、旋转等变换; 左下方三个ti变量分别产生沿x轴、y轴、z轴的平移变换; 右下角的s产生全局比例变换; 右侧pi可实现投影变换。

本课题研究的是机械产品的虚拟动画,针对其中的刚性物体而言,运动形式主要有两种形式: 平移和旋转,绝大多数的运动都是以这两种运动形式复合而成。位于坐标( x,y,z) 的几何模型,平移到原点,并绕过坐标原点的任意倾斜轴线旋转 θ 角时,其变换矩阵为:

其中,θ 代表零件在装配体中绕任意轴旋转的角度, n1,n2,n3为该轴的方向余弦,x,y,z分别为该零件的在空间中的位置。

在VRML场景中通过利用Solidworks API函数获取矩阵中每个元素的值,并通过Vrml Pad编辑器的API函数接受所有的值,从而获得虚拟场景中所需要的translation和rotation的值。部分代码如下:

这样,就把Solidworks三维场景中三维模型的位置关系,转换成VRML虚拟场景中识别的参数, 实现了两者坐标变换方式的统一。

单个零部件装配的过程,是由数个最小运动单元组成的,他们之间需要有脚本文件链接起来,才能使得装配仿真动画可以连贯地运行下去。

连续播放脚本实际上是一种逻辑上的关联顺序,可以实现上一步最小运动单元动画运行之后跳转到下一步动画。这种逻辑上的关系,使得完成该步最小运动单元装配动画的编辑后,点击下一步 ( 如图5所示) ,生成程序将自动在该步动画代码后面追加连续播放脚本,并给对应变量赋值。通过对单个零部件装配过程分解出的最小运动单元装配仿真动画进行串联,可以得出单个零部件的完整装配仿真动画。

4机械手虚拟装配仿真动画生成实例应用

根据虚拟装配仿真动画生成的理论,结合机械手的虚拟装配动画的生成过程,验证该理论的可行性。首先,用Solidworks打开定义约束关系的机械手的三维模型,运行“vrml动画制作”模块,系统会自动通过遍历装配体的形式把机械手的零件的名称按照一定的规则列在界面中,以方便虚拟装配动画的制作,用户可以点击相应的零件进行该零件装配动画制作时相关参数的设置,最后确定生成虚拟装配动画文件。具体操作如图7所示。

5结束语

动画生成 篇3

1 手绘风格的卡通角色动画特点概述

动画的种类有很多,但是并不是每种动画风格都能收到大众的喜爱。在为数不多的受我国观众喜爱的动画种类中,最受观众喜爱的应属手绘卡通动画。手绘卡通动画线条清晰,人物动作自然流畅,画面整洁美观,所以深受观众喜爱。手绘风格,顾名思义,就是画师在进行动画设计时对角色或背景的细节运用手绘的方式来处理。不过通常运用手绘方法来处理动画角色或背景细节的工作量都很大,就算是一部时长大约五分钟的手绘风格动画,按照一秒需要24帧的最低限度来计算,一分钟就需要1440张手绘画,那么五分钟就需要7200张手绘画。所以说制作手绘风格动画的工作量是十分巨大的。

由于上面提到的手绘风格动画对人力物力财力的消耗巨大,所以如何提高手绘风格动画的效率并节省成本就成了现在动画业面临的主要问题。我国目前运用的动画技术,一般都是绘制几何模型法。也就是运用电脑将手绘画作转换为几何模型,然后利用WIMP交互界面对电脑上的参数和控制点进行修改和操作,以达到制作集合模型的目的。运用这种动画制作方法制作出的动画明显没有手绘风格动画的灵巧性和可观性。所以即使这种动画制作过程中既省时省力又节约经费,依然没有人看好这种动画制作方法的前景。所以我们还是要对手绘风格的动画进行改革和创新,使手绘风格的动画占据动画市场的主流。

就卡通角色的动画生成方法来说,一般我们经常用到的就是三种生成方法 :骨架生成法、几何建模法和视点相关几何法而生成卡通角色动画时,不管运用到什么方法,都必须注意一个要点,那就是提取关键帧。提取关键帧在动画角色生成中是十分重要的步骤,要考虑到动画角色的动作轨迹和背景的主要姿势,以此为依据来选择关键帧,则剩下的帧数都会以关键帧为参照物。所以在选择关键帧时一定要注意卡通动画角色的一举一动,和手绘画作的细节体现。不然在制作动画的过程中很容易失败。

2 融合手绘风格的卡通角色动画生成的方法

2.1 骨架生成法

骨架生成法,也就是对手绘图像中大的结构框架进行提取,提取出来之后在电脑上生成关键帧,之后就利用动画制作工具将帧补全,就生成了手绘角色的表情和动作的运动。骨架生成法的优势是可以节约大量时间,能够快速还原手绘原作的大部分框架。但同时骨架生成法也有其劣势,那就是无法将手绘的原作中的全部细节展现到制作的动画之中,这样就会造成动画细节的缺失,影响动画成品的美观性和可观性。

2.2 几何建模法

利用几何建模法来绘制动画,是现在比较常用的一种动画制作方式。这种方式被大量应用在三维动画中。这种动画制作方法的原理其实很简单,就是先利用电脑软件建立二维模型,也就是我们平时看到的平面视图。然后在建立好的二维模型中逐步插入帧,在二维模型的基础上建立三维模型,最后进行修改和润色,使模型的动作显得清晰流畅。这种利用几何建模来制作动画的方法可以使动画效果更加逼真,还原度也很高,最重要的是利用这种动画方方法制作出来的动画更有立体感,使观众有观看真实场景的感觉。而这种动画制作方式的弊端也是存在的,依然是动画界最头疼的问题——工作量大。为了体现三维动画的立体感,在制作时往往要绘制更多的帧数,才能满足三维动画的要求,所以三维动画对人力财力的要求也是十分严格的。

2.3 视点相关几何法

视点相关几何法比以上两种动画制作方法的程序都要复杂。其实也可以说视点相关几何法是骨架生成法和几何建模法发展融合之后的产物。这种动画制作方法要先利用骨架生成法对手绘作品的主要进行提取,然后再利用几何建模法对手绘作品的主要框架进行三维建设,之后对动画的细节进行仔细完整地描绘,最终修改润色,得到动画成品。视点相关几何法在平时的动画制作中被运用的不多,主要是因为这种动画制作方法比骨架生成法和几何建模法的程序更加复杂,那么需要消耗的人力、物力、财力也就会更多。不过这种动画制作方法可以使制作出的手绘动画效果更加美观,动作也会更加流畅。所以笔者希望,随着社会科技的发展,这种动画制作方法能够更广泛地应用到动画制作之中。

3 结语

将手绘风格融入到卡通角色动画生成方法中,越来越成为我国动画业习惯使用的动画生成方法,手绘风格的动画也越来越受到我过观众的喜爱。我国的动画产业一直没有发展起来,甚至许多国产动画都受到观众的诟病。而我们动画业应该虚心地接受群众的意见,大力发展我国的动画产业,让我国的动画产业有朝一日也能走出国门,走向世界,从而更全面地发展我国的动画事业。

摘要:动画产业是我国最近几年兴起新兴产业,由目情况前来看,动画产业有发展成我国主流产业的态势。由此可见,动画越来越受国民的喜爱。而动画在制作过程中并没有预想的容易。实际上制作动画最基本的要求就是角色的动作神态都必须要自然、生动、灵活并且表现力要强,要想达到理想效果,制作过程是十分复杂繁琐的。但是如果将手绘风格融入到卡通角色动画中,那么效果就大不一样了。因此本文对融合手绘风格的卡通角色动画生成方法进行探究,期望得到真正有效的方法。

动画生成 篇4

关键词:三维动画,Maya,表达式

0 引言

Maya是业界公认的三维动画制作软件,我国的三维动漫基地普遍使用了这一软件。它强大的角色动画、动力学、毛发等功能为动画制作者提供了极大的便利。我们知道,目前动画的制作无论是物体动画、还是人物角色动画都采用的是关键帧编辑方式或运动捕捉方式。尤其是第一种方式已经成为动画业的不二法门。对于一些重复性的动画,如球体的弹跳等,Maya可以用重复循环的命令来实现。但日常生活中,除了角色的基本动作之外,还有一些随机的运动,例如人的眨眼动作、飞机飞行过程中的振动、汽车行驶中的颠簸、花瓣在水面的飘浮等,不能用简单机械的重复动画处理。本文探讨的是如何用Maya的表达式功能生成有趣的自动动画,为动画师节省大量时间,并增强动画的自然效果。

1 Maya的表达式功能

Maya的表达式(Expression)功能的作用是向Maya传达指令,从而控制对象的属性随着时间变化而产生变化。对象的基本属性有三个轴向的位移(translate)、旋转(rotate)、缩放(scale)和可见性(visibility)等。要注意的是,只有可以设置关键帧并且没有被锁定的对象属性才能用表达式可以设置动画。

Maya Expression有如下特点:

(1)表达式含有Maya全局变量,如:time(计时器)、frame(动画帧)等。(2)语法规则与Maya的脚本语言MEL的语法规则一致。(3)一般表达式是全局有效,在任意时刻都起作用,除非对time添加条件判断。(4)表达式执行方式是解释执行,速度不快,尤其是在场景中对象很多的情况下。(5)表达式中所使用的对象名称与表达式关系密切,修改对象名称后,表达式会失效。

要为动画场景中的某个对象设置表达式动画,可先选择动画对象,然后选择Window/Animation/Expression Editor打开表达式窗口。窗口下方的文本窗就是用来输入表达式语句的。表达式常常是很简单的一行或几行代码,就可以产生很有趣的动画效果。

2 几个表达式动画典型例子

在Maya中,三维物体的translateY属性控制着物体的空间位置高度,假设要为一个球体Ball设置在空中上下浮动的动画,可以在表达式窗口中找到Ball的translateY属性,并且在输入框中键入如下代码:

这里time是一个内置函数,它以秒为单位返回系统计时器的值,sin(time)用来以时间变量为基准,返回一个按照正弦曲线变化的数值,赋给球体的高度位移参数。从而使球体随着时间的变化而上下运动。

表达式也可以用来链接不同对象的属性,即一个对象的某一个属性变化引起其它对象一个或多个属性变化。

一个典型的例子是创建钟表指针的动画。假设钟表的三个指针分别被命名为:secondHand(秒针),minuteHand(分针),hourHand(时针),并且已经将其旋转中心调整到钟表中心位置,旋转轴为Z。同样,我们可以利用Maya的内建函数time来实现这一功能。

首先从秒针开始。我们知道秒针每秒钟转动6度,

根据三个对象的角度变化关系,我们可以将分针和时针的转动角度分别设置为:

这样,当播放动画预览时,就会看到三个指针分别以既定的速度转动。

另外一个典型的例子是用汽车车身的位移动作来控制车轮的转动。如图所示:我们希望当动画师选择车身沿着汽车行驶方向移动时,车轮能够自动旋转,而不需要动画师逐一为车轮设置关键帧。

这里的关键所在是将用汽车车身的移动引发车轮的转动动作,也就是要将汽车行驶的距离数据换算成车轮转动的角度值,我们可以利用半径、周长、角度以及距离之间的关系来解决这个问题。假设汽车车身命名为cheshen,其中一个车轮对象命名为chelun01,车轮半径为r,汽车开动的方向为x轴。则可以选择车轮,进入表达式窗口,在列表中选择Chelun01.rotateZ这个属性,键入如下代码:

这样,我们只要给车身制作前后移动动画,车轮就会随之自动旋转。有趣的是,如果将汽车沿x轴向负向拖动,车轮也会随之倒转,动画效果非常自然。

此外,Maya中还有几个特殊的函数和运算符,可以用在表达式中,是动画更加有趣。例如:noise函数用来产生燥波型动画,余数运算符%可以用来控制动作的时间间隔。下面这个表达式使用余数运算符%来控制粒子对象balloonShap的色彩属性rgbPP改变的时间。Frame是内置全局变量,数值为当前的动画帧号,当Maya动画帧频率设置每秒24帧时,frame%24==0表示的是每隔一秒钟。所以,这个表达式运行的效果就是每隔一秒钟,粒子系统balloonShape重新用sphrand()函数生成一次随机颜色。

3 结论

可以看出,表达式功能对于生成简单重复的自动动画非常有用,应用得当,可以增加动画效果的丰富性和有趣性,同时,也省去了动画师手动设置关键帧动画的麻烦。需要注意的是,对于同一个物体的同一个属性,只能用一个表达式进行动画设置,而同一个表达式却可以赋予一个物体的不同属性或其它物体的属性。此外,还要注意,影响用keys(关键帧)、set driven key(设置驱动关键)、constraint(束缚)、motion path(运动路径)等动画功能已经做了动画设置的物体属性,不能再使用表达式功能,否则Maya就会提示出错信息。

参考文献

[1](美)Tom Meade,Shinsaku Arima.Maya完全学习手册(The Complete Reference)[M].董梁,高文婷译.清华大学出版社:504-510.

[2]David Gould.Complete Maya Programming:An Extensive Guide MEL and C++API[M].北京:电子工业出版社.

[3]汤晓山.计算机三维动画[M].北京:清华大学出版社,2007.

[4]夏航.MAYA软件中使用MEL脚本设计粒子碰撞[J].中国现代教育装备.2010.105(17):31-34.

[5]罗汉.Maya MEL动画编程从入门到精通[M].北京:兵器工业出版社,2005.

上一篇:网络注册下一篇:《电工基础》课