CN112221147B - 游戏场景中的避障方法、电子设备和机器可读存储介质 - Google Patents

游戏场景中的避障方法、电子设备和机器可读存储介质 Download PDF

Info

Publication number
CN112221147B
CN112221147B CN202011107422.0A CN202011107422A CN112221147B CN 112221147 B CN112221147 B CN 112221147B CN 202011107422 A CN202011107422 A CN 202011107422A CN 112221147 B CN112221147 B CN 112221147B
Authority
CN
China
Prior art keywords
obstacle
obstacle avoidance
action
game
collision
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
CN202011107422.0A
Other languages
English (en)
Other versions
CN112221147A (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 CN202011107422.0A priority Critical patent/CN112221147B/zh
Publication of CN112221147A publication Critical patent/CN112221147A/zh
Application granted granted Critical
Publication of CN112221147B publication Critical patent/CN112221147B/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/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/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/60Methods for processing data by generating or executing the game program

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提供了一种游戏场景中的避障方法、电子设备和机器可读存储介质,响应于游戏角色在游戏场景中的移动,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物;如果游戏场景中存在障碍物,获取躲避障碍物的避障方向;控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物。该方式中,用户在控制游戏角色移动的过程中,系统可自动探测游戏场景中的障碍物,如果存在障碍物,则获取躲避障碍物的避障方向,进而控制游戏角色执行相应的避障动作,这种自动避障的方式可以避免用户反复移动游戏角色的琐碎操作,使用户能够集中精力于游戏的核心玩法和剧情体验,提高了用户的游戏体验度。

Description

游戏场景中的避障方法、电子设备和机器可读存储介质
技术领域
本发明涉及游戏技术领域,尤其是涉及一种游戏场景中的避障方法、电子设备和机器可读存储介质。
背景技术
在游戏场景中通常会存在各种障碍物,例如,坡道、地面上的摆放物、建筑物、山体等;用户(也可以称为玩家)控制虚拟角色在游戏场景中移动时,需要躲避这些障碍物。相关技术中,为了躲避障碍物,用户需要控制虚拟角色在障碍物附近反复移动,目的是找到能够躲避障碍物的路径,或者是找到一个合适的位置,进而触发躲避障碍物的动作,如跳跃、攀爬等;这些反复移动的过程较为枯燥、琐碎,导致用户难以集中精力于游戏的核心玩法和剧情体验上,降低了用户的游戏体验度。
发明内容
有鉴于此,本发明的目的在于提供一种游戏场景中的避障方法、电子设备和机器可读存储介质,以提高用户的游戏体验度。
第一方面,本发明实施例提供了一种游戏场景中的避障方法,通过终端设备提供一图形用户界面,图形用户界面至少包括游戏角色和游戏场景;终端设备控制游戏角色在游戏场景中移动;方法包括:响应于游戏角色在游戏场景中的移动,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物;如果游戏场景中存在障碍物,获取躲避障碍物的避障方向;控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物。
进一步的,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物的步骤,包括:获取游戏角色的位置信息和移动信息;根据位置信息,通过第一碰撞检测器检测根据移动信息确定的指定范围内是否存在障碍物。
进一步的,第一碰撞检测器的最高点高于游戏角色的角色高度,第一碰撞检测器的最低点高于第一指定高度;第一指定高度与游戏角色对应的可跨越高度相关;指定范围根据第一碰撞检测器的第一碰撞检测器高度,以及水平方向上的探测宽度和探测远度确定。
进一步的,如果游戏场景中存在障碍物,获取躲避障碍物的避障方向的步骤,包括:如果游戏场景中存在障碍物,根据障碍物的坡度,判断游戏角色是否能在障碍物上移动;如果不能在障碍物上移动,获取躲避障碍物的避障方向。
进一步的,游戏角色预先设置有可移动的最大坡度;根据障碍物的坡度,判断游戏角色是否能在障碍物上移动的步骤,包括:如果障碍物的坡度,大于或等于可移动的最大坡度,确定游戏角色不能在障碍物上移动。
进一步的,获取躲避障碍物的避障方向的步骤,包括:获取游戏角色的位置信息和移动信息;根据位置信息,通过第二碰撞检测器,根据移动信息在障碍物的表面确定第一碰撞点;其中,第一碰撞点为:游戏角色如果继续沿着移动方向移动,与障碍物发生碰撞时的碰撞点;根据第一碰撞点的位置,确定目标平面;在目标平面上,沿着指定方向获取躲避障碍物的避障方向。
进一步的,根据第一碰撞点的位置,确定目标平面的步骤,包括:根据第一碰撞点的位置坐标,以及障碍物在第一碰撞点的法线,确定障碍物在第一碰撞点的切面;将切面确定为目标平面。
进一步的,指定方向包括水平方向;在目标平面上,沿着指定方向获取躲避障碍物的避障方向的步骤,包括:生成第三碰撞检测器;第三碰撞检测器用于探测避障方向;控制第三碰撞检测器在目标平面上沿着水平方向移动;在第三碰撞检测器的指定移动范围内,如果第三碰撞检测器探测到第二碰撞点,基于第二碰撞点的位置确定障碍物的避障方向;其中,第二碰撞点位于障碍物的表面。
进一步的,第三碰撞检测器包括两个;控制第三碰撞检测器在目标平面上沿着水平方向移动的步骤,包括:控制一个第三碰撞检测器在目标平面上沿着水平方向向左移动,控制另一个第三碰撞检测器在目标平面上沿着水平方向向右移动;如果第三碰撞检测器探测到第二碰撞点,基于第二碰撞点确定障碍物的避障方向的步骤,包括:如果探测到两个第二碰撞点,基于两个第二碰撞点中的任意一个第二碰撞点确定障碍物的避障方向。
进一步的,基于第二碰撞点的位置确定障碍物的避障方向的步骤,包括:如果第二碰撞点位于障碍物的左侧,确定避障方向为左侧方向;如果第二碰撞点位于障碍物的右侧,确定避障方向为右侧方向。
进一步的,指定方向包括垂直方向;在目标平面上,沿着指定方向获取躲避障碍物的避障方向的步骤,包括:生成第四碰撞检测器;第四碰撞检测器用于探测避障方向;控制第四碰撞检测器从第二指定高度开始,沿着垂直方向向下移动,直至探测到第三碰撞点,基于第三碰撞点的位置确定障碍物的避障方向;其中,第三碰撞点位于障碍物的表面。
进一步的,基于第三碰撞点的位置确定障碍物的避障方向的步骤,包括:确定障碍物的避障方向为垂直方向,且第三碰撞点为:游戏角色沿着垂直方向进行避障的目的地。
进一步的,控制游戏角色执行与避障方向相匹配的避障动作的步骤,包括:如果避障方向为水平方向,确定避障动作为侧向闪避动作;其中,侧向闪避动作包括向左闪避动作或向右闪避动作;根据探测到的第二碰撞点的位置,确定闪避位移;控制游戏角色执行与闪避位移相匹配的侧向闪避动作,在执行侧向闪避动作的同时,控制游戏角色产生闪避位移。
进一步的,控制游戏角色执行与避障方向相匹配的避障动作的步骤,包括:如果避障方向为垂直方向,确定游戏角色沿着垂直方向进行避障的目的地,是否具有容纳游戏角色的空间;如果具有容纳游戏角色的空间,控制游戏角色执行与避障方向相匹配的避障动作。
进一步的,控制游戏角色执行与避障方向相匹配的避障动作的步骤,包括:根据目的地的高度,从预设的避障动作中确定游戏角色需要执行的目标避障动作;避障动作包括:跨越、单手攀越或双手攀越;控制游戏角色执行目标避障动作。
进一步的,控制游戏角色执行目标避障动作:根据目的地的高度,确定目标避障动作的起始动作;控制游戏角色执行起始动作,以及起始动作的后续动作,并在执行每个动作的过程中,控制游戏角色产生与当前动作相匹配的位移,直至到达目的地。
进一步的,根据目的地的高度,确定目标避障动作的起始动作的步骤,包括:获取目标避障动作对应的连续动作帧;其中,连续动作帧包括:从目标避障动作对应的最高目的地高度开始,目标避障动作对应的每种目的地高度对应的起始动作,以及目标避障动作对应的基础动作;从连续动作帧中确定与目的地的高度相匹配的目标动作帧,将目标动作帧中的起始动作,确定为目标避障动作的起始动作。
进一步的,起始动作的后续动作包括:连续动作帧中,目标动作帧后续的全部动作帧所包含的动作。
进一步的,在执行每个动作的过程中,控制游戏角色产生与当前动作相匹配的位移的步骤之前,方法还包括:确定游戏角色从当前位置移动至目的地的时长;基于时长,确定游戏角色在执行目标避障动作的每个时间点的位移幅度;在执行每个动作的过程中,控制游戏角色产生与当前动作相匹配的位移的步骤,包括:针对每个动作,确定执行当前动作的目标时间点;控制游戏角色产生与目标时间点对应的位移幅度的位移。
第二方面,本发明实施例提供了一种游戏场景中的避障装置,通过终端设备提供一图形用户界面,图形用户界面至少包括游戏角色和游戏场景;终端设备控制游戏角色在游戏场景中移动;装置包括:探测模块,用于响应于游戏角色在游戏场景中的移动,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物;获取模块,用于如果游戏场景中存在障碍物,获取躲避障碍物的避障方向;躲避模块,用于控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第一方面任一项的游戏场景中的避障方法。
第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面任一项的游戏场景中的避障方法。
本发明实施例带来了以下有益效果:
本发明实施例提供了一种游戏场景中的避障方法、电子设备和机器可读存储介质,响应于游戏角色在游戏场景中的移动,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物;如果游戏场景中存在障碍物,获取躲避障碍物的避障方向;控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物。该方式中,用户在控制游戏角色移动的过程中,系统可自动探测游戏场景中的障碍物,如果存在障碍物,则获取躲避障碍物的避障方向,进而控制游戏角色执行相应的避障动作,这种自动避障的方式可以避免用户反复移动游戏角色的琐碎操作,使用户能够集中精力于游戏的核心玩法和剧情体验,提高了用户的游戏体验度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种游戏场景中的避障方法的流程图;
图2为本发明实施例提供的另一种游戏场景中的避障方法的流程图;
图3为本发明实施例提供的一种探测障碍物的示意图;
图4为本发明实施例提供的一种确定碰撞点的示意图;
图5为本发明实施例提供的一种获取避障方向的方法流程图;
图6为本发明实施例提供的另一种获取避障方向的方法流程图;
图7为本发明实施例提供的另一种确定碰撞点的示意图;
图8为本发明实施例提供的另一种游戏场景中的避障方法的流程图;
图9为本发明实施例提供的一种垂直避障规则设计图;
图10为本发明实施例提供的一种具体的游戏场景中的避障方法的流程图;
图11为本发明实施例提供的一种游戏场景中的避障装置的结构示意图;
图12为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,为了躲避障碍物,用户需要控制虚拟角色在障碍物附近反复移动,目的是找到能够躲避障碍物的路径,或者是找到一个合适的位置,进而触发躲避障碍物的动作,如跳跃、攀爬等;这些反复移动的过程较为枯燥、琐碎,导致用户难以集中精力于游戏的核心玩法和剧情体验上,降低了用户的游戏体验度,基于此,本发明实施例提供的一种游戏场景中的避障方法、电子设备和机器可读存储介质,该技术可以应用于多种游戏场景中,尤其可以应用于游戏角色在移动时,躲避障碍物的游戏场景中。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种游戏场景中的避障方法进行详细介绍,该方法可以应用于终端设备,通过终端设备提供一图形用户界面,图形用户界面至少包括游戏角色和游戏场景;该游戏角色也可以称为虚拟角色或虚拟对象;终端设备控制游戏角色在游戏场景中移动;其中,终端设备可以是手机、电脑、笔记本、平板电脑等设备;图像用户界面可以是游戏中当前正在展示的场景,其中可以包括游戏角色、各种障碍物、以及游戏场景等;终端设备可以通过终端设备中的处理器控制游戏角色在游戏场景中移动,也可以通过图形用户界面中的移动控件,控制游戏角色在游戏场景中移动。
该方法的执行主体为终端设备,如图1所示,该方法包括如下步骤:
步骤S102,响应于游戏角色在游戏场景中的移动,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物;
上述障碍物通常是指游戏场景中固定不动的虚拟物体,比如,建筑物、石头、栏杆等;通常可以在图形用户界面中按住移动的按键,使游戏角色在游戏场景中的移动;上述游戏角色通常是指游戏场景中,用户可以控制的游戏角色;该游戏角色可以在游戏场景中进行移动,通常在移动过程中会遇到障碍物,因此,在游戏角色移动的过程中,为了避免游戏角色与障碍物碰撞,首先可以探测游戏角色的移动方向上是否有障碍物;该探测过程是终端设备响应于游戏角色在游戏场景中的移动,自动触发的功能,不需要用户进行操作。其中探测障碍物可以是利用传感器、探测器等虚拟设备感知游戏场景中的障碍物,可以感知障碍物的位置、与游戏角色的距离、障碍物与游戏角色的碰撞位置等信息。
步骤S104,如果游戏场景中存在障碍物,获取躲避障碍物的避障方向;
上述避障方向可以包括水平方向或垂直方向;如果探测到游戏场景中存在障碍物,可以根据障碍物的体积、高度、宽度、位置、障碍物表面的空间大小等信息,并结合游戏角色自身的体积、高度、宽度等信息,自动获取躲避障碍物的避障方向;比如,可以通过探测障碍物的探测设备,获取障碍物的体积、高度、宽度、位置、障碍物表面的空间大小等信息,根据该信息可以确定障碍物是否存在避障通道,从而获取躲避障碍物的避障方向。一般情况下,可以先尝试获取水平方向的避障方向,如果获取不到水平方向的避障通道,则可以尝试获取垂直方向的避障方向;当然也可以先尝试获取垂直方向的避障方向,如果获取不到垂直方向的避障通道,则可以尝试获取水平方向的避障方向。具体的获取顺序,可以根据实际要求进行设置。
步骤S106,控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物。
上述不同的避障方向对应有不同的避障动作,比如,避障方向为右侧避障,则对应的避障动作可以是向右移动一定距离;避障方向为左侧避障,则对应的避障动作可以是向左移动一定距离;避障方向为垂直向上避障,则对应的避障动作可以是从障碍物的上方,跨越或翻越一定高度;避障方向为垂直向下避障,则对应的避障动作可以是从障碍物的下方侧身一定角度或降低一定距离躲避障碍物。
具体的,可以根据前述步骤获取的避障方向,自动执行与避障方向相匹配的避障动作,每个避障动作都包含有每一帧动作的高度信息、宽度信息、以及每个高度或宽度信息对应的具体动作;因此,该避障动作通常会根据障碍物的宽度或高度信息,设置避障动作的移动距离以及起始动作;进而完成游戏角色躲避障碍物的连续动作。
本发明实施例提供了一种游戏场景中的避障方法,响应于游戏角色在游戏场景中的移动,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物;如果游戏场景中存在障碍物,获取躲避障碍物的避障方向;控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物。该方式中,该方式中,用户在控制游戏角色移动的过程中,系统可自动探测游戏场景中的障碍物,如果存在障碍物,则获取躲避障碍物的避障方向,进而控制游戏角色执行相应的避障动作,这种自动避障的方式可以避免用户反复移动游戏角色的琐碎操作,使用户能够集中精力于游戏的核心玩法和剧情体验,提高了用户的游戏体验度。
本实施例提供了另一种游戏场景中的避障方法,该方法中主要描述沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物的步骤的具体实现方式,以及如果游戏场中存在障碍物,获取躲避障碍物的避障方向的步骤的具体实现方式,如图2所示,该方法包括如下步骤:
步骤S202,响应于游戏角色在游戏场景中的移动,获取游戏角色的位置信息和移动信息;
终端设备响应于游戏角色在游戏场景中的移动,可以实时获取游戏角色的位置信息和移动信息;其中的位置信息通常是指游戏角色在游戏场景中相对于初始位置的位置信息;上述移动信息通常是指游戏角色在游戏场景中开始移动后的距离初始位置的移动距离和当前的移动方向。
步骤S204,根据位置信息,通过第一碰撞检测器检测根据移动信息确定的指定范围内是否存在障碍物;如果存在,执行步骤S206;如果不存在,游戏角色继续沿移动方向移动;
上述第一碰撞检测器可以以游戏角色的移动方向为基准,虚拟设置在游戏角色前方的指定位置;其中的指定位置可以是游戏角色前方紧挨游戏角色的位置,该第一碰撞检测器在游戏场景中是始终存在的,具体而言,以游戏角色的位置和移动方向为参考,每一帧都去探测移动方向前的画面。
上述第一碰撞检测器可以是胶囊探测器,可以理解为该胶囊探测器与胶囊的形状相似,具有一定的高度和宽度;通过该胶囊探测器扫描探测游戏角色前方的指定范围内是否存在障碍物,该指定范围可以通过胶囊探测器的探测距离以及胶囊探测器本身的尺寸确定。
参见图3所示的探测障碍物的示意图,第一碰撞检测器的最高点高于游戏角色的角色高度,第一碰撞检测器的最低点高于第一指定高度;第一指定高度与游戏角色对应的可跨越高度相关;指定范围根据第一碰撞检测器的第一碰撞检测器高度,以及水平方向上的探测宽度和探测远度确定。
上述第一指定高度应该高于游戏角色行走动作可自动跨越的高度,通常游戏角色对应的可跨越高度可以设置为45cm,低于该高度的探测通常是没有意义的;上述第一碰撞检测器水平方向上的探测宽度可以理解为第一碰撞检测器的半径;第一碰撞检测器水平方向上的探测宽度通常与游戏角色对应的胶囊体的半径相近;其中,游戏角色对应的胶囊体的半径可以在游戏中实时获取;如果第一碰撞检测器的探测远度较小,则游戏角色的反应时间较少,可能导致游戏角色的动作较迟钝;如果第一碰撞检测器的探测远度较大,则游戏角色的反应时间较长,可能导致游戏角色的动作过于灵敏;因此第一碰撞检测器的探测远度需要预先进行多次测试调整,最终确认一个合适的探测远度。
上述指定范围可以是长、宽、高为探测远度、高度探测宽度以及探测器的立方体。考虑了上述第一碰撞检测器的最高点、最低点以及第一指定高度的限制,即可确定第一碰撞检测器的高度和位置。
步骤S206,根据障碍物的坡度,判断游戏角色是否能在障碍物上移动;如果否,执行步骤S208;如果是,游戏角色继续沿移动方向移动;
由于障碍物有不同的坡度,相对于坡度较小的障碍物,比如,具有一定坡度的桥,游戏角色可以直接在该障碍物上行走,此时就可以不用对游戏角色进行避障操作;可以继续沿移动方向移动,避免了没必要的避障操作。
一种实施方式中,游戏角色预先设置有可移动的最大坡度;如果障碍物的坡度,大于或等于可移动的最大坡度,确定游戏角色不能在障碍物上移动。
上述可移动的最大坡度可以根据游戏角色的高度设置,也可以根据实际的游戏策划需要进行设置;上述障碍物的坡度可以根据探测器确定,如果障碍物的坡度,大于或等于可移动的最大坡度,则可以确定游戏角色不能在障碍物上移动。如果障碍物的坡度,小于可移动的最大坡度,则无需处理,仍然继续向前移动。
步骤S208,获取游戏角色的位置信息和移动信息;
其实现过程与步骤S202相同,在此不再赘述。
步骤S210,根据位置信息,通过第二碰撞检测器,根据移动信息在障碍物的表面确定第一碰撞点;其中,第一碰撞点为:游戏角色如果继续沿着移动方向移动,与障碍物发生碰撞时的碰撞点;
其中,上述第二碰撞检测器以游戏角色的移动方向为基准,虚拟设置在游戏角色前方的指定位置;其中的指定位置可以是游戏角色前方紧挨游戏角色的位置,该第二碰撞检测器只有在游戏角色不能在障碍物上移动时才会触发,对障碍物进行探测确定第一碰撞点;上述第一碰撞点为游戏角色如果继续沿着移动方向移动,与障碍物发生碰撞时的首先会接触到的碰撞点,该碰撞点通常在障碍物的表面。
参见图4所示的确定碰撞点的示意图,该图为游戏场景中的俯视图,图中的实线圆表示探测器,虚线圆表示移动后参测器的位置;具体的,第二碰撞检测器沿游戏角色移动的方向向前移动,同时进行扫描探测,在第二碰撞检测器移动到障碍物前方时,继续向前移动可以探测到与第二碰撞检测器发生碰撞的点,将该碰撞点确定为第一碰撞点。
步骤S212,根据第一碰撞点的位置,确定目标平面;
上述目标平面是指碰撞点的所在的平面,该平面可以是任意方向和角度的平面;比如目标平面可以是与地面垂直的平面;上述第一碰撞点的位置,以及目标平面都是在三维空间中的位置和平面。
一种实施方式中:根据第一碰撞点的位置坐标,以及障碍物在第一碰撞点的法线,确定障碍物在第一碰撞点的切面;将切面确定为目标平面。
上述第一碰撞点的法线是三维空间中障碍物第一碰撞点的切面的法线,该法线可能会是三维空间中的任意方向,例如图4所示的法线与地面平行;得到障碍物在第一碰撞点的法线后,可以根据第一碰撞点的位置坐标,确定障碍物在第一碰撞点的切面;将该切面确定为目标平面。
步骤S214,在目标平面上,沿着指定方向获取躲避障碍物的避障方向;
上述指定方向包括水平方向和垂直方向;具体的,可以通过指定方向对应的探测器,通过扫描探测目标平面边缘的位置信息,根据该位置信息确定指定方向是否有避障通道,从而确定躲避障碍物的避障方向;其中避障方向可以是水平避障方向,比如,左侧避障方向、右侧避障方向等,也可以是垂直避障方向,比如,上侧避障方向、下侧避障方向等。
针对上述步骤S214,一种实施方式中,指定方向包括水平方向;参见图5所示的一种获取避障方向的方法流程图,该方法包括:
步骤S502,生成第三碰撞检测器;第三碰撞检测器用于探测避障方向;
上述第三碰撞检测器通常包括有两个,生成的第三碰撞检测器的起始位置可以在水平方向的最边缘位置的两侧,用于探测障碍物在水平避障方向上的避障通道;第三碰撞检测器可以是胶囊体探测器;例如图4中的两个第三碰撞检测器,可以分别放置在障碍物的左右两侧,进行通道探测。其中,第三碰撞检测器的高度、半径和世界坐标系垂直方向上的高度与第一碰撞检测器的数据相同。
步骤S504,控制第三碰撞检测器在目标平面上沿着水平方向移动;
由终端设置自动控制第三碰撞检测器,在目标平面上沿着水平方向移动向左或者向右移动。
一种实施方式中,控制一个第三碰撞检测器在目标平面上沿着水平方向向左移动,控制另一个第三碰撞检测器在目标平面上沿着水平方向向右移动;
例如图4所示,第三碰撞检测器的起始位置在水平方向上能够闪避的最远的边缘位置,图中两个实线圆为第三碰撞检测器的起始位置,可以控制左侧的第三碰撞检测器在目标平面上沿着水平方向向右移动,控制右侧的第三碰撞检测器在目标平面上沿着水平方向向左移动。
步骤S506,在第三碰撞检测器的指定移动范围内,如果第三碰撞检测器探测到第二碰撞点,基于第二碰撞点的位置确定障碍物的避障方向;其中,第二碰撞点位于障碍物的表面。
上述指定移动范围通常需要预先进行设置一个合适的范围值,该范围值表示从第三碰撞检测器的起始位置开始,一直到水平方向上能够躲避的最远位置之间的距离;上述第二碰撞点包括目标平面的左右两侧的边缘位置点,可以理解为第三碰撞检测器在指定移动范围内时,从水平方向的最边缘位置开始移动,直到第三碰撞检测器的边缘与目标平面的边缘接触时,这时就是碰撞状态,目标平面发生碰撞,该碰撞点即第二碰撞点,位于障碍物的表面。
实际实现时,生成的左右两个第三碰撞检测器将同时在指定移动范围内移动;如果其中一个第三碰撞检测器探测到了第二碰撞点,表明某一侧有可以行走的通道,可以基于探测到的第二碰撞点的位置确定障碍物的避障方向为左侧或者右侧;当然,也有可能两侧同时探测到了第二碰撞点,此时可以确定障碍物的避障方向包括左右两侧;如果第三碰撞检测器探测到第一碰撞点之前没有探测到第二碰撞点,说明该侧没有避障通道。
一种实施方式中,如果探测到两个第二碰撞点,基于两个第二碰撞点中的任意一个第二碰撞点确定障碍物的避障方向。
如果探测到两个第二碰撞点,说明障碍物的左右两侧都有避障通道;因此,可以选择左右两侧任意一个避障方向,将该避障方向确定为障碍物的避障方向。
另一种实施方式中,如果第二碰撞点位于障碍物的左侧,确定避障方向为左侧方向;如果第二碰撞点位于障碍物的右侧,确定避障方向为右侧方向。
如果第三碰撞检测器探测到第二碰撞点在左侧,则可以确定障碍物的避障方向为左侧;如果第三碰撞检测器探测到第二碰撞点在右侧,则可以确定障碍物的避障方向为右侧。
针对上述步骤S210,另一种实施方式中,指定方向包括垂直方向;参见图6所示的另一种获取避障方向的方法流程图,该方法包括:
步骤S602,生成第四碰撞检测器;第四碰撞检测器用于探测避障方向;
上述第四碰撞检测器通常包括一个,用于探测障碍物在垂直避障方向上的避障通道;第四碰撞检测器可以是球形探测器;例如图7所示的另一种确定碰撞点的示意图,该图为正视图,图中的实线圆的位置为第四碰撞检测器的起始位置,可以理解为第四碰撞检测器的生成位置点;其中,第四碰撞检测器的大小可以根据实际需要进行设置。
步骤S604,控制第四碰撞检测器从第二指定高度开始,沿着垂直方向向下移动,直至探测到第三碰撞点,基于第三碰撞点的位置确定障碍物的避障方向;其中,第三碰撞点位于障碍物的表面。
上述第二指定高度是指第四碰撞检测器的起始位置,到障碍物的上表面的距离,该距离通常高于游戏角色的高度,以使障碍物上方空间有足够的高度以使游戏角色站立;其中,第四碰撞检测器的起始位置可以在第一碰撞点的正上方;上述第三碰撞点是指第四碰撞检测器沿着垂直方向向下移动时,第四碰撞检测器的表面与障碍物的上表面的接触点,即第三碰撞点,位于障碍物的上表面;另外,上述第三碰撞点的位置包括第三碰撞点在三维空间中的坐标,根据第三碰撞点的坐标信息,可以确定第三碰撞点距离地面的高度;上述障碍物的避障方向可以包括垂直向上。
实际实现时,控制第四碰撞检测器从第二指定高度开始,沿着垂直方向向下移动,直至第四碰撞检测器的表面与障碍物的上边面发生接触时,探测到第三碰撞点,基于第三碰撞点的位置信息,确定障碍物的避障方向。
基于第三碰撞点的位置确定障碍物的避障方向,一种实施方式中:确定障碍物的避障方向为垂直方向,且第三碰撞点为:游戏角色沿着垂直方向进行避障的目的地。
具体的,当确定了障碍物的避障方向为垂直方向后,游戏角色可以移动到障碍物的第一碰撞点位置,然后根据预先设定的避障动作,沿着垂直方向进行避障,比如,游戏角色需要单手翻越该障碍物,则将游戏角色进行单手翻越时,单手支撑的位置为第三碰撞点,即游戏角色沿着垂直方向进行避障的目的地。
需要说明的是,上述避障方向的探测顺序不做限定,可以先探测水平方向是否可以确定障碍物的避障方向,也可以先探测垂直方向是否可以确定障碍物的避障方向;如果先探测水平方向是否可以确定障碍物的避障方向,当探测到水平方向可以确定障碍物的避障方向,则不会探测垂直方向是否可以确定障碍物的避障方向,当探测到水平方向不可以确定障碍物的避障方向,才会探测垂直方向是否可以确定障碍物的避障方向;如果先探测垂直方向是否可以确定障碍物的避障方向,当探测到垂直方向可以确定障碍物的避障方向,则不会探测水平方向是否可以确定障碍物的避障方向,当探测到垂直方向不可以确定障碍物的避障方向,才会探测水平方向是否可以确定障碍物的避障方向;如果在指定方向都没有探测到障碍物的避障方向,游戏角色停止移动,等待用户进行避障操作。
步骤S216,控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物。
该方式中,通过探测器探测指定方向的避障方向,其中包括水平方向的避障方向和垂直方向的避障方向,最后控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物,该方式中,通过终端设备自动探测游戏场景中的障碍物后,获取躲避障碍物的避障方向,不同的避障方向预设有不同的避障动作,根据避障方向控制游戏角色执行对应的避障动作,这种自动避障的方式可以避免用户反复移动游戏角色的琐碎操作,使用户能够集中精力于游戏的核心玩法和剧情体验,提高了用户的游戏体验度。
本实施例提供了另一种游戏场景中的避障方法,该方法中主要描述控制游戏角色执行与避障方向相匹配的避障动作的步骤具体实现方式;如图8所示,该方法包括如下步骤:
步骤S802,响应于游戏角色在游戏场景中的移动,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物;
步骤S804,如果游戏场景中存在障碍物,获取躲避障碍物的避障方向;
步骤S806,如果避障方向为水平方向,确定避障动作为侧向闪避动作;其中,侧向闪避动作包括向左闪避动作或向右闪避动作;
首先水平方向的避障方向与侧向闪避动作的避障动作相对应;上述向左闪避动作和向右闪避动作与避障方向相对应,向左的避障方向对应向左闪避动作,向右的避障方向对应向右闪避动作;因此在确定了水平方向具有躲避通道后,可以确定游戏角色对应的闪避动作。其中,向左闪避动作和向右闪避动作是两个不同的动作。
步骤S808,根据探测到的第二碰撞点的位置,确定闪避位移;
确定了闪避动作后,由于需要闪避的距离是动态计算的,需要将游戏角色的侧向闪避动作和闪避位移分别进行执行;因此,首先需要根据探测到的第二碰撞点的坐标,确定第二碰撞点距离第一碰撞点的距离,将该距离确定为闪避位移,当然也可以比该距离大,最大不会超过第一碰撞点距离水平方向最大闪避点的距离。比如,探测到的第二碰撞点的位置在障碍物的左侧,可以通过计算第一碰撞点距离左侧第二碰撞点的距离,将该距离确定为闪避位移,该闪避位移相匹配的侧向闪避动作为向左闪避动作。
步骤S810,控制游戏角色执行与闪避位移相匹配的侧向闪避动作,在执行侧向闪避动作的同时,控制游戏角色产生闪避位移;
在执行侧向闪避动作时,向左动作闪避和向右闪避动作是两个不同的动作,由于需要闪避的距离是动态计算的,因此将游戏角色的侧向闪避动作和闪避位移分开进行了执行,而不是采用带位移的动画。分别控制游戏角色执行与闪避位移相匹配的侧向闪避动作,在执行侧向闪避动作的同时,控制游戏角色产生对用的闪避位移;该方式可以使游戏角色能够流程的躲避障碍物。
步骤S812,如果避障方向为垂直方向,确定游戏角色沿着垂直方向进行避障的目的地,是否具有容纳游戏角色的空间;
虽然确定了障碍物上表面的第三碰撞点,但是还不能确定障碍物的上方是否有足够的空间让游戏角色站立;具体的,可以利用一个与游戏角色对应的胶囊体同等大小的探测器进行了探测,如果扫描探测到障碍物上表面宽度空间以及障碍物上表面空间的高度空间,都大于游戏角色所占的空间,则确定游戏角色沿着垂直方向进行避障的目的地,具有容纳游戏角色的空间。如果没有可以容纳游戏角色的空间,则游戏角色停止移动,等待用户对游戏角色进行操作。
步骤S814,如果具有容纳游戏角色的空间,控制游戏角色执行与避障方向相匹配的避障动作。
上述避障方向为垂直向上;上述避障动作可以包括跨越、攀爬、翻越等动作;如果具有容纳游戏角色的空间,则可以控制游戏角色执行与避障方向相匹配的避障动作。具体的,选择哪个避障动作可以根据第三碰撞点的位置进行选择,当障碍物较低时,第三碰撞点的高度也较低,此时游戏角色可以直接抬脚迈过去,或者跨越过去,当障碍物较高时,第三碰撞点的高度也较高,此时游戏角色可能需要利用双手翻越过去等。
一种实施方式中:
步骤A1,根据目的地的高度,从预设的避障动作中确定游戏角色需要执行的目标避障动作;避障动作包括:跨越、单手攀越或双手攀越;
由于跨越、单手攀越、双手攀越分别适应不同的障碍物高度,因此,需要结合步骤S812探测到的障碍物上表面高度,也就是目的地的高度,从预设的避障动作中确定游戏角色需要执行的目标避障动作;参见图9所示的垂直避障规则设计图,其中1-4级为自动触发,5-7级为跳跃触发;具体的可以根据图9所示的规则,从预设的避障动作中确定游戏角色需要执行的目标避障动作。比如,目的地的高度在游戏角色的膝盖处,则可以从预设的避障动作中确定游戏角色需要执行的目标避障动作为跨越;再如,目的地的高度在游戏角色的腰部处,则可以从预设的避障动作中确定游戏角色需要执行的目标避障动作为单手攀越;还如,目的地的高度在游戏角色的头部处,则可以从预设的避障动作中确定游戏角色需要执行的目标避障动作为双手攀越。
步骤A2,控制游戏角色执行目标避障动作。
确定了具体的目标避障动作后,可以根据预先设置的目标避障动作的每帧动作帧,选择最为合适的连续动作,控制游戏角色执行该连续动作,完成自动避障的功能。
针对上述步骤A2,一种实施方式中:
步骤B1,根据目的地的高度,确定目标避障动作的起始动作;
从预设的避障动作中确定游戏角色需要执行的目标避障动作后;由于不同的障碍物,可能会确定相同的避障动作,但是对应的目的地的高度会有不同,此时执行同样的目标避障动作,需要适应这些不同目的地的高度;显然,制作大量不同攀越高度的带位移的动作显然是不现实的,这也就需要从程序的角度思考,如何能够使目标避障动作自适应不同的高度。
基于此,可以预先设置每个避障动作的最大高度的起始动作以及后续的连续动作,该动作表明单手攀越动作最高只能攀越胸口位置的障碍物,如果前方障碍的高度低于这个高度,我们可以从该动作之后的某一帧选择一个合适的动作姿势来适应障碍物的高度。
优选的一种实施方式:获取目标避障动作对应的连续动作帧;其中,连续动作帧包括:从目标避障动作对应的最高目的地高度开始,目标避障动作对应的每种目的地高度对应的起始动作,以及目标避障动作对应的基础动作;从连续动作帧中确定与目的地的高度相匹配的目标动作帧,将目标动作帧中的起始动作,确定为目标避障动作的起始动作。其中,起始动作的后续动作包括:所述连续动作帧中,所述目标动作帧后续的全部动作帧所包含的动作。
确定了目标避障动作后,可以将障碍物的高度换算到动作的时间轴上,该时间轴包括从最高障碍物高度,到最低障碍物高度的连续动作帧;可以从该时间轴中获取目标避障动作对应的连续动作帧,根据目的地的高度,从目标避障动作对应的连续动作帧中确定与目的地的高度相匹配的目标动作帧,该目标动作帧为连续的多帧目标动作,将将目标动作帧中的起始动作,确定为目标避障动作的起始动作;当目的地的高度在腰部时,可以将该动作帧确定为目标避障动作的起始动作。
步骤B2,控制游戏角色执行起始动作,以及起始动作的后续动作,并在执行每个动作的过程中,控制游戏角色产生与当前动作相匹配的位移,直至到达目的地。
通过预置避障动作的每帧动作帧,解决了目标避障动作自适应的问题后,还需要考虑位移的自适应问题;以垂直方向上的位移与目标避障动作匹配来举例,如果攀越的动作才刚刚开始,垂直位移却提前将游戏角色提升到了空中,这种不匹配将会导致表现效果非常不协调;因此,需要确定游戏角色与当前动作相匹配的位移,以使游戏角色能够顺畅的执行目标障碍动作。
具体的,需要使游戏角色位移的过程需要与攀越动作匹配;首先可以先计算整个目标避障动作的位移,然后在执行起始动作开始后,执行后续每个动作帧的过程中,控制游戏角色产生与当前动作帧相匹配的位移,直至到达目的地后正好执行完成整个目标避障动作的位移;通常情况下,每个动作相匹配的位移时不同的,且位移的过程通常不是匀速的,一般是动作开始和结束的时候位移较小,而中间动作时位移幅度较大。
在执行每个动作的过程中,控制游戏角色产生与当前动作相匹配的位移的步骤之前,上述方法还包括:确定游戏角色从当前位置移动至目的地的时长;基于时长,确定游戏角色在执行目标避障动作的每个时间点的位移幅度;
由于每个动作对应的位移以及速度可能都不同,因此想要确定每个动作相匹配的位移,需要设置一个时长,以控制游戏角色在执行目标避障动作的时间内完成指定位移以及幅度;上述时长可以根据实际的游戏场景进行设置,可以是经验值,也可以根据不同的避障动作预先设置的时长;该时间长度可以控制游戏角色在执行目标避障动作时,每个时间点的位移幅度,当然每个时间点会有对应的动作帧。
在执行每个动作的过程中,控制游戏角色产生与当前动作相匹配的位移的步骤,包括:针对每个动作,确定执行当前动作的目标时间点;控制游戏角色产生与目标时间点对应的位移幅度的位移。
具体的,游戏角色从当前位置移动至目的地的时长中,目标障碍动作中的每个动作,都会按照时间顺序对应有目标时间点,因此在执行目标障碍动作中每个动作的过程中,对应的目标时间点也在不断变化;每执行一个动作,就会确定一个对应的目标时间点,每个目标时间点都会根据当前的动作预先设置有对应的位移,以及该位移的幅度,包括位移的速度等;通过该方式可以使游戏角色具有自适应的位移以及动作,以适应不同高度的障碍物。
另外,还可以设置一个贝塞尔曲线,使位移在动作执行的过程中实现淡入淡出的效果,比如,在动作执行快结束时,实现谈出,然后再以淡入的方式显示动作执行结束后的场景;时动作和位移过渡的更加自然。
该方式中,通过终端设备自动探测游戏场景中的障碍物后,获取躲避障碍物的避障方向,不同的避障方向预设有不同的避障动作,根据避障方向控制游戏角色执行对应的避障动作;根据目的地的高度,确定目标避障动作的起始动作,控制控制游戏角色执行起始动作,以及起始动作的后续动作,并在执行每个动作的过程中,控制游戏角色产生与当前动作相匹配的位移,直至到达目的地;同时设置了游戏角色从当前位置移动至目的地的时长,基于时长,确定游戏角色在执行目标避障动作的每个时间点的位移幅度;为了实现不同高度障碍的攀越,通过自适应动作以及位移的方式,避免制作大量动作资源,来适应不同高度的障碍;使用户能够集中精力于游戏的核心玩法和剧情体验上,提高了用户的游戏体验度。
参见图10所示的一种具体的游戏场景中的避障方法的流程图,图中碰撞点坐标P1,与前述第一碰撞点的位置对应;碰撞点坐标P2,与前述第三碰撞点的位置对应;用户对应前述的游戏角色。
具体的,用户可以按住图形用户界面的向前移动按键,使游戏角色向前移动,步骤一:判断前进方向有无障碍,步骤一中设计了一个探测器,该探测器会始终存在,用于障碍感知,这里用到了一个胶囊体碰撞体,进行扫描探测,确定游戏角色的前方是否有碰到障碍。在该步骤中,如果探测到了碰撞,设:碰撞点坐标:P1;碰撞点法线:N1。
步骤二:在确定前方存在障碍后,还需要判定能否该障碍物上行走,游戏角色在移动的过程中,有一个能够行走的斜面最大坡度,因此:当前障碍物的坡度小于能够行走的斜面最大坡度时,无须处理,仍然继续向前移动;当前障碍物的坡度大于等于能够行走的斜面最大坡度时,还需要进行后续的自动避障逻辑。
步骤三以及步骤四:在步骤一的前向探测器探测到障碍时,能够获得碰撞点的坐标和法线。根据该法线能够确定碰撞点所在的平面,在该平面上使用左右两个水平探测器进行避障通道探测。这两个左右对置的探测器也是胶囊体探测器,探测器的高度、半径和世界坐标系垂直方向上的高度与步骤一中使用的探测器数据一致,至于探测的范围,则需要手动设置一个合适的值,这个值同时也代表水平方向上能够闪避的最大距离;如果其中一个检测到了碰撞,表明某一侧有可以行走的通道,可以执行一个闪避动作,向对应的方向进行闪避。在执行闪避动作时,左侧闪避和右侧闪避是两个不同的动作,由于需要闪避的距离是动态计算的,因此将角色的闪避的动作和闪避的距离分开进行了执行,而不是采用带位移的动画。
步骤五,在碰撞点附近寻找一个合适的位置,进行垂直方向上的碰撞检测,得到碰撞点坐标P2,以及该碰撞点的法线N2;步骤六,判断P2点是否有足够的空间让游戏角色站立,如果没有则停止移动;如果有,则执行步骤七,从跨越、单手翻越、双手攀越中判断目标避障动作;控制游戏角色执行目标避障动作。
对应于上述方法实施例,参见图11所示的一种游戏场景中的避障装置的结构示意图,通过终端设备提供一图形用户界面,图形用户界面至少包括游戏角色和游戏场景;终端设备控制游戏角色在游戏场景中移动;该装置包括:
探测模块111,用于响应于游戏角色在游戏场景中的移动,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物;
获取模块112,用于如果游戏场景中存在障碍物,获取躲避障碍物的避障方向;
躲避模块113,用于控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物。
本发明实施例提供了一种游戏场景中的避障装置,响应于游戏角色在游戏场景中的移动,沿着游戏角色的移动方向,探测游戏场景中是否存在障碍物;如果游戏场景中存在障碍物,获取躲避障碍物的避障方向;控制游戏角色执行与避障方向相匹配的避障动作,以使游戏角色躲避障碍物。该方式中,用户在控制游戏角色移动的过程中,系统可自动探测游戏场景中的障碍物,如果存在障碍物,则获取躲避障碍物的避障方向,进而控制游戏角色执行相应的避障动作,这种自动避障的方式可以避免用户反复移动游戏角色的琐碎操作,使用户能够集中精力于游戏的核心玩法和剧情体验,提高了用户的游戏体验度。
进一步的,上述探测模块还用于:获取游戏角色的位置信息和移动信息;根据位置信息,通过第一碰撞检测器检测根据移动信息确定的指定范围内是否存在障碍物。
进一步的,上述第一碰撞检测器的最高点高于游戏角色的角色高度,第一碰撞检测器的最低点高于第一指定高度;第一指定高度与游戏角色对应的可跨越高度相关;指定范围根据第一碰撞检测器的第一碰撞检测器高度,以及水平方向上的探测宽度和探测远度确定。
进一步的,上述获取模块还用于:如果游戏场景中存在障碍物,根据障碍物的坡度,判断游戏角色是否能在障碍物上移动;如果不能在障碍物上移动,获取躲避障碍物的避障方向。
进一步的,游戏角色预先设置有可移动的最大坡度;上述获取模块还用于:如果障碍物的坡度,大于或等于可移动的最大坡度,确定游戏角色不能在障碍物上移动。
进一步的,上述获取模块还用于:获取游戏角色的位置信息和移动信息;根据位置信息,通过第二碰撞检测器,根据移动信息在障碍物的表面确定第一碰撞点;其中,第一碰撞点为:游戏角色如果继续沿着移动方向移动,与障碍物发生碰撞时的碰撞点;根据第一碰撞点的位置,确定目标平面;在目标平面上,沿着指定方向获取躲避障碍物的避障方向。
进一步的,上述获取模块还用于:根据第一碰撞点的位置坐标,以及障碍物在第一碰撞点的法线,确定障碍物在第一碰撞点的切面;将切面确定为目标平面。
进一步的,指定方向包括水平方向;上述获取模块还用于:生成第三碰撞检测器;第三碰撞检测器用于探测避障方向;控制第三碰撞检测器在目标平面上沿着水平方向移动;在第三碰撞检测器的指定移动范围内,如果第三碰撞检测器探测到第二碰撞点,基于第二碰撞点的位置确定障碍物的避障方向;其中,第二碰撞点位于障碍物的表面。
进一步的,第三碰撞检测器包括两个;上述获取模块还用于:控制一个第三碰撞检测器在目标平面上沿着水平方向向左移动,控制另一个第三碰撞检测器在目标平面上沿着水平方向向右移动;上述获取模块还用于:如果探测到两个第二碰撞点,基于两个第二碰撞点中的任意一个第二碰撞点确定障碍物的避障方向。
进一步的,上述获取模块还用于:如果第二碰撞点位于障碍物的左侧,确定避障方向为左侧方向;如果第二碰撞点位于障碍物的右侧,确定避障方向为右侧方向。
进一步的,指定方向包括垂直方向;上述获取模块还用于:生成第四碰撞检测器;第四碰撞检测器用于探测避障方向;控制第四碰撞检测器从第二指定高度开始,沿着垂直方向向下移动,直至探测到第三碰撞点,基于第三碰撞点的位置确定障碍物的避障方向;其中,第三碰撞点位于障碍物的表面。
进一步的,上述获取模块还用于:确定障碍物的避障方向为垂直方向,且第三碰撞点为:游戏角色沿着垂直方向进行避障的目的地。
进一步的,上述躲避模块还用于:如果避障方向为水平方向,确定避障动作为侧向闪避动作;其中,侧向闪避动作包括向左闪避动作或向右闪避动作;根据探测到的第二碰撞点的位置,确定闪避位移;控制游戏角色执行与闪避位移相匹配的侧向闪避动作,在执行侧向闪避动作的同时,控制游戏角色产生闪避位移。
进一步的,上述躲避模块还用于:如果避障方向为垂直方向,确定游戏角色沿着垂直方向进行避障的目的地,是否具有容纳游戏角色的空间;如果具有容纳游戏角色的空间,控制游戏角色执行与避障方向相匹配的避障动作。
进一步的,上述躲避模块还用于:根据目的地的高度,从预设的避障动作中确定游戏角色需要执行的目标避障动作;避障动作包括:跨越、单手攀越或双手攀越;控制游戏角色执行目标避障动作。
进一步的,上述躲避模块还用于:根据目的地的高度,确定目标避障动作的起始动作;控制游戏角色执行起始动作,以及起始动作的后续动作,并在执行每个动作的过程中,控制游戏角色产生与当前动作相匹配的位移,直至到达目的地。
进一步的,上述躲避模块还用于:获取目标避障动作对应的连续动作帧;其中,连续动作帧包括:从目标避障动作对应的最高目的地高度开始,目标避障动作对应的每种目的地高度对应的起始动作,以及目标避障动作对应的基础动作;从连续动作帧中确定与目的地的高度相匹配的目标动作帧,将目标动作帧中的起始动作,确定为目标避障动作的起始动作。
进一步的,上述起始动作的后续动作包括:连续动作帧中,目标动作帧后续的全部动作帧所包含的动作。
进一步的,上述躲避模块还用于:确定游戏角色从当前位置移动至目的地的时长;基于时长,确定游戏角色在执行目标避障动作的每个时间点的位移幅度;在执行每个动作的过程中,控制游戏角色产生与当前动作相匹配的位移的步骤,包括:针对每个动作,确定执行当前动作的目标时间点;控制游戏角色产生与目标时间点对应的位移幅度的位移。
本发明实施例提供的游戏场景中的避障装置,与上述实施例提供的游戏场景中的避障方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述游戏场景中的避障方法。
参见图12所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述游戏场景中的避障方法。
进一步地,图12所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述游戏场景中的避障方法。
本发明实施例所提供的游戏场景中的避障方法、电子设备和机器可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (20)

1.一种游戏场景中的避障方法,其特征在于,通过终端设备提供一图形用户界面,所述图形用户界面至少包括游戏角色和游戏场景;所述终端设备控制所述游戏角色在所述游戏场景中移动;所述方法包括:
响应于所述游戏角色在所述游戏场景中的移动,沿着所述游戏角色的移动方向,探测所述游戏场景中是否存在障碍物;
如果所述游戏场景中存在障碍物,获取躲避所述障碍物的避障方向;
控制所述游戏角色执行与所述避障方向相匹配的避障动作,以使所述游戏角色躲避所述障碍物;
所述获取躲避所述障碍物的避障方向的步骤,包括:获取所述游戏角色的位置信息和移动信息;根据所述位置信息,通过第二碰撞检测器,根据所述移动信息在所述障碍物的表面确定第一碰撞点;其中,所述第一碰撞点为:所述游戏角色如果继续沿着所述移动方向移动,与所述障碍物发生碰撞时的碰撞点;根据所述第一碰撞点的位置,确定目标平面;在所述目标平面上,沿着指定方向获取躲避所述障碍物的避障方向。
2.根据权利要求1所述的方法,其特征在于,所述沿着所述游戏角色的移动方向,探测所述游戏场景中是否存在障碍物的步骤,包括:获取所述游戏角色的位置信息和移动信息;
根据所述位置信息,通过第一碰撞检测器检测根据所述移动信息确定的指定范围内是否存在障碍物。
3.根据权利要求2所述的方法,其特征在于,所述第一碰撞检测器的最高点高于所述游戏角色的角色高度,所述第一碰撞检测器的最低点高于第一指定高度;所述第一指定高度与所述游戏角色对应的可跨越高度相关;
所述指定范围根据所述第一碰撞检测器的第一碰撞检测器高度,以及水平方向上的探测宽度和探测远度确定。
4.根据权利要求1所述的方法,其特征在于,如果所述游戏场景中存在障碍物,获取躲避所述障碍物的避障方向的步骤,包括:
如果所述游戏场景中存在障碍物,根据所述障碍物的坡度,判断所述游戏角色是否能在所述障碍物上移动;
如果不能在所述障碍物上移动,获取躲避所述障碍物的避障方向。
5.根据权利要求4所述的方法,其特征在于,所述游戏角色预先设置有可移动的最大坡度;
所述根据所述障碍物的坡度,判断所述游戏角色是否能在所述障碍物上移动的步骤,包括:如果所述障碍物的坡度,大于或等于所述可移动的最大坡度,确定游戏角色不能在所述障碍物上移动。
6.根据权利要求1所述的方法,其特征在于,根据所述第一碰撞点的位置,确定目标平面的步骤,包括:
根据所述第一碰撞点的位置坐标,以及所述障碍物在所述第一碰撞点的法线,确定所述障碍物在所述第一碰撞点的切面;
将所述切面确定为目标平面。
7.根据权利要求1所述的方法,其特征在于,所述指定方向包括水平方向;所述在所述目标平面上,沿着指定方向获取躲避所述障碍物的避障方向的步骤,包括:
生成第三碰撞检测器;所述第三碰撞检测器用于探测避障方向;
控制所述第三碰撞检测器在所述目标平面上沿着所述水平方向移动;
在所述第三碰撞检测器的指定移动范围内,如果所述第三碰撞检测器探测到第二碰撞点,基于所述第二碰撞点的位置确定所述障碍物的避障方向;其中,所述第二碰撞点位于所述障碍物的表面。
8.根据权利要求7所述的方法,其特征在于,所述第三碰撞检测器包括两个;所述控制所述第三碰撞检测器在所述目标平面上沿着所述水平方向移动的步骤,包括:
控制一个所述第三碰撞检测器在所述目标平面上沿着所述水平方向向左移动,控制另一个所述第三碰撞检测器在所述目标平面上沿着所述水平方向向右移动;
所述如果所述第三碰撞检测器探测到第二碰撞点,基于所述第二碰撞点确定障碍物的避障方向的步骤,包括:
如果探测到两个第二碰撞点,基于所述两个第二碰撞点中的任意一个第二碰撞点确定障碍物的避障方向。
9.根据权利要求7所述的方法,其特征在于,基于所述第二碰撞点的位置确定所述障碍物的避障方向的步骤,包括:
如果所述第二碰撞点位于所述障碍物的左侧,确定所述避障方向为左侧方向;
如果所述第二碰撞点位于所述障碍物的右侧,确定所述避障方向为右侧方向。
10.根据权利要求1所述的方法,其特征在于,所述指定方向包括垂直方向;所述在所述目标平面上,沿着指定方向获取躲避所述障碍物的避障方向的步骤,包括:
生成第四碰撞检测器;所述第四碰撞检测器用于探测避障方向;
控制所述第四碰撞检测器从第二指定高度开始,沿着所述垂直方向向下移动,直至探测到第三碰撞点,基于所述第三碰撞点的位置确定所述障碍物的避障方向;其中,所述第三碰撞点位于所述障碍物的表面。
11.根据权利要求10所述的方法,其特征在于,基于所述第三碰撞点的位置确定所述障碍物的避障方向的步骤,包括:确定所述障碍物的避障方向为垂直方向,且所述第三碰撞点为:所述游戏角色沿着所述垂直方向进行避障的目的地。
12.根据权利要求7所述的方法,其特征在于,控制所述游戏角色执行与所述避障方向相匹配的避障动作的步骤,包括:
如果所述避障方向为水平方向,确定所述避障动作为侧向闪避动作;其中,所述侧向闪避动作包括向左闪避动作或向右闪避动作;
根据探测到的所述第二碰撞点的位置,确定闪避位移;
控制所述游戏角色执行与所述闪避位移相匹配的侧向闪避动作,在执行所述侧向闪避动作的同时,控制所述游戏角色产生所述闪避位移。
13.根据权利要求1所述的方法,其特征在于,控制所述游戏角色执行与所述避障方向相匹配的避障动作的步骤,包括:
如果所述避障方向为垂直方向,确定所述游戏角色沿着所述垂直方向进行避障的目的地,是否具有容纳所述游戏角色的空间;
如果具有容纳所述游戏角色的空间,控制所述游戏角色执行与所述避障方向相匹配的避障动作。
14.根据权利要求13所述的方法,其特征在于,控制所述游戏角色执行与所述避障方向相匹配的避障动作的步骤,包括:
根据所述目的地的高度,从预设的避障动作中确定所述游戏角色需要执行的目标避障动作;所述避障动作包括:跨越、单手攀越或双手攀越;
控制所述游戏角色执行所述目标避障动作。
15.根据权利要求14所述的方法,其特征在于,控制所述游戏角色执行所述目标避障动作的步骤,包括:
根据所述目的地的高度,确定所述目标避障动作的起始动作;
控制所述游戏角色执行所述起始动作,以及所述起始动作的后续动作,并在执行每个动作的过程中,控制所述游戏角色产生与当前动作相匹配的位移,直至到达所述目的地。
16.根据权利要求15所述的方法,其特征在于,根据所述目的地的高度,确定所述目标避障动作的起始动作的步骤,包括:
获取所述目标避障动作对应的连续动作帧;其中,所述连续动作帧包括:从所述目标避障动作对应的最高目的地高度开始,所述目标避障动作对应的每种目的地高度对应的起始动作,以及所述目标避障动作对应的基础动作;
从所述连续动作帧中确定与所述目的地的高度相匹配的目标动作帧,将所述目标动作帧中的起始动作,确定为所述目标避障动作的起始动作。
17.根据权利要求16所述的方法,其特征在于,所述起始动作的后续动作包括:所述连续动作帧中,所述目标动作帧后续的全部动作帧所包含的动作。
18.根据权利要求15所述的方法,其特征在于,在执行每个动作的过程中,控制所述游戏角色产生与当前动作相匹配的位移的步骤之前,所述方法还包括:
确定所述游戏角色从当前位置移动至所述目的地的时长;基于所述时长,确定所述游戏角色在执行所述目标避障动作的每个时间点的位移幅度;
所述在执行每个动作的过程中,控制所述游戏角色产生与当前动作相匹配的位移的步骤,包括:针对每个动作,确定执行当前动作的目标时间点;控制所述游戏角色产生与所述目标时间点对应的位移幅度的位移。
19.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-18任一项所述的游戏场景中的避障方法。
20.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-18任一项所述的游戏场景中的避障方法。
CN202011107422.0A 2020-10-15 2020-10-15 游戏场景中的避障方法、电子设备和机器可读存储介质 Active CN112221147B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011107422.0A CN112221147B (zh) 2020-10-15 2020-10-15 游戏场景中的避障方法、电子设备和机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011107422.0A CN112221147B (zh) 2020-10-15 2020-10-15 游戏场景中的避障方法、电子设备和机器可读存储介质

Publications (2)

Publication Number Publication Date
CN112221147A CN112221147A (zh) 2021-01-15
CN112221147B true CN112221147B (zh) 2024-03-22

Family

ID=74117360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011107422.0A Active CN112221147B (zh) 2020-10-15 2020-10-15 游戏场景中的避障方法、电子设备和机器可读存储介质

Country Status (1)

Country Link
CN (1) CN112221147B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114288663A (zh) * 2022-01-05 2022-04-08 腾讯科技(深圳)有限公司 游戏数据处理方法、装置、设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107433039A (zh) * 2016-05-26 2017-12-05 齐游网络科技(上海)有限公司 Ai动态自动寻路方法
CN108635853A (zh) * 2018-03-23 2018-10-12 腾讯科技(深圳)有限公司 对象的控制方法和装置、存储介质、电子装置
CN109126134A (zh) * 2018-09-29 2019-01-04 北京金山安全软件有限公司 游戏角色的移动方法、装置和电子设备
CN111714891A (zh) * 2020-06-22 2020-09-29 苏州幻塔网络科技有限公司 角色攀爬方法、装置、计算机设备及可读存储介质
CN111714886A (zh) * 2020-07-24 2020-09-29 腾讯科技(深圳)有限公司 虚拟对象的控制方法、装置、设备以及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6403371B2 (ja) * 2013-10-04 2018-10-10 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107433039A (zh) * 2016-05-26 2017-12-05 齐游网络科技(上海)有限公司 Ai动态自动寻路方法
CN108635853A (zh) * 2018-03-23 2018-10-12 腾讯科技(深圳)有限公司 对象的控制方法和装置、存储介质、电子装置
CN109126134A (zh) * 2018-09-29 2019-01-04 北京金山安全软件有限公司 游戏角色的移动方法、装置和电子设备
CN111714891A (zh) * 2020-06-22 2020-09-29 苏州幻塔网络科技有限公司 角色攀爬方法、装置、计算机设备及可读存储介质
CN111714886A (zh) * 2020-07-24 2020-09-29 腾讯科技(深圳)有限公司 虚拟对象的控制方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN112221147A (zh) 2021-01-15

Similar Documents

Publication Publication Date Title
CN108654085B (zh) 游戏虚拟对象控制方法及装置、电子设备、存储介质
US10967250B2 (en) Information processing method and apparatus, electronic device, and storage medium
US10335684B2 (en) Game system, game processing method, computer-readable non-transitory storage medium having stored therein game program, and game apparatus
CN108595022B (zh) 虚拟角色行进方向调整方法及装置、电子设备、存储介质
US10232262B2 (en) Information processing apparatus, motion control method, and non-transitory computer-readable recording medium
CN109407959B (zh) 虚拟场景中的虚拟对象控制方法、设备以及存储介质
CN112221147B (zh) 游戏场景中的避障方法、电子设备和机器可读存储介质
US10761596B2 (en) Image processing apparatus, image processing method, and program
US9990031B2 (en) Indicating method and device for correcting failure of motion-sensing interaction tracking
CN112057865A (zh) 游戏角色的控制方法、装置及电子设备
JP6064111B2 (ja) 打撃操作のためのユーザーインターフェースシステムと操作信号解析方法及びプログラム
US9533224B2 (en) Game program and game apparatus for correcting player's route within a game space
CN112312980B (zh) 电子装置、方法、存储介质和系统
JP4514198B2 (ja) ゲームプログラムおよびゲーム装置
CN111494949A (zh) 游戏大厅的显示控制方法、装置及电子设备
CN114610155A (zh) 手势控制方法、装置、显示终端及存储介质
US20170094230A1 (en) Watching apparatus, watching method, and recording medium
JP6820649B2 (ja) ゲームプログラム、方法、および情報処理装置
JP4729115B2 (ja) ゲームプログラム、ゲーム装置および方法
JP2020110603A (ja) ゲームプログラム、方法、および情報処理装置
US20240131418A1 (en) Non-transitory computer readable medium and information processing method
US20240226715A9 (en) Non-transitory computer readable medium and information processing method
JP6105031B1 (ja) ゲーム処理方法、およびゲーム処理プログラム
JP2010011891A (ja) ゲーム制御プログラムおよびゲーム装置
JP6820648B2 (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