本发明涉及动作为文件播放,特别是涉及一种动作文件插值播放优化方法及播放系统。
背景技术:
1、包括黑暗乘骑、飞行影院、4d影院等具有多自由度体验动作的游乐设备,其驱动设备的控制都是由动作文件播放系统来完成的。动作文件播放系统将设计好的动作文件作为系统的输入,控制驱动设备完成体验动作。一套流畅可控的动作文件播放系统,是包括黑暗乘骑、飞行影院、4d影院等具有多自由度体验动作的游乐设备的重要组成部分。
2、动作文件通常是由一系列带时间戳的动作关键帧构成。例如一个简单的动作文件:包含三条关键帧,每条关键帧包含1个动作指令:当时间为0时,指令值为0;当时间为1时,指令值为2;当时间为3时,指令值为1。若以横坐标表示时间,纵坐标表示指令值,则这个简单的动作文件的图像如图4所示。
3、播放动作文件时,若将关键帧直接输出给驱动装置,会导致驱动装置发生阶跃动作,显然这是不合适的。因此实际应用时需要在关键帧之间进行插值平滑,求出关键帧之间的动作值之后,才能流畅的控制完成体验动作。
4、最简单的插值方法是线性插值法,就是在相邻的两个关键帧之间使用一次方程进行插值。如“cn201811179894.x一种模拟施工进度的关键帧动画制作方法和装置”公开的技术方案,但是,该方法会导致关键帧处插值曲线不平滑,会导致动作出现明显的顿挫,因此实际应用较少。如图5,显示的是使用线性插值法对关键帧进行插值运算后得到的插值曲线,从图5中可以看出,在时间为1秒的关键帧处,曲线的速度会发生跳变,体现在控制上就是动作会发生较为明显的顿挫。
5、另一种常用的插值方法还有使用s型加减速插值法在相邻两个关键帧之间进行插值运算。在动作文件播放中,一个物体从起点运动到终点要经历加速、匀速、减速的过程,传统的s型加减速算法包含加加速段、匀加速段、减加速段、匀速段、加减速段、匀减速段、减减速度段共计7段,考虑乘客在体验中,对匀加速段、匀速段、匀减速段的体验感觉不明显,因此通常实际应用过程中会使用4段的s型加减速算法。如图6至图8显示的是使用s型加减速插值法对关键帧进行插值运算后得到的插值曲线及其速度曲线和加速度曲线。从图中可看出,s型加减速插值法可以做到在关键帧1秒处其曲线速度和加速度是连续的,理论上不会造成顿挫。但实际使用过程中发现,因为在关键帧1秒处,其运动方向需要换向,考虑到机械间隙和静摩擦的因素,会有一个控制死区。而此时的加速度绝对值为最小值0,不利于驱动机构快速摆脱控制死区,体验动作会有一个明显的迟滞停顿,不利于体验动作的流畅性。
6、在实际应用中,还有一种常用的插值方法:三次样条插值法。该插值法的优点是综合考虑所有的关键帧,然后为两个相邻的关键帧选择合适的三次插值函数,从而连接所有的关键帧。该方法的优点是插值曲线位置、速度和加速度均处处连续,且在关键帧换向处加速度不为0,避免出现s型加减速插值法存在的关键帧处控制死区迟滞停顿的问题。
7、然而在实际的动作文件设计过程中,设计人员在写动作文件时只能保证写入的关键帧是在执行机构的可运行范围内。而且为了让体验动作尽可能的刺激,都会将执行机构的可运行范围用满,即关键帧的值域与执行机构的可运行范围非常接近。图9显示的是使用三次样条插值法对关键帧进行插值运算后得到的插值曲线。从图9中可以看出,三次样条插值曲线的值会超出所给出的关键帧的值,实际应用过程中可能会造成动作执行机构超出其运动范围,有损坏执行机构的危险。
8、综上可以得知,现有动作文件播放系统使用的三种插值方法均存在不同的问题:线性插值因速度和加速度不连续会导致播放控制出现较为明显的顿挫;s型加减速插值因执行机构存在控制死区会导致播放控制出现迟滞停顿;三次样条曲线插值因插值曲线值域超出关键帧给出的值域,执行机构存在损坏的风险。因此,选择一种合适的关键帧插值方法对实现动作文件播放系统的流畅性和可控性很重要。
技术实现思路
1、针对上述现有技术的不足,本发明提供了一种动作文件插值播放优化方法及播放系统,以解决上述问题。
2、为了解决上述技术问题,本发明采用了如下的技术方案:
3、一种动作文件插值播放优化方法,包括:
4、s1、设计第一插值函数,所述第一插值函数对应的插值曲线为光滑连续的,且当所述插值曲线的速度为0时,在速度为0的关键帧的前后两帧之间的所述插值曲线的加速度最大且不为0,且所述插值曲线的值域等于关键帧的值域;
5、s2、将动作文件中相邻的两条关键帧使用所述第一插值函数来进行插值平滑。
6、作为优化,所述第一插值函数具体为:
7、
8、其中,(t0 y0)、(tt yt)分别为相邻的两条关键帧所对应的图像点,π为圆周率常数,t是定时器的当前时间,ys为所需要求取的第一插值函数的插值命令值。
9、作为优化,所述第一插值函数具体为:
10、
11、
12、其中,(t0y0)、(ttyt)分别为相邻的两条关键帧所对应的图像点,π为圆周率常数,t是定时器的当前时间,ys为所需要求取的第一插值函数的插值命令值。
13、本发明还公开了一种动作文件插值播放系统,采用上述的一种插值播放优化方法中的第一插值函数对动作文件进行优化,包括:
14、操作设备,用于操作人员将操作指令输入到动作文件播放系统中,以控制所述动作文件播放系统的设置与输出;所述动作文件播放系统的设置与输出具体包括播放、停止、更新与切换动作文件、设置动作体验等级等操作;
15、显示设备,用于显示所述动作文件播放系统的工作状态;如播放进度、当前播放的动作文件序号、当前是否正在播放以及播放系统的错误和警告信息;
16、驱动装置,用于根据控制信号驱动游乐设备执行机构,实现体验动作;
17、控制器,用于存储动作文件、接收操作指令、插值运算、输出显示信号、输出驱动装置的控制信号,以完成动作文件播放系统的流程控制功能。
18、作为优化,所述控制器包括:
19、存储器,用于存储动作文件,将动作文件中的带时间戳的关键帧数据按照时间的顺序存储在控制器的寄存器中;
20、计时器,用于记录动作文件播放系统的播放进度。当所述动作文件播放系统开始播放时,计时器被清零,同时开始计时,计时器的当前时间即动作文件播放系统的播放进度;
21、操作信号采集模块,用于采集操作设备的操作指令及输入数据,操作人员设置好动作文件播放系统并执行启动操作后,操作信号采集模块按照设定的步骤进行工作;
22、插值控制模块,完成主要的控制功能,包括动作文件读取、播放流程控制、插值运算;
23、控制信号输出模块,用于在获得插值控制模块输出的当前插值指令后,结合设置的动作文件播放系统的参数,计算得到驱动装置的控制指令,并将所述控制指令输出给所述驱动装置;
24、显示信号输出模块,用于将所述插值控制模块的状态信号输出给所述显示设备进行显示。
25、作为优化,所述操作信号采集模块按照设定的步骤进行工作具体为:
26、a1、通过控制器的输入接口和a/d模块获取在所述操作设备设置的播放/停止指令以及输入数据,所述输入数据包括当前的动作文件号和动作体验等级,并将所述输入数据输入到对应的寄存器中;
27、a2、判断所述播放/停止指令为播放指令或停止指令,若为播放指令,则进入a3,否则,进入a6;
28、a3、判断所述动作文件播放系统是否处于待机状态,若是,则跳转至a4,否则,返回a1;
29、a4、初始化所述计时器,使所述计时器开始计时;
30、a5、启动插值控制模块;
31、a6、判断所述动作文件播放系统是否处于播放状态,若是,则停止插值运算模块,否则,跳转至a1。
32、作为优化,所述插值控制模块包括:
33、初始化单元,用于初始化所述控制器;
34、播放流程控制单元,用于控制所述动作文件播放系统的播放运行状态;
35、插值运算单元,用于使用第一插值函数对起点关键帧和终点关键帧进行插值计算;
36、插值输入更新单元,用于更新插值运算的起点寄存器和终点寄存器;
37、插值停止单元,用在需要中断当前播放流程的情形中,根据接收到的停止操作指令时的插值位置和插值速度,使用匀减速的方式控制驱动装置缓慢停下来。
38、作为优化,所述初始化单元的具体工作步骤为:
39、b1、根据设置的动作文件号打开对应的动作文件;
40、b2、读取动作文件的第一条关键帧数据放入到插值运算的起点寄存器(t0 y0)中;
41、b3、读取动作文件的第二条关键帧数据放入到插值运算的终点寄存器(tt yt)中;
42、b4、更新动作文件读取指针至第二条关键帧;
43、b5、初始化结束。
44、作为优化,所述播放流程控制单元、插值运算单元、插值输入更新单元和插值停止单元的具体工作步骤为:
45、c1、读取所述计时器的当前时间t;
46、c2、所述播放流程控制单元判断当前时间t与终点寄存器时间tt关系,若t≥tt,则跳转至c3,否则跳转至c5;
47、c3、所述播放流程控制单元判断动作文件读取情况:若动作文件中关键帧已全部被读取,则跳转至c4,否则跳转至c6;
48、c4、关闭动作文件,关闭计时器,退出动作文件播放流程;
49、c5、所述插值输入更新单元将终点寄存器数据更新至起点寄存器中;
50、c6、所述插值输入更新单元更新动作文件读取指针指向下一条关键帧并读取,将读取到的关键帧数据写入到终点寄存器中;
51、c7、所述播放流程控制单元判断当前是否有停止指令存在,若没有,则跳转至c8,否则,跳转至c10开始匀减速刹车;
52、c8、所述插值运算单元使用第一插值函数进行插值计算,并将当前时间对应的插值数据y记录到当前插值寄存器中,供控制信号输出模块使用,所述第一插值函数为:
53、
54、c9、返回c1;
55、c10、所述插值停止单元获取匀减速刹车开始时刻,当前定时器的时间ts、第一插值函数的插值命令值ys;
56、c11、所述插值停止单元通过如下公式计算开始刹车时刻的瞬时速度值vs:
57、
58、c12、所述插值停止单元通过所述操作信号采集模块获取停止加速度参数as,并通过如下公式算出刹车时间t和刹车距离s:
59、
60、
61、c13、所述插值停止单元使用如下匀减速公式进行匀减速计算,并将当前时间对应的减速命令值数据y记录到当前插值寄存器中,供控制信号输出模块使用,所述匀减速公式为:
62、
63、其中,ys为第一插值函数的插值命令值,(t0 y0)、(tt yt)分别为相邻的两条关键帧所对应的图像点,π为圆周率常数,
64、c14、当计时器时间t≥ts+t时,转到c4,结束插值控制模块的工作流程,否则转入步骤c13直至刹车完成。
65、作为优化,所述播放流程控制单元、插值运算单元、插值输入更新单元和插值停止单元的具体工作步骤为:
66、c1、读取所述计时器的当前时间t;
67、c2、所述播放流程控制单元判断当前时间t与终点寄存器时间tt关系,若t≥tt,则跳转至c3,否则跳转至c5;
68、c3、所述播放流程控制单元判断动作文件读取情况:若动作文件中关键帧已全部被读取,则跳转至c4,否则跳转至c6;
69、c4、关闭动作文件,关闭计时器,退出动作文件播放流程;
70、c5、所述插值输入更新单元将终点寄存器数据更新至起点寄存器中;
71、c6、所述插值输入更新单元更新动作文件读取指针指向下一条关键帧并读取,将读取到的关键帧数据写入到终点寄存器中;
72、c7、所述播放流程控制单元判断当前是否有停止指令存在,若没有,则跳转至c8,否则,跳转至c10开始匀减速刹车;
73、c8、所述插值运算单元使用第一插值函数进行插值计算,并将当前时间对应的插值数据y记录到当前插值寄存器中,供控制信号输出模块使用,所述第一插值函数为:
74、
75、
76、c9、返回c1;
77、c10、所述插值停止单元获取匀减速刹车开始时刻,当前定时器的时间ts、第一插值函数的插值命令值ys;
78、c11、所述插值停止单元通过如下公式计算开始刹车时刻的瞬时速度值vs:
79、
80、c12、所述插值停止单元通过所述操作信号采集模块获取停止加速度参数as,并通过如下公式算出刹车时间t和刹车距离s:
81、
82、
83、c13、所述插值停止单元使用如下匀减速公式进行匀减速计算,并将当前时间对应的减速命令值数据y记录到当前插值寄存器中,供控制信号输出模块使用,所述匀减速公式为:
84、
85、其中,ys为第一插值函数的插值命令值,(t0 y0)、(tt yt)分别为相邻的两条关键帧所对应的图像点,π为圆周率常数;
86、c14、当计时器时间t≥ts+t时,转到c4,结束插值控制模块的工作流程,否则转入步骤c13直至刹车完成。
87、本发明的有益效果是:
88、通过本发明设计的第一插值函数,可以使动作播放系统的整个播放过程中的插值曲线是光滑连续的,这样可以保证执行机构在受控运动时,不会因为控制指令不连续或速度指令跳变而发生明显的顿挫;同时,本发明设计的第一插值函数的插值曲线速度为0时,其加速度大于加速度最大且不为0,这样可以使执行机构尽快的摆脱控制死区,减少迟滞停顿;且本发明设计的第一插值函数的插值曲线的值域等于关键帧的值域,既没有缩小关键帧的值域从而影响体验动作的刺激性,也没有扩大插值曲线的值域,避免了执行机构超出运动范围的危险。