欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 信息处理方法、装置、设备及存储介质独创技术61527字

信息处理方法、装置、设备及存储介质

2021-02-04 18:26:21

信息处理方法、装置、设备及存储介质

  技术领域

  本发明涉及游戏技术领域,具体而言,涉及一种信息处理方法、装置、设备及存储介质。

  背景技术

  近年来游戏中的虚拟载具控制已成为大量游戏的重要玩法之一,而随着对游戏品质要求的日益提高,载具与场景物体进行真实地交互就成为一个常见的需求。如何高效真实地模拟载具与复杂场景物体交互就成为一个重要的研究方向。

  现有技术中,当载具与场景中一些简单的物体交互时,一般可以通过创建与物体形状和物理参数相当的动态刚体,然后过物理引擎加以模拟。

  但是,采用上述方法进行交互模拟,会使得交互时载具和物体的状态不够真实和平滑,从而导致模拟的交互效果较差。

  发明内容

  本发明的目的在于,针对上述现有技术中的不足,提供一种信息处理方法及装置,以便于解决现有技术中存在的游戏场景中虚拟物体与虚拟载具的交互效果较差的问题。

  为实现上述目的,本申请实施例采用的技术方案如下:

  第一方面,本申请实施例提供了一种信息处理方法,包括:

  通过游戏场景中虚拟物体的第一碰撞体检测所述虚拟物体与虚拟载具是否发生交互;

  若检测到所述虚拟物体与所述虚拟载具发生交互,根据所述虚拟载具的属性信息、发生交互前所述虚拟载具的第一速度、以及所述虚拟物体的属性信息,计算发生交互后所述虚拟载具的第二速度以及所述虚拟物体的状态信息;

  为所述虚拟物体添加一用于模拟所述虚拟物体运动的第二碰撞体;

  根据所述发生交互后所述虚拟载具的第二速度以及所述虚拟物体的状态信息,基于所述第二碰撞体,模拟所述虚拟物体与所述虚拟载具发生交互后的运动过程。

  可选地,所述发生交互后所述虚拟物体的状态信息包括:所述虚拟物体绕约束点的转动角速度;

  所述根据所述虚拟载具的属性信息、发生交互前所述虚拟载具的第一速度、以及所述虚拟物体的属性信息,计算发生交互后所述虚拟载具的第二速度以及所述虚拟物体的状态信息,包括:

  根据所述虚拟载具的质量、发生交互之前所述虚拟载具的第一速度、以及所述虚拟物体的属性信息,计算发生交互后所述虚拟载具的第二速度和所述虚拟物体绕约束点的转动角速度。

  可选地,所述方法还包括:

  判断所述虚拟物体的质量是否远大于所述虚拟载具的质量,若是,所述计算发生交互后所述虚拟载具的第二速度,包括:

  根据所述虚拟物体与所述虚拟载具的位置关系对交互前所述虚拟载具的第一速度进行分解,得到交互后所述虚拟载具的第二速度。

  可选地,所述方法还包括:

  根据交互后所述虚拟载具的第二速度,计算交互后所述虚拟载具的车轮转速和交互后的引擎转速。

  可选地,所述为所述虚拟物体添加一用于模拟所述虚拟物体运动的第二碰撞体,包括:

  根据所述第一碰撞体的形状和所述虚拟物体的属性信息,获得所述第二碰撞体的物理参数;

  根据所述第二碰撞体的物理参数,为所述虚拟物体添加所述第二碰撞体。

  可选地,所述第二碰撞体的物理参数包括:形状、高度、以及质心;

  所述根据所述第一碰撞体的形状和所述物体的信息,获得所述第二碰撞体的物理参数,包括:

  根据所述第一碰撞体的形状、所述虚拟物体的高度,确定所述第二碰撞体的形状;

  根据所述虚拟物体与游戏场景中地面的相对高度,确定所述第二碰撞体的高度;

  根据所述第二碰撞体的高度,确定所述第二碰撞体的质心。

  可选地,所述计算发生交互后所述虚拟载具的第二速度以及所述虚拟物体的状态信息之后,所述方法还包括:

  为所述虚拟物体添加铰链,所述铰链用于模拟游戏场景中地面对所述虚拟物体的约束,包括:

  根据所述虚拟物体的位置信息、以及交互后所述虚拟载具的第二速度,确定所述铰链的位置信息;

  根据所述铰链的位置信息,在所述虚拟物体和所述游戏场景中地面之间添加所述铰链。

  可选地,所述根据交互后所述虚拟载具的第二速度和所述虚拟物体的状态信息,基于所述第二碰撞体,模拟所述虚拟物体与所述虚拟载具发生交互后的运动过程,包括:

  根据所述虚拟物体绕约束点的转动角速度,和所述虚拟物体的预设旋转惯量,确定发生交互前所述虚拟物体的冲量;

  根据所述铰链和所述虚拟物体的冲量,基于所述第二碰撞体,模拟所述虚拟物体与所述虚拟载具发生交互后的运动过程。

  可选地,所述根据所述铰链和所述虚拟物体的冲量,基于所述第二碰撞体,模拟所述虚拟物体与所述虚拟载具发生交互后的运动过程之前,所述方法还包括:

  为所述虚拟物体添加第三碰撞体,其中,所述第三碰撞体用于检测所述虚拟物体与场景环境的交互;

  若基于所述第三碰撞体检测到所述虚拟物体与所述场景环境发生交互,根据所述虚拟物体与所述场景环境的位置关系,为所述虚拟物体添加弹簧约束;

  所述根据所述铰链和所述虚拟物体的冲量,基于所述第二碰撞体,模拟所述虚拟物体与所述虚拟载具发生交互后的运动过程,包括:

  根据所述铰链、所述虚拟物体的冲量和所述弹簧约束,基于所述第二碰撞体,模拟所述虚拟物体与所述虚拟载具发生交互后的运动过程。

  可选地,所述方法还包括:

  若交互后所述虚拟物体的状态信息满足预设条件,停止模拟所述虚拟物体与所述虚拟载具交互后的运动过程;

  删除所述虚拟物体相应的所述第二碰撞体和所述第三碰撞体。

  可选地,所述通过游戏场景中虚拟物体的第一碰撞体检测所述虚拟物体与虚拟载具是否发生交互之前,所述方法还包括:

  在离线状态下,对所述虚拟物体进行预处理。

  可选地,所述对所述虚拟物体进行预处理包括:

  为所述虚拟物体添加所述第一碰撞体。

  可选地,所述为所述虚拟物体添加一用于模拟所述虚拟物体运动的第二碰撞体之前,所述方法还包括:

  删除所述虚拟物体的所述第一碰撞体。

  可选地,所述对所述虚拟物体进行预处理,还包括:

  为所述虚拟物体添加相应的类型标识;

  若检测到所述虚拟物体与所述虚拟载具发生交互之后,所述方法还包括:

  获取所述虚拟物体的类型标识,根据所述虚拟物体的类型标识,确定所述虚拟物体的属性信息。

  第二方面,本申请实施例还提供了一种信息处理装置,包括:检测模块、计算模块、添加模块、模拟模块;

  所述检测模块,用于通过游戏场景中虚拟物体的第一碰撞体检测所述虚拟物体与虚拟载具是否发生交互;

  所述计算模块,用于若检测到所述虚拟物体与所述虚拟载具发生交互,根据所述虚拟载具的属性信息、发生交互前所述虚拟载具的第一速度、以及所述虚拟物体的属性信息,计算发生交互后所述虚拟载具的第二速度以及所述虚拟物体的状态信息;

  所述添加模块,用于为所述虚拟物体添加一用于模拟所述虚拟物体运动的第二碰撞体;

  所述模拟模块,用于根据所述发生交互后所述虚拟载具的第二速度以及所述虚拟物体的状态信息,基于所述第二碰撞体,模拟所述虚拟物体与所述虚拟载具发生交互后的运动过程。

  可选地,所述发生交互后所述虚拟物体的状态信息包括:所述虚拟物体绕约束点的转动角速度;

  所述计算模块,具体用于根据所述虚拟载具的质量、发生交互之前所述虚拟载具的第一速度、以及所述虚拟物体的属性信息,计算发生交互后所述虚拟载具的第二速度和所述虚拟物体绕约束点的转动角速度。

  可选地,所述装置还包括:判断模块;

  所述判断模块,用于判断所述虚拟物体的质量是否远大于所述虚拟载具的质量,若是,所述计算模块,具体用于根据所述虚拟物体与所述虚拟载具的位置关系对交互前所述虚拟载具的第一速度进行分解,得到交互后所述虚拟载具的第二速度。

  可选地,所述计算模块,还用于根据交互后所述虚拟载具的第二速度,计算交互后所述虚拟载具的车轮转速和交互后的引擎转速。

  可选地,所述添加模块,具体用于根据所述第一碰撞体的形状和所述虚拟物体的属性信息,获得所述第二碰撞体的物理参数;根据所述第二碰撞体的物理参数,为所述虚拟物体添加所述第二碰撞体。

  可选地,所述第二碰撞体的物理参数包括:形状、高度、以及质心;

  所述添加模块,具体用于根据所述第一碰撞体的形状、所述虚拟物体的高度,确定所述第二碰撞体的形状;根据所述虚拟物体与游戏场景中地面的相对高度,确定所述第二碰撞体的高度;根据所述第二碰撞体的高度,确定所述第二碰撞体的质心。

  可选地,所述添加模块,还用于为所述虚拟物体添加铰链,所述铰链用于模拟游戏场景中地面对所述虚拟物体的约束;

  所述添加模块,具体用于根据所述虚拟物体的位置信息、以及交互后所述虚拟载具的第二速度,确定所述铰链的位置信息;根据所述铰链的位置信息,在所述虚拟物体和所述游戏场景中地面之间添加所述铰链。

  可选地,所述模拟模块,具体用于根据所述虚拟物体绕约束点的转动角速度,和所述虚拟物体的预设旋转惯量,确定发生交互前所述虚拟物体的冲量;根据所述铰链和所述虚拟物体的冲量,基于所述第二碰撞体,模拟所述虚拟物体与所述虚拟载具发生交互后的运动过程。

  可选地,所述添加模块,还用于为所述虚拟物体添加第三碰撞体,其中,所述第三碰撞体用于检测所述虚拟物体与场景环境的交互;若基于所述第三碰撞体检测到所述虚拟物体与所述场景环境发生交互,根据所述虚拟物体与所述场景环境的位置关系,为所述虚拟物体添加弹簧约束;

  所述模拟模块,具体用于根据所述铰链、所述虚拟物体的冲量和所述弹簧约束,基于所述第二碰撞体,模拟所述虚拟物体与所述虚拟载具发生交互后的运动过程。

  可选地,所述装置还包括:停止模块、删除模块;

  所述停止模块,用于若交互后所述虚拟物体的状态信息满足预设条件,停止模拟所述虚拟物体与所述虚拟载具交互后的运动过程;

  所述删除模块,用于删除所述虚拟物体相应的所述第二碰撞体和所述第三碰撞体。

  可选地,所述装置还包括:预处理模块;

  所述预处理模块,用于在离线状态下,对所述虚拟物体进行预处理。

  可选地,所述预处理模块,具体用于为所述虚拟物体添加所述第一碰撞体。

  可选地,所述删除模块,还用于删除所述虚拟物体的所述第一碰撞体。

  可选地,所述添加模块,还用于为所述虚拟物体添加相应的类型标识。

  可选地,所述装置还包括:确定模块;

  所述确定模块,用于获取所述虚拟物体的类型标识,根据所述虚拟物体的类型标识,确定所述虚拟物体的属性信息。

  第三方面,本申请实施例提供了一种信息处理设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当信息处理设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如上述第一方面所述的信息处理方法的步骤。

  第四方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面所述的信息处理方法的步骤。

  本申请的有益效果是:

  本申请提供一种信息处理方法、装置、设备及存储介质,该方法包括:通过游戏场景中虚拟物体的第一碰撞体检测虚拟物体与虚拟载具是否发生交互;若检测到虚拟物体与虚拟载具发生交互,根据虚拟载具的属性信息、发生交互前虚拟载具的第一速度、以及虚拟物体的属性信息,计算发生交互后虚拟载具的第二速度以及虚拟物体的状态信息;为虚拟物体添加一用于模拟虚拟物体运动的第二碰撞体;根据发生交互后虚拟载具的第二速度以及虚拟物体的状态信息,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程。其中,根据计算得到的交互后虚拟载具的运动速度以及虚拟物体的状态信息,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程,有效解决了交互过程中未考虑虚拟物体对载具影响带来的不真实表现和操作体验,从而使得交互过程模拟效果真实较好,客户体验度较高。

  其次,整个交互过程中的参数信息可通过交互发生后虚拟物体的状态信息和虚拟载具的第二速度唯一确定,使得交互过程的同步十分简单,有效地降低了交互过程同步带来的消耗。

  另外,通过在离线状态下添加第一碰撞体、类型标签等,可根据类型标签对虚拟物体进行预处理。从而有效降低了系统运行时消耗。

  最后,在添加第二碰撞体之前,将第一碰撞体删除,并且,在模拟交互结束后,将第二碰撞体和第三碰撞体进行删除,可以有效降低内存的占用和消耗,从而提高方法执行的效率。

  附图说明

  为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

  图1为本申请实施例提供的一种信息处理方法的流程示意图;

  图2为本申请实施例提供的一种虚拟载具与虚拟物体交互示意图;

  图3为本申请实施例提供的交互后虚拟载具的引擎和车轮的状态变化曲线示意图;

  图4为本申请实施例提供的另一种信息处理方法的流程示意图;

  图5为本申请实施例提供的又一种信息处理方法的流程示意图;

  图6为本申请实施例提供的另一种信息处理方法的流程示意图;

  图7为本申请实施例提供的一种信息处理方法的流程示意图;

  图8为本申请实施例提供的另一种信息处理方法的流程示意图;

  图9为本申请实施例提供的一种信息处理方法的流程示意图;

  图10为本申请实施例提供的一种信息处理装置的示意图;

  图11为本申请实施例提供的另一种信息处理装置的示意图;

  图12为本申请实施例提供的又一种信息处理装置的示意图;

  图13为本申请实施例提供的另一种信息处理装置的示意图;

  图14为本申请实施例提供的又一种信息处理装置的示意图;

  图15为本申请实施例提供的信息处理设备的结构示意图。

  具体实施方式

  为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

  在本申请提出申请之前,针对游戏场景中,虚拟载具与虚拟物体的交互模拟,一般可以通过创建与虚拟物体形状和物理参数相当的动态刚体,然后过物理引擎加以模拟,比如虚拟载具撞击游戏场景中地面上的虚拟物体,例如:虚拟箱子,虚拟碎石等。然而游戏场景中往往存在大量更为复杂的虚拟物体,也可称为一类受地面约束的虚拟物体,如虚拟树木、虚拟电线杆,虚拟指示牌等。虽然这些虚拟物体本身可以等价为一个刚体,但它们还受到地面的约束,如树根生长于地面之下。所以,仅将其建模为简单的动态刚体并不能够真实地表现出实际中这类虚拟物体与虚拟载具交互的过程。在不同的情况下,针对这类虚拟物体与虚拟载具的交互往往采用不同的方案。

  第一:当虚拟物体质量和体积不大的情况下,如木栅栏、指示牌等,往往采用建立物理破碎模型的方式来模拟与虚拟载具的交互过程。在性能和灵活度要求更高的场合,可以通过播放特效来表现交互过程。

  第二:针对某些不可完全破坏的物体,如树木等,通常采用播放动画的方式来表现整个交互过程。即,当虚拟载具与虚拟物体交互瞬间,对物体播放事先制作好的动画;对交互真实度要求不高的场合,还可以创建形状和物理参数与虚拟物体大致相当的刚体,并通过物理引擎来模拟整个交互过程。

  第三:对于某些形状和质量较大的虚拟物体,如混凝土电线杆等,一般会在交互的位置播放相应的特效,然后分别在虚拟载具和虚拟物体上添加适当的贴花或其他效果来表现交互后留下的影响。

  上述虚拟载具与虚拟物体的交互方案,尽管实现简单且较为成熟,但是对于品质和细节要求更高的场合,还不能满足要求。其所导致的技术问题为:

  第一:交互时虚拟物体的表现不够真实,且某些情况下性能消耗较大。尽管在部分情况下,可以通过建立虚拟物体的物理破碎模型来模拟整个交互过程中物体完全被载具破坏的过程。但物理破碎不但具有较大内存和性能消耗,且在大世界的模拟中不够灵活。如破碎模型存在不支持缩放,与地面不能穿插等限制,使得场景制作的工作量和资源量大大增加;对于某些物体,虽然通过创建动态刚体模拟交互时虚拟物体运动过程的方式十分简单,也有物理引擎的支持,但是并不能表现出虚拟物体受地面约束的特性,且在复杂场景中模拟交互过程时,可能出现由于数值不稳定等因素导致的抖动等问题。

  第二:交互时虚拟载具的表现不够真实、平滑。在物理引擎中,游戏场景中的可交互静态虚拟物体都具有无穷质量的特性。所以当虚拟载具与这些虚拟物体发生碰撞时,往往会出现瞬间停止等不符实际的表现;而在某些情况下,出于性能考虑,虚拟物体只能提供场景查询的特性,如物理引擎中Trigger类型的碰撞体。使得虚拟载具与虚拟物体发生碰撞时,相互之间不存在物理作用,仅仅能够获取交互发生时虚拟载具和虚拟物体的相关信息,因此不会存在任何交互表现。

  第三:同步交互过程存在一定的消耗。在多人同时在线的情况下,为保证不同的客户端,虚拟载具与虚拟物体交互过程表现的一致性,就需要同步整个交互过程。由于,交互过程中虚拟物体的状态数量往往较多,且服务器需要向几乎所有的客户端都发送相应的同步信息。所以,在虚拟载具与虚拟物体进行频繁交互的情况下,同步交互过程带来的流量消耗会显著增加。除此之外,频繁地接收和发送同步信息,还会导致终端的耗电量增加。

  为了解决上述技术问题,本发明实施例提供一种信息处理方法。其核心改进点在于:在无法简单地利用物理引擎模拟整个交互过程的情况下,通过虚拟物体的建模和虚拟载具运动过程中状态的计算,使得虚拟载具和虚拟物体的交互表现足够真实稳定。整个交互过程可以通过交互时虚拟载具的状态和虚拟物体的信息唯一确定,从而仅需同步交互的初始信息,就能在不同的客户端模拟出整个交互过程,有效地降低了同步交互过程带来的消耗。

  下面通过可能的实现方式对本发明的技术方案进行说明。

  图1为本申请实施例提供的一种信息处理方法的流程示意图;本申请方法的执行主体可以是信息处理设备,该信息处理设备可以是游戏服务器或者是游戏客户端。

  当执行主体为游戏客户端时,该信息处理方法可由安装有游戏应用的游戏客户端的处理设备如处理器执行相应的软件代码实现,也可由该游戏客户端的处理设备执行相应的软件代码,并结合其他硬件实体实现。其中,游戏客户端可以为电子设备,电子设备可以是例如:台式电脑、笔记本、个人数字助理(Personal Digital Assistant,简称:PDA)、智能手机、平板电脑和游戏机等设备。该实施例以电子设备为执行主体进行说明,当执行主体为游戏服务器时,执行的方式类似,本实施例此处不做赘述。

  游戏客户端的处理设备上可通过执行游戏应用并在显示设备上渲染生成图形用户界面,在生成图形用户界面的过程中,也可在图形用户界面上渲染生成场景界面,使得该场景界面中显示有游戏场景,该游戏场景中包括本申请方案中的虚拟载具和虚拟物体。

  具体地,用户可以下载游戏类的应用程序或浏览器的网页程序并安装至游戏客户端上,如该游戏应用在游戏客户端上运行时,便可在显示设备上渲染生成图形用户界面。如上所涉及的显示设备可以为游戏客户端的显示设备,也可以为该游戏客户端外接的显示设备,即与该游戏客户端连接的显示设备。

  如图1所示,该方法可包括:

  S101、通过游戏场景中虚拟物体的第一碰撞体检测虚拟物体与虚拟载具是否发生交互。

  首先,需要说明的是,碰撞检测是游戏场景中各虚拟对象之间、或玩家所控制的游戏角色与各虚拟对象之间的一切交互行为的基础。虚拟对象可以包括但不限于环境对象(例如,花草树木)、地形对象(山川、河流等)、建筑对象(如楼房、工厂、墙壁等)、虚拟载具(例如坐骑、车辆、船只等)、其他玩家所控制的游戏角色、NPC(Non-player Character,非玩家角色)等等。在游戏中,既可以通过基于虚拟对象模型构建的碰撞体进行碰撞检测,碰撞体可以设置为至少包括部分的虚拟对象模型。例如,基于虚拟对象模型的包围盒是否部分或全部重叠进行碰撞判定。此外,也可以通过基于某一虚拟对象发出的射线确定其他虚拟对象是否位于交互范围内来检测碰撞,可以根据具体需求进行选择,本实施例不局限于此。

  本实施例中,可通过虚拟物体和虚拟载具的碰撞体,检测虚拟物体与虚拟载具是否发生交互。其中,在检测交互发生之前,可以预先给虚拟物体和虚拟载具添加各自对应的碰撞体。其中,上述的第一碰撞体可以称为检测碰撞体,对虚拟物体添加该碰撞体,可实现虚拟物体与虚拟载具的碰撞检测。

  本申请中,虚拟载具可以为游戏场景中的虚拟车辆,例如:吃鸡游戏中,游戏角色所使用的虚拟摩托车、虚拟汽车等。虚拟物体可以为游戏场景中的虚拟树木、虚拟电线杆等受地面约束的物体。当这类虚拟载具与虚拟物体发生交互,也即发生碰撞后,虚拟载具和虚拟物体的运动状态均会发生变化,可以根据交互后虚拟载具和虚拟物体的运动状态,模拟交互过程,使得交互过程更加真实。

  上述虚拟物体的第一碰撞体的形状,一般可以设置为虚拟物体能够与虚拟载具交互部分的包围盒,如:虚拟树木的树干部分。虚拟树木在与虚拟车辆发生碰撞时,通常是虚拟树木的树干部分与虚拟车辆发生碰撞,故可以虚拟树木的第一碰撞体的形状可以设置为树木树干部分的包围盒。对于不同的虚拟物体,可以根据其自身属性进行碰撞体形状的设置。

  除了上述的第一碰撞体,还可给虚拟物体添加用于发挥物体特定作用的碰撞体,如虚拟物体为虚拟树木时,可以为虚拟树木添加用于发挥树木特定作用的碰撞体,如虚拟树木的视野遮挡和光晕等效果。该碰撞体的形状与虚拟物体的包围盒大小一致,在某些对精度要求更高的场合,可以利用单个甚至多个凸几何体进行近似。该碰撞体与上述第一碰撞体的不同之处在于,该碰撞体的形状设置为虚拟物体包围盒的大小,而不仅是虚拟物体与虚拟载具能发生交互部分的包围盒。仍以虚拟物体为虚拟树木为例,为虚拟树木添加的用于发挥特定作用的碰撞体的形状可以为整个树木的包围盒,包括树干和树叶。

  S102、若检测到虚拟物体与虚拟载具发生交互,根据虚拟载具的属性信息、发生交互前虚拟载具的第一速度、以及虚拟物体的属性信息,计算发生交互后虚拟载具的第二速度以及虚拟物体的状态信息。

  在一些实施例中,当虚拟物体与虚拟载具发生交互后,虚拟物体与虚拟载具的运动状态将发生变化,可根据虚拟载具和虚拟物体的一些属性信息和虚拟载具在交互前一帧对应的运动状态,计算发生交互后虚拟载具和虚拟物体的状态信息。

  可选地,除了为虚拟物体添加第一碰撞体和发挥物体特定作用的碰撞体外,还可设置用于标识虚拟物体类型的标志位。该标志位需要能够标识出虚拟物体类型,使得在检测到虚拟物体与虚拟载具发生交互时,可以根据虚拟物体的标识,确定虚拟物体的类型,也即确定虚拟物体具体为什么物体,从而根据确定的虚拟物体的类型,获取该虚拟物体的属性信息。

  另外,通过设置用于标识虚拟物体类型的标志位,也可以使得虚拟载具在与虚拟物体交互时,能够在处理交互的逻辑中根据虚拟物体的类型对物体进行建模。

  同样的,对于虚拟载具,也可以同样设置标志位,用于实现和虚拟物体的标志位相同的功能。

  S103、为虚拟物体添加一用于模拟虚拟物体运动的第二碰撞体。

  在一些实施例中,上述第一碰撞体是用于检测虚拟物体与虚拟载具是否发生交互,而在检测到交互发生后,需要模拟交互过程,此时,可以为虚拟物体添加能够实现模拟虚拟物体运动的第二碰撞体,也可以称为交互碰撞体。具体地,对于如何生成第二碰撞体,可以根据下述相关步骤的具体解释进行理解。

  S104、根据发生交互后虚拟载具的第二速度以及虚拟物体的状态信息,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程。

  当虚拟载具与虚拟物体发生交互时,仅依靠物理引擎模拟一般不能获得较为理想的交互效果。本申请方案中,可根据上述计算得地的交互后虚拟载具的状态的速度以及虚拟物体的状态信息,通过虚拟物体的第二碰撞体,实现虚拟物体与虚拟载具交互过程的模拟。

  综上,本实施例提供的信息处理方法,包括:通过游戏场景中虚拟物体的第一碰撞体检测虚拟物体与虚拟载具是否发生交互;若检测到虚拟物体与虚拟载具发生交互,根据虚拟载具的属性信息、发生交互前虚拟载具的第一速度、以及虚拟物体的属性信息,计算发生交互后虚拟载具的第二速度以及虚拟物体的状态信息;为虚拟物体添加一用于模拟虚拟物体运动的第二碰撞体;根据发生交互后虚拟载具的第二速度以及虚拟物体的状态信息,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程。其中,根据计算得到的交互后虚拟载具的运动速度以及虚拟物体的状态信息,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程,有效解决了交互过程中未考虑虚拟物体对载具影响带来的不真实表现和操作体验,从而使得交互过程模拟效果真实较好,客户体验度较高。

  可选地,上述步骤S102中,发生交互后虚拟物体的状态信息可包括:虚拟物体绕约束点的转动角速度。

  而步骤S102中,根据虚拟载具的属性信息、发生交互前虚拟载具的第一速度、以及虚拟物体的属性信息,计算发生交互后虚拟载具的第二速度以及虚拟物体的状态信息,可包括:根据虚拟载具的质量、发生交互之前虚拟载具的第一速度、以及虚拟物体的属性信息,计算发生交互后虚拟载具的第二速度和虚拟物体绕约束点的转动角速度。

  可选地,虚拟载具的属性信息可以包括:虚拟载具的质量、车轮半径、不同档位齿轮比等信息。可选地,可以通过识别虚拟载具的标志位,确定虚拟载具的类型,从而根据虚拟载具的类型获取虚拟载具的属性信息。同样的,虚拟物体的属性信息也可以包括:虚拟物体的质量、底径、高度等信息。

  考虑到虚拟物体和虚拟载具在交互过程中交互内力远大于外力,因此动量近似守恒,可得如下关系:m1v+I1w=m1v1

  其中m1为虚拟载具的质量,v1为交互前虚拟载具的第一速度,v为交互后虚拟载具的第二速度。

  通常将运动过程中的虚拟物体等价为适当的圆柱体,那么交互后虚拟物体绕约束点的转动惯量I1可以采用如下公式计算:

  其中,m2为虚拟物体的质量,r为虚拟物体的近似半径,h为虚拟物体的近似高度。考虑到虚拟物体的平均速度与交互后虚拟载具的第二速度v相同,那么可得公式:从而可得,其中,w为交互后虚拟物体绕约束点的转动角速度。从而计算得到交互后虚拟载具的第二速度v和虚拟物体绕约束点的转动角速度w。

  可选地,本申请的方法还可包括:判断虚拟物体的质量是否远大于虚拟载具的质量,若是,上述步骤S102中,计算发生交互后虚拟载具的第二速度,可包括:根据虚拟物体与虚拟载具的位置关系对交互前虚拟载具的第一速度进行分解,得到交互后虚拟载具的第二速度。

  需要说明的是,上述实施例中,是在虚拟载具的质量大于虚拟物体质量的情况下,采用上述方法计算交互后虚拟载具的第二速度。

  图2为本申请实施例提供的一种虚拟载具与虚拟物体交互示意图。在一些情况下,虚拟物体的质量可能远远小于虚拟载具的质量,比如混领土电线杆。这种情况下,动量守恒的条件不再满足。但当虚拟载具正面直接与虚拟物体交互时,通过物理引擎或上面的方式得出载具的速度v≈0。在大多数情况下,这与实际情况并不相符。因此,需要根据虚拟载具与虚拟物体交互时的位置关系对交互前虚拟载具的第一速度进行分解。如图2所示,当虚拟载具侧面与虚拟物体交互时,此时,可根据公式:v=v1cosθ,计算得到交互后虚拟载具的第二速度。其中,θ为虚拟载具与虚拟物体交互时,虚拟载具与虚拟物体表面的夹角。

  可选地,本申请针对虚拟载具与虚拟物体不同的质量情况,分别采取对应的计算方式,计算交互后虚拟载具的第二速度,可以使得计算得到的虚拟载具的第二速度的准确性更高,从而根据该第二速度进行交互模拟,模拟效果的准确性也更高。

  可选地,本申请的方法还可包括:根据交互后虚拟载具的第二速度,计算交互后虚拟载具的车轮转速和交互后的引擎转速。

  在一些实施例中,本申请的方法不但提供了交互后虚拟载具的运动速度的计算方法,同时还提供了交互后虚拟载具的车轮转速和引擎转速的计算方法。

  实际中虚拟载具受到冲击的情况下,车轮和引擎的转速也会因为虚拟载具状态的瞬间改变,而受到影响。因此,为模拟这种情况,在上述计算得到交互后虚拟载具的第二速度v后,还需要进一步确定虚拟载具的引擎和车轮在交互后的状态,使得虚拟载具的运行过程满足自身的特性。对于某个特定的虚拟载具,在正常运行时一般满足如下条件:

  

  其中vw为车轮的线速度,weng为引擎转速,G为引擎到车轮的齿轮比,rw为车轮半径,H>0是与虚拟载具类型相关的常数。所以,可以得到:

  

  其中,w1为交互前虚拟载具的车轮转速,从而对于车轮可得:

  

  其中,w为交互后虚拟载具的车轮转速。

  而对于引擎可得:weng=min(weng,G|w|),其中,weng为交互后虚拟载具的引擎转速。由此可得到交互后虚拟载具的车轮转速和引擎转速。

  需要说明的是,上述引擎到车轮的齿轮比G,车轮半径rw均为虚拟载具的属性信息,在前面实施例中有说明,此处不再一一赘述。

  图3为本申请实施例提供的交互后虚拟载具的引擎和车轮的状态变化曲线示意图。从图中可以看出在交互前后虚拟载具的引擎和车轮运行特性几乎保持一致。

  下述通过多个实施例,对模拟虚拟物体与虚拟载具的交互过程进行说明。再此之前,可以先去掉给虚拟物体所添加的第一碰撞体,这样不但能够避免重复检测问题,还可以减小维护不必要的碰撞体带来的消耗。

  图4为本申请实施例提供的另一种信息处理方法的流程示意图。可选地,如图4所示,上述步骤S103中,为虚拟物体添加一用于模拟虚拟物体运动的第二碰撞体,可以包括:

  S201、根据第一碰撞体的形状和虚拟物体的属性信息,获得第二碰撞体的物理参数。

  可选地,本实施例中,可以根据上述实施例中,虚拟物体的第一碰撞体的参数信息、以及虚拟物体的属性信息,获取第二碰撞体的物理参数。

  可选地,第二碰撞体的物理参数可以包括:形状、高度、以及质心。

  上述步骤S201中,根据第一碰撞体的形状和物体的信息,获得第二碰撞体的物理参数,可以包括:

  第一:根据第一碰撞体的形状、虚拟物体的高度,确定第二碰撞体的形状。

  第二碰撞体的形状可以由下面给出点构成的凸几何体决定:

  

  其中r2为第一碰撞体底面宽的一半;n表示凸几何体的面数,一般n≥3,且越大碰撞体越精细,但n越大碰撞体使用的物理内存会更大;d表示第一碰撞体的高度,根据虚拟物体本身的高度和虚拟物体离底端离地面的高度确定。

  第二:根据虚拟物体与游戏场景中地面的相对高度,确定第二碰撞体的高度。

  可以根据如下公式:d=h-||p0-p1||,计算得到第二碰撞体的高度。

  其中,其中p0为虚拟物体与地表的交点,可通过射线检测获取,p1为虚拟物体底部的坐标,h为虚拟物体的高度。

  根据上述计算,可以得到第二碰撞体的形状、以及高度参数。

  第三:根据第二碰撞体的高度,确定第二碰撞体的质心。

  另外,第二碰撞体的物理参数还可包括:第二碰撞体的质心,其可通过公式:计算得到。

  另外,还需计算虚拟物体绕各轴的转动惯量,以确定第二碰撞体的转动惯量,其可根据公式:计算得到。

  其中,Iy表示虚拟物体绕y轴的转动惯量,IX表示虚拟物体绕x轴的转动惯量。

  由此,可计算得到第二碰撞体的物理参数,其中可包括:第二碰撞体的形状、高度、质心、转动惯量等参数。当然,实际应用中,第二碰撞体的物理参数不限于所列举的几种参数,第二碰撞体的参数较多时,第二碰撞体的模拟精度较高,但是,相应的也会导致模拟过程中使用的物理内存更大。可以适应性的选择必要的物理参数构建第二碰撞体。本申请不做具体限制。

  S202、根据第二碰撞体的物理参数,为虚拟物体添加第二碰撞体。

  可选地,可以根据上述计算得到的第二碰撞体的物理参数,构建第二碰撞体,也即,第二碰撞体的形状等由该物理参数决定,构建得到的第二碰撞体具备物理参数对应的物理属性。同时,将该第二碰撞体添加至虚拟物体,以使得添加有该第二碰撞体的虚拟物体可以进行交互过程的物理模拟。

  图5为本申请实施例提供的又一种信息处理方法的流程示意图。可选地,如图5所示,上述步骤S102中,计算发生交互后虚拟载具的第二速度以及虚拟物体的状态信息之后,本申请的方法还可以包括:

  为虚拟物体添加铰链,铰链用于模拟游戏场景中地面对虚拟物体的约束,包括:

  S301、根据虚拟物体的位置信息、以及交互后虚拟载具的第二速度,确定铰链的位置信息。

  通常,当受地面约束类的虚拟物体与虚拟载具发生交互后,由于虚拟物体受到地面的约束作用,交互后虚拟物体会在地面的反作用下,产生摇摆等现象,而不是表现为被虚拟载具撞飞等不真实的表现。

  比如虚拟物体为虚拟树木、虚拟载具为游戏场景中行驶的虚拟车辆时,当虚拟载具与虚拟物体发生交互,例如虚拟车辆碰撞到虚拟树木时,在将虚拟树木推倒的时候,因为地面对于虚拟树木有一定的约束作用,地面会通过对树根施加一定的力,从而使虚拟树木不能完全脱离地面。同时,树冠着地后会有先减速,然后反弹这么一个循环过程。

  为了模拟出这种效果,本实施例中采用了添加铰链约束的方式,以对地面对虚拟物体的约束效果进行模拟。当然可能还有其他方式来做类似的模拟,本实施例中不做具体限制。

  可选地,可以根据交互后虚拟物体的位置信息、以及交互后虚拟载具的第二速度,采用如下公式,确定铰链的位置信息:

  

  其中,qjoint为铰链旋转量的四元数表示,vz和vx分别为交互后虚拟载具的第二速度的z轴分量和x轴分量,p0为虚拟物体与地表的交点。

  S302、根据铰链的位置信息,在虚拟物体和游戏场景中地面之间添加铰链。

  可选地,可以根据上述确定的铰链的位置信息,在虚拟物体和地面之间添加铰链,以模拟铰链约束。通过添加铰链,能够限制虚拟物体在指定的平面运动,且底部无法脱离地面,从而很好地模拟虚拟物体被地面约束的特性。

  需要说明的是,由于整个交互模拟过程中,地面均对虚拟物体有约束作用,故,上述添加铰链,可以在检测到虚拟物体与虚拟载具发生交互后的铰第一帧进行添加,以使得模拟的铰链约束效果更加精确。

  图6为本申请实施例提供的另一种信息处理方法的流程示意图。可选地,如图6所示,上述步骤S104中,根据交互后虚拟载具的第二速度和虚拟物体的状态信息,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程,可以包括:

  S401、根据虚拟物体绕约束点的转动角速度,和虚拟物体的预设旋转惯量,确定发生交互前虚拟物体的冲量。

  S402、根据铰链和虚拟物体的冲量,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程。

  除了上述添加的铰链外,在一些实施例中,还可确定交互前虚拟物体的冲量大小,以实现交互后,虚拟物体在充冲量作用下运动起来。

  可选地,可采用公式:Pimpulse=Iw,确定交互前虚拟物体的冲量,并基于添加的铰链和虚拟物体的冲量大小,通过第二碰撞体,模拟交互后虚拟物体的运动过程。

  其中,I表示虚拟物体的预设旋转惯量,w表示虚拟物体绕约束点的转动角速度,在前述的实施例中已计算得到。

  图7为本申请实施例提供的一种信息处理方法的流程示意图。可选地,如图7所示,上述步骤S402中,根据铰链和虚拟物体的冲量,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程之前,本申请的方法还可包括:

  S501、为虚拟物体添加第三碰撞体,其中,第三碰撞体用于检测虚拟物体与场景环境的交互。

  S502、若基于第三碰撞体检测到虚拟物体与场景环境发生交互,根据虚拟物体与场景环境的位置关系,为虚拟物体添加弹簧约束。

  在一些情况下,虚拟物体在与虚拟载具发生交互后,虚拟物体会在地面的反作用下,做回复运动,例如:虚拟车辆在与虚拟树木碰撞后,虚拟树木并不会直接倒至地面,而是会发生树冠和地面之间开始接触后会先减速,然后会反弹,这样一直循环,直到虚拟树木完全静止的情况。那么,可以通过对虚拟添加弹簧约束,以实现对该效果的模拟。

  与上述的铰链约束不同,弹簧约束并不会在交互发生的第一帧就进行添加。通常,弹簧约束需要在整个交互模拟过程进行到一定阶段的时候才加入。简单来说,需要根据虚拟物体和游戏环境之间的位置关系,在合适的时候添加的。

  比如实际中树冠和地面之间开始接触后会先减速,然后会反弹。这样一直循环,直到树完全静止。这种情况下,弹簧约束的添加时机则为树冠和地面接触的时候。本实施例中,可通过为虚拟物体添加第三碰撞体,第三碰撞体用于检测虚拟物体与游戏环境位置关系的变化,并在检测到交互后,虚拟物体与游戏环境中地面发生接触时,为虚拟物体添加弹簧约束,以模拟地面对虚拟物体的约束。

  可选地,本实施例中,上述给虚拟物体添加的第三碰撞体的形状可以是与给物体添加的用于发挥特定作用的碰撞体的形状是一致的,同时可设置第三碰撞体能够与游戏环境发生交互。以虚拟物体为虚拟树木为例:第三碰撞体的形状可以是虚拟树木的包围盒的大小,包含虚拟树木的树干和树冠的包围盒,而不是仅包含树干部分(与虚拟载具发生交互部分)的包围盒的大小。

  可选地,当基于第三碰撞体检测到虚拟物体与游戏环境发生交互时,给虚拟物体增加弹簧约束,且弹簧约束发生范围为θt<θ0或θt>θ0+kθ1,其中,θ0为虚拟物体与环境发生交互时的角度,而k代表该虚拟物体放大倍数,θ1为与虚拟物体类型相关的常数。弹簧的刚度和阻尼可确定为:

  k′strength=kkstrength,k′damping=kkdamping

  其中kstrength和kdamping分别为在无放大情况下该虚拟物体弹簧约束的刚度和阻尼。

  需要说明的是,对于任意的虚拟物体,其对应的弹簧约束的刚度和阻尼kstrength和kdamping是固定不变的。但是,当在不同的游戏场景中时,由于游戏场景比例的不同,该虚拟物体在游戏界面中展示的效果也是不同的,也即,同一虚拟物体的大小在不同游戏场景中可以是不同的。本实施例中,可以根据虚拟物体在不同游戏场景中的放大倍数,以及该虚拟物体对应的弹簧约束的刚度和阻尼kstrength和kdamping,确定虚拟物体在游戏场景中的刚度和阻尼,从而根据刚度和阻尼,为虚拟物体添加弹簧约束。

  可选地,上述步骤S402中,根据铰链和虚拟物体的冲量,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程,可以包括:根据铰链、虚拟物体的冲量和弹簧约束,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程。

  可选地,可以根据铰链、虚拟物体的冲量和弹簧约束,为第二碰撞体赋予物体参数,构建具有上述铰链约束和弹簧约束的第二碰撞体,以使得可以通过第二碰撞体模拟虚拟物体与虚拟载具的交互过程。

  图8为本申请实施例提供的另一种信息处理方法的流程示意图。可选地,如图8所示,本申请的方法还可包括:

  S601、若交互后虚拟物体的状态信息满足预设条件,停止模拟虚拟物体与虚拟载具交互后的运动过程。

  S602、删除虚拟物体相应的第二碰撞体和第三碰撞体。

  可选地,在发生交互后,虚拟物体绕约束点的转动角速度满足如下的停止条件时:||vt||≤vth,确定模拟过程结束。

  其中,vth为一常数,可以根据模拟过程的精度要求加以确定。vt表示虚拟物体绕约束点的转动角速度,其在交互后的运动过程中呈逐渐衰减的趋势。

  可选地,在确定模拟过程结束后,可以将上述添加给虚拟物体的第二碰撞体、第三碰撞体、铰链以及弹簧约束等去掉,以减少不必要的性能和内存消耗。

  可选地,上述步骤S101中,通过游戏场景中虚拟物体的第一碰撞体检测虚拟物体与虚拟载具是否发生交互之前,本申请的方法还可以包括:在离线状态下,对虚拟物体进行预处理。其中,对虚拟物体进行预处理可包括:为虚拟物体添加第一碰撞体。

  本申请方案中,为虚拟物体添加用于检测交互发生的第一碰撞体可以在模拟交互之前的离线状态下进行,从而使得本申请的方法在执行过程中需要人工维护的额外信息较少,以降低运行时的消耗,从而提高方法的应用范围。

  可选地,对虚拟物体进行预处理,还可包括:为虚拟物体添加相应的类型标识。

  对于添加至虚拟物体的类型标签以及用于发挥虚拟物体特定作用的碰撞体等,均可在离线状态下进行添加。

  可选地,预处理是美术在制作完游戏场景过后,通过程序扫描场景所有可交互的虚拟物体,为这些虚拟物体添加相应的类型标签,使得交互发生时能够通过添加给虚拟物体的类型标签识别虚拟物体的类型,从而可以根据虚拟物体的类型,在虚拟物体与虚拟载具交互时,能够在处理交互的逻辑中根据虚拟物体的类型对虚拟物体进行建模。

  同时为虚拟物体添加第一碰撞体和用于发挥物体特定作用的碰撞体,使得能够检测交互的发生和产生一些其他用途(如视野遮挡、光晕的呈现等)。碰撞体的形状是虚拟物体外形的大致反应。预处理的规过程在离线状态下完成。游戏开始时,这些预处理的信息和碰撞体会同虚拟物体一起加载进场景,以供在交互发生时,提供交互模拟过程中虚拟物体状态信息计算需要的一些信息。

  需要说明的是,预处理和交互模拟是两个不同的工作流程。预处理只需要美术在游戏场景制作完成后进行一次即可。而每一场游戏都会发生虚拟物体的交互,交互时需要的虚拟物体的静态信息可直接或间接来源于游戏场景的预处理。

  可选地,步骤S103中,为虚拟物体添加一用于模拟虚拟物体运动的第二碰撞体之前,本申请的方法还可包括:删除虚拟物体的第一碰撞体。

  可选地,在添加第二碰撞体用于模拟虚拟物体交互后的运动状态之前,可以将离线状态下,预处理过程中给虚拟物体添加的第一碰撞体、用于发挥物体特定作用的碰撞体删除,以降低内存的占用和消耗,提高方法执行的效率。

  步骤S102中,若检测到虚拟物体与虚拟载具发生交互之后,本申请的方法还可包括:获取虚拟物体的类型标识,根据虚拟物体的类型标识,确定虚拟物体的属性信息。

  可选地,如上述实施例中所说明的,可以通过虚拟物体的类型标签识别虚拟物体的类型,从而可以根据虚拟物体的类型,对虚拟物体进行建模,并在交互模拟时,根据虚拟物体的类型,获取虚拟物体的属性信息,以用于交互后虚拟物体状态信息的计算。

  图9为本申请实施例提供的一种信息处理方法的流程示意图。可选地,如图9所示,为本申请方法对应的一个完整流程示意图,参照图9所示的方法流程,以辅助对本申请方案的理解。如图9所示,方法可包括:

  S1011、为游戏场景中的虚拟物体添加第一碰撞体、以及类型标签。

  S1012、通过游戏场景中虚拟物体的第一碰撞体检测虚拟物体与虚拟载具是否发生交互。

  S1013、若检测到虚拟物体与虚拟载具发生交互,获取虚拟物体的类型标识,根据虚拟物体的类型标识,确定虚拟物体的属性信息。

  S1014、根据虚拟载具的属性信息、发生交互前虚拟载具的第一速度、以及虚拟物体的属性信息,计算发生交互后虚拟载具的第二速度以及虚拟物体的状态信息。

  S1015、删除为虚拟物体添加的第一碰撞体。

  S1016、判断虚拟物体的质量是否远大于虚拟载具的质量。

  S1017、若否,则根据虚拟载具的质量、发生交互之前虚拟载具的第一速度、以及虚拟物体的属性信息,计算发生交互后虚拟载具的第二速度和虚拟物体绕约束点的转动角速度。

  S1018、若是,则根据虚拟物体与虚拟载具的位置关系对交互前虚拟载具的第一速度进行分解,得到交互后虚拟载具的第二速度。

  S1019、根据交互后虚拟载具的第二速度,计算交互后虚拟载具的车轮转速和交互后的引擎转速。

  S1101、为虚拟物体添加一用于模拟虚拟物体运动的第二碰撞体。

  S1102、为虚拟物体添加铰链,确定发生交互前虚拟物体的冲量。

  S1103、为虚拟物体添加第三碰撞体,若基于第三碰撞体检测到虚拟物体与场景环境发生交互,则为虚拟物体添加弹簧约束。

  S1104、根据铰链、虚拟物体的冲量和弹簧约束,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程。

  S1105、删除为虚拟物体添加的第二碰撞体和第三碰撞体。

  对于图9中所示的方法流程的具体实现原理和对应产生的有益效果,可以参照上述的多个实施例进行理解,此处不再一一赘述。

  下面对用于执行本申请的信息处理方法的装置、设备、存储介质进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。

  图10为本申请实施例提供的一种信息处理装置的示意图,如图10所示,该装置可包括:检测模块801、计算模块802、添加模块803、模拟模块804;

  检测模块801,用于通过游戏场景中虚拟物体的第一碰撞体检测虚拟物体与虚拟载具是否发生交互;

  计算模块802,用于若检测到虚拟物体与虚拟载具发生交互,根据虚拟载具的属性信息、发生交互前虚拟载具的第一速度、以及虚拟物体的属性信息,计算发生交互后虚拟载具的第二速度以及虚拟物体的状态信息;

  添加模块803,用于为虚拟物体添加一用于模拟虚拟物体运动的第二碰撞体;

  模拟模块804,用于根据发生交互后虚拟载具的第二速度以及虚拟物体的状态信息,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程。

  可选地,发生交互后虚拟物体的状态信息包括:虚拟物体绕约束点的转动角速度;

  计算模块802,具体用于根据虚拟载具的质量、发生交互之前虚拟载具的第一速度、以及虚拟物体的属性信息,计算发生交互后虚拟载具的第二速度和虚拟物体绕约束点的转动角速度。

  可选地,如图11所示,该装置还包括:判断模块805;

  判断模块805,用于判断虚拟物体的质量是否远大于虚拟载具的质量,若是,计算模块,具体用于根据虚拟物体与虚拟载具的位置关系对交互前虚拟载具的第一速度进行分解,得到交互后虚拟载具的第二速度。

  可选地,计算模块802,还用于根据交互后虚拟载具的第二速度,计算交互后虚拟载具的车轮转速和交互后的引擎转速。

  可选地,添加模块803,具体用于根据第一碰撞体的形状和虚拟物体的属性信息,获得第二碰撞体的物理参数;根据第二碰撞体的物理参数,为虚拟物体添加第二碰撞体。

  可选地,第二碰撞体的物理参数包括:形状、高度、以及质心;

  添加模块803,具体用于根据第一碰撞体的形状、虚拟物体的高度,确定第二碰撞体的形状;根据虚拟物体与游戏场景中地面的相对高度,确定第二碰撞体的高度;根据第二碰撞体的高度,确定第二碰撞体的质心。

  可选地,添加模块803,还用于为虚拟物体添加铰链,铰链用于模拟游戏场景中地面对虚拟物体的约束;

  添加模块803,具体用于根据虚拟物体的位置信息、以及交互后虚拟载具的第二速度,确定铰链的位置信息;根据铰链的位置信息,在虚拟物体和游戏场景中地面之间添加铰链。

  可选地,模拟模块804,具体用于根据虚拟物体绕约束点的转动角速度,和虚拟物体的预设旋转惯量,确定发生交互前虚拟物体的冲量;根据铰链和虚拟物体的冲量,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程。

  可选地,添加模块803,还用于为虚拟物体添加第三碰撞体,其中,第三碰撞体用于检测虚拟物体与场景环境的交互;若基于第三碰撞体检测到虚拟物体与场景环境发生交互,根据虚拟物体与场景环境的位置关系,为虚拟物体添加弹簧约束;

  模拟模块804,具体用于根据铰链、虚拟物体的冲量和弹簧约束,基于第二碰撞体,模拟虚拟物体与虚拟载具发生交互后的运动过程。

  可选地,如图12所示,该装置还包括:停止模块806、删除模块807;

  停止模块806,用于若交互后虚拟物体的状态信息满足预设条件,停止模拟虚拟物体与虚拟载具交互后的运动过程;

  删除模块807,用于删除虚拟物体相应的第二碰撞体和第三碰撞体。

  可选地,如图13所示,该装置还包括:预处理模块808;

  预处理模块808,用于在离线状态下,对虚拟物体进行预处理。

  可选地,预处理模块808,具体用于为虚拟物体添加第一碰撞体。

  可选地,删除模块807,还用于删除虚拟物体的第一碰撞体。

  可选地,添加模块803,还用于为虚拟物体添加相应的类型标识。

  可选地,如图14所示,该装置还包括:确定模块809;

  确定模块809,用于获取虚拟物体的类型标识,根据虚拟物体的类型标识,确定虚拟物体的属性信息。

  上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。

  以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

  图15为本申请实施例提供的信息处理设备的结构示意图,该设备可以是游戏客户端或者是游戏服务器。

  该设备包括:处理器901、存储器902。

  存储器902用于存储程序,处理器901调用存储器902存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。

  可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。

  在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

  所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

  另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

  上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

《信息处理方法、装置、设备及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)