CN105957120A - 运动轨迹模拟方法及装置 - Google Patents
运动轨迹模拟方法及装置 Download PDFInfo
- Publication number
- CN105957120A CN105957120A CN201610460149.7A CN201610460149A CN105957120A CN 105957120 A CN105957120 A CN 105957120A CN 201610460149 A CN201610460149 A CN 201610460149A CN 105957120 A CN105957120 A CN 105957120A
- Authority
- CN
- China
- Prior art keywords
- movement locus
- movement
- point
- parameter
- key point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
Abstract
本发明实施例提供运动轨迹模拟方法及装置。包括:提供运动轨迹设置参数设置界面;通过运动轨迹设置参数设置界面获取运动元素的运动轨迹设置参数;使用预置的曲线公式和运动轨迹设置参数,确定运动元素的运动轨迹上的各关键点的位置信息;将所述各关键点的位置信息转换为多帧动画帧中运动元素的位置信息;根据所述每一帧动画帧中运动元素的位置信息生成运动模拟数据,运动轨迹模拟数据用于表征运动元素基于运动轨迹设置参数运动的运动轨迹。在本发明实施例中,使用预置的曲线公式和运动轨迹设置参数,来确定运动元素的运动轨迹,从而使运动轨迹符合客观规律。解决了现有技术中,因人工手动确定关键点导致模拟出的运动轨迹不符合客观规律的问题。
Description
技术领域
本发明涉及计算机技术领域,具体涉及运动轨迹模拟方法及装置。
背景技术
在很多场景下,例如网页设计、游戏画面等动画制作场景,需要对运动元素设计斜抛或平抛运动的动画效果(斜抛或平抛运动可统称为匀变速曲线运动)。
现有的设计方式在设计匀变速曲线运动的动效时,以设计图1的踢足球的动效为例,会由设计人员对运动元素(也即足球)的轨迹进行主观判断,手动确定轨迹上的各关键点(采样点),然后测量得到关键点的坐标位置。例如图1中的坐标点(x0,y0)至(x6,y6)均为设计者手动确定的各关键点坐标位置。
通过关键点可勾画出匀变速曲线运动轨迹。
之后,会根据设计者手动确定的各关键点坐标信息生成模拟数据,上述模拟数据可实现运动元素的运动轨迹的模拟,例如,实现足球斜抛运动轨迹的模拟。
上述设计方式存在如下缺点主观性较大:由于需要手动确定关键点,所以动态效果的表征因人而异,模拟出的运动对象的运动轨迹可能不符合客观规律(物理学原理)。
发明内容
有鉴于此,本发明实施例提供运动轨迹模拟方法及装置,以实现模拟出的运动对象的运动轨迹符合客观规律。
为实现上述目的,本发明实施例提供如下技术方案:
一种运动轨迹模拟方法,包括:
提供运动轨迹设置参数设置界面;
通过所述运动轨迹设置参数设置界面获取运动元素的运动轨迹设置参数,所述运动轨迹设置参数包括初始点位置和终止点位置;
使用预置的曲线公式和运动轨迹设置参数,确定所述运动元素的运动轨迹上的各关键点的位置信息;
将所述各关键点的位置信息转换为多帧动画帧中运动元素的位置信息;
根据所述每一帧动画帧中运动元素的位置信息生成所述运动模拟数据;所述运动轨迹模拟数据用于表征所述运动元素基于所述运动轨迹设置参数运动的运动轨迹。
一种运动轨迹模拟装置,包括:
获取单元,用于提供运动轨迹设置参数设置界面,通过所述运动轨迹设置参数设置界面获取运动元素的运动轨迹设置参数,所述运动轨迹设置参数至少包括初始点位置和终止点位置;
处理单元,用于使用预置的曲线公式和所述运动轨迹设置参数,确定所述运动元素的运动轨迹上的各关键点的位置信息,将所述各关键点的位置信息转换为多帧动画帧中运动元素的位置信息;根据所述每一帧动画帧中运动元素的位置信息生成所述运动模拟数据;所述运动轨迹模拟数据用于表征所述运动元素基于所述运动轨迹设置参数运动的运动轨迹。
在本发明实施例中,使用预置的曲线公式和运动轨迹设置参数,来确定运动元素的运动轨迹,从而使运动轨迹符合客观规律。由此生成的运动轨迹模拟数据也可客观描述运动元素基于运动轨迹设置参数运动的运动轨迹。从而解决了现有技术中,由于需要人工手动确定关键点导致模拟出的运动对象的运动轨迹可能不符合客观规律(物理学原理)的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为踢足球示意图;
图3、图7a、图7b为本发明实施例提供的运动轨迹模拟方法示例性流程图;
图4a、4b、5、9a、9b、10a、10b、11a、11b、12a、12b、13a、13b、17为本发明实施例提供的匀变速运动轨迹示意图;
图16a、16b为本发明实施例提供的实验对比图;
图8、14为本发明实施例提供的设置界面示意图;
图15为本发明实施例提供的动态效果展现图;
图6为本发明实施例提供的运动轨迹模拟数据代码形式示意图;
图18为本发明实施例提供的运动轨迹模拟装置的示例性结构图;
图2为本发明实施例提供的运动轨迹模拟装置的计算机架构示例图。
具体实施方式
本发明可能使用的技术名词如下:
斜抛运动:物体以一定的初速度斜向射出去,在空气阻力可以忽略,只受重力作用的情况下,物体所做的运动叫做斜抛运动;
匀变速曲线运动:匀变速曲线运动是指在运动过程中,加速度方向与速度方向不同且加速度恒定,即加速度大小不变,方向也不变的运动;只受重力作用的情况下,平抛或斜抛运动可统称为匀变速曲线运动;
JavaScript:是一种广泛用于客户端的直译式脚本语言。
本发明提供运动轨迹模拟方法及装置。
上述运动轨迹模拟装置可应用于终端(客户端)中,诸如台式机、移动终端(例如智能手机)、ipad等。更具体的,运动轨迹模拟装置可为安装于终端中的浏览器。
上述运动轨迹模拟装置也可应用于服务器中。
运动轨迹模拟装置可以软件的形式应用于终端或服务器中,或以硬件的形式作为终端或服务器的组成部分。
当以软件形式应用于终端或服务器中时,运动轨迹模拟装置具体可为一应用程序,例如手机APP、终端应用程序等,也可作为某应用程序的组件,其形式可为脚本。
图2示出了上述任一服务器或客户端的一种通用计算机系统结构。
上述计算机系统可包括总线、处理器1、存储器2、通信接口3、输入设备4和输出设备5。处理器1、存储器2、通信接口3、输入设备4和输出设备5通过总线相互连接。其中:
总线可包括一通路,在计算机系统各个部件之间传送信息。
处理器1可以是通用处理器,例如通用中央处理器(CPU)、网络处理器(NetworkProcessor,简称NP)、微处理器等,也可以是特定应用集成电路(application-specificintegrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
处理器1可包括主处理器,还可包括基带芯片、调制解调器等。
存储器2中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器2可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
输入设备4可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
输出设备5可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口3可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
处理器1执行存储器2中所存放的程序,以及调用其他设备,可用于实现本发明实施例所提供的运动轨迹模拟方法中的各个步骤。
上述运动轨迹模拟方法和装置可应用于需要进行轨迹模拟的场景,例如网页设计、游戏画面等动画制作过程中,需要获得运动元素斜抛或平抛运动 的动画效果的场景。
下面将基于上面的本发明涉及的共性方面,对本发明实施例进一步详细说明。
图3示出了运动轨迹模拟装置所执行的运动轨迹模拟方法的一种示例性流程,其至少可包括如下步骤:
301:获取运动元素的运动轨迹设置参数。
其中,上述运动轨迹设置参数至少可包括初始点位置、终止点位置。
其中,初始点是物体(运动元素)的起点。终止点可为物体的落地点(可将物体接触到其他介质的接触点都称为落地点,并不局限于物体落在地面上)。
在现实场景中,物体落地后,会反弹多次,对于反弹情况,上述运动轨迹设置参数还可包括反弹次数M和弹性系数。
因此,请参见图4a,终止点可为第零次反弹的终点(或称为第一次落地点)。
或者,在其他实施例中,请参见图4b,终止点可为第M次反弹(最后一次动弹)的终点。
初始点位置具体可为初始点坐标或像素。一般情况下,初始点为(0,0)。
同理,终止点位置具体可为终止点的坐标或像素。
需要说明的是,在存在反弹的情况下,运动轨迹可M个轨迹段。例如,请参见图4a,反弹次数为5次,则物体的运动轨迹可分为5个轨迹段。
在一个示例中,上述弹性系数表征运动元素在碰到介质时的能量损失。可以理解的是,介质不同,能量损失不同。例如,同一运动物体碰到玻璃板后反弹的能量损失,要小于该物体碰到棉被后反弹的能量损失。
通过设置不同的弹性系数,可模拟物体碰到不同的介质的反弹效果。
当然,在其他示例中,弹性系数所对应的物理含义也可不同,例如,其可表征运动元素在碰到介质时的反弹力大小。
302部分:使用预置的曲线公式和运动轨迹设置参数,确定运动元素的运动轨迹上的各关键点的位置信息。
上述方程式可包括斜抛运动轨迹公式、平抛运动轨迹公式等。本文后续将进行具体介绍式。
关键点可参见图5。由于初始点的位置信息是已知的,关键点可包括初始点,当然,关键点也可包括初始点。
关键点的个数可以是系统的缺省参数。或者,也可由使用者自行设置。因此,上述运动轨迹设置参数也可包括关键点个数N。
对于运动轨迹包括M段轨迹段的情况,关键点个数N可为在任一轨迹段中的关键点个数。例如,仍请参见图5,每一轨迹段可包括6个关键点(不含初始点),即N=6。
或者,关键点个数N也可为在M个轨迹段中的关键点的总个数。仍以图5为例,此时,关键点个数N=6*4=24个。
需要说明的是,同一轨迹段上的关键点,在时间轴上的分布是均匀的。关键点在时间轴上的分布均匀。
303部分:将上述各关键点的位置信息转换为多帧动画帧中运动元素的位置信息;根据每一帧动画帧中运动元素的位置信息生成运动模拟数据。
运动轨迹模拟数据用于表征运动元素基于运动轨迹设置参数运动的运动轨迹。
在一个示例中,上述运动轨迹模拟数据可以是代码的形式。例如请参见图6,其示出了一段代码,图6中被虚线框起来的部分是各关键点的位置信息。
由于目前代码可用多种语言编写,例如JavaScript,因此,在实际中,针对各种语言可有不同版本的运动轨迹模拟装置。
当然,上述运动轨迹模拟数据也可以是数组、数据表等形式。本申请对其不进行限制。
在动画展现中,运动轨迹模拟数据可用于表征多帧动画帧中的运动元素、基于运动轨迹设置参数运动的运动轨迹。
则在另一个示例中,上述生成运动轨迹模拟数据可具体包括:
将各关键点的位置信息转换为每一帧动画帧中运动元素的位置信息,再根据每一帧动画帧中运动元素的位置信息生成运动模拟数据。
这是因为运动元素在动画帧中的初始点一般不是坐标(0,0),此时,可对各关键点的位置信息进行坐标平移,将各关键点的位置信息转换为每一帧动画帧中运动元素的位置信息。
可见,在本发明实施例中,使用符合物理学运动规律的运动方程式和运动轨迹设置参数,来确定运动元素的运动轨迹,从而使运动轨迹符合客观规律。由此生成的运动轨迹模拟数据也可客观描述运动元素基于运动轨迹设置参数运动的运动轨迹。从而解决了现有技术中,由于需要人工手动确定关键点导致模拟出的运动对象的运动轨迹可能不符合客观规律(物理学原理)的问题。
图7a示出了运动轨迹模拟装置所执行的运动轨迹模拟方法的另一种示例性流程,在本实施例中,预置的曲线公式可包括二次Beizer(贝塞尔曲线)方程式,而运动元素的运动轨迹可为二次Beizer曲线。
平抛和斜抛都是抛物线,而二次贝塞尔Beizer曲线也是抛物线。二次贝塞尔Beizer曲线可用于表征平抛和斜抛以及重力加速度(或加速度)与竖直方向不平行(水平有阻力)的曲线运动。
二次Bezier曲线公式为:B(t)=(1-t)2P0+2t(1-t)P1+t2P2;
t=0对应Beizer曲线的起始点,t=1对应Beizer曲线的终止点。
P0-P2这3个特征点在平面或在三维空间定义了2次Bezier曲线。其中,P0为起始点,P2为终止点,P1为中间点(或称为走向控制点)。
二次Bezier曲线起始于P0,走向P1,终止于P2。需要说明的是,一般二次Bezier曲线不经过P1,P1点只提供方向。
基于二次Beizer曲线,上述运动轨迹模拟方法可包括如下步骤:
在700部分:运动轨迹模拟装置提供设置界面。
在一个示例中,若运动轨迹模拟装置安装于终端(客户端)中,则向终端的显示屏输出上述设置界面。
在另一个示例中,若运动轨迹模拟装置安装于服务器端,则可向用户使用的终端(客户端)的浏览器发送设置界面。
请参见图8,上述设置界面包括可移动的终止点1和控制点2。
图8中的锚点坐标即是控制点2的坐标。
终止点1和控制点2的位置均可手动调节。在702部分将介绍如何手动调节终止点1和控制点2。
在一个示例中,设置界面还可包括反弹次数设置区域和弹性系数设置区域。更具体的,请参见图8,反弹次数设置区域包括反弹次数设置滑块,此外,反弹次数设置区域中还可有提示框,用于提示推荐的反弹次数,以及反弹次数的选取范围。
弹性系数设置区域与反弹次数设置区域类似,可包括弹性系数滑块,此外,弹性系数设置区域中还可有提示框,用于提示推荐的弹性系数,以及弹性系数的选取范围。
用户通过输入设备(一般为鼠标、键盘,对于智能终端,还可是触摸屏)可控制反弹次数设置滑块和弹性系数设置滑块滑动,从而实现对反弹次数和弹性系数的设置(输入)。
当然,在发明其他实施例中,反弹次数设置区域还可有其他形式,例如提供下拉选项,以供选择反弹次数。或者直接提供输入框,以供输入反弹次数。
同理,弹性系数设置区域可有其他形式,例如提供下拉选项,以供选择弹性系数。或者直接提供输入框,以供输入弹性系数。
在另一个示例中,设置界面还可包括关键点设置区域。更具体的,请参见图8,关键点设置区域包括关键点设置滑块,此外,关键点设置区域中还可有提示框,用于提示推荐的关键点个数,以及关键点个数的选取范围。当然,关键点设置区域还可有其他形式,例如提供下拉选项,以供选择关键点个数。或者直接提供输入框,以供输入关键点个数。
在701部分:获取用户通过输入设备输入的关键点个数、反弹次数、弹性系数。
例如,请参见图9a和图9b,每一段轨迹段的关键点为6个,与每一段轨迹段的关键点为13个相比,关键点越多,运动轨迹曲线与现实更贴切,更平滑自然。
在动画显示中,关键点个数还会影响动画的精度和准确度。动画通过连续播放多帧动画帧,以实现物体运动的动态效果。表现物体平抛或斜抛的多帧动画帧的个数,与关键点的个数是相等的。
关键点个数的多少可影响运动轨迹的精确程度。在水平方向上,运动元素从一个关键点以线性匀速方式运动至下一个关键点,关键点个数越多,所描绘出的运动轨迹越趋近于现实世界的实际运动轨迹,所实现的动画精度越高,但动画性能越稍有下降。
至于反弹次数,不同的弹性系数达到的反弹效果也不尽相同。弹性系数可间接反映反弹面的材质,例如,请参见图10a,假设弹性系数为8时,模拟反弹面材质为玻璃,玻璃材质反弹面能量损失少,弹性系数大,反弹效果明显。
而请参见图10b,假设弹性系数为3时,模拟反弹面材质为毛毯,毛面材质反弹面能量损失多,弹性系数少,反弹效果不明显。
在一个示例中,可令使用公式1-P×K来计算损失的能量(百分比形式)。其中K表示弹性系数,P为调整系数。P的取值可有多种,只要能满足在K取最大值时,令P×K=1即可。
至于K的取值范围,可为0-10,也可为0-20,也可为0-100,本领域技术人员可进行灵活设置,在此不作赘述。
上述输入设备一般为鼠标、键盘,对于智能终端,还可是触摸屏。
当然,使用者也可不对关键点个数、反弹次数、弹性系数进行设置,直接采用默认设置。
所谓默认设置可为出厂设置,也可是记录的历史设置值。
在702部分:获取输入设备输入的终止点的位置信息。
上述输入设备一般为鼠标、键盘,对于智能终端,还可是触摸屏。
以鼠标输入为例,运动轨迹模拟装置会进行事件监听,当监听到鼠标有点击终止点的事件时,令终止点追随鼠标的位移而位移,松开鼠标,则终止点的位置就被确定了。
当然,在本发明其他实施例中,也可直接输入终止点的位置。
请参见图11a和图11b,终止点位置不同,导致运动轨迹也发生了变化。
在703部分:获取输入设备输入的二次贝塞尔曲线的控制点的位置信息。
上述输入设备一般为鼠标、键盘,对于智能终端,还可是触摸屏。
以鼠标输入为例,运动轨迹模拟装置会进行事件监听,当监听到鼠标有点击控制点的事件时,令控制点追随鼠标的位移而位移,松开鼠标,则控制点的位置就被确定了。
当然,使用者也可不对终止点的位置和控制点的位置进行设置,而直接采用默认设置。
所谓默认设置可为出厂设置,也可是记录的历史设置值。
请参见图12a和图12b,控制点位置不同,导致运动轨迹也发生了变化。
此外,在其他实施例中,上述初始点的位置也可手动调节。
在7051部分:根据二次贝塞尔曲线方程式、上述初始点位置,上述终止点的位置和控制点位置,确定以初始点为P0,以终止点为P2,以控制点为的二次贝塞尔曲线上的各关键点的位置信息。
请参见图13a,确定各关键点的位置信息的方式可包括:
以图13a中轨迹段1为例,PA表示二次贝塞尔曲线的控制点坐标,PB表示终止点坐标,P0表示初始点坐标,B(t)表示坐标,则二次贝塞尔曲线方程式为:
B(t)=(1-t)2P0+2t(1-t)PA+t2PB。
由于一般P0为(0,0),所以可简化为B(t)=2t(1-t)PA+t2PB(方程式1)。
假定轨迹段1所花费时间为T(为方便起见,可取T=1),有N个关键点,则第i个关键点对应的时刻为iT/N。
将iT/N代入B(t)=2t(1-t)PA+t2PB(方程式1),则可得到第i个关键点对应的坐标。
对于P0不为原点的,也可先按照B(t)=2t(1-t)PA+t2PB计算,计算出来再平移即可。
至于反弹的轨迹段,其也是二次贝塞尔曲线,其关键点是根据二次贝塞尔曲线方程式、反弹公式来确定的。反弹公式也属于预置的曲线公式。本发明后续将加以介绍。
701-704部分是前述的301部分的细化。
在706部分:将各关键点的位置信息转换为多帧动画帧中运动元素的位置信息,根据每一帧动画帧中运动元素的位置信息生成运动模拟数据。
706部分与前述303部分相类似,在此不作赘述。
图7b示出了运动轨迹模拟装置所执行的运动轨迹模拟方法的另一种示例性流程,其至少可包括如下步骤:
在700部分:运动轨迹模拟装置提供设置界面。
在一个示例中,若运动轨迹模拟装置安装于终端(客户端)中,则向终端的显示屏输出上述设置界面。
在另一个示例中,若运动轨迹模拟装置安装于服务器端,则可向用户使用的终端(客户端)的浏览器发送设置界面。
仍请参见图8,上述设置界面可包括终止点1和二次贝塞尔曲线的控制点2。
与图7a不同的是,在本实施例中,二次贝塞尔曲线的控制点2可用于调节初始投掷角度、初始速度和加速度。
在一个示例中,设置界面还可包括反弹次数设置区域和弹性系数设置区域。相关内容请参见前述记载,在此不作赘述。
在另一个示例中,设置界面还可包括关键点设置区域。相关内容请参见前述记载,在此不作赘述。
在一个示例中,设置界面上还可包含运动轨迹模拟数据展示区域。例如,请参见图14的代码展示部分。
运动轨迹模拟数据展示区域中还可包括“复制按钮”,以方便对运动轨迹模拟数据进行复制。
在701部分:获取用户通过输入设备输入的关键点个数、反弹次数、弹性系数。
相关内容请参见前述记载,在此不作赘述。
在702部分:获取输入设备输入的终止点的位置信息。
相关内容请参见前述记载,在此不作赘述。
在703部分:获取输入设备输入的二次贝塞尔曲线的控制点的位置信息。
相关内容请参见前述记载,在此不作赘述。
在704部分:至少根据终止点的位置、二次贝塞尔曲线的控制点的位置以及初始点位置,计算初始投掷角度、初始速度和加速度。
请参见图13b的轨迹段1,假定控制点与初始点的连线与水平轴的夹角为θ,加速度与水平轴的夹角为β,初速为v0。SA表示某关键点在水平方向上距原点的位移,SB表示某关键点在竖直方向上距原点的位移。
PA表示二次贝塞尔曲线的控制点的位置(xA,yA),PB表示终止点坐标(xB,yB)。
斜抛方程式:
二次贝塞尔曲线方程式:
则通过比较斜抛方程式和二次贝塞尔曲线方程式可得:
在方程式2中,xA、yA、xB、yB已知,则可计算得到θ、β、v0和a。
701-704部分是前述的301部分的细化。
上述θ、β、v0和a可认为也属于运动轨迹设置参数。
705和706部分分别与302部分和303部分相类似,在此不作赘述。
在本发明其他实施例中,在执行706部分之前,还可包括如下步骤:
步骤A:获取播放总时间。
在一个示例中,可在设置界面上部署播放总时间设置区域,通过设置界面输入播放总时间。具体实现方式可为:播放总时间设置区域包括总时间设置滑块,例如,请参见图14,图14中的运动总时间即为播放总时间。此外,播放总时间设置区域中还可有提示框,用于提示推荐的播放总时间,以及播放总时间的选取范围。当然,播放总时间设置区域还可有其他形式,例如提供下拉选项,以供选择播放总时间。或者直接提供输入框,以供输入播放总时间。
在706部分之后,还可包括如下步骤:
步骤B:根据播放总时间播放多帧动画帧。
需要说明的是,播放总时间与运动元素的重量和大小无关,其取决于所需要的动画效果。
假定有40帧动画帧,则通过设置这40帧动画帧的播放总时间,可实现按照不同的速度播放这40帧动画帧。
例如,设置播放总时间为1秒,则在1秒内播放完上述40帧动画帧。设置播放总时间为2秒,则在2秒内播放完上述40帧动画帧。
在一个示例中,可在设置界面上部署演示控件,使用者操作演示控件可实现根据播放总时间播放多帧动画帧。
例如,请参见图14,图14中的轨迹演示即为演示控件。
下面举例说明上述运动轨迹模拟方法及装置在动画设计中如何发挥作用。
请参见图15,设计稿如图15所示,其要展现的内容包括:
运动元素为肥皂;
肥皂本身质感光滑;
肥皂掉落后受重力作用作斜抛运动;
肥皂在掉落到接近底部时飘过的云朵会接住肥皂并实现反弹;
经过三次反弹后退出页面展示区域。
根据上述展现内容可对运动轨迹设置参数设置如下:
终止点为肥皂与云朵碰撞点:也即,云朵漂浮过程与肥皂下落过程的碰撞点坐标。
二次贝塞尔曲线的控制点用于设置:肥皂的初始投掷角度(方向),即图15中运动轨迹的初始运动切线方向。
初始速度和加速度:结合整体运动位移和效果确定。
反弹次数:为了渲染云朵卡通可爱形象,塑造其为Q弹材质,用反弹3次来描绘云朵和肥皂的弹性质地。因此将反弹次数设置为3。
弹性系数:由于肥皂光滑,云朵Q弹,碰撞过程能量损失较小,故设置弹性系数K为较大值7。
在一个示例中,能量损失使用1-0.05×K来计算,则弹性系数取值为7所表征的物理含义是:碰撞过程损失65%的能量(1-0.05×7=65%)。
而若碰撞情况为肥皂掉落在地毯上时,由于地毯表面粗糙,可设置弹性系数K为1,则能量(冲量)损失为95%(1-0.5×1=95%),则后续所形成的反弹轨迹也非常平缓。
运动总时间(即播放总时间):运动总时间可根据实际动画效果进行调整获得。
关键点个数:关键点越多,运动轨迹越拟合现实运动效果,但动画性能越稍有下降;反之亦然。因此,可通过权衡动画效果和性能来确定关键点个数。
下面将结合运动轨迹设置参数介绍曲线公式。
关键点位置:
对于平抛运动,可根据自由落体相关原理(公式3)计算出每个关键点的坐标位置:
其中,Sx表示在关键点在第一方向(一般为水平)上的位移,Sy表示在第一方向(一般为竖直)上的位移,a表示加速度,t表示时间,vx表示初始速度在第一方向轴上的分速度。
对于斜抛运动,在忽略空气阻力的条件下,假定Vo为抛出速度(初始速度),θ为速度与第一方向(水平面)的夹角,g为重力加速度(也即前述的加速度a),则:
第一方向(水平方向)的速度是:
V1=V0·cosθ
第二方向(竖直方向)的速度是:
V2=V0·sinθ-gt
第一方向(水平方向)的位移方程是:
x=V0·t·cosθ
第二方向(竖直方向)的位移方程是:
则斜抛运动可由下式(公式4)计算出每个关键点的坐标位置:
其中,y表示第二方向上的位移,x表示第一方向上的位移。
考虑到反弹次数,需要注意的是,若一开始为平抛运动,物体在落地后,经反弹会做斜抛运动。则Vo表示每一轨迹段的初始速度。
反弹次数和弹性系数:
无论反弹多少次,运动元素遇到介质时,其入射角度的大小与反弹角度的大小相等,反弹过程中能量损失可由弹性系数计算得到。
前已述及了如何根据弹性系数计算能量损失。
假定能量损失为E%,则垂直方向上位移减少E%,等同于反弹后到下一次反弹前的水平方向位移变为上一次完整的斜抛运动的水平位移的等同于竖直方向上的速度分量变为反弹前一瞬间的也等同于反弹后到下一次反弹前的运动时间变为上一次的则其按照反弹公式5进行反弹,在此基础上结合斜抛运动公式可计算出相应关键点的位置。
其中的S′y表示上一次竖立方向上的位移,t′表示上一轨迹段的总运动时间。t′和t都可以进行归一化处理。例如,可用%表示。
以垂直方向上位移减少二分之一为例,假定弹性系数k取值介于1~10,则公式3具体变为公式4:
为证明本发明以上所有实施例可实现零误差模拟运动轨迹,从网络上找到了数码相机记录的平抛运动轨迹的真实照片(图16a)。
请参见图16b,通过本发明模拟的运动轨迹与照片中的运动轨迹进行比对,可看出本发明模拟的运动轨迹的精确性。
此外,需要说明的是,除了常规的平抛和斜抛,请参见图17,通过调整终止点与控制点,本发明还可模拟不太常规的平抛或斜抛。图17示出了在强风作用下,运动元素的运动轨迹。其所运用的公式,还是前述介绍的公式。
图18示出了上述实施例中所涉及的资源管理装置的一种可能的结构示意图,包括:
获取单元1801,用于提供运动轨迹设置参数设置界面,通过所述运动轨迹设置参数设置界面获取运动元素的运动轨迹设置参数,所述运动轨迹设置参数至少包括初始点位置和终止点位置;
处理单元1802,用于使用预置的曲线公式和所述运动轨迹设置参数,确定所述运动元素的运动轨迹上的各关键点的位置信息,以及,根据所述各关键点的位置信息,生成运动轨迹模拟数据,所述运动轨迹模拟数据用于表征所述运动元素基于所述运动轨迹设置参数运动的运动轨迹。
获取单元1801可用于执行图3所示的301部分,图7a或图7b所示的700-703部分。
处理单元1802可用于执行图3所示的302-303部分,执行图7a所示7051-706部分或图7b所示704-706,以及前述的步骤A和步骤B。
上述所有实施例所涉及的运动轨迹模拟装置/服务器/终端的另一种可能的结构示意图可参见图2,包括:
总线、处理器1、存储器2、通信接口3、输入设备4和输出设备5。处理器1、存储器2、通信接口3、输入设备4和输出设备5通过总线相互连接。其中:
总线可包括一通路,在计算机系统各个部件之间传送信息。
处理器1可以是通用处理器,例如通用中央处理器(CPU)、网络处理器(NetworkProcessor,简称NP)、微处理器等,也可以是特定应用集成电路(application-specificintegrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
处理器1可包括主处理器,还可包括基带芯片、调制解调器等。
存储器2中保存有执行本发明技术方案的程序或脚本,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。脚本则通常以文本(如ASCII)保存,只在被调用时进行解释或编译。
更具体的,存储器2可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
输入设备4可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
输出设备5可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口3可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
控制器/处理器可用于执行图3、图7a、图7b涉及运动轨迹模拟装置/服务器/终端的处理过程和/或用于本申请所描述的技术的其他过程。控制器/处理器也可用于实现前述处理单元1802的功能。
通信接口则用于支持运动轨迹模拟装置/服务器/终端与其他装置进行通信。例如,用于支持运动轨迹模拟装置/服务器/终端与图3、图7a、图7b所示实施例中的其他装置进行通信。
可以理解的是,图1仅仅示出了运动轨迹模拟装置/服务器/终端的简化设计。在实际应用中,运动轨迹模拟装置/服务器/终端可以包含任意数量的发射器,接收器,处理器,控制器,存储器,通信接口等,而所有可以实现本发明的资源管理装置/服务器/理财平台都在本发明的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、WD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种运动轨迹模拟方法,其特征在于,所述方法包括:
提供运动轨迹设置参数设置界面;
通过所述运动轨迹设置参数设置界面获取运动元素的运动轨迹设置参数,所述运动轨迹设置参数包括初始点位置和终止点位置;
使用预置的曲线公式和运动轨迹设置参数,确定所述运动元素的运动轨迹上的各关键点的位置信息;
将所述各关键点的位置信息转换为多帧动画帧中运动元素的位置信息;
根据所述每一帧动画帧中运动元素的位置信息生成运动模拟数据;所述运动轨迹模拟数据用于表征所述运动元素基于所述运动轨迹设置参数运动的运动轨迹。
2.如权利要求1所述的方法,其特征在于,还包括:
获取播放总时间;
根据所述播放总时间播放所述多帧动画帧。
3.如权利要求1所述的方法,其特征在于,
所述预置的曲线公式包括二次贝塞尔曲线方程式,所述运动元素的运动轨迹为二次贝塞尔曲线。
4.如权利要求3所述的方法,其特征在于,
所述获取运动元素的运动轨迹设置参数包括:
获取所述终止点的位置;
获取所述二次贝塞尔曲线的控制点的位置;
所述使用预置的曲线公式和运动轨迹设置参数,确定所述运动元素的运动轨迹上的各关键点的位置信息包括:
至少根据二次贝塞尔曲线方程式、所述初始点位置,所述终止点的位置和控制点位置,确定以所述初始点,所述终止点和所述控制点为特征点的二次贝塞尔曲线上的各关键点的位置信息。
5.如权利要求4所述的方法,其特征在于,所述运动轨迹设置参数还包括反弹次数M和弹性系数;所述设置界面包括反弹次数设置区域和弹性系数设置区域。
6.如权利要求1-5任一项所述的方法,其特征在于,所述运动轨迹设置参数还包括关键点个数N。
7.如权利要求6所述的方法,其特征在于,
所述运动轨迹包括M个轨迹段;
所述关键点个数N为在任一轨迹段中的关键点个数,或者,
所述关键点个数N为在所述M个轨迹段中的关键点的总个数。
8.如权利要求7所述的方法,其特征在于,所述终止点为第零次反弹的终点,或者,所述终止点为第M次反弹的终点。
9.如权利要求1所述的方法,其特征在于,
所述弹性系数表征所述运动元素在碰到介质时的能量损失。
10.一种运动轨迹模拟装置,其特征在于,包括:
获取单元,用于提供运动轨迹设置参数设置界面,通过所述运动轨迹设置参数设置界面获取运动元素的运动轨迹设置参数,所述运动轨迹设置参数至少包括初始点位置和终止点位置;
处理单元,用于使用预置的曲线公式和所述运动轨迹设置参数,确定所述运动元素的运动轨迹上的各关键点的位置信息,将所述各关键点的位置信息转换为多帧动画帧中运动元素的位置信息;根据所述每一帧动画帧中运动元素的位置信息生成所述运动模拟数据;所述运动轨迹模拟数据用于表征所述运动元素基于所述运动轨迹设置参数运动的运动轨迹。
11.如权利要求10所述的装置,其特征在于,
所述获取单元还用于,获取播放总时间;
所述处理单元还用于,根据所述播放总时间播放所述多帧动画帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610460149.7A CN105957120B (zh) | 2016-06-22 | 2016-06-22 | 运动轨迹模拟方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610460149.7A CN105957120B (zh) | 2016-06-22 | 2016-06-22 | 运动轨迹模拟方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105957120A true CN105957120A (zh) | 2016-09-21 |
CN105957120B CN105957120B (zh) | 2021-09-21 |
Family
ID=56903694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610460149.7A Active CN105957120B (zh) | 2016-06-22 | 2016-06-22 | 运动轨迹模拟方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105957120B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106422330A (zh) * | 2016-10-14 | 2017-02-22 | 网易(杭州)网络有限公司 | 单位的寻路方法及装置 |
CN106815476A (zh) * | 2017-01-13 | 2017-06-09 | 腾讯科技(深圳)有限公司 | 一种确定应用中发射体飞行轨迹的方法及装置 |
CN107158701A (zh) * | 2017-05-16 | 2017-09-15 | 广州四三九九信息科技有限公司 | 出射力度的提示方法和装置 |
CN107945253A (zh) * | 2017-11-21 | 2018-04-20 | 腾讯数码(天津)有限公司 | 一种动画效果实现方法、装置及存储设备 |
CN108227840A (zh) * | 2018-01-09 | 2018-06-29 | 广东欧珀移动通信有限公司 | 电子装置及相关产品 |
CN108764791A (zh) * | 2018-05-22 | 2018-11-06 | 四川众联航泰科技有限公司 | 物资投放吊舱投放时机计算方法 |
CN110152294A (zh) * | 2019-06-13 | 2019-08-23 | 郑州阿帕斯科技有限公司 | 一种运动轨迹的生成方法和装置 |
CN110496393A (zh) * | 2019-08-21 | 2019-11-26 | 网易(杭州)网络有限公司 | 虚拟对象的运动轨迹控制方法及装置、介质、电子设备 |
CN110935172A (zh) * | 2019-12-30 | 2020-03-31 | 腾讯科技(深圳)有限公司 | 虚拟对象处理方法、装置、系统及其存储介质 |
CN111836110A (zh) * | 2020-07-23 | 2020-10-27 | 腾讯科技(深圳)有限公司 | 比赛视频的展示方法、装置、电子设备及存储介质 |
CN112948515A (zh) * | 2021-02-07 | 2021-06-11 | 张帆 | 基于定位技术的轨迹映射方法、装置、设备及存储介质 |
CN113268301A (zh) * | 2021-05-25 | 2021-08-17 | 北京北大方正电子有限公司 | 动画生成方法、装置、设备及存储介质 |
CN113364988A (zh) * | 2021-08-10 | 2021-09-07 | 深圳市爱图仕影像器材有限公司 | 拍摄场景的模拟方法、装置及终端设备 |
CN113655813A (zh) * | 2021-10-20 | 2021-11-16 | 北京微纳星空科技有限公司 | 一种飞行纠偏控制方法、系统、存储介质和电子设备 |
CN115202495A (zh) * | 2022-09-08 | 2022-10-18 | 深圳市湘凡科技有限公司 | 鼠标硬件的模拟移动方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794081A (zh) * | 2005-12-30 | 2006-06-28 | 无锡永中科技有限公司 | 幻灯片中对象运动的控制方法 |
CN102750722A (zh) * | 2011-08-11 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种运动模型轨迹的生成方法及系统 |
US20130219344A1 (en) * | 2012-02-17 | 2013-08-22 | Autodesk, Inc. | Editable motion trajectories |
CN104318600A (zh) * | 2014-10-10 | 2015-01-28 | 无锡梵天信息技术股份有限公司 | 一种使用Bézier曲线实现角色行走轨迹动画的方法 |
-
2016
- 2016-06-22 CN CN201610460149.7A patent/CN105957120B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794081A (zh) * | 2005-12-30 | 2006-06-28 | 无锡永中科技有限公司 | 幻灯片中对象运动的控制方法 |
CN102750722A (zh) * | 2011-08-11 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种运动模型轨迹的生成方法及系统 |
US20130219344A1 (en) * | 2012-02-17 | 2013-08-22 | Autodesk, Inc. | Editable motion trajectories |
CN104318600A (zh) * | 2014-10-10 | 2015-01-28 | 无锡梵天信息技术股份有限公司 | 一种使用Bézier曲线实现角色行走轨迹动画的方法 |
Non-Patent Citations (1)
Title |
---|
张开玮等: "《动画短片制作》", 31 October 2011, 清华大学出版社 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106422330A (zh) * | 2016-10-14 | 2017-02-22 | 网易(杭州)网络有限公司 | 单位的寻路方法及装置 |
CN106422330B (zh) * | 2016-10-14 | 2019-10-29 | 网易(杭州)网络有限公司 | 单位的寻路方法及装置 |
CN106815476A (zh) * | 2017-01-13 | 2017-06-09 | 腾讯科技(深圳)有限公司 | 一种确定应用中发射体飞行轨迹的方法及装置 |
CN107158701A (zh) * | 2017-05-16 | 2017-09-15 | 广州四三九九信息科技有限公司 | 出射力度的提示方法和装置 |
CN107158701B (zh) * | 2017-05-16 | 2018-08-31 | 广州四三九九信息科技有限公司 | 出射力度的提示方法和装置 |
CN107945253A (zh) * | 2017-11-21 | 2018-04-20 | 腾讯数码(天津)有限公司 | 一种动画效果实现方法、装置及存储设备 |
CN108227840A (zh) * | 2018-01-09 | 2018-06-29 | 广东欧珀移动通信有限公司 | 电子装置及相关产品 |
CN108764791A (zh) * | 2018-05-22 | 2018-11-06 | 四川众联航泰科技有限公司 | 物资投放吊舱投放时机计算方法 |
CN110152294A (zh) * | 2019-06-13 | 2019-08-23 | 郑州阿帕斯科技有限公司 | 一种运动轨迹的生成方法和装置 |
CN110496393A (zh) * | 2019-08-21 | 2019-11-26 | 网易(杭州)网络有限公司 | 虚拟对象的运动轨迹控制方法及装置、介质、电子设备 |
CN110935172A (zh) * | 2019-12-30 | 2020-03-31 | 腾讯科技(深圳)有限公司 | 虚拟对象处理方法、装置、系统及其存储介质 |
CN110935172B (zh) * | 2019-12-30 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 虚拟对象处理方法、装置、系统及其存储介质 |
CN111836110A (zh) * | 2020-07-23 | 2020-10-27 | 腾讯科技(深圳)有限公司 | 比赛视频的展示方法、装置、电子设备及存储介质 |
CN111836110B (zh) * | 2020-07-23 | 2024-03-15 | 腾讯科技(深圳)有限公司 | 比赛视频的展示方法、装置、电子设备及存储介质 |
CN112948515A (zh) * | 2021-02-07 | 2021-06-11 | 张帆 | 基于定位技术的轨迹映射方法、装置、设备及存储介质 |
CN113268301A (zh) * | 2021-05-25 | 2021-08-17 | 北京北大方正电子有限公司 | 动画生成方法、装置、设备及存储介质 |
CN113268301B (zh) * | 2021-05-25 | 2024-02-13 | 北京北大方正电子有限公司 | 动画生成方法、装置、设备及存储介质 |
CN113364988A (zh) * | 2021-08-10 | 2021-09-07 | 深圳市爱图仕影像器材有限公司 | 拍摄场景的模拟方法、装置及终端设备 |
CN113364988B (zh) * | 2021-08-10 | 2021-11-12 | 深圳市爱图仕影像器材有限公司 | 拍摄场景的模拟方法、装置及终端设备 |
CN113655813A (zh) * | 2021-10-20 | 2021-11-16 | 北京微纳星空科技有限公司 | 一种飞行纠偏控制方法、系统、存储介质和电子设备 |
CN115202495A (zh) * | 2022-09-08 | 2022-10-18 | 深圳市湘凡科技有限公司 | 鼠标硬件的模拟移动方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105957120B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105957120A (zh) | 运动轨迹模拟方法及装置 | |
US11113887B2 (en) | Generating three-dimensional content from two-dimensional images | |
US11790587B2 (en) | Animation processing method and apparatus, computer storage medium, and electronic device | |
US10846906B2 (en) | Animation using keyframing and projected dynamics simulation | |
CN104217454B (zh) | 一种视频驱动的人脸动画生成方法 | |
US20180041692A1 (en) | Automatic Camera Adjustment Method and Electronic Device | |
Kazi et al. | Motion amplifiers: sketching dynamic illustrations using the principles of 2D animation | |
CN100557639C (zh) | 基于关键帧和时空约束的三维虚拟人体运动生成方法 | |
CN106527684A (zh) | 基于增强现实技术进行运动的方法及装置 | |
US10885691B1 (en) | Multiple character motion capture | |
Roediger et al. | Fast simulations of gas sloshing and cold front formation | |
Yeh et al. | Efficient camera path planning algorithm for human motion overview | |
CN107823881A (zh) | 特效显示方法及装置 | |
CN110148072A (zh) | 运动课程评分方法与系统 | |
CN102128570B (zh) | 一种基于粒子系统的运载火箭尾焰仿真方法 | |
Shi et al. | Restoration of traditional Chinese shadow play‐Piying art from tangible interaction | |
CN104732570B (zh) | 一种图像生成方法及装置 | |
Nomoto et al. | Supporting precise manual-handling task using visuo-haptic interaction | |
US20090309882A1 (en) | Large scale crowd physics | |
CN106547339A (zh) | 计算机设备的控制方法和装置 | |
Wang et al. | Action snapshot with single pose and viewpoint | |
Cross | Vertical bounce of a plastic egg | |
Cai et al. | Immersive interactive virtual fish swarm simulation based on infrared sensors | |
Choi et al. | Estimating material properties of deformable objects by considering global object behavior in video streams | |
Cross | Why some balls spin faster than others when they bounce |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |