一种卡通流水动画自动生成方法

文档序号:6543847阅读:170来源:国知局
专利名称:一种卡通流水动画自动生成方法
技术领域
本发明涉及卡通特效动画生成方法,尤其涉及卡通流水动画的自动生成方法。
背景技术
在卡通动画中流水、火焰、烟雾等效果对烘托动画气氛及增强动画的真实感都有十分重要的作用,其中流水效果是动画中常见的场景,例如河流、溪水、瀑布等。目前卡通流水动画仍然依赖手工绘制,动画美工一天大约可以绘出20幅左右画面(约1秒长度的动画),一个卡通效果长度一般为3~6秒钟,人工绘制需要4~5天,效率低下。对于以水面附近及水面上发生故事为主要情节的动画作品,其手工绘制工作量更大,所用时间更长。如果资金受到限制,动画绘制人员一般先画出一段短的动画,然后以它作为一个周期并重复使用来达到所要求的长度,因此,动画效果看起来有较强的机械感。
目前计算机辅助制作动画系统主要着眼于用计算机手段实现传统手工动画中某些制作步骤,其主要的算法是关键画面(Keyframe)插值。但这些自动生成中间画面的方法要求关键画面之间的物体在几何与时间上都连续。由于卡通流水含有随机运动分量,因而破坏了画面之间的对应关系,造成上述方法完全失效。此外,卡通涟波及波光闪烁是手工绘制的具有艺术风格的二维画面,它们难以用粒子系统(Particle system)表示,亦无法利用物理知识如流体理论等对其建立模型。在过去二十多年中人们提出许多处理水运动的动画生成方法,但大都致力于生成真实感的动画,而对自动生成卡通风格流水动画一直无人提出有效的解决方法。

发明内容
本发明的目的是提供一种卡通流水动画自动生成方法,通过该方法用户只需要指定少量的控制点和参数便可以自动生成任意长度、没有周期性重复机械感的卡通流水动画,具体包括平稳卡通流水、激烈卡通流水以及卡通瀑布效果。生成速度达到实时。
为了实现上述目的,本发明的技术解决方案,是对手工绘制的卡通流水动画分成平稳流水,激烈流水以及瀑布三类,构造它们的模型,用参数化方法控制这些模型自动生成相应的卡通风格流水动画。
本发明方法包括以下步骤利用输入的流水类型平稳、激烈和瀑布指令控制平稳卡通流水、激烈卡通流水和卡通瀑布动画生成;基于样条曲线对交互输入控制点生成流水路径边线;设置水波速度和水波距离;当执行指令为平稳时,则生成横向水波骨架;生成纵向水波骨架并绘制其形状;生成顶部浪花;生成浪花边泡沫。
当执行指令为激烈时,则控制流水路径位置分布产生透视效果;控制流水路径局部动态升高;生成横向水波形骨架并绘制其形状;生成u状、s状和w状三类散乱水波骨架并绘制其形状;当执行指令为瀑布时,则控制瀑布路径点位置分布产生仰视透视效果;生成横向水波骨架并绘制其形状;生成u状、s状和w状三类散乱水波骨架并绘制其形状。
动画视频输出。
上述的基于样条曲线对交互输入控制点生成流水路径边线,包括如下步骤a、在卡通背景画面上输入少量控制点用于规定卡通流水效果的路径边线大致形状;b、用样条曲线对输入的控制点进行平滑插值得到精确的流水路径边线,插值后的点放入两个数组中。
上述的控制水波速度和水波距离包括如下步骤a、水波速度控制水波在两相邻画面之间沿流水路径边线的位移,它被转化成边线上的一些点数控制,由输入参数设置;b、水波距离为水面上两相邻水波之间的距离,它被转化成边线上的一些点数控制,由输入参数设置。
上述的当执行指令为平稳时,启动平稳流水生成程序,包括如下步骤
a、在流水路径两边线上按预定水波距离取两个点,然后在两点之间生成随机正弦波作为横向水波骨架;b、在横向水波骨架上各点作为起始参考点,沿流水方向分布一系列短弧线构成纵向水波骨架,然后用宽度变化的线绘制纵向水波形状;c、在纵向水波骨架各弧线上随机取一点作为控制点,用样条曲线对它们插值得到浪花前部形状曲线,正弦波形横波骨架对应浪花后部形状曲线,把二者合围生成顶部浪花形状。
d、用一些小圆表示泡沫,并用简单模型控制它们分布在顶部浪花附近,小圆的半径随机变化。
上述的当执行指令为激烈时,启动激烈流水生成程序,包括如下步骤a、用非线性插值变量v=k·sin(u·π/2)对两条边界线插值可以得到具有透视效果的线族分布,这里k控制着透视程度,u为空间变量;b、在流水路径边线上寻找横向水波骨架所在位置,然后在这些位置上用一个高度偏量更新其在流水路径控制线上的点,用样条曲线对该点以及其前后邻近两点插值获得局部升高的流水路径控制曲线;c、横向水波形骨架用幅度和频率随机变化的两个正弦波叠加定义,在横向水波骨架的波峰和波尾附近添加控制点,然后用样条曲线对它们分别插值便得到横向水波形状的曲线;d、散乱水波是零星分布在横向水波之间的水波,分成u状、s状和w状三类,u状用3个控制点,s状用4个控制点、w状用5个控制点定义出它们大致形状,再用样条曲线对这些控制点插值得到对应散乱波纹的具体形状。
上述的当执行命令为瀑布时,启动瀑布生成程序,包括如下步骤a、用二次函数Di=k×u2控制瀑布两边线各个点的距离,在视觉效果上模拟出瀑布的透视效果,系数k控制透视的程度,u为空间变量;b、瀑布横向水波骨架、横向水波形状与激烈水波中的横向水波骨架、横向波形状生成方法相同;c、瀑布散乱水波与激烈水波中的散乱水波生成方法相同。
本发明所述卡通流水动画自动生成技术具有以下优点1.在手工绘制卡通动画中,若要表现不同流水速度,不同水波间距以及不同大小浪花的流水动画,需要全部重新绘制动画序列,用本发明通过参数控制即可方便快速地实现这些改变。
2.用户只需要交互输入少量控制点和参数就可生成任意长度没有重复机械感的流水动画,且该方法生卡通流水速度达到实时。与手工绘制卡通流水动画相比,可大大提高卡通流水动画制作效率。
3.该方法直接生成动画序列图像并保存起来,摆脱了手工绘制卡通流水动画对纸张的使用,从而节省大量纸张。


图1是本发明的卡通流水动画自动生成流程图;图2是本发明的卡通平稳流水动画生成流程图;图3是本发明的卡通激烈流水动画生成流程图;图4是本发明的卡通瀑布动画生成流程图。
具体实施例方式
以下结合附图进一步说明本发明。
本卡通流水动画自动生成流程如图1所示,该流程依次有如下步骤1.利用输入的流水类型平稳、激烈和瀑布指令控制平稳卡通流水、激烈卡通流水和卡通瀑布动画生成流程;2.交互设置流水路径;3.设置水波速度与水波间距;4.当所执行指令为平稳时,则生成平稳卡通流水动画;5.当所执行指令为激烈时,则生成激烈卡通流水动画;6.当所执行指令为瀑布时,则生成卡通瀑布动画;7.动画视频输出。
上述的交互设置流水路径,包括如下步骤在卡通背景画面上输入少量控制点用于规定流水动画的路径边线大致形状。
对输入控制点用样条曲线插值生成左右精确流水边线的两组点,放入两个数组LBDi和RBDi中,(i=1,…BdN),这里BdN是两个边线中包括控制点和插值点的总点数。
利用两个数组的下标定义流水的前进参考方向。
由于水波流动是通过边线上一些插值点的位移来实现的,所以在相邻控制点之间插值点的数量应该足够多以保证水波流动的连续性。在本方法中把插值点数的缺省值设为20供观查初始效果用,可根据实际需要修正该参数。
上述的设置水波速度与水波间距,包括如下步骤水波速度用WSpeed表示。它控制水波在两相邻画面之间的沿边线的位移,在本发明方法中用流水路径边线上一些点所跨的距离来近似。例如把WSpeed指定为3,则水波从某画面到其下幅画面沿边线移动三个点的距离。
水波间距用WaveD表示。与WSpeed类似,在模型中水波间距要转化成边线上的一些点数(比如从LBDi到LBDi+WaveD之间的点数)。由于WaveD与WSpeed都是边线上的点数,为了在动画中避免水波向后移动的频闪效应,二者需满如下足关系WaveD>3WSpeed利用边线上的点数BdN与水波间距WaveD,水波的数量WaveN则可以通过如下方程计算得出WaveN=BdN/WaveD上述的当执行指令为平稳时,启动生成平稳卡通流水动画程序,其流程如图2所示,包括如下步骤横向水波骨架生成;在两边线上按预定水波间距WaveD取两个点,然后在两点之间生成随机正弦波作为横向水波骨架HrzWaveSklt,用如下公式确定HrzWaveSklt(u)=(Am+Δ)sin((ω+Δ)u+Δθ)式中Am根据实验选取为WaveD的十分之一左右,Δ为随机扰动,ω的缺省值为5π,用户可根据需要增大或减小ω值,u∈
为空间引导变量,u=0对应于左边线,u=1对应于右边线,Δθ为在[-π,π]之间随机变化的相位。
纵向水波骨架生成;在横波骨架上各点作为起始参考点,沿流水方向分布一系列短弧线作为纵向水波骨架VerWave(u),u∈
仍为空间引导变量,VerWave(u)长度均值为WaveD的0.8倍,用随机函数对其进行正负0.1范围扰动。
纵向水波形状绘制;用宽度逐渐变窄的线从横波起始参考点沿弧线绘制。
顶部浪花生成;在纵向水波骨架各弧线VerWave(u)上取其长度的0.3~0.8倍,记录下各弧线上所取诸点坐标,用样条曲线对它们插值得到浪花前部形状曲线,正弦波形横波骨架对应浪花后部形状曲线,把二者合围便生成顶部浪花Cap(u)。
浪边泡沫生成;用一些小圆表示泡沫,小圆的半径随机变化,并用简单模型控制它们分布在顶部浪花Cap(u)附近。
上述的当执行指令为激烈时,启动生成激烈卡通流水动画程序,其流程如图3所示,包括如下步骤
水波透视效果控制;用一线性变量u∈
对LBDi和RBDi(i=1,…BDN)插值生成一族流水路径控制线,并把结果存在一个二维数组PATHLINESj,i中,(j=1,…InNUM,i=1,…BDN,这里InNUM是曲线族中包含曲线的数量),InNUM的大小控制水波的精细程度,根据需要指定。
用非线性插值变量v=k·sin(u·π/2)对两条边界线插值可以得到具有透视效果的PATHLINESj,i,这里k控制着非线性变化程度,u同上。
水波起伏控制;在流水边线上找到主水波骨架所在位置,然后在这些位置上用一个高度偏量ΔH更新其在流水路径控制线上的点,以这些点作为参考在其前后取主水波距的一半并选出流水路径控制线的对应点,再用样条曲线对它们插值就可以获得局部升高的流水路径控制曲线。
横向水波骨架生成;用下列方程定义横向水波骨VioFlowWaterSklt(u)=Am1·sin(a1+u·ω1)+Am2·sin(ae2+u·ω2);这里a1和a2分别是两个正弦波的初相,它们在0~2π范围内随机变化,ω1和ω2是两个正弦波的频率,Am1和Am2是两个正弦波的幅度且Am1=2·Am2,u∈
仍为空间引导变量。
横向水波形状绘制;在骨架的波峰和波尾附近添加几个控制点,然后用样条曲线对它们分别插值便得到横向水波形状的曲线。
波峰浪花生成;控制波峰处的浪花形状。位于波峰处的浪花或是呈现出长短不一的钟乳岩形状,或是幅度和频率随机变化的杂波。
钟乳岩形状是用一些在横轴上分布的一些随机变化的短直线作为钟乳岩形状的骨架,骨架顶端点作为钟乳岩形状突出地方的控制点,在相邻两个骨架线段之间随机添加1到2个点作为钟乳岩根部的控制点,再用样条曲线对钟乳岩根部和顶部控制点插值便得到钟乳岩形状。
随机杂波仍用横轴上分布的一些随机变化的短直线作为骨架,在两短直线之间用幅度和频率随即变化的正弦函数曲线逼近随机杂波的形状。
散乱水波生成;散乱水波是零星分布在横向水波之间的水波,具体分成三类u状、s状和w状,u状用3个点,s状用4个点、w状用5个点作为它们端点以及拐点的控制点,定义出它们大致形状,再用样条曲线对它们插值得到这些散乱波纹的形状。在本发明方法中用正负号控制每个散乱纹波的左右朝向,在运行时随机生成正负号,这样可以绘制出6种散乱纹波。
散乱波纹的位置是在系统中利用相邻主水波纹的位置作为边界条件,然后用随机函数在边界围成的区域内生成数量不等的控制点来控制。
上述的当执行命令为瀑布时,启动生成卡通瀑布动画程序,其流程如图4所示,包括如下步骤瀑布仰视透视效果控制;用二次函数控制瀑布两边线各个点的位置,即两边线上相邻点的距离D=k·u2,u∈
为空间引导变量,u=0对应于瀑布顶端,u=1对应于瀑布底端。由于二次函数的非线性作用,使得顶部各点距离密集一些,底部各点距离稀疏一些,在视觉上模拟出瀑布的透视效果。系数k控制透视的程度。
其余步骤如横向水波骨架生成、横向水波形状绘制以及散乱水波生成分别与激烈水波中的横向水波骨架生成、横向水波形状绘制以及散乱水波生成方法相同。
上述的动画视频输出,按照标准AVI格式把生成的卡通流水效果输出成视频动画。
权利要求
1.一种卡通流水动画自动生成方法,包括以下步骤利用输入的流水类型平稳、激烈和瀑布指令控制平稳卡通流水、激烈卡通流水和卡通瀑布动画生成;基于样条曲线对交互输入控制点生成流水路径边线;设置水波速度和水波距离;当执行指令为平稳时,则生成横向水波骨架;生成纵向水波骨架并绘制其形状;生成顶部浪花;生成浪花边泡沫。当执行指令为激烈时,则控制流水路径位置分布产生透视效果;控制流水路径局部动态升高;生成横向水波形骨架并绘制其形状;生成u状、s状和w状三类散乱水波骨架并绘制其形状;当执行指令为瀑布时,则控制瀑布路径点位置分布产生仰视透视效果;生成横向水波骨架并绘制其形状;生成u状、s状和w状三类散乱水波骨架并绘制其形状;动画视频输出。
2.按照权利要求1所述方法,其特征在于所说的基于样条曲线对交互输入控制点生成流水路径边线,包括如下步骤a、在卡通背景画面上输入用于规定卡通流水动画的路径边线大致形状的控制点;b、用样条曲线对输入的控制点进行平滑插值得到精确的流水路径边线,插值后的点放入两个数组中。
3.按照权利要求1所述方法,其特征在于所说的设置水波速度和水波距离,包括如下步骤a、水波速度控制水波在两相邻画面之间沿流水路径边线的位移,它被转化成边线上的一些点数控制,由输入参数设置;b、水波距离为水面上两相邻水波之间的距离,它被转化成边线上的一些点数控制,由输入参数设置。
4.按照权利要求1所述方法,其特征在于所说的当执行指令为平稳时,启动平稳流水生成程序,包括如下步骤a、在流水路径两边线上按预定水波距离取两个点,然后在两点之间生成随机正弦波作为横向水波骨架;b、在横向水波骨架上各点作为起始参考点,沿流水方向分布一系列短弧线构成纵向水波骨架,然后用宽度变化的线绘制纵向水波形状;c、在纵向水波骨架各弧线上随机取一点作为控制点,用样条曲线对它们插值得到浪花前部形状曲线,正弦波形横波骨架对应浪花后部形状曲线,把二者合围生成顶部浪花形状;d、用一些小圆表示泡沫,并用简单模型控制它们分布在顶部浪花附近,小圆的半径随机变化。
5.按照权利要求1所述方法,其特征在于所说的当执行指令为激烈时,启动激烈流水生成程序,包括如下步骤a、用非线性插值变量v=k·sin(u·π/2)对两条边界线插值可以得到具有透视效果的线族分布,这里k控制着透视程度,u为空间变量;b、在流水路径边线上寻找横向水波骨架所在位置,然后在这些位置上用一个高度偏量更新其在流水路径控制线上的点,用样条曲线对该点以及其前后邻近两点插值获得局部升高的流水路径控制曲线;c、横向水波形骨架用幅度和频率随机变化的两个正弦波叠加定义,在横向水波骨架的波峰和波尾附近添加控制点,然后用样条曲线对它们分别插值便得到横向水波形状的曲线;d、散乱水波是零星分布在横向水波之间的水波,分成u状、s状和w状三类,u状用3个控制点,s状用4个控制点、w状用5个控制点定义出它们大致形状,再用样条曲线对这些控制点插值得到对应散乱波纹的具体形状。
6.按照权利要求1所述方法,其特征在于所说的当执行命令为瀑布时,启动瀑布生成程序,包括如下步骤a、用二次函数Di=k×u2控制瀑布两边线各个点的距离,在视觉效果上模拟出瀑布的透视效果,系数k控制透视的程度,u为空间变量;b、瀑布横向水波骨架、横向水波形状与激烈水波中的横向水波骨架、横向波形状生成方法相同;c、瀑布散乱水波与激烈水波中的散乱水波生成方法相同。
全文摘要
本发明公开了一种卡通流水动画自动生成方法,其特征在于,对手工绘制的卡通流水动画进行分类,构造它们的模型,用参数化方法控制模型自动生成卡通流水动画。具体提出平稳卡通流水,激烈卡通流水以及卡通瀑布动画的自动生成方法。用这些方法生成卡通流水动画速度可以达到实时,与手工绘制卡通流水动画相比,可大大提高卡通流水动画制作效率。由于系统直接生成动画序列图像并保存起来,摆脱了手工绘制卡通流水动画对纸张的使用,还可以节省大量纸张。
文档编号G06T15/70GK1750047SQ200510061178
公开日2006年3月22日 申请日期2005年10月20日 优先权日2005年10月20日
发明者于金辉 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1