CN110075525B - 游戏中虚拟物体的控制方法及装置、电子设备 - Google Patents
游戏中虚拟物体的控制方法及装置、电子设备 Download PDFInfo
- Publication number
- CN110075525B CN110075525B CN201910374561.0A CN201910374561A CN110075525B CN 110075525 B CN110075525 B CN 110075525B CN 201910374561 A CN201910374561 A CN 201910374561A CN 110075525 B CN110075525 B CN 110075525B
- Authority
- CN
- China
- Prior art keywords
- virtual object
- inclination angle
- balance
- game
- virtual
- 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.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/58—Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/803—Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Abstract
本发明公开了一种游戏中虚拟物体的控制方法及装置、电子设备。其中,该方法包括:获取虚拟物体在运行过程中的倾斜角度;计算虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分;基于倾斜角度和倾斜角度误差积分计算平衡力值;通过平衡力值调整虚拟物体的倾斜度,以使虚拟物体恢复至平衡位置。本发明解决了相关技术中虚拟物体在游戏场景中行驶时无法保持平衡的技术问题。
Description
技术领域
本发明涉及游戏控制技术领域,具体而言,涉及一种游戏中虚拟物体的控制方法及装置、电子设备。
背景技术
在相关技术中,很多现实物体需要通过计算平衡力度,以保持平衡行驶,例如,摩托车、自行车、陀螺等容易在行驶过程中由于惯性等因素出现摔倒的情况,这样就需要及时回复现实物体的平衡,以继续行驶;将现实物体对应到虚拟世界中的虚拟物体,例如,游戏中的虚拟自行车、虚拟轿车、虚拟摩托车、虚拟陀螺等,既要体现其行驶速度,还要体现虚拟物体在行驶过程中的惯性,这样虚拟物体就很容易出现摔倒、侧翻等情况,为了保持游戏的进度,需要维持虚拟物体的平衡不会因为重力而倒地平衡地运作。当前,在维持虚拟保持平衡时,包括两种情况:第一种,外力施加,即在物体倾斜之后,向其相反的方向施加一个力,把物体拉回平衡位置,但是由于不同的物体、不同的质量,在倒地的不同时刻,会产生不同的重力速度,所以也需要一个不同的力来维持物体的平衡,但是该种直接施加相反力的方式,仅仅会调出相同的力度,这样会使得物体仍然有额外惯性力量导致无法保持平衡,要么是施加的力过小难以维持物体的衡,要么是力过大造成物体不停地左右摇摆;第二种,通过复杂力度计算,即根据虚拟物体的虚拟重力、角速度、加速度等庞杂的计算模型去实时确定适用的力,来施加在物体上,但是这种方式,需要复杂的计算过程,不利于游戏的运行效率,特别是当这些物体行驶起来后,在行驶过程中,由于转弯而使得车身倾斜的情况下,又需要考虑离心力,角速度等情况下,则需要更加繁杂的计算。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种游戏中虚拟物体的控制方法及装置、电子设备,以至少解决相关技术中虚拟物体在游戏场景中行驶时无法保持平衡的技术问题。
根据本发明实施例的一个方面,提供了一种游戏中虚拟物体的控制方法,包括:获取虚拟物体在运行过程中的倾斜角度;计算所述虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分;基于所述倾斜角度和所述倾斜角度误差积分计算平衡力值;通过所述平衡力值调整所述虚拟物体的倾斜度,以使所述虚拟物体恢复至平衡位置。
进一步地,获取虚拟物体在运行过程中的倾斜角度的步骤,包括:获取所述虚拟物体在运行过程中的第一中轴向量和游戏中虚拟场景图像的第二中轴向量;基于所述第一中轴向量和所述第二中轴向量,计算所述倾斜角度。
进一步地,计算所述虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分的步骤,包括:获取所述虚拟物体前一次处于平衡位置的时间点和当前时间点;确定所述虚拟物体前一次处于平衡位置的时间点所对应的帧场景图像中倾斜角度至当前时间点所对应的帧场景图像中倾斜角度之间,每两个帧场景图像倾斜角度的误差值;累加每两个帧场景图像倾斜角度的误差值,以得到从前一次到达平衡位置后到当前时间点的多个倾斜角度之间的误差积分。
进一步地,基于所述倾斜角度和所述倾斜角度误差积分计算平衡力值的步骤,包括:获取所述虚拟物体的倾斜角度的微分,其中,所述微分用于指示对所述虚拟物体恢复平衡时的惯性调整值;根据所述倾斜角度、所述倾斜角度误差积分和所述倾斜角度的微分,计算所述平衡力值。
进一步地,获取所述虚拟物体的倾斜角度的微分的步骤,包括:获取当前帧场景图像的倾斜角度一和上一帧场景图像的倾斜角度二;计算所述倾斜角度一和所述倾斜角度二之间的角度差值;基于所述角度差值,计算所述虚拟物体的倾斜角度的微分。
进一步地,所述控制方法还包括:获取所述虚拟物体的虚拟质量值,其中,所述虚拟质量值指示所述虚拟物体在游戏中虚拟场景中的质量;利用所述虚拟物体的虚拟质量值确定第一常数系数、第二常数系数和第三常数系数,其中,所述第一常数系数用于调整所述倾斜角度,所述第二常数系数用于调整所述倾斜角度误差积分,所述第三常数系数用于调整所述倾斜角度的微分。
进一步地,在所述虚拟物体恢复至平衡位置之后,所述控制方法还包括:将所述虚拟物体的倾斜角度误差积分恢复至预设数值。
根据本发明实施例的另一方面,还提供了一种游戏中虚拟物体的控制装置,包括:获取单元,用于获取虚拟物体在运行过程中的倾斜角度;第一计算单元,用于计算所述虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分;第二计算单元,用于基于所述倾斜角度和所述倾斜角度误差积分计算平衡力值;调整单元,用于通过所述平衡力值调整所述虚拟物体的倾斜度,以使所述虚拟物体恢复至平衡位置。
进一步地,所述获取单元包括:第一获取模块,用于获取所述虚拟物体在运行过程中的第一中轴向量和游戏中虚拟场景图像的第二中轴向量;第一计算模块,用于基于所述第一中轴向量和所述第二中轴向量,计算所述倾斜角度。
进一步地,所述第一计算单元包括:第二获取模块,用于获取所述虚拟物体前一次处于平衡位置的时间点和当前时间点;第一确定模块,用于确定所述虚拟物体前一次处于平衡位置的时间点所对应的帧场景图像中倾斜角度至当前时间点所对应的帧场景图像中倾斜角度之间,每两个帧场景图像倾斜角度的误差值;第二确定模块,用于累加每两个帧场景图像倾斜角度的误差值,以得到从前一次到达平衡位置后到当前时间点的多个倾斜角度之间的误差积分。
进一步地,所述第二计算单元包括:第三获取模块,用于获取所述虚拟物体的倾斜角度的微分,其中,所述微分用于指示对所述虚拟物体恢复平衡时的惯性调整值;第二计算模块,用于根据所述倾斜角度、所述倾斜角度误差积分和所述倾斜角度的微分,计算所述平衡力值。
进一步地,所述第三获取模块包括:第一获取子模块,用于获取当前帧场景图像的倾斜角度一和上一帧场景图像的倾斜角度二;第一计算子模块,用于计算所述倾斜角度一和所述倾斜角度二之间的角度差值;第二计算子模块,用于基于所述角度差值,计算所述虚拟物体的倾斜角度的微分。
进一步地,所述控制装置还包括:第四获取模块,用于获取所述虚拟物体的虚拟质量值,其中,所述虚拟质量值指示所述虚拟物体在游戏中虚拟场景中的质量;第三确定模块,用于利用所述虚拟物体的虚拟质量值确定第一常数系数、第二常数系数和第三常数系数,其中,所述第一常数系数用于调整所述倾斜角度,所述第二常数系数用于调整所述倾斜角度误差积分,所述第三常数系数用于调整所述倾斜角度的微分。
进一步地,所述控制装置还包括:恢复单元,用于在所述虚拟物体恢复至平衡位置之后,将所述虚拟物体的倾斜角度误差积分恢复至预设数值。
根据本发明实施例的另一方面,还提供了一种平衡控制器,包括:至少一个中央处理器,所述中央处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的游戏中虚拟物体的控制方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的游戏中虚拟物体的控制方法。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的游戏中虚拟物体的控制方法。
在本发明实施例中,采用获取虚拟物体在运行过程中的倾斜角度,计算虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分,基于倾斜角度和倾斜角度误差积分计算平衡力值,最后通过平衡力值调整虚拟物体的倾斜度,以使虚拟物体恢复至平衡位置。通过得到虚拟物体在运行过程中的倾斜角度和虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分得到一个平衡力值,能直接根据不同帧场景图像中的虚拟物体的倾斜角度和倾斜角度误差积分去计算出大小合适的力,以维持虚拟物体的平衡,从而解决相关技术中虚拟物体在游戏场景中行驶时无法保持平衡的技术问题,保证虚拟物体能在多种游戏场景下一直保持平衡。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的游戏中虚拟物体的控制方法的流程图;
图2是根据本发明实施例的一种确定倾斜角度的示意图;
图3是根据本发明实施例的另一种可选的实现虚拟物体平衡的方法的示意图;
图4是根据本发明实施例的一种可选的游戏中虚拟物体的控制装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于用户理解本发明,下面对本发明各实施例中涉及到的部分术语或名词做出解释:
PID,是计算平衡力值中的倾斜角度、积分、微分的简称,对应于平衡控制器,通过实时确定一个平衡力值,施加于虚拟物体的倾斜一侧,以保持虚拟物体的平衡。
Roll角,即倾斜角度,用于在虚拟物体发生倾斜之后,产生一个平衡力,反作用于物体的倾斜方向上,以将虚拟世界中的物理体拉回至平衡位置。
本发明下述实施例可以应用于各种虚拟世界中的物理体,例如,游戏中各种摩托车、小轿车、自行车、陀螺等,通过计算出一个平衡力值,将该平衡力值对应的平衡力反作用于物体的倾斜方向上,从而实时调整物体,控制物体实时保持在平衡位置。该平衡力值对应的平衡力适用于任何虚拟世界中的物理体,对物理体在任何时刻都能进行检测,并确定出一个平衡力值。本发明实施例中计算平衡力值的计算量较小,仅仅需要考虑每帧场景图像中的倾斜角度、以及多帧场景图像的倾斜角度积分和倾斜角度的微分,即可确定该平衡力值,无需复杂的计算,对应于游戏场景中,能够减少各种终端设备的工作量,且准确度较高。相对于相关技术需要复杂计算量才能得到虚拟物理体的平衡力值的情况,本发明明显简化了确定平衡力值的步骤。下面通过各个实施例来说明本发明。
根据本发明实施例,提供了一种游戏中虚拟物体的控制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的游戏中虚拟物体的控制方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取虚拟物体在运行过程中的倾斜角度;
步骤S104,计算虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分;
步骤S106,基于倾斜角度和倾斜角度误差积分计算平衡力值;
步骤S108,通过平衡力值调整虚拟物体的倾斜度,以使虚拟物体恢复至平衡位置。
通过上述步骤,可以采用获取虚拟物体在运行过程中的倾斜角度,计算虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分,基于倾斜角度和倾斜角度误差积分计算平衡力值,最后通过平衡力值调整虚拟物体的倾斜度,以使虚拟物体恢复至平衡位置。在该实施例中,可以通过得到虚拟物体在运行过程中的倾斜角度和虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分得到一个平衡力值,通过该平衡力值确定出一个维持虚拟物体保持平衡的力,无需考虑虚拟物体的质量,也无需考虑虚拟物体当前的情况(如是否在行驶中,是否转弯,有无产生离心力),且计算量较小,能直接根据不同帧场景图像中的虚拟物体的倾斜角度和倾斜角度误差积分去计算出大小合适的力,以维持虚拟物体的平衡,从而解决相关技术中虚拟物体在游戏场景中行驶时无法保持平衡的技术问题,保证虚拟物体能在多种游戏场景下一直保持平衡。
本发明实施例中涉及到平衡力值是对于当前帧场景图像而言,对于每个游戏而言,玩家在体验游戏时,会包括较长时间的游戏过程,这时就会产生多帧场景图像,例如,以0.5秒为间隔,取虚拟物体在一段时间段内每隔0.5秒的帧场景图像,这样就可以得到多帧场景图像。
本发明实施例中的虚拟物体都是指虚拟世界(如游戏场景、VR场景、AR场景)中的物理体。对于虚拟物体的类型不做限定,包括但不限于:车辆、陀螺等。
下面对上述各步骤进行详细说明。
在本发明实施例中,分别确定虚拟物体的倾斜角度、倾斜角度积分、倾斜角度微分,以确定出平衡力度。
步骤S102,获取虚拟物体在运行过程中的倾斜角度。
一种可选的,在本发明实施例中,倾斜角度可以是指翻滚roll角。可选的,获取虚拟物体在运行过程中的倾斜角度的步骤,包括:获取虚拟物体在运行过程中的第一中轴向量和游戏中虚拟场景图像的第二中轴向量;基于第一中轴向量和第二中轴向量,计算倾斜角度。
上述第一中轴向量可以是指虚拟物体的实时自身向量(如摩托车中的中轴向量),该第一中轴向量与虚拟物体的中心竖线平行的向量或者与中心横线平行的向量,虚拟物体如果发生倾斜,则第一中轴向量也会发生偏移;而上述第二中轴向量可以指示虚拟物体需要保持平衡时的向量线,其可以是指2d或3d世界中的场景中轴向量,该第二中轴向量可以指示与屏幕或者虚拟场景边缘界线平行的向量,该第二中轴向量可以为竖向量或横向量,以3d虚拟场景为例,通过终端展示的虚拟场景会产生一个屏幕界面平行的立体图像,在截图后,会出现一个与界面边缘平行的平行线,其作用于物体的中心线上的向量即可以设置为第二中轴向量。图2是根据本发明实施例的一种确定倾斜角度的示意图,如图2所示,包括左中右三个小图,每个小图中都有一个虚拟物体-摩托车,通过roll角表示摩托车的倾斜角度,通过该图2可以看出,存在三个第一中轴向量和对应的三个第二中轴向量,其中,第一中轴向量都是在摩托车的竖向中心线,第二中轴线都是竖向(不会发生改变),如果摩托车需要保持平衡,则将其第一中轴向量与第二中轴向量重合或者处于一个接近度大于预设重合度的位置。在图2中左侧小图中,第一中轴向量位于第二中轴向量的左侧,此时可以确定摩托车发生左侧倾斜,中间小图中,第一中轴向量与第二中轴向量平行,此时摩托车处于平衡位置,右侧小图中,第一中轴向量位于第二中轴向量右侧,此时可以确定摩托车发生右侧倾斜。上述图2中第一中轴向量和第二中轴向量形成的夹角即为倾斜角度,也就是roll 角,左侧小图和右侧小图中roll角都大于0,该角度即指示摩托车的倾斜角度;而中间小图中的roll角为0,该角度指示摩托车位于平衡位置。
在本发明一种可选的实施例,通过第一公式表示倾斜角度,其中,第一公式为:kp*roll(t),kp为第一常数系数,roll(t)为每帧场景图像中的倾斜角度。其中, 1第一常数系数kp和roll(t)确定每一帧场景图像虚拟物体的roll角,通过该roll 角确定一个反作用力(即下述平衡力值对应的平衡力),以把虚拟物体拉起来,该反作用力可以施加在虚拟物体上,而且,当虚拟物体恢复平衡的过程中,这个力也需要逐渐变小,所以这个力随着roll角的变化慢慢变小。即倾斜角度会随着虚体物体的恢复平衡慢慢变小。如图2中左侧小图所示,在虚拟物体上有一个作用向右上的平衡力,随着这个力变化,虚拟物体的倾斜角度(roll角)慢慢变小。
步骤S104,计算虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分。
对于每一个游戏而言,其在运行过程中,可能会有多个虚拟物体,而随着时间的推进,虚拟物体可能会发生运动,这样虚拟物体就会发生倾斜。对于每个虚拟物体,在游戏中都会有多帧场景图像,各帧场景图像之间,虚拟物体的倾斜角度都会有差别,这时就需要计算出倾斜角度的误差积分。
在一种可选的实施例中,计算虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分的步骤,包括:获取虚拟物体前一次处于平衡位置的时间点和当前时间点;确定虚拟物体前一次处于平衡位置的时间点所对应的帧场景图像中倾斜角度至当前时间点所对应的帧场景图像中倾斜角度之间,每两个帧场景图像倾斜角度的误差值;累加每两个帧场景图像倾斜角度的误差值,以得到从前一次到达平衡位置后到当前时间点的多个倾斜角度之间的误差积分。
通过对前一次虚拟物体处于平衡位置到当前帧的倾斜角度的持续积分,确定出多帧场景图像中的倾斜角度的误差总积分。该倾斜角度误差积分是指得到一个持续增涨的力,以让虚拟物体恢复到平衡位置,该倾斜角度误差积分的数值一般是从预设数值 (如0)开始积分的,可能会存在,刚开始时,虚拟物体先是继续倾斜,在该倾斜角度误差积分所形成的力增大之后才慢慢恢复虚拟物体的平衡。
在本发明一种可选的实施例,通过第二公式来表示从前一次到达平衡位置后到当前帧场景图像的多个倾斜角度之间的误差积分,其中,
本发明实施例中考虑到虚拟物体倾斜或者侧翻时,特别是在运动行驶的过程中发生倾斜或者侧翻时,由于地形、速度、加速度和离心力都不一样,导致虚拟物体产生倒地的动量也会不一样,这样每帧场景图像都不一样,针对这种情况,本发明实施例中,可以使用一个第二常数系数ki持继对倾斜角度(roll角)做积分累加,若虚拟物体持续发生倾斜或侧翻,则倾斜角度误差积分越来越大,这样产生的平衡力也将越来越大,若平衡力足够大了,能够把虚拟物体拉起来了,随着物体的恢复,倾斜角度变小,该倾斜角度误差积分的累加幅度也会越来越小,从而做到弹性的平衡约束。
另一种可选的,还可以对所述第二公式做离散处理,得到离散后的第一处理公式:
通过上述两个步骤,可以分别确定出虚拟物体的倾斜角度以及倾斜角度的误差积分,然后基于这两项内容,结合倾斜角度的微分就可以确定出平衡力值。
步骤S106,基于倾斜角度和倾斜角度误差积分计算平衡力值。
在本发明一种可选的实施例,基于倾斜角度和倾斜角度误差积分计算平衡力值的步骤,包括:获取虚拟物体的倾斜角度的微分,其中,微分用于指示对虚拟物体恢复平衡时的惯性调整值;根据倾斜角度、倾斜角度误差积分和倾斜角度的微分,计算平衡力值。
对于倾斜角度的微分,是指考虑到虚拟物体在恢复时的惯性,通过前面两项(倾斜角度和倾斜角度误差积分)可以把虚拟物体拉取到平衡位置,如虚拟物体发生左倾,则可以通过前面两项将虚拟物体从左倾拉回到平衡位置;但是在拉回过程中,由于虚拟物体拉取的惯性,物体很可能又会发生右倾,如此虚拟物体将会在前面两项的力的作用下,左右摇摆抖动,难以平衡。本发明实施例考虑这种情况,对倾斜角度做微分,通过倾斜角度的微分产生一个阻力,该阻力随着倾斜角度的变化而变化,在这个阻力的作用下,使用虚拟物体可以恢复到平衡位置之后,停止,而不是继续往另一边继续倾斜。本发明实施例中,考虑了倾斜角度的误差积分和倾斜角度的微分,所以物体在恢复到平衡位置时,角速度越大阻力越大,反之越小,从而保证虚拟物体在恢复平衡位置,产生一种弹性力度,减少虚拟物体的摆动,达到弹性通用的效果。
在本发明另一种可选的实施例中,获取虚拟物体的倾斜角度的微分的步骤,包括:获取当前帧场景图像的倾斜角度一和上一帧场景图像的倾斜角度二;计算倾斜角度一和倾斜角度二之间的角度差值;基于角度差值,计算虚拟物体的倾斜角度的微分。
对于上述虚拟物体的微分,可以通过第三公式来表述,其中,第三公式为:kd为第三常数系数,为虚拟物体的倾斜角度的微分,倾斜角度的微分为游戏中当前帧场景图像的倾斜角度与上一帧场景图像的倾斜角度之间的角度差值。
通过上述确定虚拟物体的倾斜角度、倾斜角度误差积分、倾斜角度的微分,综合考虑虚拟物体的倾斜度和惯性,灵活、弹性产生一个作用力,不断变动平衡力值,通过该平衡力值对应的平衡力恢复虚拟物体至平衡位置,且产生的左右摆动会很小。而对应于上述倾斜角度的第一公式、对应于倾斜角度误差积分的第二公式以及倾斜角度的微分的第三公式,分别计算出三个数值,累加这三个数值即可得到平衡力值。即可以根据第一公式、第二公式和第三公式,确定预设控制公式,并利用预设控制公式计算所述平衡力值,其中,预设控制公式为:
将该预设控制公式简化后,可以得到:
上述第一公式可以指示平衡控制器PID中的P项,第二公式可以指示平衡控制器中PID中的I项,第三公式可以指示平衡控制PID中的D项,分别确定出虚拟物体的倾斜角度、倾斜角度误差积分和倾斜角度的微分。
通过该预设控制公式,可以确定出一个作用于虚拟物体上的平衡力值,将该平衡力值对应的平衡力施加于虚拟物体上做平衡控制。
步骤S108,通过平衡力值调整虚拟物体的倾斜度,以使虚拟物体恢复至平衡位置。
在本发明实施例中,上述控制方法还包括:获取虚拟物体的虚拟质量值,其中,虚拟质量值指示虚拟物体在游戏中虚拟场景中的质量;利用虚拟物体的虚拟质量值确定第一常数系数、第二常数系数和第三常数系数,其中,第一常数系数用于调整倾斜角度,第二常数系数用于调整倾斜角度误差积分,第三常数系数用于调整倾斜角度的微分。
即可以调整上述第一公式、第二公式和第三公式中的常数系数,以适应不同虚拟物体,不同的虚拟物体的质量不同,调整出的三个常数系数也是不相同的,这三个常数系数根据虚拟物体的质量来调,调出一个可以接受的参数之后,可通用于游戏所用的虚拟物体物理引擎,例如,确定出第一常数系数kp中p为600,第二常数系数ki 中的i为10,第三常数系数kd中的d为800;且第一常数系数、第二常数系数和第三常数系数中的k项是一个固定值,可以自适应调整。这三个系数的调整,可以实现虚拟物体在游戏中的不同效果,例如,第一常数系数中的p调大,k调小,则可以实现一个能快速恢复平衡的虚拟物体;而如果第一常数系数的p项调小,k调小,则可以实现一个能慢速恢复平衡的虚拟物体。通过调整这三个常数系数来调整虚拟物体的平衡力值,进而调整如何恢复虚拟物体至平衡位置,调整方式更加灵活,而且准确度更高。
在本发明另一种可选的实施例中,在虚拟物体恢复至平衡位置之后,控制方法还包括:将虚拟物体的倾斜角度误差积分恢复至预设数值。可选的预设数值可以是开发人员或者其它用户自行设置的,例如,设置预设数值为0,1等,在误差积分清零后,可以在下次出现倾斜时,重新进行误差积分运算。
图3是根据本发明实施例的另一种可选的实现虚拟物体平衡的方法的示意图,如图3所示,该方法包括:
S31,确定虚拟物体发生倾斜。虚拟物体发生倾斜可能是由于虚拟物体的自身重力发生倾斜,也可能是由于虚拟场景中的其它因素(如地面不平、有阻碍物)导致。
S32,以平衡控制器产生的平衡力维持虚拟物体的平衡。
其中,该步骤S32分为三部分,即S321,计算虚拟物体的倾斜角度roll角,通过PID中P项:kp*roll角得到;S322,计算虚拟物体的倾斜角度误差积分,通过PID 中的I项:ki*roll角误差积分得到,确定虚拟物体从上一次恢复平衡后到当前帧的 roll角的积分;S323,计算虚拟物体的倾斜角度的微分,通过PID中的D项:kd*roll 角微分得到,当前帧roll角的微分,也就是当前帧的roll角与上一帧的roll角的误差,可以为负数。
S33,虚拟物体恢复至平衡位置,并将虚拟物体的误差积分清0。在为虚拟物体恢复平衡后,需要对所用到的误差积分进行清0,以便在下次出现倾斜时,重新进行积分运算。
通过上述方式,可以根据虚拟物体的倾斜角度(可以理解为roll角)、倾斜角度误差积分和倾斜角度的微分确定出一个施加于虚拟物体上的平衡力,以维持虚拟物体的平衡,不管物理体的质量是否相同,也不管物理体是否在运行(行驶)中,是否转弯,有无产生离心力等情况,该平衡力的确定方式简单,且随着不同帧中虚拟物体的变动,灵活调整平衡力,能够让虚拟物体减少抖动,实现虚拟物体的稳定平衡。
下面通过另一种可选的实施例来说明本发明
图4是根据本发明实施例的一种可选的游戏中虚拟物体的控制装置的示意图,如图4所示,该控制装置可以包括:获取单元41,第一计算单元43,第二计算单元45,调整单元47,其中,
获取单元41,用于获取虚拟物体在运行过程中的倾斜角度;
第一计算单元43,用于计算虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分;
第二计算单元45,用于基于倾斜角度和倾斜角度误差积分计算平衡力值;
调整单元47,用于通过平衡力值调整虚拟物体的倾斜度,以使虚拟物体恢复至平衡位置。
上述游戏中虚拟物体的控制装置,可以通过获取单元41获取虚拟物体在运行过程中的倾斜角度,然后通过第一计算单元43计算虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分,并通过第二计算单元45基于倾斜角度和倾斜角度误差积分计算平衡力值,最后通过调整单元47利用平衡力值调整虚拟物体的倾斜度,以使虚拟物体恢复至平衡位置。在该实施例中,可以通过得到虚拟物体在运行过程中的倾斜角度和虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分得到一个平衡力值,能直接根据不同帧场景图像中的虚拟物体的倾斜角度和倾斜角度误差积分去计算出大小合适的力,以维持虚拟物体的平衡,从而解决相关技术中虚拟物体在游戏场景中行驶时无法保持平衡的技术问题,保证虚拟物体能在多种游戏场景下一直保持平衡。
可选的,获取单元包括:第一获取模块,用于获取虚拟物体在运行过程中的第一中轴向量和游戏中虚拟场景图像的第二中轴向量;第一计算模块,用于基于第一中轴向量和第二中轴向量,计算倾斜角度。
另一种可选的,第一计算单元包括:第二获取模块,用于获取虚拟物体前一次处于平衡位置的时间点和当前时间点;第一确定模块,用于确定虚拟物体前一次处于平衡位置的时间点所对应的帧场景图像中倾斜角度至当前时间点所对应的帧场景图像中倾斜角度之间,每两个帧场景图像倾斜角度的误差值;第二确定模块,用于累加每两个帧场景图像倾斜角度的误差值,以得到从前一次到达平衡位置后到当前时间点的多个倾斜角度之间的误差积分。
在本发明一种可选的实施例,第二计算单元包括:第三获取模块,用于获取虚拟物体的倾斜角度的微分,其中,微分用于指示对虚拟物体恢复平衡时的惯性调整值;第二计算模块,用于根据倾斜角度、倾斜角度误差积分和倾斜角度的微分,计算平衡力值。
另一种可选的,第三获取模块包括:第一获取子模块,用于获取当前帧场景图像的倾斜角度一和上一帧场景图像的倾斜角度二;第一计算子模块,用于计算倾斜角度一和倾斜角度二之间的角度差值;第二计算子模块,用于基于角度差值,计算虚拟物体的倾斜角度的微分。
在本发明实施例中,控制装置还包括:第四获取模块,用于获取虚拟物体的虚拟质量值,其中,虚拟质量值指示虚拟物体在游戏中虚拟场景中的质量;第三确定模块,用于利用虚拟物体的虚拟质量值确定第一常数系数、第二常数系数和第三常数系数,其中,第一常数系数用于调整倾斜角度,第二常数系数用于调整倾斜角度误差积分,第三常数系数用于调整倾斜角度的微分。
可选的,控制装置还包括:恢复单元,用于在虚拟物体恢复至平衡位置之后,将虚拟物体的倾斜角度误差积分恢复至预设数值。
上述的游戏中虚拟物体的控制装置还可以包括处理器和存储器,上述获取单元41,第一计算单元43,第二计算单元45,调整单元47等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来使虚拟物体恢复至平衡位置。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM) 和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种平衡控制器,包括:至少一个中央处理器,中央处理器用于运行程序,其中,程序运行时执行上述任意一项的游戏中虚拟物体的控制方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行下述步骤:获取虚拟物体在运行过程中的倾斜角度;计算虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分;基于倾斜角度和倾斜角度误差积分计算平衡力值;通过平衡力值调整虚拟物体的倾斜度,以使虚拟物体恢复至平衡位置。
可选的,上述处理器配置还可以为经由执行可执行指令来执行下述步骤:获取虚拟物体在运行过程中的第一中轴向量和游戏中虚拟场景图像的第二中轴向量;基于第一中轴向量和第二中轴向量,计算倾斜角度。
可选的,上述处理器配置还可以为经由执行可执行指令来执行下述步骤:获取虚拟物体前一次处于平衡位置的时间点和当前时间点;确定虚拟物体前一次处于平衡位置的时间点所对应的帧场景图像中倾斜角度至当前时间点所对应的帧场景图像中倾斜角度之间,每两个帧场景图像倾斜角度的误差值;累加每两个帧场景图像倾斜角度的误差值,以得到从前一次到达平衡位置后到当前时间点的多个倾斜角度之间的误差积分。
可选的,上述处理器配置还可以为经由执行可执行指令来执行下述步骤:获取虚拟物体的倾斜角度的微分,其中,微分用于指示对虚拟物体恢复平衡时的惯性调整值;根据倾斜角度、倾斜角度误差积分和倾斜角度的微分,计算平衡力值。
可选的,上述处理器配置还可以为经由执行可执行指令来执行下述步骤:获取当前帧场景图像的倾斜角度一和上一帧场景图像的倾斜角度二;计算倾斜角度一和倾斜角度二之间的角度差值;基于角度差值,计算虚拟物体的倾斜角度的微分。
可选的,上述处理器配置还可以为经由执行可执行指令来执行下述步骤:获取虚拟物体的虚拟质量值,其中,虚拟质量值指示虚拟物体在游戏中虚拟场景中的质量;利用虚拟物体的虚拟质量值确定第一常数系数、第二常数系数和第三常数系数,其中,第一常数系数用于调整倾斜角度,第二常数系数用于调整倾斜角度误差积分,第三常数系数用于调整倾斜角度的微分。
可选的,上述处理器配置还可以为经由执行可执行指令来执行下述步骤:在虚拟物体恢复至平衡位置之后,将虚拟物体的倾斜角度误差积分恢复至预设数值。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的游戏中虚拟物体的控制方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
2.根据权利要求1所述的控制方法,其特征在于,获取虚拟物体在运行过程中的倾斜角度的步骤,包括:
获取所述虚拟物体在运行过程中的第一中轴向量和游戏中虚拟场景图像的第二中轴向量;
基于所述第一中轴向量和所述第二中轴向量,计算所述倾斜角度。
3.根据权利要求1所述的控制方法,其特征在于,计算所述虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分的步骤,包括:
获取所述虚拟物体前一次处于平衡位置的时间点和当前时间点;
确定所述虚拟物体前一次处于平衡位置的时间点所对应的帧场景图像中倾斜角度至当前时间点所对应的帧场景图像中倾斜角度之间,每两个帧场景图像倾斜角度的误差值;
累加每两个帧场景图像倾斜角度的误差值,以得到从前一次到达平衡位置后到当前时间点的多个倾斜角度之间的误差积分。
4.根据权利要求1至3中任意一项所述的控制方法,其特征在于,基于所述倾斜角度和所述倾斜角度误差积分计算平衡力值的步骤,包括:
获取所述虚拟物体的倾斜角度的微分,其中,所述微分用于指示对所述虚拟物体恢复平衡时的惯性调整值;
根据所述倾斜角度、所述倾斜角度误差积分和所述倾斜角度的微分,计算所述平衡力值。
5.根据权利要求4所述的控制方法,其特征在于,获取所述虚拟物体的倾斜角度的微分的步骤,包括:
获取当前帧场景图像的倾斜角度一和上一帧场景图像的倾斜角度二;
计算所述倾斜角度一和所述倾斜角度二之间的角度差值;
基于所述角度差值,计算所述虚拟物体的倾斜角度的微分。
6.根据权利要求4所述的控制方法,其特征在于,所述控制方法还包括:
获取所述虚拟物体的虚拟质量值,其中,所述虚拟质量值指示所述虚拟物体在游戏中虚拟场景中的质量;
利用所述虚拟物体的虚拟质量值确定第一常数系数、第二常数系数和第三常数系数,其中,所述第一常数系数用于调整所述倾斜角度,所述第二常数系数用于调整所述倾斜角度误差积分,所述第三常数系数用于调整所述倾斜角度的微分。
7.根据权利要求4所述的控制方法,其特征在于,在所述虚拟物体恢复至平衡位置之后,所述控制方法还包括:
将所述虚拟物体的倾斜角度误差积分恢复至预设数值。
8.一种游戏中虚拟物体的控制装置,其特征在于,包括:
获取单元,用于获取虚拟物体在运行过程中的倾斜角度;
第一计算单元,用于计算所述虚拟物体在游戏中多帧场景图像之间的倾斜角度误差积分,其中,通过第二公式来表示从前一次到达平衡位置后到当前帧场景图像的多个倾斜角度之间的误差积分,其中,
第二计算单元,用于基于所述倾斜角度和所述倾斜角度误差积分计算平衡力值;
调整单元,用于通过所述平衡力值调整所述虚拟物体的倾斜度,以使所述虚拟物体恢复至平衡位置。
9.一种平衡控制器,其特征在于,包括:至少一个中央处理器,所述中央处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的游戏中虚拟物体的控制方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任意一项所述的游戏中虚拟物体的控制方法。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的游戏中虚拟物体的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910374561.0A CN110075525B (zh) | 2019-05-07 | 2019-05-07 | 游戏中虚拟物体的控制方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910374561.0A CN110075525B (zh) | 2019-05-07 | 2019-05-07 | 游戏中虚拟物体的控制方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110075525A CN110075525A (zh) | 2019-08-02 |
CN110075525B true CN110075525B (zh) | 2023-01-24 |
Family
ID=67418883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910374561.0A Active CN110075525B (zh) | 2019-05-07 | 2019-05-07 | 游戏中虚拟物体的控制方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110075525B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111467795B (zh) * | 2020-04-02 | 2023-06-13 | 北京代码乾坤科技有限公司 | 游戏场景内的物理结算方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102538781A (zh) * | 2011-12-14 | 2012-07-04 | 浙江大学 | 基于机器视觉和惯导融合的移动机器人运动姿态估计方法 |
CN207423155U (zh) * | 2017-11-15 | 2018-05-29 | 南京信息工程大学 | 基于双轴倾角检测的平面倾角测量系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10059397B2 (en) * | 2016-04-15 | 2018-08-28 | Hui Zheng | Self-balancing vehicle with gravity control |
-
2019
- 2019-05-07 CN CN201910374561.0A patent/CN110075525B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102538781A (zh) * | 2011-12-14 | 2012-07-04 | 浙江大学 | 基于机器视觉和惯导融合的移动机器人运动姿态估计方法 |
CN207423155U (zh) * | 2017-11-15 | 2018-05-29 | 南京信息工程大学 | 基于双轴倾角检测的平面倾角测量系统 |
Non-Patent Citations (1)
Title |
---|
"两轮载人自平衡车的实现与运动控制的优化研究";胡帆;《中国优秀硕士学位论文全文数据库(电子期刊)——信息科技辑》;20190115(第1期);I140-1341 * |
Also Published As
Publication number | Publication date |
---|---|
CN110075525A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11876948B2 (en) | Snapshots at predefined intervals or angles | |
US10506159B2 (en) | Loop closure | |
US10728527B2 (en) | Tilts as a measure of user engagement for multiview interactive digital media representations | |
US10484669B2 (en) | Inertial measurement unit progress estimation | |
US10068316B1 (en) | Tilts as a measure of user engagement for multiview digital media representations | |
US10356395B2 (en) | Tilts as a measure of user engagement for multiview digital media representations | |
CN106780674B (zh) | 镜头移动方法和装置 | |
CN108379832A (zh) | 一种游戏同步方法和装置 | |
JP2005295004A (ja) | 立体画像処理方法および立体画像処理装置 | |
CN108107578A (zh) | 虚拟现实的视角调节方法、装置、计算设备及存储介质 | |
CN109074087A (zh) | 偏航姿态控制方法、无人机、计算机可读存储介质 | |
US20190141358A1 (en) | Client-server communication for live filtering in a camera view | |
CN110075525B (zh) | 游戏中虚拟物体的控制方法及装置、电子设备 | |
CN106546261B (zh) | 一种基于虚拟现实设备的角度数据补偿方法及装置 | |
WO2000068886A1 (fr) | Processeur d'informations | |
JP2021152724A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP6976907B2 (ja) | プログラム、情報処理装置、情報処理システム及び情報処理方法 | |
CN106131421A (zh) | 一种视频图像的调整方法和电子设备 | |
US20180210545A1 (en) | Method Of Navigating Viewable Content Within A Virtual Environment Generated By A Virtual Reality System | |
CN109692476B (zh) | 游戏交互方法、装置、电子设备及存储介质 | |
JP2008264276A (ja) | ゲームプログラム、ゲーム装置及び記憶媒体 | |
CN102844787B (zh) | 稳定方法及计算机系统 | |
CN106101685B (zh) | 一种信息处理方法、穿戴式电子设备、处理装置及系统 | |
KR101741149B1 (ko) | 가상 카메라의 시점 제어 방법 및 장치 | |
EP4180945A1 (en) | Graphics rendering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |