CN106178504B - 虚拟对象运动控制方法及装置 - Google Patents

虚拟对象运动控制方法及装置 Download PDF

Info

Publication number
CN106178504B
CN106178504B CN201610506294.4A CN201610506294A CN106178504B CN 106178504 B CN106178504 B CN 106178504B CN 201610506294 A CN201610506294 A CN 201610506294A CN 106178504 B CN106178504 B CN 106178504B
Authority
CN
China
Prior art keywords
acceleration
virtual objects
angular
initial
motion control
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
Application number
CN201610506294.4A
Other languages
English (en)
Other versions
CN106178504A (zh
Inventor
徐境锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201610506294.4A priority Critical patent/CN106178504B/zh
Publication of CN106178504A publication Critical patent/CN106178504A/zh
Application granted granted Critical
Publication of CN106178504B publication Critical patent/CN106178504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/573Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开是关于一种虚拟对象运动控制方法及装置。方法包括:侦测操作界面中一运动控制区域的触控操作,并根据触控操作获取为一虚拟对象设定的目标方向;获取前一逻辑帧结束时虚拟对象所在的方向与目标方向之间的夹角为初始角度,并根据初始角度以及一第一角加速度系数计算第一角加速度,第一角加速度的方向指向目标方向;获取前一逻辑帧虚拟对象的角速度为初始角速度,并根据初始角速度以及一第二角加速度系数计算第二角加速度,第二角加速度的方向与初始角速度的方向相反;在当前逻辑帧,根据初始角速度、第一角加速度、第二角加速度以及逻辑帧的周期计算当前逻辑帧角速度,并控制虚拟对象按照当前逻辑帧角速度旋转。本公开可以提升用户的真实感。

Description

虚拟对象运动控制方法及装置
技术领域
本公开涉及人机交互技术领域,具体而言,涉及一种虚拟对象运动控制方法及虚拟对象运动控制装置。
背景技术
随着移动通信技术的快速发展,移动终端上的娱乐方式也逐渐普及扩展,例如在移动终端上出现了越来越多的游戏应用。在游戏应用的运行过程中,触控终端按照一定的布局将各种游戏对象显示出来,以便向用户呈现游戏场景以及提供游戏操作界面,同时,针对不同操作习惯的用户,会设置不同类型的控制模式。
在部分游戏应用中,则是采用虚拟摇杆控制模式;例如,参考图1中所示,用户通过在虚拟摇杆区域102控制虚拟摇杆102进行不同方向的指向,即可控制虚拟对象100完成转向以及移动等动作。目前大部分游戏应用中采用的是直接映射控制方式,即游戏应用中被控制的虚拟对象的方向与用户操作的虚拟摇杆的方向完全保持一致,游戏应用每一逻辑帧需要计算出虚拟摇杆的方向,并将虚拟对象的方向设置为虚拟摇杆指向方向。
但上述控制方式在控制某些虚拟对象时会显得不够真实。例如,如果虚拟对象是虚拟船只等动作缓慢的虚拟对象时时,由于虚拟船只的转向以及移动等动作会有一定的惯性和启动时间,不能够虚拟摇杆指向一个方向虚拟船只就即时到达该方向。因此,现有技术中的方案提供的真实感不足。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种虚拟对象运动控制方法及虚拟对象运动控制装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本公开的一个方面,提供一种虚拟对象运动控制方法,包括:
侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标方向;
获取前一逻辑帧结束时所述虚拟对象所在的方向与所述目标方向之间的夹角为初始角度,并根据所述初始角度以及一第一角加速度系数计算第一角加速度,所述第一角加速度的方向指向所述目标方向;
获取前一逻辑帧所述虚拟对象的角速度为初始角速度,并根据所述初始角速度以及一第二角加速度系数计算第二角加速度,所述第二角加速度的方向与所述初始角速度的方向相反;
在当前逻辑帧,根据所述初始角速度、所述第一角加速度、所述第二角加速度以及所述逻辑帧的周期计算当前逻辑帧角速度,并控制所述虚拟对象按照所述当前逻辑帧角速度旋转。
在本公开的一种示例性实施例中,所述运动控制区域包括虚拟摇杆区域;其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标方向。
在本公开的一种示例性实施例中,所述第一角加速度系数与所述第二角加速度系数的值相同;或者,所述第一角加速度系数与所述第二角加速度系数的值不同。
根据本公开的一个方面,提供一种虚拟对象运动控制方法,包括:
侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标位置;
获取前一逻辑帧结束时所述虚拟对象所在的位置与所述目标位置之间的距离为初始距离,并根据所述初始距离以及一第一加速度系数计算第一加速度,所述第一加速度的方向指向所述目标位置;
获取前一逻辑帧所述虚拟对象的速度为初始速度,并根据所述初始速度以及一第二加速度系数计算第二加速度,所述第二加速度的方向与所述初始速度的方向相反;
在当前逻辑帧,根据所述初始速度、所述第一加速度、所述第二加速度以及所述逻辑帧的周期计算当前逻辑帧速度,并控制所述虚拟对象按照所述当前逻辑帧速度移动。
在本公开的一种示例性实施例中,所述运动控制区域包括虚拟摇杆区域;其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标位置。
在本公开的一种示例性实施例中,所述第一加速度系数与所述第二加速度系数的值相同;或者,所述第一加速度系数与所述第二加速度系数的值不同。
根据本公开的一个方面,提供一种虚拟对象运动控制装置,包括:
目标方向获取模块,用于侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标方向;
第一角加速度计算模块,用于获取前一逻辑帧结束时所述虚拟对象所在的方向与所述目标方向之间的夹角为初始角度,并根据所述初始角度以及一第一角加速度系数计算第一角加速度,所述第一角加速度的方向指向所述目标方向;
第二角加速度计算模块,用于获取前一逻辑帧所述虚拟对象的角速度为初始角速度,并根据所述初始角速度以及一第二角加速度系数计算第二角加速度,所述第二角加速度的方向与所述初始角速度的方向相反;
当前逻辑帧角速度计算模块,用于在当前逻辑帧,根据所述初始角速度、所述第一角加速度、所述第二角加速度以及所述逻辑帧的周期计算当前逻辑帧角速度,并控制所述虚拟对象按照所述当前逻辑帧角速度旋转。
在本公开的一种示例性实施例中,所述运动控制区域包括虚拟摇杆区域;其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标方向。
在本公开的一种示例性实施例中,所述第一角加速度系数与所述第二角加速度系数的值相同;或者,所述第一角加速度系数与所述第二角加速度系数的值不同。
根据本公开的一个方面,提供一种虚拟对象运动控制装置,包括:
目的位置获取模块,用于侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标位置;
第一加速度计算模块,用于获取前一逻辑帧结束时所述虚拟对象所在的位置与所述目标位置之间的距离为初始距离,并根据所述初始距离以及一第一加速度系数计算第一加速度,所述第一加速度的方向指向所述目标位置;
第二加速度计算模块,用于获取前一逻辑帧所述虚拟对象的速度为初始速度,并根据所述初始速度以及一第二加速度系数计算第二加速度,所述第二加速度的方向与所述初始速度的方向相反;
当前逻辑帧速度计算模块,用于在当前逻辑帧,根据所述初始速度、所述第一加速度、所述第二加速度以及所述逻辑帧的周期计算当前逻辑帧速度,并控制所述虚拟对象按照所述当前逻辑帧速度移动。
在本公开的一种示例性实施例中,所述运动控制区域包括虚拟摇杆区域;其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标位置。
在本公开的一种示例性实施例中,所述第一加速度系数与所述第二加速度系数的值相同;或者,所述第一加速度系数与所述第二加速度系数的值不同。
本公开的虚拟对象运动控制方法及装置,一种实施例中,根据前一逻辑帧结束时所述虚拟对象所在的方向与所述目标方向之间的夹角以及角速度计算得到方向相反的第一角加速度和第二角加速度,在第一角加速度以及第二角加速度的影响下,虚拟对象的旋转角速度最终表现为先变大再减小;第一角加速度保证了虚拟对象的快速启动,第二角加速度使虚拟对象旋转至目标方向后能够快速减速停止;因此,通过本示例实施方式中的虚拟对象运动控制方法及装置,一方面能够使得虚拟对象在旋转中带有一定的惯性,进而增加用户的真实感,另一方面,能够对其旋转过程进行更加精准的控制,提升用户的操作体验。此外,相比于实时计算虚拟对象的旋转角速度的方案,本示例实施方式中的技术方案仅需在每一逻辑帧开始前进行一次计算,因此对于计算资源的需求更小,进而对于硬件的要求更低。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出一种游戏应用的操作界面。
图2示意性示出本公开示例性实施例中一种虚拟对象运动控制方法的流程图。
图3示意性示出一种游戏应用的操作界面。
图4示意性示出本公开示例性实施例中一种虚拟对象运动控制方法的流程图。
图5示意性示出一种游戏应用的操作界面。
图6示意性示出本公开示例性实施例中一种虚拟对象运动控制装置的方框图。
图7示意性示出本公开示例性实施例中一种虚拟对象运动控制装置的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施方式中首先提供了一种虚拟对象运动控制方法,该虚拟对象运动控制方法可以应用于可实现触控感测的移动终端。该移动终端例如可以为智能手机、平板电脑、笔记本电脑、游戏机、PDA等各种具备触控屏幕的电子设备。但需要说明的是,在部分非移动终端中也可能通过模拟器等方式将键盘以及鼠标操作模拟为触控操作,这种方式同样可以视为本公开中所述的移动终端。参考图2以及图3中所示,所述虚拟对象运动控制方法可以包括以下步骤:
步骤S11.侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标方向。
参考图2中所示,游戏应用可以通过移动终端的应用程序接口(API)控制移动终端的触控屏幕显示游戏操作界面10。所述操作界面10中可以包括一运动控制区域110和虚拟对象100。除此之外,操作界面10中还可以包括虚拟战斗场景、虚拟自然环境、地图控制区域、信息面板控制区域、虚拟人物等其他部分。上述虚拟对象100可以有多种表现形式,例如可以为虚拟船只、虚拟战舰、虚拟航天器或者其他转向速度较慢的虚拟对象100。
本示例实施方式中,所述运动控制区域可以为一虚拟摇杆区域101。虚拟摇杆区域101中的虚拟摇杆102可以表现为跟随用户手指在虚拟摇杆区域101内移动的圆点,也可以表现为可以向不同方向倾斜的操作盘等,具体表现为何种形式,可以由游戏服务商自行设定,并不影响本示例实施方式中虚拟对象运动控制方法的实施。此外,在本公开的其他示例性实施例中,所述运动控制区域也可以表现为其他形式;例如,在通过点击操作的游戏应用中,所述运动控制区域可能为整个所述操作界面10;再例如,所述运动控制区域还可以包括虚拟船舵、虚拟转盘或者虚拟控制球其他元素。因此,本示例性实施例中对于运动控制区域的具体表现形式不做特殊限定。
在用户游戏的过程中,可以周期性侦测运动控制区域的触控事件,所述触控事件可以包括用户在所述运动控制区域中进行的滑动操作、按压操作以及点击操作等,本示例实施方式中对此不进行特殊限定。在检测到有触控事件后,根据所述触控事件在触控屏幕中的坐标位置以及所述运动控制区域在所述触控屏幕中的显示位置,可以判断所述触控事件发生在所述运动控制区域的哪一位置,进而可以据此为所述虚拟对象100设定的目标方向。
例如,参考图3中所示,虚拟摇杆区域101中的虚拟摇杆102表现为跟随用户手指在虚拟摇杆区域101内移动的圆点,圆点的位置与用户手指在移动终端触控屏幕上的位置一致。从所述虚拟摇杆区域101中心点往所述圆点的中心点做一直线即可以得到当前所述虚拟摇杆102相对于基准方向的角度θt,该角度θt即为所述虚拟摇杆102的指向方向。根据所述虚拟摇杆102的指向方向即可获取为所述虚拟对象100设定的目标方向,例如,所述虚拟摇杆102的指向方向为1点钟方向,则设定所述虚拟对象100设定的目标方向为1点钟方向。但在本公开的其他示例性实施例中,也可以通过其他方式确定为所述虚拟对象100设定的目标方向,本示例性实施例中并不以此为限。
步骤S12.获取前一逻辑帧结束时所述虚拟对象100所在的方向与所述目标方向之间的夹角为初始角度,并根据所述初始角度以及一第一角加速度系数计算第一角加速度,所述第一角加速度的方向指向所述目标方向。
游戏引擎每秒处理逻辑事件的频率为逻辑帧率,逻辑帧率通常为一固定值;一个逻辑帧即游戏引擎处理一次所述逻辑事件,所述逻辑帧的周期例如可以为0.0625秒、0.05秒或者0.02秒等等。本示例实施方式中,在每一逻辑帧开始前,可以首先获取前一逻辑帧结束时所述虚拟对象100所在的方向与所述目标方向之间的夹角为初始角度θ0
本示例实施方式中,所述虚拟对象100存在一个旋转角速度,在静止的时候旋转角速度为零。旋转虚拟摇杆102会对虚拟对象100施加一个第一角加速度而改变虚拟对象100当前的旋转角速度。本示例实施方式中,所述第一角加速度与所述初始角度θ0成正比。例如,所述第一角加速度α1可以通过下式计算:
α1=k1×θ0(-180°≤θ0≤180°)
其中,k1为第一角加速度系数;所述第一角加速度α1的方向指向所述目标方向,即所述α1为相对于所述初始角速度正向的角加速度。本示例实施方式中,可以通过调整第一角加速度系数k1的大小,调整虚拟对象100动作的灵敏度,例如,第一角加速度系数k1越大则虚拟对象100的响应越快,第一角加速度系数k1越小则虚拟对象100的响应越慢。
步骤S13.获取前一逻辑帧所述虚拟对象100的角速度为初始角速度,并根据所述初始角速度以及一第二角加速度系数计算第二角加速度,所述第二角加速度的方向与所述初始角速度的方向相反。
本示例实施方式中,在每一逻辑帧开始前,可以首先获取前一逻辑帧所述虚拟对象100的角速度为初始角速度ω0。在所述虚拟对象100旋转的过程中还会受到阻力的影响,因此,还可以对所述虚拟对象100施加一个第二角加速度而改变虚拟对象100当前的旋转角速度。本示例实施方式中,所述第二角加速度与所述初始速度ω0成正比。例如,所述第二角加速度α2可以通过下式计算:
α2=k2×ω0
其中,k2为第二角加速度系数;所述第二角加速度α2的方向与所述初始角速度的方向相反。本示例实施方式中,可以通过调整第二角加速度系数k2的大小,影响虚拟对象100旋转至所述目标方向后出现的来回抖动的情况,例如,第二角加速度系数k2越大则虚拟对象100旋转至所述目标方向后出现的来回抖动的情况越明显,第二角加速度系数k2越小则虚拟对象100旋转至所述目标方向后出现的来回抖动的情况越不明显。此外,在本示例实施方式中,所述第一角加速度系数与所述第二角加速度系数的值可以根据需求设定,例如,所述第一角加速度系数与所述第二角加速度系数的值可以相同,但所述第一角加速度系数与所述第二角加速度系数的值也可以不同。再例如,可以通过设置所述第一角加速度系数与所述第二角加速度系数的值,使得所述虚拟对象100在开始旋转时的角速度和旋转至目标方向时的角速度相同,例如都为0等;也可以通过设置所述第一角加速度系数与所述第二角加速度系数的值,使得所述虚拟对象100在旋转至目标方向时会进行一定幅度的抖动等等。
步骤S14.在当前逻辑帧,根据所述初始角速度、所述第一角加速度、所述第二角加速度以及所述逻辑帧的周期计算当前逻辑帧角速度,并控制所述虚拟对象100按照所述当前逻辑帧角速度旋转。
本示例实施方式中,所述逻辑帧的周期t可以为前一逻辑帧的开始时刻到当前逻辑帧的开始时刻之间的时间间隔,也可以为前一逻辑帧的结束时刻到当前逻辑帧的结束时刻之间的时间间隔。如所述步骤S12所述,所述逻辑帧的周期例如可以为0.0625秒、0.05秒或者0.02秒等等。本示例实施方式中,所述当前逻辑帧角速度ω可以通过下式计算:
ω=ω0+(α12)×t
进一步可以得到,当前逻辑帧所述虚拟对象100需要旋转的角度Δθ=ω×t;进而可以得到,当前逻辑帧结束时,所述虚拟对象100所在的方向与所述目标方向之间的夹角θ=θ0-Δθ。
对于每一逻辑帧,均重复上述步骤S11至步骤S14,则可以完成所述虚拟对象100的转向控制。而且,通过本示例实施方式中的技术方案,在所述虚拟对象100旋转至所述目标方向的过程中,所述虚拟对象100所在的方向与所述目标方向之间的夹角由最大值逐帧变化至0,因此所述第一角加速度也随之逐帧由最大值θt逐渐变化至0;在所述虚拟对象100旋转至所述目标方向的前半程中,各逻辑帧中第一角加速度先是大于第二角加速度,因此所述虚拟对象100的旋转角速度将逐帧增加,但第二角加速度也随之逐帧增加直至超过第一角加速度;在所述虚拟对象100旋转至所述目标方向的后半程中,各逻辑帧中第二角加速度大于第一角加速度,因此所述虚拟对象100的旋转角速度将逐帧降低,直至完全停止。在第一角加速度以及第二角加速度的影响下,虚拟对象100的旋转角速度最终表现为先变大再减小;第一角加速度保证了虚拟对象100的快速启动,第二角加速度使虚拟对象100旋转至目标方向后能够快速减速停止;因此,通过本示例实施方式中的虚拟对象运动控制方法,一方面能够使得虚拟对象100在旋转中带有一定的惯性,进而增加用户的真实感,另一方面,能够对其旋转过程进行更加精准的控制,提升用户的操作体验。此外,相比于实时计算虚拟对象100的旋转角速度的方案,本示例实施方式中的技术方案仅需在每一逻辑帧开始前进行一次计算,因此对于计算资源的需求更小,进而对于硬件的要求更低。
参考图4以及图5中所示,本示例实施方式中还提供了另一种虚拟对象运动控制方法,从而对于虚拟对象100的移动进行控制。本示例实施方式中,所述虚拟对象运动控制方法可以包括以下步骤:
步骤S21.侦测操作界面10中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象100设定的目标位置。
如图5所示,本示例实施方式中,所述运动控制区域同样可以为一虚拟摇杆区域101。此外,在本公开的其他示例性实施例中,所述运动控制区域也可以表现为其他形式;例如,在通过点击操作的游戏应用中,所述运动控制区域可能为整个所述操作界面10;再例如,所述运动控制区域还可以包括虚拟船舵、虚拟转盘或者虚拟控制球其他元素。因此,本示例性实施例中对于运动控制区域的具体表现形式不做特殊限定。
在用户游戏的过程中,可以周期性侦测运动控制区域的触控事件,所述触控事件可以包括用户在所述运动控制区域中进行的滑动操作、按压操作以及点击操作等,本示例实施方式中对此不进行特殊限定。在检测到有触控事件后,根据所述触控事件在触控屏幕中的坐标位置以及所述运动控制区域在所述触控屏幕中的显示位置,可以判断所述触控事件发生在所述运动控制区域的哪一位置,进而可以据此为所述虚拟对象100设定的目标位置。
例如,参考图5中所示,虚拟摇杆区域101中的虚拟摇杆102表现为跟随用户手指在虚拟摇杆区域101内移动的圆点,圆点的位置与用户手指在移动终端触控屏幕上的位置一致。用户可以通过上滑或许下滑等操作使得所述虚拟摇杆102偏离原点;从所述虚拟摇杆区域101中心点往所述圆点的中心点做一直线即可以得到当前所述虚拟摇杆102偏离原点的幅度。根据所述虚拟摇杆102的偏离原点的幅度即可获取为所述虚拟对象100设定的目标位置,图5中虚拟对象100初始位置与目标位置之间的距离为st。但在本公开的其他示例性实施例中,也可以通过其他方式确定为所述虚拟对象100设定的目标位置,例如之间在操作界面10中点击等;本示例性实施例中并不以此为限。
步骤S22.获取前一逻辑帧结束时所述虚拟对象100所在的位置与所述目标位置之间的距离为初始距离,并根据所述初始距离以及一第一加速度系数计算第一加速度,所述第一加速度的位置指向所述目标位置。
本示例实施方式中,在每一逻辑帧开始前,可以首先获取前一逻辑帧结束时所述虚拟对象100所在的位置与所述目标位置之间的距离为初始距离s0。本示例实施方式中,所述第一加速度与所述初始距离s0成正比。例如,所述第一加速度a1可以通过下式计算:
a1=k1×s0
其中,k1为第一加速度系数;所述第一加速度a1的位置指向所述目标位置,即所述a1为相对于所述初始速度正向的加速度。本示例实施方式中,可以通过调整第一加速度系数k1的大小,调整虚拟对象100动作的灵敏度,例如,第一加速度系数k1越大则虚拟对象100的响应越快,第一加速度系数k1越小则虚拟对象100的响应越慢。
步骤S23.获取前一逻辑帧所述虚拟对象100的速度为初始速度,并根据所述初始速度以及一第二加速度系数计算第二加速度,所述第二加速度的位置与所述初始速度的位置相反。
本示例实施方式中,在每一逻辑帧开始前,可以首先获取前一逻辑帧所述虚拟对象100的速度为初始速度v0。在所述虚拟对象100移动的过程中还会受到阻力的影响,因此,还可以对所述虚拟对象100施加一个第二加速度而改变虚拟对象100当前的移动速度。本示例实施方式中,所述第二加速度与所述初始速度v0成正比。例如,所述第二加速度a2可以通过下式计算:
a2=k2×v0
其中,k2为第二加速度系数;所述第二加速度a2的方向与所述初始速度的方向相反。本示例实施方式中,可以通过调整第二加速度系数k2的大小,影响虚拟对象100运动至所述目标位置后出现的来回抖动的情况,例如,第二加速度系数k2越大则虚拟对象100运动至所述目标位置后出现的来回抖动的情况越明显,第二加速度系数k2越小则虚拟对象100运动至所述目标位置后出现的来回抖动的情况越不明显。此外,在本示例实施方式中,所述第一加速度系数与所述第二加速度系数的值可以根据需求设定,例如,所述第一加速度系数与所述第二加速度系数的值可以相同,但所述第一加速度系数与所述第二加速度系数的值也可以不同。再例如,可以通过设置所述第一加速度系数与所述第二加速度系数的值,使得所述虚拟对象100在开始运动时的速度和运动至目标位置时的速度相同,例如都为0等;也可以通过设置所述第一加速度系数与所述第二加速度系数的值,使得所述虚拟对象100在运动至目标位置时会进行一定幅度的抖动等等。
步骤S24.在当前逻辑帧,根据所述初始速度、所述第一加速度、所述第二加速度以及所述逻辑帧的周期计算当前逻辑帧速度,并控制所述虚拟对象100按照所述当前逻辑帧速度移动。
本示例实施方式中,所述逻辑帧的周期t可以为前一逻辑帧的开始时刻到当前逻辑帧的开始时刻之间的时间间隔,也可以为前一逻辑帧的结束时刻到当前逻辑帧的结束时刻之间的时间间隔。如所述步骤S12所述,所述逻辑帧的周期例如可以为0.0625秒、0.05秒或者0.02秒等等。本示例实施方式中,所述当前逻辑帧速度v可以通过下式计算:
v=v0+(a1-a2)×t
进一步可以得到,当前逻辑帧所述虚拟对象100需要运动的距离Δs=v×t;进而可以得到,当前逻辑帧结束时,所述虚拟对象100所在的位置与所述目标位置之间的距离s=s0-Δs。
对于每一逻辑帧,均重复上述步骤S21至步骤S24,则可以完成所述虚拟对象100的移动控制。而且,通过本示例实施方式中的技术方案,在所述虚拟对象100运动至所述目标位置的过程中,所述虚拟对象100所在的位置与所述目标位置之间的距离由最大值st逐帧变化至0,因此所述第一加速度也随之逐帧由最大值逐渐变化至0;在所述虚拟对象100运动至所述目标位置的前半程中,各逻辑帧中第一加速度先是大于第二加速度,因此所述虚拟对象100的运动速度将逐帧增加,但第二加速度也随之逐帧增加直至超过第一加速度;在所述虚拟对象100运动至所述目标位置的后半程中,各逻辑帧中第二加速度大于第一加速度,因此所述虚拟对象100的运动速度将逐帧降低,直至完全停止。在第一加速度以及第二加速度的影响下,虚拟对象100的运动速度最终表现为先变大再减小;第一加速度保证了虚拟对象100的快速启动,第二加速度使虚拟对象100运动至目标位置后能够快速减速停止;因此,通过本示例实施方式中的虚拟对象运动控制方法,一方面能够使得虚拟对象100在移动中带有一定的惯性,进而增加用户的真实感,另一方面,能够对其移动过程进行更加精准的控制,提升用户的操作体验。此外,相比于实时计算虚拟对象100的移动速度的方案,本示例实施方式中的技术方案仅需在每一逻辑帧开始前进行一次计算,因此对于计算资源的需求更小,进而对于硬件的要求更低。
进一步的,本示例实施方式中还提供了一种虚拟对象运动控制装置,应用于一移动终端。参考图6中所示,所述虚拟对象运动控制装置1可以包括目标方向获取模块11、第一角加速度计算模块12、第二角加速度计算模块13以及当前逻辑帧角速度计算模块14。其中:
目标方向获取模块11可以用于侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标方向。
第一角加速度计算模块12可以用于获取前一逻辑帧结束时所述虚拟对象所在的方向与所述目标方向之间的夹角为初始角度,并根据所述初始角度以及一第一角加速度系数计算第一角加速度,所述第一角加速度的方向指向所述目标方向。
第二角加速度计算模块13可以用于获取前一逻辑帧所述虚拟对象的角速度为初始角速度,并根据所述初始角速度以及一第二角加速度系数计算第二角加速度,所述第二角加速度的方向与所述初始角速度的方向相反。
当前逻辑帧角速度计算模块14可以用于在当前逻辑帧,根据所述初始角速度、所述第一角加速度、所述第二角加速度以及所述逻辑帧的周期计算当前逻辑帧角速度,并控制所述虚拟对象按照所述当前逻辑帧角速度旋转。
在本示例实施方式中,所述运动控制区域可以包括虚拟摇杆区域。其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标方向。
在本示例实施方式中,所述第一角加速度系数与所述第二角加速度系数的值相同。或者,所述第一角加速度系数与所述第二角加速度系数的值不同。
进一步的,本示例实施方式中还提供了另一种虚拟对象运动控制装置,应用于一移动终端。参考图7中所示,所述虚拟对象运动控制装置2可以包括目的位置获取模块21、第一加速度计算模块22、第二加速度计算模块23以及当前逻辑帧速度计算模块24。其中:
目的位置获取模块21可以用于侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标位置。
第一加速度计算模块22可以用于获取前一逻辑帧结束时所述虚拟对象所在的位置与所述目标位置之间的距离为初始距离,并根据所述初始距离以及一第一加速度系数计算第一加速度,所述第一加速度的方向指向所述目标位置。
第二加速度计算模块23可以用于获取前一逻辑帧所述虚拟对象的速度为初始速度,并根据所述初始速度以及一第二加速度系数计算第二加速度,所述第二加速度的方向与所述初始速度的方向相反。
当前逻辑帧速度计算模块24可以用于在当前逻辑帧,根据所述初始速度、所述第一加速度、所述第二加速度以及所述逻辑帧的周期计算当前逻辑帧速度,并控制所述虚拟对象按照所述当前逻辑帧速度移动。
在本示例实施方式中,所述运动控制区域可以包括虚拟摇杆区域。其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标位置。
在本示例实施方式中,所述第一加速度系数与所述第二加速度系数的值相同。或者,所述第一加速度系数与所述第二加速度系数的值不同。
上述虚拟对象运动控制装置中各模块的具体细节已经在对应的虚拟对象运动控制方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (12)

1.一种虚拟对象运动控制方法,其特征在于,包括:
侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标方向;
获取前一逻辑帧结束时所述虚拟对象所在的方向与所述目标方向之间的夹角为初始角度,并根据所述初始角度以及一第一角加速度系数的乘积计算第一角加速度,所述第一角加速度的方向指向所述目标方向;
获取前一逻辑帧所述虚拟对象的角速度为初始角速度,并根据所述初始角速度以及一第二角加速度系数的乘积计算第二角加速度,所述第二角加速度的方向与所述初始角速度的方向相反;
在当前逻辑帧,根据所述初始角速度、所述第一角加速度、所述第二角加速度以及所述逻辑帧的周期计算当前逻辑帧角速度,并控制所述虚拟对象按照所述当前逻辑帧角速度旋转。
2.根据权利要求1所述的虚拟对象运动控制方法,其特征在于,所述运动控制区域包括虚拟摇杆区域;其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标方向。
3.根据权利要求1或2所述的虚拟对象运动控制方法,其特征在于,所述第一角加速度系数与所述第二角加速度系数的值相同;或者,所述第一角加速度系数与所述第二角加速度系数的值不同。
4.一种虚拟对象运动控制方法,其特征在于,包括:
侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标位置;
获取前一逻辑帧结束时所述虚拟对象所在的位置与所述目标位置之间的距离为初始距离,并根据所述初始距离以及一第一加速度系数的乘积计算第一加速度,所述第一加速度的方向指向所述目标位置;
获取前一逻辑帧所述虚拟对象的速度为初始速度,并根据所述初始速度以及一第二加速度系数的乘积计算第二加速度,所述第二加速度的方向与所述初始速度的方向相反;
在当前逻辑帧,根据所述初始速度、所述第一加速度、所述第二加速度以及所述逻辑帧的周期计算当前逻辑帧速度,并控制所述虚拟对象按照所述当前逻辑帧速度移动。
5.根据权利要求4所述的虚拟对象运动控制方法,其特征在于,所述运动控制区域包括虚拟摇杆区域;其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标位置。
6.根据权利要求4或5所述的虚拟对象运动控制方法,其特征在于,所述第一加速度系数与所述第二加速度系数的值相同;或者,所述第一加速度系数与所述第二加速度系数的值不同。
7.一种虚拟对象运动控制装置,其特征在于,包括:
目标方向获取模块,用于侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标方向;
第一角加速度计算模块,用于获取前一逻辑帧结束时所述虚拟对象所在的方向与所述目标方向之间的夹角为初始角度,并根据所述初始角度以及一第一角加速度系数的乘积计算第一角加速度,所述第一角加速度的方向指向所述目标方向;
第二角加速度计算模块,用于获取前一逻辑帧所述虚拟对象的角速度为初始角速度,并根据所述初始角速度以及一第二角加速度系数的乘积计算第二角加速度,所述第二角加速度的方向与所述初始角速度的方向相反;
当前逻辑帧角速度计算模块,用于在当前逻辑帧,根据所述初始角速度、所述第一角加速度、所述第二角加速度以及所述逻辑帧的周期计算当前逻辑帧角速度,并控制所述虚拟对象按照所述当前逻辑帧角速度旋转。
8.根据权利要求7所述的虚拟对象运动控制装置,其特征在于,所述运动控制区域包括虚拟摇杆区域;其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标方向。
9.根据权利要求7或8所述的虚拟对象运动控制装置,其特征在于,所述第一角加速度系数与所述第二角加速度系数的值相同;或者,所述第一角加速度系数与所述第二角加速度系数的值不同。
10.一种虚拟对象运动控制装置,其特征在于,包括:
目的位置获取模块,用于侦测操作界面中一运动控制区域的触控操作,并根据所述触控操作获取为一虚拟对象设定的目标位置;
第一加速度计算模块,用于获取前一逻辑帧结束时所述虚拟对象所在的位置与所述目标位置之间的距离为初始距离,并根据所述初始距离以及一第一加速度系数的乘积计算第一加速度,所述第一加速度的方向指向所述目标位置;
第二加速度计算模块,用于获取前一逻辑帧所述虚拟对象的速度为初始速度,并根据所述初始速度以及一第二加速度系数的乘积计算第二加速度,所述第二加速度的方向与所述初始速度的方向相反;
当前逻辑帧速度计算模块,用于在当前逻辑帧,根据所述初始速度、所述第一加速度、所述第二加速度以及所述逻辑帧的周期计算当前逻辑帧速度,并控制所述虚拟对象按照所述当前逻辑帧速度移动。
11.根据权利要求10所述的虚拟对象运动控制装置,其特征在于,所述运动控制区域包括虚拟摇杆区域;其中,根据虚拟摇杆在所述虚拟摇杆区域的位置获取为所述虚拟对象设定的目标位置。
12.根据权利要求10或11所述的虚拟对象运动控制装置,其特征在于,所述第一加速度系数与所述第二加速度系数的值相同;或者,所述第一加速度系数与所述第二加速度系数的值不同。
CN201610506294.4A 2016-06-27 2016-06-27 虚拟对象运动控制方法及装置 Active CN106178504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610506294.4A CN106178504B (zh) 2016-06-27 2016-06-27 虚拟对象运动控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610506294.4A CN106178504B (zh) 2016-06-27 2016-06-27 虚拟对象运动控制方法及装置

Publications (2)

Publication Number Publication Date
CN106178504A CN106178504A (zh) 2016-12-07
CN106178504B true CN106178504B (zh) 2019-07-05

Family

ID=57463113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610506294.4A Active CN106178504B (zh) 2016-06-27 2016-06-27 虚拟对象运动控制方法及装置

Country Status (1)

Country Link
CN (1) CN106178504B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018119981A1 (zh) * 2016-12-30 2018-07-05 深圳市大疆创新科技有限公司 一种可移动设备的控制方法、控制设备及控制系统
CN108595095B (zh) * 2018-04-13 2022-07-15 百度在线网络技术(北京)有限公司 基于手势控制模拟目标体运动轨迹的方法和装置
JP6560801B1 (ja) * 2018-09-26 2019-08-14 株式会社Cygames プログラム、電子装置、及び方法
CN109865281A (zh) * 2019-01-18 2019-06-11 腾讯科技(北京)有限公司 一种对象控制的方法以及相关装置
CN109589604A (zh) * 2019-01-24 2019-04-09 网易(杭州)网络有限公司 虚拟对象的控制方法、控制装置、存储介质和处理器
CN110152295B (zh) * 2019-05-21 2023-09-26 网易(杭州)网络有限公司 虚拟对象的控制方法及装置、存储介质及电子设备
CN110597389B (zh) * 2019-09-12 2021-04-09 腾讯科技(深圳)有限公司 虚拟场景中的虚拟对象控制方法、计算机设备及存储介质
CN110743161B (zh) * 2019-10-16 2021-08-24 腾讯科技(深圳)有限公司 虚拟对象控制方法、装置、终端及存储介质
CN113926187A (zh) * 2021-10-20 2022-01-14 腾讯科技(深圳)有限公司 虚拟场景中的对象控制方法、装置及终端设备
CN113961130A (zh) * 2021-11-15 2022-01-21 宝宝巴士股份有限公司 一种基于Unity3D模拟旋钮操作的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6084587A (en) * 1996-08-02 2000-07-04 Sensable Technologies, Inc. Method and apparatus for generating and interfacing with a haptic virtual reality environment
CN101615301A (zh) * 2009-07-29 2009-12-30 腾讯科技(深圳)有限公司 计算机虚拟环境中目标的路径控制方法和系统
CN101632110A (zh) * 2006-12-29 2010-01-20 克劳迪奥·若玛格诺丽 用于感受运动中交通工具的真实机械模拟器
CN101632056A (zh) * 2007-09-12 2010-01-20 索尼株式会社 输入装置、控制装置、控制系统以及控制方法
CN103252087A (zh) * 2012-02-20 2013-08-21 富立业资讯有限公司 具有触控面板媒体的游戏控制方法及该游戏媒体
CN104228583A (zh) * 2013-06-12 2014-12-24 丰田自动车株式会社 转向辅助显示装置
CN105045521A (zh) * 2015-08-31 2015-11-11 网易(杭州)网络有限公司 一种触摸屏响应方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545657B2 (en) * 2013-09-03 2020-01-28 Apple Inc. User interface for manipulating user interface objects

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6084587A (en) * 1996-08-02 2000-07-04 Sensable Technologies, Inc. Method and apparatus for generating and interfacing with a haptic virtual reality environment
CN101632110A (zh) * 2006-12-29 2010-01-20 克劳迪奥·若玛格诺丽 用于感受运动中交通工具的真实机械模拟器
CN101632056A (zh) * 2007-09-12 2010-01-20 索尼株式会社 输入装置、控制装置、控制系统以及控制方法
CN101615301A (zh) * 2009-07-29 2009-12-30 腾讯科技(深圳)有限公司 计算机虚拟环境中目标的路径控制方法和系统
CN103252087A (zh) * 2012-02-20 2013-08-21 富立业资讯有限公司 具有触控面板媒体的游戏控制方法及该游戏媒体
CN104228583A (zh) * 2013-06-12 2014-12-24 丰田自动车株式会社 转向辅助显示装置
CN105045521A (zh) * 2015-08-31 2015-11-11 网易(杭州)网络有限公司 一种触摸屏响应方法及装置

Also Published As

Publication number Publication date
CN106178504A (zh) 2016-12-07

Similar Documents

Publication Publication Date Title
CN106178504B (zh) 虚拟对象运动控制方法及装置
US10969957B2 (en) Using finger touch types to interact with electronic devices
CN105641927B (zh) 虚拟对象转向控制方法及装置
KR102355391B1 (ko) 가상 기재로서 사용하기 위한 평면 및/또는 쿼드트리들을 검출하기 위한 방법 및 디바이스
US10976819B2 (en) Haptic feedback for non-touch surface interaction
US20150177866A1 (en) Multiple Hover Point Gestures
CN106155553A (zh) 虚拟对象运动控制方法及装置
JP5417495B2 (ja) マウスを用いてタッチスクリーン操作をシミュレーションする方法
CN110215685B (zh) 游戏中的虚拟对象控制方法及装置、设备、存储介质
JP2018142313A (ja) 仮想感情タッチのためのシステム及び方法
KR20130099570A (ko) 3차원 사용자 인터페이스 구현 시스템 및 구현 방법
CN111684402B (zh) 触摸输入表面上的触觉效果
US20140191958A1 (en) Cursor control method for a touch screen
CN113168281B (zh) 计算机可读介质、电子装置和方法
JP6732078B2 (ja) 触覚オーバーレイを拡張現実に統合するシステム、方法及び非一時的コンピュータ可読媒体
JP6387239B2 (ja) プログラム及びサーバ
US10089965B1 (en) User-controlled movement of graphical objects
US20160117075A1 (en) Advanced touch user interface
US10031638B2 (en) Multi-touch GUI featuring directional compression and expansion of graphical content
JP7471782B2 (ja) プログラム、電子装置、及び方法
US20070184906A1 (en) Method of controlling interactions between objects
Kang et al. Improvement of smartphone interface using an AR marker
CN114939275A (zh) 对象交互的方法、装置、设备和存储介质
CN115867365A (zh) 方法、程序以及电子装置
JP2019134880A (ja) プログラム及びゲーム装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant