CN106582024A - 对象发生撞击的处理方法及装置 - Google Patents
对象发生撞击的处理方法及装置 Download PDFInfo
- Publication number
- CN106582024A CN106582024A CN201610898400.8A CN201610898400A CN106582024A CN 106582024 A CN106582024 A CN 106582024A CN 201610898400 A CN201610898400 A CN 201610898400A CN 106582024 A CN106582024 A CN 106582024A
- Authority
- CN
- China
- Prior art keywords
- determinating area
- injury
- impact volume
- impact
- determining
- 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
-
- 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/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/64—Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种对象发生撞击的处理方法及装置。其中,该方法包括:获取第一对象的伤害判定区域,其中,伤害判定区域用于确定第一对象是否与当前场景内的其余对象发生碰撞;确定第二对象进入伤害判定区域;触发第二对象执行在受到撞击后的行为序列。本发明解决了相关技术中所提供的对象相互间的撞击方式不易于进行伤害判定的技术问题。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种对象发生撞击的处理方法及装置。
背景技术
伴随着科技时代的飞速发展,计算机模拟虚拟对象之间的交互处理也越来越频繁,以游戏领域为例,在上个世纪,游戏场景还偏向于使用游戏主角自身进行战斗。而经过时间的洗礼,诸多游戏开始研发游戏角色可以登入载具并且可以使用载具加入战斗。此外,游戏角色还有可能直接与载具之间进行动作交互,例如:游戏角色与载具发生碰撞或游戏角色主动向载具发动攻击。
在部分游戏场景中的载具,并没有单独划归为一种类型的游戏单位,而是通常被作为一个普通的攻击对象加以处理。例如:在游戏场景中,对于小兵的碰撞而言,只要满足其它单位的碰撞点与小兵中心的距离大于设定的碰撞半径即可,以避免发生碰撞的两个游戏单位之间发生重叠。当时,这样处理方式可能会造成以下问题:
(1)碰撞区域不明确,易导致对象与载具发生部分重合。
(2)车辆的伤害判定区域与伤害频率不明确。
(3)游戏单位在受到攻击时表现不真实。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种对象发生撞击的处理方法及装置,以至少解决相关技术中所提供的对象相互间的撞击方式不易于进行伤害判定的技术问题。
根据本发明实施例的一个方面,提供了一种对象发生撞击的处理方法,包括:
获取第一对象的伤害判定区域,其中,伤害判定区域用于确定第一对象是否与当前场景内的其余对象发生碰撞;确定第二对象进入伤害判定区域;触发第二对象执行在受到撞击后的行为序列。
可选地,获取第一对象的伤害判定区域包括:获取第一对象的第一碰撞体积;根据第一碰撞体积确定伤害判定区域,其中,第一碰撞体积包含在伤害判定区域之内。
可选地,获取第一碰撞体积包括以下之一:通过预设引擎的接口中获取第一碰撞体积;获取第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度,并采用水平最大长度、纵剖面水平最大长度以及高度,计算得到第一碰撞体积。
可选地,确定第二对象进入伤害判定区域包括以下之一:当通过预设引擎的接口中获取第一碰撞体积时,如果第二对象的第二碰撞体积的中心点进入或贴合于第一碰撞体积的边界时,则确定第二对象进入伤害判定区域;当第一碰撞体积是通过第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度计算得到时,如果第二对象的第二碰撞体积与伤害判定区域出现部分重合或第二碰撞体积的边界贴合于伤害判定区域的边界时,则确定第二对象进入伤害判定区域。
可选地,按照预设时间间隔确定第二对象进入伤害判定区域,其中,预设时间间隔是由第一对象在行进方向上的剖面最大水平长度和第一对象的移动速度来确定的。
可选地,触发第二对象执行在受到撞击后的行为序列包括:根据第二对象的受到撞击后的初始速度、第一周围环境阻力和第一重力加速度计算第二对象从被撞击位置至空中最高点所经历的第一时长,并按照第一时长调整起跳动作的播放进度;根据第二对象的第二重力加速度、第二周围环境阻力以及空中最高点距离地面的垂直高度计算第二对象从空中最高点至开始落地位置所经历的第二时长,并按照第二时长调整下落动作的播放进度;在起跳动作与下落动作连续播放完成后,播放落地动作。
根据本发明实施例的另一方面,还提供了一种对象发生撞击的处理装置,包括:
获取模块,用于获取第一对象的伤害判定区域,其中,伤害判定区域用于确定第一对象是否与当前场景内的其余对象发生碰撞;确定模块,用于确定第二对象进入伤害判定区域;处理模块,用于触发第二对象执行在受到撞击后的行为序列。
可选地,获取模块包括:获取单元,用于获取第一对象的第一碰撞体积;确定单元,用于根据第一碰撞体积确定伤害判定区域,其中,第一碰撞体积包含在伤害判定区域之内。
可选地,获取单元,用于通过预设引擎的接口中获取第一碰撞体积;或者,获取第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度,并采用水平最大长度、纵剖面水平最大长度以及高度,计算得到第一碰撞体积。
可选地,确定单元,用于当通过预设引擎的接口中获取第一碰撞体积时,如果第二对象的第二碰撞体积的中心点进入或贴合第一碰撞体积的边界时,则确定第二对象进入伤害判定区域;或者,当第一碰撞体积是通过第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度计算得到时,如果第二对象的第二碰撞体积与伤害判定区域出现部分重合或第二碰撞体积的边界贴合于伤害判定区域的边界时,则确定第二对象进入伤害判定区域。
可选地,确定模块,用于按照预设时间间隔确定第二对象进入伤害判定区域,其中,预设时间间隔是由第一对象在行进方向上的剖面最大水平长度和第一对象的移动速度来确定的。
可选地,处理模块包括:第一处理单元,用于根据第二对象的受到撞击后的初始速度、第一周围环境阻力和第一重力加速度计算第二对象从被撞击位置至空中最高点所经历的第一时长,并按照第一时长调整起跳动作的播放进度;第二处理单元,用于根据第二对象的第二重力加速度、第二周围环境阻力以及空中最高点距离地面的垂直高度计算第二对象从空中最高点至开始落地位置所经历的第二时长,并按照第二时长调整下落动作的播放进度;第三处理单元,用于在起跳动作与下落动作连续播放完成后,播放落地动作。
在本发明实施例中,采用获取第一对象的用于确定第一对象是否与当前场景内的其余对象发生碰撞的伤害判定区域的方式,通过确定第二对象进入伤害判定区域以触发第二对象执行在受到撞击后的行为序列,从而实现了提升不同对象相互间碰撞伤害判定的便捷性和准确性的技术效果,进而解决了相关技术中所提供的对象相互间的撞击方式不易于进行伤害判定的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的对象发生撞击的处理方法的流程图;
图2是根据本发明优选实施例一的两个游戏单位发生碰撞的示意图;
图3是根据本发明优选实施例二的两个游戏单位发生碰撞的示意图;
图4是根据本发明实施例的对象发生撞击的处理装置的流程图;
图5是根据本发明优选实施例的对象发生撞击的处理装置的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种对象发生撞击的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的对象发生撞击的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S12,获取第一对象的伤害判定区域,其中,伤害判定区域用于确定第一对象是否与当前场景内的其余对象发生碰撞;
步骤S14,确定第二对象进入伤害判定区域;
步骤S16,触发第二对象执行在受到撞击后的行为序列。
通过上述步骤,采用获取第一对象的用于确定第一对象是否与当前场景内的其余对象发生碰撞的伤害判定区域的方式,通过确定第二对象进入伤害判定区域以触发第二对象执行在受到撞击后的行为序列,从而实现了提升不同对象相互间碰撞伤害判定的便捷性和准确性的技术效果,进而解决了相关技术中所提供的对象相互间的撞击方式不易于进行伤害判定的技术问题。
需要说明的是,为了对本发明实施例提出的对象发生撞击的处理方法的实施过程做进一步解释说明,下文中将以RPG游戏场景下的游戏单位(例如:车辆)为例进行详细描述。
可选地,在步骤S12中,获取第一对象的伤害判定区域可以包括以下执行步骤:
步骤S121,获取第一对象的第一碰撞体积;
步骤S122,根据第一碰撞体积确定伤害判定区域,其中,第一碰撞体积包含在伤害判定区域之内。
当碰撞核的形状为预设形状(例如:直角四边形)时,可以通过获取第一游戏单位对应的三维模型的碰撞体积,并以此为基础进行伤害判定。
在生成伤害判定区域时,需要确保伤害判定区域比碰撞体积再大一些,其原因在于:与第一游戏单位发生碰撞的其它游戏单位需要进入伤害判定区域,才有可能与第一游戏单位发生碰撞;反之,如果第一游戏单位的碰撞体积大于伤害判定区域,则与第一游戏单位发生碰撞的其它游戏单位无法进入伤害判定区域,进而造成伤害判定无法生效。
可选地,在步骤S121中,获取第一碰撞体积可以包括但不限于以下方式之一:
方式一、通过预设引擎的接口中获取第一碰撞体积;
在优选实施例中,可以使用Nexo引擎中的接口获得第一游戏单位(例如:汽车)的碰撞体积,该碰撞体积是汽车模型本身体积要稍大一些,其约等于汽车模型的表面积,并且是规则六面体。
方式二、获取第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度,并采用水平最大长度、纵剖面水平最大长度以及高度,计算得到第一碰撞体积。
在优选实施例中,可以通过测量第一游戏单位对应的三维模型的横剖面水平最大长度,纵剖面水平最大长度以及三维模型的高度来计算第一游戏单位的碰撞体积。例如:经测量得到三维模型的横剖面水平最大长度为1.8m,载具的纵剖面水平最大长度为5.6m,由此生成一个俯视投影面为5.6m×1.8m的底面;然后,再结合三维模型的高度h,最终计算得到第一游戏单位的碰撞体积。
可选地,在步骤S14中,确定第二对象进入伤害判定区域可以包括但不限于以下方式之一:
方式一、当通过预设引擎的接口中获取第一碰撞体积时,如果第二对象的第二碰撞体积的中心点进入或贴合于第一碰撞体积的边界,则确定第二对象进入伤害判定区域;
如果需要发生碰撞的两个游戏单位(例如:载具与载具、载具与游戏角色)的边缘无法互相重合,可能会导致该碰撞体积占据过多的空间。考虑到载具的碰撞体积通常会大于载具模型自身的体积,因此,只要能够确保与载具发生碰撞的游戏单位的碰撞体积的中心位置不与载具的碰撞体积发生重合,便不易发生载具与上述游戏单位发生重合的现象。
图2是根据本发明优选实施例一的两个游戏单位发生碰撞的示意图。如图2所示,第二游戏单位的碰撞体积与第一游戏单位的伤害判定区域出现部分重合,其中,第二游戏单位的碰撞体积既可以进入第一游戏单位的碰撞体积,也可以只进入第一游戏单位的伤害判定区域内除第一游戏单位的碰撞体积之外的区域;并且第二游戏单位的碰撞体积的中心位置位于第一游戏单位的碰撞体积之外,则确定第二游戏单位进入伤害判定区域。
方式二、当第一碰撞体积是通过第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度计算得到时,如果第二对象的第二碰撞体积与伤害判定区域出现部分重合或第二碰撞体积的边界贴合于伤害判定区域的边界时,则确定第二对象进入伤害判定区域。
在此种计算模式下,由于碰撞体积是通过真实测量得到的,因此,如果仍然采用上述与载具发生碰撞的游戏单位的碰撞体积的中心位置不与载具的碰撞体积发生重合的方式,可能会导致载具与发生碰撞的游戏单位产生不必要的模型重叠。故而,需要确保与载具发生碰撞的第二游戏单位的碰撞体积的边缘与第一游戏单位的碰撞体积的边缘相切或者直接与伤害判定区域的边缘相切。
图3是根据本发明优选实施例二的两个游戏单位发生碰撞的示意图。如图3所示,当碰撞体积是通过第一游戏单位对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度计算得到时,如果第二游戏单位的碰撞体积与伤害判定区域内除第一碰撞体积之外的其余区域出现部分重合或与伤害判定区域的边缘相切,则确定第二游戏单位进入伤害判定区域。
在优选实施过程中,可以按照预设时间间隔确定第二游戏单位进入伤害判定区域,其中,预设时间间隔是由第一游戏单位在行进方向上的剖面最大水平长度和第一游戏单位的移动速度来确定的。
由于读取第一游戏单位的实际体积进行碰撞检测,可能会造成用户终端(例如:个人计算机、智能手机、平板电脑)不停地进行碰撞检测而消耗过多的硬件资源,可以仅执行伤害判定(即判断第一游戏单位是否受到伤害),而不执行碰撞检测(即检测第一游戏单位与发生碰撞的其它游戏单位是否发生重叠),由此,当与载具发生碰撞的其它游戏单位触碰到伤害判定区域时,便发生反弹,而不再触碰上述碰撞体积。
在部分单机游戏中,采用逐帧的碰撞检测算法。即在每一帧图像中都会计算受到撞击的游戏单位的碰撞体积,是否与上述第一游戏单位的碰撞体积相互重叠。如果发生重叠,则立即对受到撞击的游戏单位进行受击表现。当然,此种计算方式的明显缺陷在于:需要耗费较大的用户终端的硬件资源。
为了改善用户终端的硬件资源消耗,可以根据判定条件:第一游戏单位在行进方向上的剖面水平最大长度>检测时间间隔*载具的移动速度,来设定检测时间间隔,从而使得在发生撞击的游戏单位进入伤害判定区域,此时,实际上距离第一游戏单位的碰撞体积还存在一定距离,并不会造成第一游戏单位与发生碰撞的游戏单位彼此重合。以每3帧进行一次碰撞检测为例,假设在播放第3帧图像时才启动碰撞检测机制,以产生碰撞效果,由此既可以避免第一游戏单位与发生碰撞的其他游戏单位彼此重合,又可以降低用户终端的硬件资源消耗。
可选地,在步骤S16中,触发第二对象执行在受到撞击后的行为序列可以包括以下执行步骤:
步骤S161,根据第二对象的受到撞击后的初始速度、第一周围环境阻力和第一重力加速度计算第二对象从被撞击位置至空中最高点所经历的第一时长,并按照第一时长调整起跳动作的播放进度;
步骤S162,根据第二对象的第二重力加速度、第二周围环境阻力以及空中最高点距离地面的垂直高度计算第二对象从空中最高点至开始落地位置所经历的第二时长,并按照第二时长调整下落动作的播放进度;
步骤S163,在起跳动作与下落动作连续播放完成后,播放落地动作。
关于第二游戏单位被撞击效果的体现,如果游戏场景采用水平视角而且被载具撞击的是具有一定生命值的爬行生物,会存在一定程度的左右位移。
此处需要重点说明,如果游戏场景采用近斜45度视角,则第二游戏单位被撞击效果如下:
在现实世界中,如果行人被飞速行驶的车辆撞到,通常行人会向车辆的行驶方向运动一段距离。而如果在游戏场景中,仍然使用上述设定,则会导致爬行生物在载具的推动下运动很长一段距离。经过反复试验表明,将爬行生物垂直撞飞会体现良好的撞击效果,即游戏单位在被垂直撞飞之后,然后再垂直落下,中间的过程需要使用重力加速度的公式进行逐帧计算:
(1)关于X、Z轴的(水平轴)位移处理
如果在水平轴上没有摩擦力,那么单位在受力之后,会朝被击的方向,以一个很快的速度移动过去,所以需要带入摩擦力(即周围环境阻力,例如:空气、风)的计算。
这边需要程序设定一个常数摩擦力,例如:在游戏场景中设定上述摩擦力为3m/s2,则每一帧图像需要减少的速度为0.3m/s。然后,程序只要在每帧图像处理下的单位速度每秒钟减去0.3m/s即可。
(2)关于Y轴的(垂直轴)位移处理
除了太空类游戏之外,基于地球为背景的游戏场景都会存在万有引力,如果被撞击的游戏单位产生或被撞飞,需要表现出先向上减速运动,然后再向下加速运动的完整运动轨迹。
此时,在Y轴方向上需要设定以下两个参数:
(1)上升阶段的重力加速度;
(2)下落阶段的重力加速度。
为了更好地表现被撞击的效果,在此设定上升阶段的重力加速度要大于下落阶段的重力加速度。
当被撞击的游戏单位处于上升阶段时,速度的衰减是由于使用了上升阶段的重力加速度,而被撞击的游戏单位处于下落阶段时,速度的增加是由于使用下落阶段的重力加速度。
表示1是本发明优选实施例针对被撞击的游戏单位所执行的动作处理。如表1所示:
表1
动作名称 | 说明 |
fly_up | 被撞击游戏单位处于上升阶段时的动作,通常向前弓着身子 |
fly_down | 被撞击游戏单位处于下落阶段时的动作,通常向后仰着身子 |
fly_drop | 落地的动作 |
如上述表1所示,被撞击的游戏单位从起身到落地的动作序列中,需要包括以下三个过程:
(1)向上起跳的过程;
(2)下落的过程;
(3)倒地起身的过程。
其中,需要计算向上起跳的动作的时间,例如:向上的起飞速度是10m/角色s,而向上的重力加速度为5m/s2,由此可以计算得到游戏在向上起跳2s之后,便会转换为向下掉落状态,然后再对fly_up的动作进行调整,调整为计算得到的时间。
下落的时间计算方式与向上起跳时间的计算方式不同,需要通过公式h=1/2gt2,将上述重力加速度带入参数g,将上述时间带入参数t,以计算得到向上起跳的距离h。然后,再通过公式t=(2*h/g’)1/2,将h和下落阶段的重力加速度g’带入该公式,计算得到下落的时间t,然后再对fly_down的动作进行调整,调整为计算得到的时间。
而对于fly_drop的动作,则无需改变动作播放的时间长度,在落地瞬间开始播放即可。
通过上面的步骤,就可以比较完美的还原出被撞飞的效果。
根据本发明实施例,还提供了一种对象发生撞击的处理装置的实施例。图4是根据本发明实施例的对象发生撞击的处理装置的流程图,如图4所示,获取模块10,用于获取第一对象的伤害判定区域,其中,伤害判定区域用于确定第一对象是否与当前场景内的其余对象发生碰撞;确定模块20,用于确定第二对象进入伤害判定区域;处理模块30,用于触发第二对象执行在受到撞击后的行为序列。
可选地,图5是根据本发明优选实施例的对象发生撞击的处理装置的流程图,如图5所示,获取模块10可以包括:获取单元100,用于获取第一对象的第一碰撞体积;确定单元102,用于根据第一碰撞体积确定伤害判定区域,其中,第一碰撞体积包含在伤害判定区域之内。
可选地,获取单元100,用于通过预设引擎的接口中获取第一碰撞体积;或者,获取第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度,并采用水平最大长度、纵剖面水平最大长度以及高度,计算得到第一碰撞体积。
可选地,确定单元102,用于当通过预设引擎的接口中获取第一碰撞体积时,如果第二对象的第二碰撞体积的中心点进入或贴合第一碰撞体积的边界时,则确定第二对象进入伤害判定区域;或者,当第一碰撞体积是通过第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度计算得到时,如果第二对象的第二碰撞体积与伤害判定区域出现部分重合或第二碰撞体积的边界贴合于伤害判定区域的边界时,则确定第二对象进入伤害判定区域。
可选地,确定模块20,用于按照预设时间间隔确定第二对象进入伤害判定区域,其中,预设时间间隔是由第一对象在行进方向上的剖面最大水平长度和第一对象的移动速度来确定的。
可选地,如图5所示,处理模块30包括:第一处理单元300,用于根据第二对象的受到撞击后的初始速度、第一周围环境阻力和第一重力加速度计算第二对象从被撞击位置至空中最高点所经历的第一时长,并按照第一时长调整起跳动作的播放进度;第二处理单元302,用于根据第二对象的第二重力加速度、第二周围环境阻力以及空中最高点距离地面的垂直高度计算第二对象从空中最高点至开始落地位置所经历的第二时长,并按照第二时长调整下落动作的播放进度;第三处理单元304,用于在起跳动作与下落动作连续播放完成后,播放落地动作。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种对象发生撞击的处理方法,其特征在于,包括:
获取第一对象的伤害判定区域,其中,所述伤害判定区域用于确定所述第一对象是否与当前场景内的其余对象发生碰撞;
确定第二对象进入所述伤害判定区域;
触发所述第二对象执行在受到撞击后的行为序列。
2.根据权利要求1所述的方法,其特征在于,获取所述第一对象的所述伤害判定区域包括:
获取所述第一对象的第一碰撞体积;
根据所述第一碰撞体积确定所述伤害判定区域,其中,所述第一碰撞体积包含在所述伤害判定区域之内。
3.根据权利要求2所述的方法,其特征在于,获取所述第一碰撞体积包括以下之一:
通过预设引擎的接口中获取所述第一碰撞体积;
获取所述第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度,并采用所述水平最大长度、所述纵剖面水平最大长度以及所述高度,计算得到所述第一碰撞体积。
4.根据权利要求3所述的方法,其特征在于,确定所述第二对象进入所述伤害判定区域包括以下之一:
当通过预设引擎的接口中获取所述第一碰撞体积时,如果所述第二对象的第二碰撞体积的中心点进入或贴合于所述第一碰撞体积的边界时,则确定所述第二对象进入所述伤害判定区域;
当所述第一碰撞体积是通过所述第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度计算得到时,如果所述第二对象的第二碰撞体积与所述伤害判定区域出现部分重合或所述第二碰撞体积的边界贴合于所述伤害判定区域的边界时,则确定所述第二对象进入所述伤害判定区域。
5.根据权利要求1所述的方法,其特征在于,按照预设时间间隔确定所述第二对象进入所述伤害判定区域,其中,所述预设时间间隔是由所述第一对象在行进方向上的剖面最大水平长度和所述第一对象的移动速度来确定的。
6.根据权利要求1所述的方法,其特征在于,触发所述第二对象执行在受到撞击后的所述行为序列包括:
根据所述第二对象的受到撞击后的初始速度、第一周围环境阻力和第一重力加速度计算所述第二对象从被撞击位置至空中最高点所经历的第一时长,并按照所述第一时长调整起跳动作的播放进度;
根据所述第二对象的第二重力加速度、第二周围环境阻力以及所述空中最高点距离地面的垂直高度计算所述第二对象从所述空中最高点至开始落地位置所经历的第二时长,并按照所述第二时长调整下落动作的播放进度;
在所述起跳动作与所述下落动作连续播放完成后,播放所述落地动作。
7.一种对象发生撞击的处理装置,其特征在于,包括:
获取模块,用于获取第一对象的伤害判定区域,其中,所述伤害判定区域用于确定所述第一对象是否与当前场景内的其余对象发生碰撞;
确定模块,用于确定第二对象进入所述伤害判定区域;
处理模块,用于触发所述第二对象执行在受到撞击后的行为序列。
8.根据权利要求7所述的装置,其特征在于,所述获取模块包括:
获取单元,用于获取所述第一对象的第一碰撞体积;
确定单元,用于根据所述第一碰撞体积确定所述伤害判定区域,其中,所述第一碰撞体积包含在所述伤害判定区域之内。
9.根据权利要求8所述的装置,其特征在于,所述获取单元,用于通过预设引擎的接口中获取所述第一碰撞体积;或者,获取所述第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度,并采用所述水平最大长度、所述纵剖面水平最大长度以及所述高度,计算得到所述第一碰撞体积。
10.根据权利要求9所述的装置,其特征在于,所述确定单元,用于当通过预设引擎的接口中获取所述第一碰撞体积时,如果所述第二对象的第二碰撞体积的中心点进入或贴合于所述第一碰撞体积的边界时,则确定所述第二对象进入所述伤害判定区域;或者,当所述第一碰撞体积是通过所述第一对象对应的三维模型中的横剖面水平最大长度、纵剖面水平最大长度以及高度计算得到时,如果所述第二对象的第二碰撞体积与所述伤害判定区域出现部分重合或所述第二碰撞体积的边界贴合于所述伤害判定区域的边界时,则确定所述第二对象进入所述伤害判定区域。
11.根据权利要求7所述的装置,其特征在于,所述确定模块,用于按照预设时间间隔确定所述第二对象进入所述伤害判定区域,其中,所述预设时间间隔是由所述第一对象在行进方向上的剖面最大水平长度和所述第一对象的移动速度来确定的。
12.根据权利要求7所述的装置,其特征在于,所述处理模块包括:
第一处理单元,用于根据所述第二对象的受到撞击后的初始速度、第一周围环境阻力和第一重力加速度计算所述第二对象从被撞击位置至空中最高点所经历的第一时长,并按照所述第一时长调整起跳动作的播放进度;
第二处理单元,用于根据所述第二对象的第二重力加速度、第二周围环境阻力以及所述空中最高点距离地面的垂直高度计算所述第二对象从所述空中最高点至开始落地位置所经历的第二时长,并按照所述第二时长调整下落动作的播放进度;
第三处理单元,用于在所述起跳动作与所述下落动作连续播放完成后,播放所述落地动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610898400.8A CN106582024B (zh) | 2016-10-14 | 2016-10-14 | 对象发生撞击的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610898400.8A CN106582024B (zh) | 2016-10-14 | 2016-10-14 | 对象发生撞击的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106582024A true CN106582024A (zh) | 2017-04-26 |
CN106582024B CN106582024B (zh) | 2020-05-29 |
Family
ID=58555862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610898400.8A Active CN106582024B (zh) | 2016-10-14 | 2016-10-14 | 对象发生撞击的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106582024B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018205872A1 (zh) * | 2017-05-11 | 2018-11-15 | 腾讯科技(深圳)有限公司 | 目标对象的处理方法、装置、存储介质及电子装置 |
CN109107160A (zh) * | 2018-08-27 | 2019-01-01 | 广州要玩娱乐网络技术股份有限公司 | 动画交互方法、装置、计算机存储介质和终端 |
CN110585695A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 在虚拟环境中使用近战道具的方法、装置、设备及介质 |
CN110706318A (zh) * | 2019-09-30 | 2020-01-17 | 北京金山安全软件有限公司 | 物体移动速度控制方法和装置 |
CN110917623A (zh) * | 2019-11-20 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 互动信息显示方法、装置、终端及存储介质 |
CN111346379A (zh) * | 2020-03-12 | 2020-06-30 | 竞技世界(北京)网络技术有限公司 | 一种实现碰撞处理的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071515A (zh) * | 2007-06-25 | 2007-11-14 | 北京金山软件有限公司 | 一种在服务器端实现三维游戏碰撞检测的方法 |
CN101615305A (zh) * | 2009-07-24 | 2009-12-30 | 腾讯科技(深圳)有限公司 | 碰撞检测的方法和装置 |
CN104699946A (zh) * | 2014-12-30 | 2015-06-10 | 北京像素软件科技股份有限公司 | 一种游戏场景的管理方法及装置 |
CN105469406A (zh) * | 2015-11-30 | 2016-04-06 | 东北大学 | 一种基于包围盒与空间划分的虚拟物体碰撞检测方法 |
CN105488851A (zh) * | 2015-11-30 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 实时虚拟场景中碰撞体之间碰撞探测的方法和装置 |
CN105498211A (zh) * | 2015-12-11 | 2016-04-20 | 网易(杭州)网络有限公司 | 游戏中位置关系的处理方法和装置 |
-
2016
- 2016-10-14 CN CN201610898400.8A patent/CN106582024B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071515A (zh) * | 2007-06-25 | 2007-11-14 | 北京金山软件有限公司 | 一种在服务器端实现三维游戏碰撞检测的方法 |
CN101615305A (zh) * | 2009-07-24 | 2009-12-30 | 腾讯科技(深圳)有限公司 | 碰撞检测的方法和装置 |
CN104699946A (zh) * | 2014-12-30 | 2015-06-10 | 北京像素软件科技股份有限公司 | 一种游戏场景的管理方法及装置 |
CN105469406A (zh) * | 2015-11-30 | 2016-04-06 | 东北大学 | 一种基于包围盒与空间划分的虚拟物体碰撞检测方法 |
CN105488851A (zh) * | 2015-11-30 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 实时虚拟场景中碰撞体之间碰撞探测的方法和装置 |
CN105498211A (zh) * | 2015-12-11 | 2016-04-20 | 网易(杭州)网络有限公司 | 游戏中位置关系的处理方法和装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018205872A1 (zh) * | 2017-05-11 | 2018-11-15 | 腾讯科技(深圳)有限公司 | 目标对象的处理方法、装置、存储介质及电子装置 |
CN109107160A (zh) * | 2018-08-27 | 2019-01-01 | 广州要玩娱乐网络技术股份有限公司 | 动画交互方法、装置、计算机存储介质和终端 |
CN109107160B (zh) * | 2018-08-27 | 2021-12-17 | 广州要玩娱乐网络技术股份有限公司 | 动画交互方法、装置、计算机存储介质和终端 |
CN110585695A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 在虚拟环境中使用近战道具的方法、装置、设备及介质 |
CN110706318A (zh) * | 2019-09-30 | 2020-01-17 | 北京金山安全软件有限公司 | 物体移动速度控制方法和装置 |
CN110706318B (zh) * | 2019-09-30 | 2023-07-14 | 北京金山安全软件有限公司 | 物体移动速度控制方法和装置 |
CN110917623A (zh) * | 2019-11-20 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 互动信息显示方法、装置、终端及存储介质 |
CN110917623B (zh) * | 2019-11-20 | 2022-06-07 | 腾讯科技(深圳)有限公司 | 互动信息显示方法、装置、终端及存储介质 |
CN111346379A (zh) * | 2020-03-12 | 2020-06-30 | 竞技世界(北京)网络技术有限公司 | 一种实现碰撞处理的方法及装置 |
CN111346379B (zh) * | 2020-03-12 | 2023-05-12 | 竞技世界(北京)网络技术有限公司 | 一种实现碰撞处理的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106582024B (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106582024A (zh) | 对象发生撞击的处理方法及装置 | |
Hämäläinen et al. | Martial arts in artificial reality | |
JP6286410B2 (ja) | ゲーム方法およびゲームシステム | |
JP2021505255A5 (zh) | ||
CN108579085A (zh) | 障碍物碰撞的处理方法和装置、存储介质及电子装置 | |
JP6182184B2 (ja) | シミュレーション方法およびシステム | |
CN106362397A (zh) | 载具的处理方法及装置 | |
US9028311B2 (en) | Target game incorporating strategy elements | |
US11529560B2 (en) | Method and apparatus for controlling virtual race car, storage medium, and device | |
US20190270022A1 (en) | Network gaming ride attraction | |
KR20150024400A (ko) | 온라인 게임에 대한 치팅 방지 방법 및 시스템 | |
US5158462A (en) | Multiple-collision acceleration demonstrator and toy | |
CN105920778A (zh) | 一种能够联动于电脑游戏的划船器及其联动方法 | |
CN110215708A (zh) | 游戏角色的控制方法、装置以及移动终端 | |
CN112312980B (zh) | 电子装置、方法、存储介质和系统 | |
EP0083316A1 (en) | Device for playing the game of wall tennis | |
JP3768971B2 (ja) | 画像生成装置、方法およびプログラム | |
JP6029615B2 (ja) | ゲーム方法およびゲームシステム | |
CN111265880B (zh) | 一种游戏调整方法、装置、电子设备和存储介质 | |
Sovenko | Technique and Tactics of Elite Male Race Walkers | |
CN112619148A (zh) | 虚拟角色控制方法、装置、计算设备及存储介质 | |
CN111790130B (zh) | 一种基于加速度的智能搏击球训练接球识别方法及系统 | |
JP7437440B2 (ja) | プログラム、電子装置、方法、及びシステム | |
Brown et al. | Developing game-playing agents that adapt to user strategies: A case study | |
JP2015173976A (ja) | ゲーム方法およびゲームシステム |
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 |