一种虚拟对象的动作处理方法及装置与流程

文档序号:27557769发布日期:2021-11-25 01:35阅读:224来源:国知局
一种虚拟对象的动作处理方法及装置与流程

1.本发明涉及游戏技术领域,特别是涉及一种虚拟对象的动作处理方法和一种虚拟对象的动作处理装置。


背景技术:

2.在游戏的实时战斗中,一般玩家角色会与战斗的敌方角色进行精彩的双人交互表演,这往往是玩家游戏体验的重要记忆点。例如,在一些游戏中,玩家角色飞扑怪物并与怪物在地面滚动,最后进行斩杀过程;在一些游戏中的怪物将玩家角色抓起来进行旋转动作,最后将玩家角色扔飞等过程。
3.美术人员在进行双角色交互动作设计时,其设定的地形环境为平整的大平地、平整规则的墙壁环境等等,但是,在游戏运行时,玩家角色和怪物会处于复杂的地形环境中,包括但不限于:不规则斜坡、建筑内、墙壁边等等环境。这样会使得设计时和游戏运行时的地形环境存在差异,需要游戏在运行时实时根据所处的地形环境进行相关调整,以防止双角色在交互动作时受到地形环境因素的影响,导致两者交互时的躯干姿态不匹配,或者与游戏场景发生穿模等现象,从而降低游戏表演的表现力。
4.目前,主要有两种双角色交互表演的方式,一种是基于挂接方式,通过将一个角色挂接到另一个角色上进行交互表演,但是,这种方式在调整a、b两者之间的相对位置和朝向时,需要额外对挂节点进行实时更新计算,会增加运行开销,而且被挂接的角色不能开启物理碰撞检测,会与环境模型发生穿模。另一种是基于相对位置和朝向的方式,通过在设计时设定好两个角色的相对位置和朝向,然后各自播放各自的表演动画,但是,这种方式如果两个角色各自打开物理碰撞检测和修正的功能,则两者会受到地形物理碰撞影响,使得双方发生位置偏差,如果两个角色不打开物理碰撞检测和修正功能,会使得双方与环境模型发生穿模。


技术实现要素:

5.鉴于上述双角色在交互动作时,由于受到地形环境因素的影响,导致两者交互时的躯干姿态不匹配,或者与游戏场景中的环境模型发生穿模的问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种虚拟对象的动作处理方法和相应的一种虚拟对象的动作处理装置。
6.本发明实施例公开了一种虚拟对象的动作处理方法,所述的方法包括:
7.在第一动作处理阶段内,控制第一虚拟对象在游戏场景中向第二虚拟对象进行移动,其中,所述第一虚拟对象与所述第二虚拟对象分别配置开启碰撞检测逻辑;
8.响应于第二动作处理阶段的触发事件,从所述第一虚拟对象和所述第二虚拟对象中确定一主要虚拟对象、一次要虚拟对象;
9.控制所述次要虚拟对象关闭碰撞检测逻辑,并控制所述次要虚拟对象依附于所述主要虚拟对象进行动作交互;
10.响应于第三动作处理阶段的触发事件,控制所述主要虚拟对象和次要虚拟对象结束动作交互,并控制所述次要虚拟对象重新开启碰撞检测逻辑。
11.可选地,所述控制所述次要虚拟对象依附于所述主要虚拟对象进行动作交互,包括:
12.控制所述次要虚拟对象按照所述主要虚拟对象执行动作交互的进度,依附于所述主要虚拟对象进行动作交互。
13.可选地,所述控制所述次要虚拟对象依附于所述主要虚拟对象进行动作交互,包括:
14.获取所述主要虚拟对象在模型空间中的第一矩阵信息,并转化为所述主要虚拟对象在世界空间中的矩阵信息;
15.根据所述主要虚拟对象在世界空间中的矩阵信息,计算得到交互舞台在世界空间中的舞台矩阵信息;
16.获取所述次要虚拟对象在模型空间中的第二矩阵信息;
17.根据所述舞台矩阵信息和所述第二矩阵信息,计算得到所述次要虚拟对象在世界空间中的矩阵信息;
18.控制所述次要虚拟对象在所述交互舞台上,按照所述次要虚拟对象在世界空间中的矩阵信息依附于所述主要虚拟对象进行动作交互,以使得所述主要虚拟对象和所述次要虚拟对象的位置、朝向和动作姿态对齐。
19.可选地,在所述根据所述舞台矩阵信息和所述第二矩阵信息,计算得到所述次要虚拟对象在世界空间中的矩阵信息的步骤之后,还包括:
20.确定所述主要虚拟对象和次要虚拟对象所在的交互空间;
21.判断所述交互空间是否安全;
22.若所述交互空间不安全,则判断是否需要对所述主要虚拟对象进行位置修正,在需要进行位置修正时调整所述主要虚拟对象的位置,并返回执行所述根据所述主要虚拟对象所述在世界空间中的矩阵信息,计算得到交互舞台在世界空间中的舞台矩阵信息的步骤。
23.可选地,所述确定所述主要虚拟对象和次要虚拟对象所在的交互空间,包括:
24.确定在世界空间中所述主要虚拟对象的指定骨骼所在的第一位置,所述次要虚拟对象的指定骨骼所在的第二位置;
25.根据所述主要虚拟对象对应的预设第一半径和所述次要虚拟对象对应的预设第二半径,以及所述第一位置和第二位置,确定所述主要虚拟对象和次要虚拟对象所在的交互空间。
26.可选地,所述预设第一半径和预设第二半径为设定的基本碰撞半径,通过底层物理系统保障所述主要虚拟对象在所述预设第一半径的范围内不会与场景中的环境模型发生穿模,所述次要虚拟对象在所述预设第二半径的范围内不会与场景中的环境模型发生穿模;通过所述预设第一半径定义的球体为主要虚拟对象的碰撞体,通过所述预设第二半径定义的球体为次要虚拟对象的碰撞体。
27.可选地,所述判断所述交互空间是否安全,包括:
28.当所述主要虚拟对象和次要虚拟对象中一方的碰撞体中心处于另外一方的碰撞
体内时,判定所述交互空间安全;
29.当所述主要虚拟对象和次要虚拟对象中一方的碰撞体中心不处于另外一方的碰撞体内时,检测所述第一位置和第二位置之间是否存在环境模型,若检测到所述第一位置和第二位置之间存在环境模型,则判定所述交互空间不安全。
30.可选地,所述判断是否需要对所述主要虚拟对象进行位置修正,包括:
31.以所述第一位置为起点向所述第二位置发射用于碰撞检测的射线;
32.若所述射线没有与游戏中的环境模型发生碰撞,则判定不需要对所述主要虚拟对象进行位置修正;
33.若所述射线与游戏中的环境模型发生碰撞,则判定需要对所述主要虚拟对象进行位置修正。
34.可选地,所述在需要进行位置修正时调整所述主要虚拟对象的位置,包括:
35.以所述第一位置为起点,所述射线与游戏中的环境模型的碰撞点为终点,作为修正向量;
36.计算得到所述修正向量与y轴的夹角值,并根据所述夹角值调整所述主要虚拟对象在世界空间中的位置。
37.可选地,所述根据所述夹角值调整所述主要虚拟对象在世界空间中的位置,包括:
38.统计修正持续时间,并根据所述修正持续时间和所述夹角值确定修正比例;
39.获取所述射线发生穿模的距离,根据所述穿模的距离和所述修正比例确定调整距离;
40.按照所述调整距离,沿着所述射线的反方向调整所述主要虚拟对象在世界空间中的位置。
41.可选地,所述控制第一虚拟对象在游戏场景中向第二虚拟对象进行移动,包括:
42.控制所述第一虚拟对象瞬移至所述第二虚拟对象所在的位置;或,
43.控制所述第一虚拟对象逐步插值移动至所述第二虚拟对象所在的位置。
44.可选地,所述第二动作处理阶段的触发事件包含以下任一项或多项:
45.定时触发事件;
46.所述第一虚拟对象和所述第二虚拟对象之间的距离达到预设距离阈值;
47.所述第一虚拟对象和所述第二虚拟对象之间发生碰撞。
48.可选地,所述第三动作处理阶段的触发事件包含以下任一项或多项:
49.定时触发事件;
50.接收到用户针对预设脱离控件的触发操作;
51.所述主要虚拟对象和/或所述次要虚拟对象的属性值达到预设数值。
52.本发明实施例还公开了一种虚拟对象的动作处理装置,所述的装置包括:
53.第一动作处理模块,用于在第一动作处理阶段内,控制第一虚拟对象在游戏场景中向第二虚拟对象进行移动,其中,所述第一虚拟对象与所述第二虚拟对象分别配置开启碰撞检测逻辑;
54.虚拟对象确定模块,用于响应于第二动作处理阶段的触发事件,从所述第一虚拟对象和所述第二虚拟对象中确定一主要虚拟对象、一次要虚拟对象;
55.第二动作处理模块,用于控制所述次要虚拟对象关闭碰撞检测逻辑,并控制所述
次要虚拟对象依附于所述主要虚拟对象进行动作交互;
56.第三动作处理模块,用于响应于第三动作处理阶段的触发事件,控制所述主要虚拟对象和次要虚拟对象结束动作交互,并控制所述次要虚拟对象重新开启碰撞检测逻辑。
57.本发明实施例还公开了一种电子设备,包括:
58.处理器和存储介质,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器执行所述机器可读指令,以执行如本发明实施例任一项所述的方法。
59.本发明实施例还公开了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如本发明实施例任一项所述的方法。
60.本发明实施例包括以下优点:
61.在本发明实施例中,通过区分不同的交互动作阶段来设置双角色的物理碰撞检测和修正功能,在第一动作处理阶段,第一虚拟对象和第二虚拟对象分别进行各自的碰撞检测,两个虚拟对象都可以受到物理环境碰撞影响。在第二动作处理阶段,主要虚拟对象开启碰撞检测逻辑以确保不会与环境模型发生穿模,次要虚拟对象虽然关闭了碰撞检测逻辑,但是由于次要虚拟对象依附于主要虚拟对象进行交互动作,在主要虚拟对象所确定的安全空间内,次要虚拟对象也不会存在与环境模型发生穿模的问题,因此,在第二动作处理阶段,能够在保证双角色的姿态交互动作对齐的同时,双方整体受到物理环境碰撞影响,保证交互动作和逻辑的安全与正确性。在第三动作处理阶段,次要虚拟对象重新开启碰撞检测逻辑,使得次要虚拟对象在第三动作处理阶段受到物理环境碰撞影响,保证交互动作和逻辑的安全与正确性。从而,可以与传统的挂点交互动作形式进行互补,考虑环境模型的碰撞影响的交互动作方案,保证在复杂地形下的表现、逻辑的正确性同时,能够尽量保证交互动作双方的相对姿态对齐,从而提升游戏的整体表现力。而且,本方案解放了美术交互动作设计的限制,同时,较之前基于相对位置和朝向的方案,简化了动画资源的导出流程,简化了整体交互动作从美术阶段到程序合入阶段的制作流程,可以提高整体开发效率。
附图说明
62.为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
63.图1是本发明实施例提供的一种虚拟对象的动作处理方法的步骤流程图;
64.图2是本发明实施例提供的一种虚拟对象的动作处理方法的步骤流程图;
65.图3是本发明实施例提供的一种模型空间的示意图;
66.图4是本发明实施例提供的一种第二动作处理阶段的步骤流程图;
67.图5是本发明实施例提供的一种交互舞台的示意图;
68.图6是本发明实施例提供的另一种第二动作处理阶段的步骤流程图
69.图7是本发明实施例提供的一种交互空间的示意图;
70.图8是本发明实施例提供的一种修正向量与y轴的夹角示意图;
71.图9是本发明实施例提供的一种虚拟对象的动作处理装置的结构框图;
72.图10是本发明的一种电子设备的结构框图;
73.图11是本发明的一种计算机可读存储介质的结构框图。
具体实施方式
74.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
75.现有技术中主要通过基于挂接方式和基于相对位置和朝向的方式进行双角色交互动作。假设双人交互动作中,两个角色分别为主演员a、配合演员b,则两种方式的具体实现过程如下:
76.一、基于挂接方式的实现方案。即美术在设计时,是基于挂节点的机制进行设计,比如将b通过挂节点的方式,挂接到a角色的身体部件上,然后制作a、b的动画。在游戏运行时,通过设计时一致的挂接方式,将b挂接到a角色上,然后同时播放a、b设计好的交互动作,从而完成与设计时一致的双人交互动作过程。但是,美术人员在设计与制作动作,需要调整a、b两者之间的相对位置和朝向时,由于引入了挂节点这样的中间环节,则需要进行挂节点的动画制作,这一方面会增加美术人员的工作量与复杂度;另一方面是在实时运算时,因为需要额外对挂节点进行实时更新计算,会增加运行开销。而且,由于被挂接的b角色,在交互动作时是不能开启物理碰撞检测与矫正的,否则会引起姿态不对齐的问题,所以在交互动作的时候,会存在角色b与环境模型发生穿模的风险。
77.二、基于相对位置和朝向的实现方案。美术人员在进行设计时,通过设定好a和b角色的相对位置和相对朝向,然后就进行a、b角色的交互动制作,在游戏运行时,根据美术人员的设定,调整好a与b角色的相对位置和朝向,然后各自播放各自的交互动画,从而完成与设计时一致的双人交互动作过程。但是,若a、b角色各自打开物理碰撞检测和修正的功能,则两者会受到地形物理碰撞影响,使得双方发生位置偏差,最终使得交互动作过程中位置、朝向误差过大,双方无法良好交互动作配合,若a、b角色不打开物理碰撞检测和修正功能,这使得双方在交互动作过程中会与环境模型发生穿模,导致表现和逻辑错误的发生。
78.因此,现有技术中的双角色在交互动作方案,无法避免由于受到地形环境因素的影响,导致两者交互时的躯干姿态不匹配,或者与游戏场景中的环境模型发生穿模的问题。本发明实施例中提供了一种区分不同的动作阶段来设置双角色的物理碰撞检测和修正功能的方案,通过将对虚拟对象的动作处理过程分为三个阶段,例如,可以分为第一动作处理阶段、第二动作处理阶段和第三动作处理阶段。通过美术在设计人员预先设计动作交互的动画,不同的时间段对应不同的阶段,例如,在动画的开始点t0到时间点t1之间的时间段,对应的是第一动作处理阶段,在动画的时间点t1到时间点t2之间的时间段,对应的是第二动作处理阶段,在动画的时间点t2到结束时间点t3之间的时间段,对应的是第三动作处理阶段,在具体实现中,可以根据当前的动画时间,确定动作交互所处的阶段。如图1所示,是本发明实施例的一种虚拟对象的动作处理方法的步骤流程图。
79.步骤101,在第一动作处理阶段,第一虚拟对象自己进行紧密交互动作前的美术位移流程,向目标(即第二虚拟对象)靠近。
80.此时,可以进行技能逻辑等碰撞结算和定时触发等控制流程,让双方进入下一阶段。需要说明的是,在此阶段,第一虚拟对象和第二虚拟对象分别进行各自的碰撞检测,两个虚拟对象都可以受到物理环境碰撞影响,保证交互动作和逻辑的安全与正确性。
81.步骤102,在第二动作处理阶段,第一虚拟对象按照自身的美术位移、和物理碰撞进行位移移动;第二虚拟对象进入配合动作交互时,按照第一虚拟对象的动画进度,进行一次时间同步;第二虚拟对象关闭自身的刚体碰撞功能,依附交互舞台的世界矩阵进行正确位置验算,其中,交互舞台根据第一虚拟对象所在的位置进行确定;根据交互空间,进行环境碰撞检测,修正第一虚拟对象以及交互空间的位置,从而保证第一虚拟对象和第二虚拟对象在合理碰撞,和可接受的穿模情况的交互空间中进行交互动作。
82.在此阶段,第二虚拟对象依附于第一虚拟对象进行动作交互,即第二虚拟对象在根据第一虚拟对象的位置所确定的交互舞台上进行交互动作,在交互动作时根据第一虚拟对象的位置和朝向等信息确定第二虚拟对象的交互动作位置和朝向,以保证第一虚拟对象和第二虚拟对象的姿态对齐。而且,第一虚拟对象开启碰撞检测逻辑以确保不会与环境模型发生穿模,第二虚拟对象虽然关闭了碰撞检测逻辑,但是由于第二虚拟对象依附于第一虚拟对象进行动作交互,在第一虚拟对象所确定的安全空间内,第二虚拟对象也不会存在与环境模型发生穿模的问题。因此,在第二动作处理阶段,能够在保证双角色的姿态交互动作对齐的同时,双方整体受到物理环境碰撞影响,保证交互动作和逻辑的安全与正确性。
83.步骤103,在第三动作处理阶段,第二虚拟对象还原自身的刚体碰撞功能,第一虚拟对象和第二虚拟对象不再按照交互舞台进行位置和朝向的同步计算,而是按照自身后续逻辑进行自洽验算即可。
84.在此阶段,两个虚拟对象可以各自进行剩余的、非强配合的动作交互,包括姿态、位置、朝向的各自变化,例如:第一虚拟对象将第二虚拟对象抓住并脚踢第二虚拟对象,第二虚拟对象被脚踢之后,整个第二虚拟对象被踢飞,则在第三动作处理阶段,在第一虚拟对象收回脚之后,第二虚拟对象仍然向远处飞去。此时,第二虚拟对象开启碰撞检测逻辑,使得第二虚拟对象在远离阶段受到物理环境碰撞影响,保证交互动作和逻辑的安全与正确性。
85.本发明实施例提供的虚拟对象的动作处理方法,与传统的挂点交互j动作形式进行互补,考虑环境模型的碰撞影响的交互动作方案,依托于交互舞台的概念,进行整体交互空间碰撞检测,保证在复杂地形下的表现、逻辑的正确性同时,能够尽量保证交互动作双方的相对姿态对齐,从而提升游戏的整体表现力。而且,本方案解放了美术交互动作设计的限制,同时,较之前基于相对位置和朝向的方案,简化了动画资源的导出流程,简化了整体交互动作从美术阶段到程序合入阶段的制作流程,可以提高整体开发效率。
86.在本发明其中一种实施例中的虚拟对象的动作处理方法可以运行于终端设备或者是服务器。其中,终端设备可以为本地终端设备。当虚拟对象的动作处理方法运行于服务器时,该虚拟对象的动作处理方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
87.在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,虚拟对象的动作处理方法的储存与运行是在云游戏
服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,第一终端设备、电视机、计算机、掌上电脑等;但是进行虚拟对象的动作处理方法的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
88.在一可选的实施方式中,终端设备可以为本地终端设备。以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
89.参照图2,示出了本发明实施例提供的一种虚拟对象的动作处理方法实施例的步骤流程图,所述的方法具体可以包括如下步骤:
90.步骤s201,在第一动作处理阶段内,控制第一虚拟对象在游戏场景中向第二虚拟对象进行移动,其中,所述第一虚拟对象与所述第二虚拟对象分别配置开启碰撞检测逻辑;
91.其中,第一虚拟对象可以是游戏中主动发起攻击的虚拟角色,即主角。第二虚拟对象是游戏中被攻击的目标虚拟角色,即配角。
92.在第一动作处理阶段,控制第一虚拟对象进行动作交互的前一段位移动画流程,向目标(即第二虚拟对象)靠近。这个阶段,主要是让第一虚拟对象能够自然的靠近第二虚拟对象,使得两个虚拟对象能够在第二动作处理阶段之前,尽量处于设计好的相对位置和相对朝向。
93.在具体实现中,在第一动作处理阶段内,第一虚拟对象和第二虚拟对象可以保持开启碰撞检测逻辑,以各自通过碰撞检测逻辑进行碰撞检测,使得两个虚拟对象都可以受到物理环境碰撞影响,避免与游戏场景中的环境模型发生穿模,其中,环境模型可以为环境中的障碍物,包括墙体、山体、植被等模型。
94.在本发明的一种优选实施例中,所述步骤s201具体可以包括如下子步骤:
95.控制所述第一虚拟对象瞬移至所述第二虚拟对象所在的位置;或,控制所述第一虚拟对象逐步插值移动至所述第二虚拟对象所在的位置。
96.在本发明实施例中,第一虚拟对象靠近第二虚拟对象主要有两种方式,一种是在一帧动作交互之内,控制第一虚拟对象瞬移至第二虚拟对象所在的位置,一种是在一段时间之内,控制第一虚拟对象逐步插值移动至第二虚拟对象所在的位置。
97.具体的,可以按照动作交互设计好的相对位置和朝向,在世界空间中直接控制第一虚拟对象瞬移至第二虚拟对象所在的位置,其中,移动至第二虚拟对象所在的位置之后,第一虚拟对象的朝向第二虚拟对象所在的方向,使得第一虚拟对象和第二虚拟对象在一帧交互动作之内处于相对位置、朝向就绪的状态。还可以按照动作交互设计好的相对位置和朝向,在一段时间之内,在世界空间中控制第一虚拟对象从当前的位置和朝向,逐步插值移动至第二虚拟对象所在的位置,其中,移动至第二虚拟对象所在的位置之后,第一虚拟对象
的朝向第二虚拟对象所在的方向,使得第一虚拟对象和第二虚拟对象处于相对位置、朝向就绪的状态。
98.需要说明的是,上述两种第一虚拟对象向第二虚拟对象靠近的方式,随着游戏追求的品质不同可以选择采取不同的靠近方式,例如,对于一些mmo(massively multiplayer online,大型多人在线)游戏不追求动画表现品质,则采取瞬移的方式进行实现。而对于一些3a游戏,则会采取逐步插值移动的方式进行实现,在进行位置和朝向插值的过程中,还可以配置对应的移动动画表现,从而使得整体的接近过程合理地表现出来。
99.步骤s202,响应于第二动作处理阶段的触发事件,从所述第一虚拟对象和所述第二虚拟对象中确定一主要虚拟对象、一次要虚拟对象;
100.在第一动作处理阶段之后,通过设定好的触发事件进入第二动作处理阶段。具体的,第二动作处理阶段是播放第二段动作的阶段,在该第二动作处理阶段两个虚拟对象亲密交互,第二动作处理阶段的触发事件包含以下任一项或多项:定时触发事件;所述第一虚拟对象和所述第二虚拟对象之间的距离达到预设距离阈值;所述第一虚拟对象和所述第二虚拟对象之间发生碰撞。其中,定时触发事件,可以通过在制作交互动作的动画时,设定触发时间点,在设定的时间点触发进入第二动作处理阶段;预设距离阈值可以是预先设定的距离临界值,用于在两个虚拟对象的距离满足要求时触发进入第二动作处理阶段;此外,在第一动作处理阶段时,两个虚拟对象都开启了碰撞检测逻辑,当检测到两个虚拟对象之间发生了碰撞,则触发进入第二动作处理阶段。需要注意的是,通过第一虚拟对象和第二虚拟对象之间的距离达到预设距离阈值,和第一虚拟对象和第二虚拟对象之间发生碰撞这两种触发方式,会根据具体情况而不定时的进入到第二动作处理阶段,那么第一动作处理阶段的动画衔接到第二动作处理阶段时,可能会出现动画跳帧情况,这种情况一般可以使用常见的动画过渡手段进行解决,以使得交互动画播放流畅。
101.在具体实现中,在第二动作处理阶段内,可以根据第一虚拟对象和第二虚拟对象需要进行的交互动作,从第一虚拟对象和第二虚拟对象中确定其中的一个作为主要虚拟对象、另一个作为次要虚拟对象。例如,假设第一虚拟对象和第二虚拟对象进行近身战斗,第一虚拟对象需要发动连招,进行连续打击,此时确定第一虚拟对象是主要虚拟对象,第二虚拟对象是次要虚拟对象;反之,角色互换,第二虚拟对象需要发动连招,进行连续打击,此时确定第二虚拟对象是主要虚拟对象,第一虚拟对象是次要虚拟对象。
102.步骤s203,控制所述次要虚拟对象关闭碰撞检测逻辑,并控制所述次要虚拟对象依附于所述主要虚拟对象进行动作交互;
103.在第二动作处理阶段内,主要虚拟对象和次要虚拟对象根据设计好的精彩交互动作,进行配合动作,在此过程中,会考虑环境碰撞的影响,同时修正主要虚拟对象和次要虚拟对象的几何位置,从而保证主要虚拟对象和次要虚拟对象不与环境模型发生穿模的同时,双方的交互姿态也能够与设计时一致。例如:主要虚拟对象将次要虚拟对象扑倒在地,同时双方在地上一起翻滚打斗等过程,该过程一般具有位移、旋转、姿态严格对齐的约束。
104.具体的,控制主要虚拟对象进行交互动作,即主要虚拟对象独自按照美术设计人员针对主要虚拟对象设计的动画进行交互动作,在交互动作时可以进行移动、跳跃和旋转等操作。此时,控制主要虚拟对象保持开启碰撞检测逻辑,因此,主要虚拟对象在进行交互动作时,可以通过执行碰撞检测逻辑以进行碰撞检测,避免与游戏场景中的环境模型发生
穿模。
105.控制次要虚拟对象依附于主要虚拟对象进行动作交互,具体的,可以根据主要虚拟对象在世界空间中的位置确定交互舞台,控制次要虚拟对象在该交互舞台上进行交互动作,在交互动作时,根据主要虚拟对象的位置和朝向等信息确定次要虚拟对象的交互的位置和朝向,以保证主要虚拟对象和次要虚拟对象的姿态对齐。次要虚拟对象依附于主要虚拟对象进行动作交互时,控制次要虚拟对象关闭碰撞检测逻辑,因此,在第二动作处理阶段内次要虚拟对象不再主动进行碰撞检测。
106.由于,主要虚拟对象开启碰撞检测逻辑以确保不会与环境模型发生穿模,次要虚拟对象虽然关闭了碰撞检测逻辑,但是因为次要虚拟对象是依附于主要虚拟对象进行交互动作,次要虚拟对象的位置受主要虚拟对象的位置影响,所以,主要虚拟对象所在的交互空间内是碰撞安全的,此时,次要虚拟对象也不会存在与环境模型发生穿模的问题。因此,在第二动作处理阶段,能够在保证双角色的姿态交互动作对齐的同时,双方整体受到物理环境碰撞影响,保证交互动作和逻辑的安全与正确性。
107.在本发明的一种优选实施例中,所述控制所述次要虚拟对象依附于所述主要虚拟对象进行动作交互,包括:
108.控制所述次要虚拟对象按照所述主要虚拟对象执行动作交互的进度,依附于所述主要虚拟对象进行动作交互。
109.在本发明实施例中,次要虚拟对象进入配合交互动作时,可以按照主要虚拟对象执行交互动作的动画的进度,进行一次时间同步,以将次要虚拟对象的交互动作的动画的进度也调节到第二动作处理阶段,并依附于所述主要虚拟对象进行动作交互。
110.步骤s204,响应于第三动作处理阶段的触发事件,控制所述主要虚拟对象和次要虚拟对象结束动作交互,并控制所述次要虚拟对象重新开启碰撞检测逻辑。
111.具体的,第三动作处理阶段是主要虚拟对象和次要虚拟对象在进行动作交互之后的阶段,在第三动作处理阶段,双方可以各自进行剩余的、非强配合的动作交互,包括姿态、位置、朝向的各自变化。例如,主要虚拟对象将次要虚拟对象抓住并脚踢次要虚拟对象,次要虚拟对象被脚踢之后整个角色被踢飞,在主要虚拟对象收回脚之后,次要虚拟对象仍然向远处飞去,那么这个过程就是第三动作处理阶段。
112.在具体实现中,第三动作处理阶段的触发事件包含以下任一项或多项:定时触发事件;接收到用户针对预设脱离控件的触发操作;所述主要虚拟对象和/或所述次要虚拟对象的属性值达到预设数值。其中,定时触发事件,可以通过在制作交互动作的动画时,设定触发时间点,在设定的时间点触发进入第三动作处理阶段;预设脱离控件可以是预先设定的控件,当a角色抓住b角色的时候,控制a角色的玩家可以通过按键连续点击完成抓取摆脱,按键点击越快摆脱的越快,例如,预设脱离控件可以为位移控件,玩家可以位移控件进行闪避以脱离战斗。预设数值可以是预先设定的属性值,通过实时检测两个虚拟角色的属性值,当两个虚拟角色的属性值达到预设数值时,触发进入第三动作处理阶段,例如当a角色抓住b角色时,b角色的某些属性值(血量、魔法量)会进行下降,当下降到一定预设数值时,a角色就会放开b角色,进入第三动作处理阶段,这个过程中如果b角色总体成长数值较低时,可能就会比其他具有较高的数值角色更快的进入到第三动作处理阶段等等。此外,还可以通过其他的一些触发事件进入第三动作处理阶段,本发明实施例对此不左限制。需要
注意的是,通过接收到用户针对预设脱离控件的触发操作,和主要虚拟对象和/或次要虚拟对象的属性值达到预设数值这两种触发方式,会根据具体情况而不定时的进入到第三动作处理阶段,那么第二动作处理阶段的动画衔接到第三动作处理阶段的动画时可能会出现动画跳帧情况,这种情况一般可以用常见的动画过渡手段进行解决,以使得交互动画播放流畅。
113.在第三动作处理阶段中,主要虚拟对象按照之前设计好的动作姿态在世界空间中继续动作并移动,而主要虚拟对象则可以继续执行需要进行的行为,比如去攻击另一个虚拟对象等等。
114.在具体实现中,可以控制主要虚拟对象和次要虚拟对象分别进行非强配合的动作交互,由于在之前的第二动作处理阶段时,次要虚拟对象关闭了碰撞检测逻辑,因此,在第三动作处理阶段,控制次要虚拟对象开启碰撞检测逻辑,以使得次要虚拟对象在进行非强配合的动作交互时,能够通过碰撞检测逻辑进行碰撞检测,避免与游戏场景中的环境模型发生穿模。而对于主要虚拟对象,由于之前的第二动作处理阶段时,主要虚拟对象的碰撞检测逻辑保持开启,因此,主要虚拟对象在第三动作处理阶段也可以继续通过碰撞检测逻辑进行碰撞检测,避免与游戏场景中的环境模型发生穿模。
115.在第三动作处理阶段中,以主要虚拟对象作为参考,计算交互舞台在世界空间中的矩阵信息,以便于按照交互舞台在世界空间中的矩阵信息,计算得到次要虚拟对象在世界空间中的位置与朝向。
116.具体的,在美术设计的过程中,虚拟对象的动作交互的动画可以通过设计软件进行制作,如,3d max或者maya等设计工具,本发明实施此对此不作限制。在设计动作交互的动画时,每个角色存在一个中心参考点、朝向参考坐标,即原点坐标系,将该参考坐标空间称为模型空间,如图3所示,模型空间中包含参考坐标系10,和主要虚拟对象20。
117.在游戏运行时,可将模型空间中坐标系的位置与朝向,在世界空间中换算出对应的世界参考坐标系的位置与朝向,则可将双角色在模型空间中的交互动作的位移和旋转信息等信息,还原到世界空间中,最终完成双角色在世界空间中进行动作交互的位置、旋转信息的换算。在世界空间中被还原出来的参考坐标系,则称为“交互舞台”。在交互动作设计好之后,美术设计只要按照设计软件中角色的信息,逐帧输出位移和旋转信息即可。
118.在本发明的一种优选实施例中,如图4所示,所述步骤s202具体可以包括如下子步骤:
119.子步骤s11,获取所述主要虚拟对象在模型空间中的第一矩阵信息,并转化为所述主要虚拟对象在世界空间中的矩阵信息;
120.子步骤s12,根据所述主要虚拟对象在世界空间中的矩阵信息,计算得到交互舞台在世界空间中的舞台矩阵信息;
121.子步骤s13,获取所述次要虚拟对象在模型空间中的第二矩阵信息;
122.子步骤s14,根据所述舞台矩阵信息和所述第二矩阵信息,计算得到所述次要虚拟对象在世界空间中的矩阵信息;
123.子步骤s15,控制所述次要虚拟对象在所述交互舞台上,按照所述次要虚拟对象在世界空间中的矩阵信息依附于所述主要虚拟对象进行动作交互,以使得所述主要虚拟对象和所述次要虚拟对象的位置、朝向和动作姿态对齐。
124.其中,第一矩阵信息用于描述主要虚拟对象在模型空间中的位置和朝向等信息。第二矩阵信息用于描述次要虚拟对象在模型空间中的位置和朝向等信息。
125.具体的,根据主要虚拟对象的当前帧动画,采样出主要虚拟对象在当前模型空间中的位置、朝向和旋转等信息,以得到第一矩阵信息,该第一矩阵信息可以表示为mainactormodelmat。然后,对mainactormodelmat进行转化,以得到主要虚拟对象在世界空间中的矩阵信息,该矩阵信息可以表示为mainactorworldmat。
126.进一步的,根据主要虚拟对象在世界空间中的矩阵信息,计算得到交互舞台在世界空间中的舞台矩阵信息,该舞台矩阵信息可以表示为stageworldmat。具体的,通过将mainactorworldmat与mainactormodelmat的逆矩阵进行矩阵乘法变换即可得到stageworldmat,即stageworldmat=mainactorworldmat*inverse(mainactormodelmat),其中inverse表示取指定矩阵的逆矩阵。
127.根据次要虚拟对象的当前帧动画,采样出次要虚拟对象在当前模型空间中的位移、朝向和旋转等信息,以得到第二矩阵信息,该第二矩阵信息可以表示为costarmodelmat。
128.进而,根据舞台矩阵信息和第二矩阵信息,可以计算得到次要虚拟对象在世界空间中的矩阵信息,该次要虚拟对象在世界空间中的矩阵信息可以表示为costarworldmat。具体的,通过将stageworldmat与costarmodelmat进行矩阵乘法变换即可得到costarworldmat,即costarworldmat=stageworldmat*costartmodelmat。
129.在计算得到次要虚拟对象在世界空间中的矩阵信息之后,可以控制次要虚拟对象在交互舞台上,按照次要虚拟对象在世界空间中的矩阵信息依附于主要虚拟对象进行动作交互。如图5所示,主要虚拟对象20所在的模型空间,次要虚拟对象30所在的模块空间,交互舞台的所在的世界空间40,通过对主要虚拟对象20和次要虚拟对象30进行矩阵变换之后,可以将主要虚拟对象20和次要虚拟对象30变换到交互舞台上。根据上述方式计算出来双角色信息,能够完美对主要虚拟对象和次要虚拟对象进行位置与朝向的对齐,而且可以保证双方姿态交互动作与美术设计时一致。
130.在本发明的一种优选实施例中,如图6所示,在所述子步骤s14之后,还可以包括如下子步骤:
131.子步骤s14

1,确定所述主要虚拟对象和次要虚拟对象所在的交互空间;
132.子步骤s14

2,判断所述交互空间是否安全;
133.子步骤s14

3,若所述交互空间不安全,则判断是否需要对所述次要虚拟对象进行位置修正,在需要进行位置修正时调整所述次要虚拟对象的位置,并返回执行所述根据所述主要虚拟对象所述在世界空间中的矩阵信息,计算得到交互舞台在世界空间中的舞台矩阵信息的步骤。
134.为了进一步保证主要虚拟对象和次要虚拟对象的碰撞的安全性,在本发明实施例中,通过定义一交互空间,该交互空间用于表示主要虚拟对象和次要虚拟对象之间的最小碰撞安全空间,以通过保证交互空间的安全性来确保主要虚拟对象和次要虚拟对象在进行交互动作时不与环境模型发生穿模。具体的,可以在确定交互空间之后,判断交互空间是否安全,若交互空间不安全,则判断是否需要对主要虚拟对象进行位置修正,在需要进行位置修正时调整主要虚拟对象的位置,并返回执行子步骤s12

s14。若交互空间安全,则不需要
对主要虚拟对象进行位置修正,可以执行后续的子步骤s15。
135.需要说明的是,保证交互空间的安全性目的为:1.在第二动作处理阶段,尽量保证主要虚拟对象和次要虚拟对象不与环境物体发生穿模碰撞,该需求是一个表现上的需求,一般游戏中,在复杂的环境中如果发生非严重穿模,玩家也是能够接受。2.在第三动作处理阶段开始时,要保证双角色当前的碰撞体处于非穿模状态,从而保证后续自洽验算过程中,物理碰撞合理,这是一个逻辑上的强需求,防止玩家角色发生卡碰撞,降低游戏体验。
136.在第二动作处理阶段,因为主要虚拟对象的碰撞检测逻辑正常开启,在进行美术位移输出过程中会受到物理系统的正常约束,因此,主要虚拟对象的位置一直是物理安全的。而在此过程中,次要虚拟对象则关闭了碰撞检测逻辑,保证交互空间的安全性的实质是保证次要虚拟对象的物理碰撞安全。为达到该目的,在第二动作处理阶段,在主要虚拟对象和次要虚拟对象中,各自会选取一个指定骨骼,用指定骨骼在世界空间中的位置信息辅助于碰撞检查,即,若是指定骨骼之间的连线没有与环境模型发生碰撞穿模,就表示交互空间安全。
137.在本发明的一种优选实施例中,所述确定所述主要虚拟对象和次要虚拟对象所在的交互空间,具体可以包括如下子步骤:
138.确定在世界空间中所述主要虚拟对象的指定骨骼所在的第一位置,所述次要虚拟对象的指定骨骼所在的第二位置;根据所述主要虚拟对象对应的预设第一半径和所述次要虚拟对象对应的预设第二半径,以及所述第一位置和第二位置,确定所述主要虚拟对象和次要虚拟对象所在的交互空间。
139.其中,预设第一半径为针对主要虚拟对象设定地基本碰撞半径,所述预设第二半径为针对次要虚拟对象设定地基本碰撞半径。在具体实现中,通过底层物理系统保障主要虚拟对象在预设第一半径的范围内不会与场景中的环境模型发生穿模,以及,通过底层物理系统保障次要虚拟对象在预设第二半径的范围内不会与场景中的环境模型发生穿模。
140.通过预设第一半径定义的球体为主要虚拟对象的碰撞体,通过预设第二半径定义的球体为次要虚拟对象的碰撞体。具体地,可以以主要虚拟对象所在的位置为球心,和与主要虚拟对象对应的预设第一半径,确定主要虚拟对象所在的球形空间,这个球形空间即为主要虚拟对象的碰撞体。以次要虚拟对象所在的位置为球心,和与次要虚拟对象对应的预设第二半径,确定次要虚拟对象所在的球形空间,这个球形空间即为次要虚拟对象的碰撞体。在具体实现中,可以针对主要虚拟对象和次要虚拟对象分别选定一个骨骼作为指定骨骼,该指定骨骼用于确定主要虚拟对象和次要虚拟对象的碰撞体的中心位置,即主要虚拟对象的碰撞体的球心为主要虚拟对象的指定骨骼所在的位置,次要虚拟对象的碰撞体的球心为次要虚拟对象的指定骨骼所在的位置。
141.在确定主要虚拟对象的碰撞体和次要虚拟对象的碰撞体之后,可以进一步确定这两个碰撞体以及这两个碰撞体之间的空间为交互空间。其中,两个碰撞体之间的空间可以通过主要虚拟对象和次要虚拟对象的指定骨骼的连线进行确定。如图7所示,是一种交互空间的示意图。此外,还可以根据主要虚拟对象的碰撞体和次要虚拟对象的碰撞体,直接使用一个长方体或者椭球体的碰撞体进行包裹,该碰撞体即为交互空间,然后通过查看该碰撞体是否与环境模型发生穿模,再进行对应的位置修正。
142.在本发明的一种优选实施例中,所述判断所述交互空间是否安全,具体可以包括
如下子步骤:
143.当所述主要虚拟对象和次要虚拟对象中一方的碰撞体中心处于另外一方的碰撞体内时,判定所述交互空间安全;
144.当所述主要虚拟对象和次要虚拟对象中一方的碰撞体中心不处于另外一方的碰撞体内时,检测所述第一位置和第二位置之间是否存在环境模型,若检测到所述第一位置和第二位置之间存在环境模型,则判定所述交互空间不安全。
145.在本发明实施例中,可以判断主要虚拟对象和次要虚拟对象中一方的碰撞体中心是否处于另外一方的碰撞体内,当主要虚拟对象和次要虚拟对象中一方的碰撞体中心处于另外一方的碰撞体内时,则判定交互空间安全。
146.具体的,可以通过两点之间的距离公式,根据主要虚拟对象和次要虚拟对象的指定骨骼的位置,计算得到主要虚拟对象和次要虚拟对象的指定骨骼之间的距离,然后对比判断指定骨骼之间的距离和主要虚拟对象对应的预设第一半径的大小,当指定骨骼之间的距离小于或等于主要虚拟对象对应的预设第一半径时,则主要虚拟对象和次要虚拟对象中一方的碰撞体中心处于另外一方的碰撞体内,判定交互空间安全。
147.当指定骨骼之间的距离大于主要虚拟对象对应的预设第一半径时,则主要虚拟对象和次要虚拟对象中一方的碰撞体中心不处于另外一方的碰撞体内,此时还不能确定交互空间是不是安全的,还需要检测第一位置和第二位置之间是否存在环境模型,若检测到第一位置和第二位置之间存在环境模型,则判定交互空间不安全。在具体实现中,可以通过物理射线检测或者物理几何扫描的方式,检测第一位置和第二位置之间是否存在环境模型,例如,从主要虚拟对象的指定骨骼所在的第一位置,向次要虚拟对象的指定骨骼所在的第二位置发射物理检测射线,从而通过射线检测确定第一位置和第二位置之间是否存在环境模型。
148.在本发明的一种优选实施例中,所述判断是否需要对所述主要虚拟对象进行位置修正,包括:
149.以所述第一位置为起点向所述第二位置发射用于碰撞检测的射线;若所述射线没有与游戏中的环境模型发生碰撞,则判定不需要对所述主要虚拟对象进行位置修正;若所述射线与游戏中的环境模型发生碰撞,则判定需要对所述主要虚拟对象进行位置修正。
150.在本发明实施例中,可以通过小球sweep扫描或物理射线检测的方式进行碰撞安全检测。具体的,以第一位置为起点向第二位置发射用于碰撞检测的射线;若射线没有与游戏中的环境模型发生碰撞,则判定不需要对主要虚拟对象和次要虚拟对象进行位置修正;若射线与游戏中的环境模型发生碰撞,则判定需要对主要虚拟对象和次要虚拟对象进行位置修正。
151.在本发明的一种优选实施例中,所述在需要进行位置修正时调整所述主要虚拟对象和次要虚拟对象的位置,包括:
152.以所述第一位置为起点,所述射线与游戏中的环境模型的碰撞点为终点,作为修正向量;计算得到所述修正向量与y轴的夹角值,并根据所述夹角值调整所述主要虚拟对象和次要虚拟对象在世界空间中的位置。
153.在本发明实施例中,以第一位置为起点,射线与游戏中的环境模型的碰撞点为终点,作为修正向量,计算得到修正向量与y轴的夹角值,并根据夹角值调整主要虚拟对象和
次要虚拟对象在世界空间中的位置。如图8所示,图中包含修正向量50,和y轴,修正向量与y轴之间的夹角α。
154.具体的,根据修正向量与y轴的夹角情况对主要虚拟对象和次要虚拟对象在世界空间中的位置进行适当的调整,将主要虚拟对象和次要虚拟对象沿着射线的反方向延伸移动一定的长度,其中,夹角值越大,则延伸长度越长(最多不超过主要虚拟对象和次要虚拟对象对应的预设第一半径),期望能够探测到角色背后的阻挡;夹角越小,则适当缩短距离,避免碰到角色平地地面。
155.在本发明的一种优选实施例中,所述根据所述夹角值调整所述主要虚拟对象和次要虚拟对象在世界空间中的位置,包括:
156.统计修正持续时间,并根据所述修正持续时间和所述夹角值确定修正比例;获取所述射线发生穿模的距离,根据所述穿模的距离和所述修正比例确定调整距离;按照所述调整距离,沿着所述射线的反方向调整所述主要虚拟对象和次要虚拟对象在世界空间中的位置。
157.具体的,从检测到射线与游戏中的环境模型发生碰撞的时候开始,统计修正持续时间,计算修正持续时间与预设时间的比值得到修正比例,然后根据夹角情况,调整夹角比例的大小,其中,预设时间可以为预先设定的最大修正时间长度。通过获取射线发生穿模的距离,根据穿模的距离和修正比例确定调整距离,按照调整距离沿着射线的反方向调整主要虚拟对象和次要虚拟对象在世界空间中的位置。因此,修正持续时间越长,需要调整的距离就越大,当修正持续时间大于或等于预设时间相等时,则全部修正穿模的距离,即修正到没有发生穿模的位置。
158.通过在位置修正的过程中,需要进行修正比例的大小控制,以非线性的形式控制其大小,修正持续时间越长则比例越大,其中,修正比例最多不超过1.0,以防止瞬时拉扯出现,影响游戏的表现效果。此外,在进入第三动作处理阶段时,如果还存在碰撞穿模,则直接进行瞬时拉扯修正,以修正到没有发生穿模的位置,保证逻辑正确性。
159.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
160.参照图9,示出了本发明实施例提供的一种虚拟对象的动作处理装置的结构框图,具体可以包括如下模块:
161.第一动作处理模块901,用于在第一动作处理阶段内,控制第一虚拟对象在游戏场景中向第二虚拟对象进行移动,其中,所述第一虚拟对象与所述第二虚拟对象分别配置开启碰撞检测逻辑;
162.虚拟对象确定模块902,用于响应于第二动作处理阶段的触发事件,从所述第一虚拟对象和所述第二虚拟对象中确定一主要虚拟对象、一次要虚拟对象;
163.第二动作处理模块903,用于控制所述次要虚拟对象关闭碰撞检测逻辑,并控制所述次要虚拟对象依附于所述主要虚拟对象进行动作交互;
164.第三动作处理模块904,用于响应于第三动作处理阶段的触发事件,控制所述主要
虚拟对象和次要虚拟对象结束动作交互,并控制所述次要虚拟对象重新开启碰撞检测逻辑。
165.在本发明的一种优选实施例中,所述第二动作处理模块903,包括:
166.第二动作处理子模块,用于控制所述次要虚拟对象按照所述主要虚拟对象执行动作交互的进度,依附于所述主要虚拟对象进行动作交互。
167.在本发明的一种优选实施例中,所述第二动作处理模块903,包括:
168.矩阵转化子模块,用于获取所述主要虚拟对象在模型空间中的第一矩阵信息,并转化为所述主要虚拟对象在世界空间中的矩阵信息;
169.舞台矩阵计算子模块,用于根据所述主要虚拟对象在世界空间中的矩阵信息,计算得到交互舞台在世界空间中的舞台矩阵信息;
170.矩阵获取子模块,用于获取所述次要虚拟对象在模型空间中的第二矩阵信息;
171.矩阵计算子模块,用于根据所述舞台矩阵信息和所述第二矩阵信息,计算得到所述次要虚拟对象在世界空间中的矩阵信息;
172.配合表演子模块,用于控制所述次要虚拟对象在所述交互舞台上,按照所述次要虚拟对象在世界空间中的矩阵信息依附于所述主要虚拟对象进行动作交互,以使得所述主要虚拟对象和所述次要虚拟对象的位置、朝向和动作姿态对齐。
173.在本发明的一种优选实施例中,所述第二动作处理模块903,还包括:
174.交互空间确定子模块,用于确定所述主要虚拟对象和次要虚拟对象所在的交互空间;
175.交互空间判断子模块,用于判断所述交互空间是否安全;
176.位置修正子模块,用于若所述交互空间不安全,则判断是否需要对所述主要虚拟对象进行位置修正,在需要进行位置修正时调整所述主要虚拟对象的位置,并返回执行所述根据所述主要虚拟对象所述在世界空间中的矩阵信息,计算得到交互舞台在世界空间中的舞台矩阵信息的步骤。
177.在本发明的一种优选实施例中,所述交互空间确定子模块,包括:
178.骨骼位置确定单元,用于确定在世界空间中所述主要虚拟对象的指定骨骼所在的第一位置,所述次要虚拟对象的指定骨骼所在的第二位置;
179.交互空间确定单元,用于根据所述主要虚拟对象对应的预设第一半径和所述次要虚拟对象对应的预设第二半径,以及所述第一位置和第二位置,确定所述主要虚拟对象和次要虚拟对象所在的交互空间。
180.在本发明的一种优选实施例中,所述预设第一半径和预设第二半径为设定的基本碰撞半径,通过底层物理系统保障所述主要虚拟对象在所述预设第一半径的范围内不会与场景中的环境模型发生穿模,所述次要虚拟对象在所述预设第二半径的范围内不会与场景中的环境模型发生穿模;通过所述预设第一半径定义的球体为主要虚拟对象的碰撞体,通过所述预设第二半径定义的球体为次要虚拟对象的碰撞体。
181.在本发明的一种优选实施例中,所述交互空间判断子模块,包括:
182.第一判定单元,用于当所述主要虚拟对象和次要虚拟对象中一方的碰撞体中心处于另外一方的碰撞体内时,判定所述交互空间安全;
183.第二判定单元,用于当所述主要虚拟对象和次要虚拟对象中一方的碰撞体中心不
处于另外一方的碰撞体内时,检测所述第一位置和第二位置之间是否存在环境模型,若检测到所述第一位置和第二位置之间存在环境模型,则判定所述交互空间不安全。
184.在本发明的一种优选实施例中,所述位置修正子模块,包括:
185.射线发射单元,用于以所述第一位置为起点向所述第二位置发射用于碰撞检测的射线;
186.第一判定单元,用于若所述射线没有与游戏中的环境模型发生碰撞,则判定不需要对所述主要虚拟对象进行位置修正;
187.第二判定单元,用于若所述射线与游戏中的环境模型发生碰撞,则判定需要对所述主要虚拟对象进行位置修正。
188.在本发明的一种优选实施例中,所述位置修正子模块,包括:
189.修正向量确定单元,用于以所述第一位置为起点,所述射线与游戏中的环境模型的碰撞点为终点,作为修正向量;
190.位置调整单元,用于计算得到所述修正向量与y轴的夹角值,并根据所述夹角值调整所述主要虚拟对象在世界空间中的位置。
191.在本发明的一种优选实施例中,所述位置调整单元,包括:
192.修正比例确定子单元,用于统计修正持续时间,并根据所述修正持续时间和所述夹角值确定修正比例;
193.调整距离确定子单元,用于获取所述射线发生穿模的距离,根据所述穿模的距离和所述修正比例确定调整距离;
194.位置调整子单元,用于按照所述调整距离,沿着所述射线的反方向调整所述主要虚拟对象在世界空间中的位置。
195.在本发明的一种优选实施例中,所述第一动作处理模块901,包括:
196.瞬移子模块,用于控制所述第一虚拟对象瞬移至所述第二虚拟对象所在的位置;或,
197.逐步插值移动子模块,用于控制所述第一虚拟对象逐步插值移动至所述第二虚拟对象所在的位置。
198.在本发明的一种优选实施例中,所述第二动作处理阶段的触发事件包含以下任一项或多项:
199.定时触发事件;
200.所述第一虚拟对象和所述第二虚拟对象之间的距离达到预设距离阈值;
201.所述第一虚拟对象和所述第二虚拟对象之间发生碰撞。
202.在本发明的一种优选实施例中,所述第三动作处理阶段的触发事件包含以下任一项或多项:
203.定时触发事件;
204.接收到用户针对预设脱离控件的触发操作;
205.所述主要虚拟对象和/或所述次要虚拟对象的属性值达到预设数值。
206.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
207.本发明实施例还提供了一种电子设备,如图10所示,包括:
208.处理器1001和存储介质1002,所述存储介质1002存储有所述处理器901可执行的机器可读指令,当电子设备运行时,所述处理器1001执行所述机器可读指令,以执行如本发明实施例任一项所述的方法。具体实现方式和技术效果类似,这里不再赘述。
209.本发明实施例还提供了一种计算机可读存储介质,如图11所示,所述存储介质上存储有计算机程序1101,所述计算机程序1101被处理器运行时执行如本发明实施例任一项所述的方法。具体实现方式和技术效果类似,这里不再赘述。
210.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
211.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
212.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
213.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
214.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
215.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
216.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
217.以上对本发明所提供的一种虚拟对象的动作处理方法和一种虚拟对象的动作处
理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1