首页> 中国专利> 基于Xml的数字皮影动画脚本文件的非线性拼接方法及装置

基于Xml的数字皮影动画脚本文件的非线性拼接方法及装置

摘要

本发明涉及一种基于Xml的数字皮影动画脚本文件的非线性拼接方法,包括:采集Xml数据,以确定帧序列号;对Xml数据进行定位解析;对Xml脚本文件进行非线性拼接前的关键帧重排处理;运用基于逆向关键帧序列的拼接点快速定位的方法定位拼接点;判断拼接点是否匹配;对阈值ε进行设定,以确定拼接点是否为最佳拼接点;从Xml文档树的角度对Xml文件进行拼接处理。实施上述方法的装置,包括:Xml数据采集模块、Xml数据定位解析模块、关键帧重排处理模块、拼接点定位模块、拼接点辨别模块、阈值设定模块与拼接处理模块。本发明通过对动画脚本文件的后期修改、拼接合成,以形成完整的动画脚本文件,再以数字皮影表演平台为依托,展现出稳定、流畅的数字皮影动画。

著录项

  • 公开/公告号CN103793934A

    专利类型发明专利

  • 公开/公告日2014-05-14

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN201410028714.3

  • 发明设计人 何泾沙;孙妮娜;

    申请日2014-01-21

  • 分类号G06T13/40(20110101);G06F17/30(20060101);

  • 代理机构11335 北京汇信合知识产权代理有限公司;

  • 代理人戴凤仪

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2024-02-20 00:11:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-10-19

    授权

    授权

  • 2014-06-11

    实质审查的生效 IPC(主分类):G06T13/40 申请日:20140121

    实质审查的生效

  • 2014-05-14

    公开

    公开

说明书

技术领域

本发明涉及一种动画制作与Xml脚本文件后期处理技术领域,尤其涉及一种基于Xml的数字皮影动画脚本文件的非线性拼接方法及装置。 

背景技术

非线性编辑技术是目前视频编辑时普遍采用的一种技术,其思想是将所有的素材一并放入计算机内进行数字化制作与后期处理。相比于线性编辑技术,它在很大程度上降低了视频制作的成本和制作时间,更好的满足了用户的需求。本发明中的非线性拼接技术源于非线性编辑技术,依托于数字皮影表演平台。 

目前,数字皮影表演平台已融入现代动漫特效、flash动画特效生成、flash骨骼模型的建立、多点触摸交互控制、网络通信、基于xml的GUI录制与回放等众多数字皮影表演过程中所需的支撑技术。通过录制与回放技术,可以依托数字皮影表演平台制作数字皮影动画,但是制作出来的动画只能一气呵成,若想更改只能重新录制,对数字皮影动画的制作存在诸多不便。 

发明内容

针对上述问题中存在的不足之处,本发明提供了一种基于Xml的数字皮影动画脚本文件的非线性拼接方法及装置,将其应用于数字皮影动画脚本文件的后期处理过程中,通过对动画脚本文件的后期修改、拼接合成,最终形成完整的动画脚本文件,再以数字皮影表演平台为依托,展现出更稳定、更流畅的数字皮影动画。 

为实现上述目的,本发明提供一种基于Xml的数字皮影动画脚本文件的非线性拼接方法,包括以下步骤: 

S10、采集Xml数据,以确定有效的帧序列号; 

S20、根据已确定的帧序列号对Xml数据进行定位解析; 

S30、根据所需的时序特征对Xml脚本文件进行非线性拼接前的关键帧重排处理; 

S40、运用基于逆向关键帧序列的拼接点快速定位的方法定位拼接点; 

S50、运用关键帧相似度计算公式判断拼接点是否匹配; 

S60、对阈值ε进行设定,以确定该拼接点是否为最佳拼接点; 

S70、从Xml文档树的角度对Xml文件进行拼接处理。 

上述的基于Xml的数字皮影动画脚本文件的非线性拼接方法,其中,在步骤S10中,包括以下步骤: 

对Xml数据进行解析,获取Xml文件中一条数据的x坐标和y坐标; 

采集加载的swf文件中的所有元件,并存放到一个数组里; 

遍历数组中的每一个元件,判断当前数据中所描述的触控点是否在某一元件MovieClip中,返回当前数据中第一个触控点到元件MovieClip的帧序号。 

上述的基于Xml的数字皮影动画脚本文件的非线性拼接方法,其中,在步骤S20中,对S10中获取的帧序列号进行定位,以得到其当前所在的一条Xml数据,解析Xml数据中的所有信息。 

上述的基于Xml的数字皮影动画脚本文件的非线性拼接方法,其中,所述步骤S30中,包括以下步骤: 

获取用户输入的时序特征值; 

计算原关键帧与当前时序特征值的差值; 

根据上述差值所呈现的函数关系,对Xml脚本文件中每条数据中的关键帧依次重新赋值。 

上述的基于Xml的数字皮影动画脚本文件的非线性拼接方法,其中,在步骤S40中,针对关键帧序列交叉拼接的场景,对交叉部分的每一帧进行帧之间的匹配计算,包括以下步骤: 

获取关键帧序列A的长度len1与关键帧序列B的长度len2; 

在关键帧序列A中,从其末尾关键帧位置len1移动至起始关键帧位置1,对每一个位置k依次循环; 

在关键帧序列B中,计算第1+i个关键帧与关键帧序列A中的第k个关键帧的相似度Sim,其中,若存在相似度满足阈值ε,则终止循环,否则直至循环结束。 

上述的基于Xml的数字皮影动画脚本文件的非线性拼接方法,其中,在步骤S50中,利用欧几里德空间中两个点的距离公式计算相似度: 

dlst(X,Y)-Σi=0n(x1-y1)2,

其中,当n=2时,欧几里德距离就是平面上两个点的距离,当用欧几里德距离表示相似度时,采用以下公式进行转换,当确定距离越小时,则确定相似度越大, 

slm(x,y)=11+d(x,y),

利用下式计算关键帧Gi与Gj的相似度: 

stm(Gt,Gf)=11+D(Gt,Gf)

=11+(xt-xf)2+(yt-yf)2.

上述的基于Xml的数字皮影动画脚本文件的非线性拼接方法,其中,在步骤S60中,根据相似度计算公式以得出阈值ε,若场景中触控点轨迹可以接受的拼接情况与坐标点像素信息相关,设定可以接受的最大像素为2进行计算推导,则利用下式得出阈值ε的取值: 

ϵ=11+22+22

=11+22

≈0.261。 

上述的基于Xml的数字皮影动画脚本文件的非线性拼接方法,其中,在步骤S70中,对Xml文档的树状结构更改操作,包括以下步骤: 

去掉被插入的Xml文档拼接点处的所有右兄弟节点; 

提取预插入的Xml文档拼接点处的所有右兄弟节点,并根据相对应的时序性重排关键帧,将两个Xml文档合并为一个Xml文档。 

本发明还提供一种基于Xml的数字皮影动画脚本文件的非线性拼接装置,包括: 

Xml数据采集模块,用于采集Xml数据,以确定有效的帧序列号; 

Xml数据定位解析模块,用于根据已确定的帧序列号对Xml数据进行定位解析; 

关键帧重排处理模块,用于根据所需的时序特征对Xml脚本文件进行非线性拼接前的关键帧重排处理; 

拼接点定位模块,用于运用基于逆向关键帧序列的拼接点快速定位的方法定位拼接点; 

拼接点辨别模块,用于运用关键帧相似度计算公式判断拼接点是否匹配; 

阈值设定模块,用于对阈值ε进行设定,以确定该拼接点是否为最佳拼接点; 

拼接处理模块,用于从Xml文档树的角度对Xml文件进行拼接处理。 

与现有技术相比,本发明具有以下优点: 

本发明有效的实现了数字皮影动画脚本文件的非线性拼接,涉及的算法提高数据匹配的运算效率,可以应用于通过录制技术生成的Xml脚本文件的动画制作与后期处理,为传统动画制作提供了新的思路; 

本发明将其应用于数字皮影动画脚本文件的后期处理过程中,通过对动画脚本文件的后期修改、拼接合成,最终形成完整的动画脚本文件,再以数字皮影表演平台为依托,展现出更稳定、更流畅的数字皮影动画。 

附图说明

图1是本发明的流程框图; 

图2是本发明中涉及的算法适用的拼接模式图; 

图3是本发明中涉及的算法流程图; 

图4为本发明中装置部分的结构框图。 

主要附图标记说明如下: 

1-Xml数据采集模块      2-Xml数据定位解析模块 

3-关键帧重排处理模块   4-拼接点定位模块 

5-拼接点辨别模块       6-阈值设定模块 

7-拼接处理模块 

具体实施方式

如图1至图3所示,本发明提供一种基于Xml的数字皮影动画脚本文件的非线性拼接方法,包括以下步骤: 

S10、采集Xml数据,以确定有效的帧序列号。 

具体的,包括以下步骤: 

对Xml数据进行解析,获取Xml文件中一条数据的x坐标和y坐标; 

采集加载的swf文件中的所有元件,并存放到一个数组里; 

遍历数组中的每一个元件,判断当前数据中所描述的触控点是否在某一元件MovieClip中,返回当前数据中第一个触控点到元件MovieClip的帧序号。 

S20、根据已确定的帧序列号对Xml数据进行定位解析。 

具体的,在步骤S20中,在数字皮影表演平台上,对皮影动画的生成是按照flash默认的播放速度每秒24帧录制的,当回放脚本文件时,进行关键帧的匹配操作,定位当前获取的帧序号所在的一条Xml数据。 

关键帧匹配操作的描述:根据读取帧序号record[playRecord-1]和当前帧序号playRecord-1进行判断如果一样则根据多点触摸事件信息、键盘事件信息触发相应的事件改变皮影模型的位置和执行对应的特效代码。并将当前的帧序号加一,继续执行上述操作。 

Flash有一个Xml的解析器,所以可以使用Xml接口获取外部数据,在Xml文档树中,可以使用firstChild,lastChild,nextSibling,previousSibling,childNodes来读取Xml对象中的子节点,将取出的节点内容显示出来。 

S30、根据所需的时序特征对Xml脚本文件进行非线性拼接前的关键帧重排处理。 

具体的,时序控制阶段关键帧的重排是指按照用户所需的时序特征对Xml脚本文件进行非线性拼接前的关键帧处理,这一过程的关键帧处理可以分别对每一个Xml脚本文件进行。数字皮影交互平台在录制皮影动画时,由于Xml数据记录的是产生动作时的数据信息,所以人为因素致使第一条数据的关键帧并非从1开始,因此可以按照用户所需对关键帧进行某种时序特征的重排。具体算法描述:获取用户输入的时序特征值,计算原关键帧与当前时序特征值的差值,根据其所呈现的函数关系对Xml脚本文件中每条数据中的关键帧依次重新赋值。其中函数关系为一元一次函数关系:Y=X+A,A代表时序特征值。 

S40、运用基于逆向关键帧序列的拼接点快速定位的方法定位拼接点。 

其中,根据需拼接的关键帧序列的发生时间关系一般分为两种拼接方式:一种是关键帧序列过度拼接,在两段帧序列之间插入新的关键帧生成过度性质的帧序列;另一种是关键帧序列交叉拼接,两段帧序列首尾交叉,对交叉部分的每一帧进行帧之间的匹配计算,进行拼接点的快速定位。 

具体的,针对关键帧序列交叉拼接的场景,对交叉部分的每一帧进行帧之间的匹配计算,包括以下步骤: 

获取关键帧序列A的长度len1与关键帧序列B的长度len2; 

在关键帧序列A中,从其末尾关键帧位置len1移动至起始关键帧位置1,对每一个位置k依次循环; 

在关键帧序列B中,计算第1+i个关键帧与关键帧序列A中的第k个关键帧的相似度Sim,其中,若存在相似度满足阈值ε,则终止循环,否则直至循环结束。 

S50、运用关键帧相似度计算公式判断拼接点是否匹配。 

关键帧信息包括两种,一种是触控点坐标信息,一种是所触控的元件坐标信息,由于此平台对皮影动画的录制时通过事件驱动,针对触控点坐标信 息进行录制的,因此为了提高拼接点自适应匹配的精确度,应对触控点坐标信息进行关键帧相似度的计算,以确定拼接点关键帧。 

具体的,在步骤S50中,利用欧几里德空间中两个点的距离公式计算相似度,假设x,y是n维空间的两个点,它们之间的欧几里德距离是: 

dist(X,Y)-Σi=0n(x1-y1)2,---(1)

当n=2时,欧几里德距离就是平面上两个点的距离,当用欧几里德距离表示相似度时,采用以下公式进行转换。其中,距离越小,相似度越大, 

slm(x,y)=11+d(x,y),---(2)

因此对于关键帧Gi与Gj相似度(距离差异)Sim(Gi,Gj)计算公式为: 

stm(Gt,Gf)=11+D(Gt,Gf)

=11+(xt-xf)2+(yt-yf)2.---(3)

S60、对阈值ε进行设定,以确定该拼接点是否为最佳拼接点。 

具体的,根据相似度计算公式以得出阈值ε,在本发明中描述的场景中触控点轨迹可以接受的拼接情况与坐标点像素信息相关,设定可以接受的最大像素为2进行计算推导,则利用下式得出阈值ε的取值: 

ϵ=11+22+22

=11+22

≈0.261。                        (4) 

S70、从Xml文档树的角度对Xml文件进行拼接处理。 

具体的,在步骤S70中,对Xml文档的树状结构更改操作,包括以下步骤: 

去掉被插入的Xml文档拼接点处的所有右兄弟节点; 

提取预插入的Xml文档拼接点处的所有右兄弟节点,并根据相对应的时序性重排关键帧,将两个Xml文档合并为一个Xml文档。 

如图4所示,本发明还提供一种基于Xml的数字皮影动画脚本文件的非线性拼接装置,其特征在于,包括: 

Xml数据采集模块1,用于采集Xml数据,以确定有效的帧序列号。 

具体的,包括以下步骤: 

对Xml数据进行解析,获取Xml文件中一条数据的x坐标和y坐标; 

采集加载的swf文件中的所有元件,并存放到一个数组里,遍历数组中的每一个元件,判断当前数据中所描述的触控点是否在某一元件MovieClip中,返回当前数据中第一个触控点到元件MovieClip的帧序号。 

Xml数据定位解析模块2,用于根据已确定的帧序列号对Xml数据进行定位解析。 

其中,在数字皮影表演平台上,对皮影动画的生成是按照flash默认的播放速度每秒24帧录制的,当回放脚本文件时,进行关键帧的匹配操作,定位当前获取的帧序号所在的一条Xml数据。 

关键帧匹配操作的描述:根据读取帧序号record[playRecord-1]和当前帧序号playRecord-1进行判断如果一样则根据多点触摸事件信息、键盘事件信息触发相应的事件改变皮影模型的位置和执行对应的特效代码。并将当前的帧序号加一,继续执行上述操作。 

Flash有一个Xml的解析器,所以可以使用Xml接口获取外部数据,在Xml文档树中,可以使用firstChild,lastChild,nextSibling,previousSibling,childNodes来读取Xml对象中的子节点,将取出的节点内容显示出来。 

关键帧重排处理模块3,用于根据所需的时序特征对Xml脚本文件进行非线性拼接前的关键帧重排处理。 

其中,时序控制阶段关键帧的重排是指按照用户所需的时序特征对Xml脚本文件进行非线性拼接前的关键帧处理,这一过程的关键帧处理可以分别对每一个Xml脚本文件进行。数字皮影交互平台在录制皮影动画时,由于Xml数据记录的是产生动作时的数据信息,所以人为因素致使第一条数据的关键帧并非从1开始,因此可以按照用户所需对关键帧进行某种时序特征的重排。具体算法描述:获取用户输入的时序特征值,计算原关键帧与当前时序特征值的差值,根据其所呈现的函数关系对Xml脚本文件中每条数据中的关键帧依次重新赋值。其中函数关系为一元一次函数关系:Y=X+A,A代表时序特征值。 

拼接点定位模块4,用于运用基于逆向关键帧序列的拼接点快速定位的方法定位拼接点。 

其中,根据需拼接的关键帧序列的发生时间关系一般分为两种拼接方式:一种是关键帧序列过度拼接,在两段帧序列之间插入新的关键帧生成过度性 质的帧序列;另一种是关键帧序列交叉拼接,两段帧序列首尾交叉,对交叉部分的每一帧进行帧之间的匹配计算,进行拼接点的快速定位。 

具体的,针对关键帧序列交叉拼接的场景,对交叉部分的每一帧进行帧之间的匹配计算,包括以下步骤: 

获取关键帧序列A的长度len1与关键帧序列B的长度len2; 

在关键帧序列A中,从其末尾关键帧位置len1移动至起始关键帧位置1,对每一个位置k依次循环; 

在关键帧序列B中,计算第1+i个关键帧与关键帧序列A中的第k个关键帧的相似度Sim,其中,若存在相似度满足阈值ε,则终止循环,否则直至循环结束。 

拼接点辨别模块5,用于运用关键帧相似度计算公式判断拼接点是否匹配。 

其中,利用欧几里德空间中两个点的距离公式计算相似度: 

dlst(X,Y)-Σi=0n(x1-y1)2,---(1)

当n=2时,欧几里德距离就是平面上两个点的距离,当用欧几里德距离表示相似度时,采用以下公式进行转换。其中,距离越小,相似度越大, 

slm(x,y)=11+d(x,y),---(2)

因此对于关键帧Gi与Gj相似度(距离差异)Sim(Gi,Gj)计算公式为: 

stm(Gt,Gf)=11+D(Gt,Gf)

=11+(xt-xf)2+(yt-yf)2.---(3)

阈值设定模块6,用于对阈值ε进行设定,以确定该拼接点是否为最佳拼接点。 

其中,根据相似度计算公式以得出阈值ε,在本发明中描述的场景中触控点轨迹可以接受的拼接情况与坐标点像素信息相关,设定可以接受的最大像素为2进行计算推导,则利用下式得出阈值ε的取值: 

ϵ=11+22+22

=11+22

≈0.261。           (4) 

拼接处理模块7,用于从Xml文档树的角度对Xml文件进行拼接处理。 

其中,对Xml文档的树状结构更改操作,包括以下步骤: 

去掉被插入的Xml文档拼接点处的所有右兄弟节点; 

提取预插入的Xml文档拼接点处的所有右兄弟节点,并根据相对应的时序性重排关键帧,将两个Xml文档合并为一个Xml文档。 

惟以上所述者,仅为本发明的较佳实施例而已,举凡熟悉此项技艺的专业人士。在了解本发明的技术手段之后,自然能依据实际的需要,在本发明的教导下加以变化。因此凡依本发明申请专利范围所作的同等变化与修饰,曾应仍属本发明专利涵盖的范围内。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号