CN116421975A - 角色的移动控制方法、装置、计算机设备及可读存储介质 - Google Patents
角色的移动控制方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN116421975A CN116421975A CN202310416945.0A CN202310416945A CN116421975A CN 116421975 A CN116421975 A CN 116421975A CN 202310416945 A CN202310416945 A CN 202310416945A CN 116421975 A CN116421975 A CN 116421975A
- Authority
- CN
- China
- Prior art keywords
- virtual character
- wall surface
- obstacle
- detection result
- wall
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000001514 detection method Methods 0.000 claims abstract description 317
- 230000009191 jumping Effects 0.000 claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 46
- 230000003993 interaction Effects 0.000 claims description 31
- 230000009471 action Effects 0.000 claims description 13
- 239000013598 vector Substances 0.000 claims description 11
- 230000009183 running Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000009184 walking Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 4
- 230000005855 radiation Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 12
- 230000009194 climbing Effects 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 8
- 239000002775 capsule Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 206010034701 Peroneal nerve palsy Diseases 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000009187 flying Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012876 topography Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000000078 claw Anatomy 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
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/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- 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/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/577—Simulating 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
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、还有一些游戏能实现全地形交互,但一般难以在墙面长时间,多方向进行移动,比如无法水平移动,横向移动时虚拟角色会逐渐向下直到接触地面,也无法斜上移动以及向下移动,更加无法在移动过程中,在不连续墙面之间进行无缝移动衔接。
因此需要在墙面快速而自由的移动,而且对于地形和场景有良好适应性的“飞檐走壁”功能实现方案,解决现有技术存在的上述问题。
发明内容
有鉴于此,本申请提供了一种角色的移动控制方法、装置、计算机设备及可读存储介质。
依据本申请第一方面,提供了一种角色的移动控制方法,该方法包括:
在检测到虚拟角色处于墙面移动状态的条件下,根据所述虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制所述虚拟角色紧贴所述墙面移动,所述第一移动控制指令用以控制所述虚拟角色在墙面移动;
在检测到所述虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及所述虚拟角色和所述第二移动控制指令确定的所述虚拟角色移动方向墙面的物理碰撞检测结果,确定所述虚拟角色的跳跃状态,所述第二移动控制指令用以控制所述虚拟角色在墙面跳跃,所述跳跃状态用于控制虚拟角色执行跳跃动作,所述跳跃状态包括跨墙跳、反墙跳中的至少一项。
依据本申请第二方面,提供了一种角色的移动控制装置,该装置包括:
控制模块,用于在检测到虚拟角色处于墙面移动状态的条件下,根据所述虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制所述虚拟角色紧贴所述墙面移动,所述第一移动控制指令用以控制所述虚拟角色在墙面移动;
确定模块,用于在检测到所述虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及所述虚拟角色和所述第二移动控制指令确定的所述虚拟角色移动方向墙面的物理碰撞检测结果,确定所述虚拟角色的跳跃状态,所述第二移动控制指令用以控制所述虚拟角色在墙面跳跃,所述跳跃状态用于控制虚拟角色执行跳跃动作,所述跳跃状态包括跨墙跳、反墙跳中的至少一项。
依据本申请第三方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述方法的步骤。
依据本申请第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的方法的步骤。
借由上述技术方案,本申请提供的一种角色的移动控制方法、装置、计算机设备及可读存储介质,本申请在检测到虚拟角色处于墙面移动状态的条件下,根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动,且在检测到虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及虚拟角色和第二移动控制指令确定的虚拟角色移动方向墙面的物理碰撞检测结果,确定虚拟角色的跳跃状态,使虚拟角色不仅可以在墙面上自由移动,还可以在移动的过程中执行跨墙跳、反墙跳等跳跃操作,在提升操作自由度的同时,实现在不连续墙面之间进行无缝移动衔接,为游戏角色赋予生命力,给玩家带来更加新奇的游戏体验。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1A示出了本申请实施例提供的一种角色的移动控制方法流程示意图;
图1B示出了本申请实施例提供的一种跨墙跳的示意图;
图1C示出了本申请实施例提供的一种反墙跳的示意图;
图2A示出了本申请实施例提供的另一种角色的移动控制方法流程示意图;
图2B示出了本申请实施例提供的一种射线检测流程示意图;
图2C示出了本申请实施例提供的一种射线检测的示意图;
图2D示出了本申请实施例提供的一种射线检测的示意图;
图2E示出了本申请实施例提供的再一种角色的移动控制方法流程示意图;
图2F示出了本申请实施例提供的一种射线检测的示意图;
图2G示出了本申请实施例提供的一种射线检测的示意图;
图2H示出了本申请实施例提供的又一种角色的移动控制方法流程示意图;
图2I示出了本申请实施例提供的一种射线检测的示意图;
图2J示出了本申请实施例提供的一种射线检测的示意图;
图2K示出了本申请实施例提供的一种射线检测的示意图;
图2L示出了本申请实施例提供的一种射线检测的示意图;
图3示出了本申请实施例提供的一种角色的移动控制装置的结构示意图;
图4示出了本申请实施例提供的一种计算机设备的装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
首先对本申请所适用的应用场景进行介绍,本申请可应用于游戏技术领域。具体的,可应用在开放世界游戏中,或类似于开放世界的高自由度全地形交互游戏中,此处不进行具体限定。
本申请的技术方案可以应用于基于游戏引擎开发的单机游戏、网络游戏或者虚拟世界中,游戏引擎具体可以是UE4(Unreal Engine 4,虚幻引擎4)、UE5(Unreal Engine 5,虚幻引擎5)、Untiy等游戏引擎,本申请对此不进行具体限定。
下面以游戏领域为例说明现有技术中存在的技术问题:
目前有的游戏中“飞檐走壁”基本上只是一种墙面移动的辅助手段,“飞檐走壁”顾名思义包括在墙面移动、在墙面跳跃、翻越墙面中至少一项。玩家在“飞檐走壁”这种移动中可以进行的操作自由度很低,这些游戏的主要玩法都是偏向于地面动作或者地面战斗,因而墙面的移动并不是其主要的玩法内容,而且其关卡设计中墙面上一般也没有可以交互或者探索的内容,所以不需要长时间的进行墙面活动。而反观大世界类型的游戏,注重大世界的探索和活动,墙面上可能存在较多的玩家交互内容,而目前有的墙面移动只有慢速的攀爬,无法满足玩家需要长时间,长距离在墙面活动的需要。
现有游戏或虚拟世界产品中的“飞檐走壁”交互方式,存在如下缺陷:
1、仅适用于特殊地形或者建筑,无法在地形或者建筑墙面停留或者自由改变移动方向,玩家在这种移动中可以进行的操作自由度很低,也无法设计墙面更多的交互和探索的内容。
2、虽然可以通过在游戏场景制作时,在地形或者建筑墙面预先打点布线,从而实现在地形或者建筑墙面停留或者自由改变移动方向,但这样会导致场景制作工作量大,游戏制作成本高。如果游戏类型是开放世界游戏,通过在场景制作时预先打点布线的方式,制作成本高和制作效率低,难以实现全地形交互。
3、还有一些游戏能实现全地形交互,但一般难以在墙面长时间,多方向进行移动,比如无法水平移动,横向移动时虚拟角色会逐渐向下直到接触地面,也无法斜上移动以及向下移动,更加无法在移动过程中,在不连续墙面之间进行无缝移动衔接。
因此需要在墙面快速而自由的移动,而且对于地形和场景有良好适应性的“飞檐走壁”功能实现方案,解决现有技术存在的上述问题。
为了解决上述问题,本申请实施例提供了一种角色的移动控制方法,如图1A所示,该方法包括:
101、在检测到虚拟角色处于墙面移动状态的条件下,根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动。
本申请提出一种角色的移动控制方法,在检测到虚拟角色处于墙面移动状态的条件下,根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动,且在检测到虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及虚拟角色和第二移动控制指令确定的虚拟角色移动方向墙面的物理碰撞检测结果,确定虚拟角色的跳跃状态,使虚拟角色不仅可以在墙面上自由移动,还可以在移动的过程中执行跨墙跳、反墙跳等跳跃操作,在提升操作自由度的同时,实现在不连续墙面之间进行无缝移动衔接,为游戏角色赋予生命力,给玩家带来更加新奇的游戏体验。
在本申请实施例中,在检测到虚拟角色处于墙面移动状态的条件下,会根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动。其中,墙面可以是地形、建筑、动植物、NPC(Non-Player Character,非玩家角色)或Boss(游戏中某一阶段性的强力敌人)表面、或植物,火、水、云等元素组成的场景中可供移动的表面;第一移动控制指令用以控制虚拟角色在墙面移动,第一移动控制指令可以由玩家发起,具体为玩家在设备端输入控制指令控制所操操作的虚拟角色移动,输入过程可以在移动端的界面交互UI,电脑端的鼠标和键盘、其他主机端的手柄、眼部追踪、人机接口等相关装置上完成。也就是说,在检测到虚拟角色处于墙面移动状态的条件下,会根据玩家发起的第一移动控制指令控制虚拟角色紧贴墙面移动,以使虚拟角色去到玩家想要探索的各个角落,紧贴的方式有多种,比如脚部紧贴,手部与脚步同时紧贴,此处不做具体限定。
102、在检测到虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及虚拟角色和第二移动控制指令确定的虚拟角色移动方向墙面的物理碰撞检测结果,确定虚拟角色的跳跃状态。
在本申请实施例中,玩家在控制虚拟角色在墙面上自由移动时,还可以控制虚拟角色跳跃,具体地,玩家可以通过发起第二移动控制指令来指示进行跳跃,以应用场景为移动端界面交互UI为例,第二移动控制指令可以是方向控制UI组件发出的,也可以是特定的跳跃UI组件发出的,此处不做具体限定。这样,对于游戏来说,在检测到虚拟角色处于跳跃状态的条件下,会根据第二移动控制指令,以及虚拟角色和第二移动控制指令确定的虚拟角色移动方向墙面的物理碰撞检测结果,确定虚拟角色的跳跃状态。其中,第二移动控制指令是玩家下发的,用以控制虚拟角色在墙面跳跃的交互控制指令;跳跃状态用于控制虚拟角色执行跳跃动作,跳跃状态包括跨墙跳、反墙跳中的至少一项。
具体地,作为一个示例,跨墙跳可以参见图1B,如图1B所示,虚拟角色在墙面①上向虚拟角色面向的方向正常移动,当移动到墙面①边缘时,虚拟角色向其面向的方向产生跳跃,由墙面①跳跃至位于虚拟角色移动方向但是不连续的墙面②上继续向面向的方向移动,在连续但属不同平面的墙面上进行跳跃与上述过程同理,也即墙面①与墙面②之间不存在间断。另外,在游戏中还存在一些连续但不属于同一平面的墙面,比如凹转角墙面、凸转角墙面等等,在这种墙面上,也可以采用上面描述的过程控制虚拟角色从一个墙面跨墙跳到另一个墙面,或者也可以控制虚拟角色直接从两个墙面的连接处正常走过,以使虚拟角色继续在另一个墙面上自由移动。
作为一个示例,反墙跳可以参见图1C,如图1C所示,虚拟角色在墙面③上向朝向的方向正常移动的过程中产生跳跃,由墙面③跳跃至与墙面③处于不同平面且不相连的墙面④上继续向朝向的方向移动。
需要说明的是,无论是跨墙跳还是反墙跳,都需要通过判断虚拟角色的移动方向,或通过判断虚拟摄像机朝向,甚至通过整体判断虚拟角色移动方向结合虚拟摄像机朝向,来确定跳跃状态。移动方向具体判断数据包括虚拟角色移动向量、移动向量在水平/垂直方向分量、加速度方向等运动方向参数中至少一项或多项。虚拟摄像机朝向判断数据包括俯仰角(pitch)、摇摆角(roll)、偏航角(yaw)等朝向参数中至少一项或多项。
本申请实施例提供的方法,在检测到虚拟角色处于墙面移动状态的条件下,根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动,且在检测到虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及虚拟角色和第二移动控制指令确定的虚拟角色移动方向墙面的物理碰撞检测结果,确定虚拟角色的跳跃状态,使虚拟角色不仅可以在墙面上自由移动,还可以在移动的过程中,如遇到特定墙面地形需要进行跳跃,进而执行跨墙跳、反墙跳等跳跃操作,在提升操作自由度的同时,实现在不连续墙面之间或不同平面墙面之间进行无缝移动衔接,为游戏角色赋予生命力,给玩家带来更加新奇的游戏体验。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,本申请实施例提供了另一种角色的移动控制方法,如图2A所示,该方法包括:
201、在检测到虚拟角色处于墙面移动状态的条件下,基于虚拟角色的碰撞体向虚拟角色的前方进行射线检测,确定碰撞体与障碍物之间的距离,在距离小于等于碰撞体的半径的条件下,执行下述步骤202;在距离大于碰撞体的半径的条件下,执行下述步骤203。
本申请的技术方案大体分为三个部分:射线检测、角色移动和动作表现。其中,射线检测主要是针对各种拐角以及障碍物进行检测,射线检测为行业惯用手段,此处不做具体限定;角色移动是通过计算当前角色移动的方向和速度,通过游戏引擎中角色移动组件或者运动组件来实现墙面的持续移动;动作表现则是使用动画蓝图、状态机等方式实现,对于个别衔接动作,比如在空中进入飞檐走壁,可以使用蒙太奇实现。
在本申请实施例中,在检测到虚拟角色处于墙面移动状态的条件下,会根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动。实际应用的过程中,由于“飞檐走壁”可以是攀爬的延伸,是在攀爬的基础上提供的更加灵活的移动方式,因此,“飞檐走壁”的触发可以和攀爬保持一致,也即在进入攀爬时检查虚拟角色是否带有飞檐走壁的状态,如果有则直接进入飞檐走壁,也即确定检测到虚拟角色处于墙面移动状态的条件下,可以开始控制虚拟角色在墙面进行移动。“飞檐走壁”也可以区别于攀爬状态触发,作为独立的状态触发,也即在虚拟角色与墙面的检测满足条件后,虚拟角色进入“飞檐走壁”的状态,虚拟角色可被操控在墙面上进行移动,具体地,在游戏中,虚拟角色进入“飞檐走壁”也即墙面移动状态后,此时便可以开启每帧对于地形的检测,以便根据检测结果进行相应处理。
第一移动控制指令用以控制虚拟角色在墙面移动,第一移动控制指令可以由玩家发起,也就是说,在检测到虚拟角色处于墙面移动状态的条件下,游戏引擎会根据玩家发起的第一移动控制指令控制虚拟角色在墙面移动,以使虚拟角色去到玩家想要探索的各个角落。具体地,在根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动时,首先需要基于虚拟角色的碰撞体向虚拟角色的前方进行射线检测,确定碰撞体与障碍物之间的距离,这个距离也作为虚拟角色紧贴墙壁移动的调整依据,根据距离判断虚拟角色是否依附在障碍物上或者是否已经脱离墙面需要向墙面靠拢,以此完成紧贴调整。其中,虚拟角色的碰撞体用于执行碰撞检测以及射线检测,具体可以是基于虚拟角色构建的胶囊体、长方体等等,本申请对碰撞体的具体形式不进行限定。
具体地,在距离小于等于碰撞体的半径的条件下,表示虚拟角色正紧贴墙面,可以进一步判断墙面是否适合移动并在适合移动的情况下控制虚拟角色在墙面进行自由移动,也即执行下述步骤202;而在距离大于碰撞体的半径的条件下,表示虚拟角色已经脱离墙面,需要向墙面靠拢,也即执行下述步骤203。
202、在距离小于等于碰撞体的半径的条件下,基于碰撞体对障碍物进行射线检测,以及在基于射线检测返回的物理碰撞检测结果指示允许在障碍物表面移动时,将障碍物作为墙面,确定输入至虚拟角色的第一移动控制指令指示的移动方向,控制虚拟角色按照移动方向紧贴墙面移动。
在本申请实施例中,在距离小于等于碰撞体的半径的条件下,表示虚拟角色正紧贴墙面,可以进一步判断墙面是否适合移动并在适合移动的情况下控制虚拟角色在墙面进行自由移动,因此,需要基于碰撞体对障碍物进行射线检测,具体进行射线检测的过程如下:
首先,需要基于虚拟角色的碰撞体向虚拟角色的目标侧进行射线检测,以及获取基于射线检测返回的检测结果。其中,目标侧是虚拟角色的左侧或右侧,具体在进行射线检测时,可以以虚拟角色的碰撞体的中部为起点,在水平方向上向虚拟角色的目标侧进行射线检测,以目标侧为虚拟角色的左侧为例,可以以碰撞体的中部为起点,在水平方向上向虚拟角色的左侧方向进行射线检测,以确定此时虚拟角色的左侧是否有墙壁等障碍物。需要说明的是,还可以以碰撞体的腰部、手部等为起点进行射线检测,本申请对此不进行具体限定。
接着,若检测结果指示检测到障碍物,则表示虚拟角色处于一个向内的拐角,需要进一步通过检测结果确定该障碍物具体是否适合飞檐走壁移动,因此,需要基于检测结果获取障碍物的属性,并在障碍物的属性指示允许上墙时,将障碍物作为墙面,以及确定接收到用于指示允许在墙面的表面进行移动的物理碰撞检测结果。此处上墙含义为在墙面移动。
而若检测结果指示未检测到障碍物,则表示在虚拟角色的目标侧不存在障碍物,需要继续进行射线检测,因此,在碰撞体目标侧的后方选取一基准点,以基准点为起点向虚拟角色朝向的方向进行射线检测,以及获取基于射线检测返回的检测结果。继续以目标侧为虚拟角色的左侧为例,可以在碰撞体的左侧后方选取一基准点,以该基准点为起点,在水平方向上向虚拟角色朝向的方向进行射线检测。
相应地,在检测结果指示检测到障碍物的条件下,说明虚拟角色的目标侧的前方有障碍物,需要继续检测结果获取障碍物的属性,并在障碍物的属性指示允许上墙时,将障碍物作为墙面,以及确定接收到用于指示允许在墙面的表面进行移动的物理碰撞检测结果。而在检测结果指示未检测到障碍物的条件下,说明仍旧没有检测到障碍物,因此,需要继续在碰撞体目标侧的前方选取一基准点,以基准点为起点,向虚拟角色的另一侧方向进行射线检测,以及获取基于射线检测返回的检测结果,根据检测结果确定墙面以及确定是否允许在墙面的表面进行移动。其中,另一侧是碰撞体的左侧或右侧中除目标侧外的一侧,比如上面将虚拟角色的左侧作为目标侧,则另一侧便是虚拟角色的右侧,需要继续从虚拟角色的碰撞体的前方向碰撞体的右侧进行检测,具体在进行射线检测时,若检测结果指示检测到障碍物,说明虚拟角色当前正处于一个向外的拐角处,需要根据射线检测返回的检测结果确定障碍物的属性,并在障碍物的属性指示允许上墙时,将障碍物作为墙面,以及确定允许在墙面的表面进行移动。而若检测结果指示未检测到障碍物,则基于碰撞体向虚拟角色的另一侧进行射线检测,以及获取基于射线检测返回的检测结果,根据检测结果确定是否在碰撞体的另一侧后方选取一基准点向虚拟角色朝向的方向进行射线检测,并获取基于射线检测返回的检测结果,根据检测结果确定是否在碰撞体的另一侧的前方选取一基准点在虚拟角色的目标侧方向进行射线检测,进而确定墙面以及确定是否允许在墙面的表面进行移动。需要说明的是,在另一侧后方选取基准点以及在另一侧的前方选取基准点进行射线检测的过程与上面描述的在目标侧选取基准点的过程一致,且根据返回的射线检测结果确定是否确定墙面以及确定是否允许在墙面的表面进行移动的过程与上面描述的在目标侧进行的评判一致,此处不再进行赘述。
通过执行上面的射线检测过程,便能够确定墙面到底在碰撞体的哪个方位,进而确定输入至虚拟角色的第一移动控制指令指示的移动方向,控制虚拟角色按照移动方向紧贴墙面移动。其中,第一移动控制指令用以控制虚拟角色在墙面移动,第一移动控制指令可以由玩家发起,也就是说,在检测到虚拟角色处于墙面移动状态的条件下,会根据玩家发起的第一移动控制指令控制虚拟角色在墙面移动,以使虚拟角色去到玩家想要探索的各个角落;对于游戏来说,第一移动控制指令基于交互控件接收,交互控件包括方向交互控件、跳跃交互控件中的至少一项。
另外,在有些情况下虽然虚拟角色可能已经紧贴墙面,但是有可能当前紧贴墙面的姿势与在墙面移动的姿势不适应,还需要对虚拟角色进行旋转,达到对虚拟角色的姿势进行调整的目的,具体对虚拟角色进行旋转的过程如下:
首先,需要将碰撞体从上到下进行等分,得到多个部分体,具体地,可以将碰撞体等分为2份、3份、4份等等,本申请对等分的数量不进行具体限定。
随后,需要在每个部分体的前方构建第一预设角度的扇形区域,以及在每个部分体的扇形区域每隔第二预设角度进行一次射线检测,得到由多个部分体对应的扇形区域构成的射线点阵。具体地,第一预设角度可以设置为120度,第二预设角度可以设置为6度,则在进行射线检测时,需要在每一个部分均向虚拟角色的前方120度的扇形区域内,每6度进行一次射线检测,从而构成了一个4×20的射线点阵。
接着,对射线点阵进行纵向扫描,得到虚拟角色的俯仰角度,以及对射线点阵进行横向扫描,得到虚拟角色的偏航角。具体地,俯仰角是虚拟角色转动角度的一个分量,可以为虚拟角色的Pitch角;偏航角是虚拟角色转动角度的一个分量,可以为虚拟角色的Yaw角。
最后,将俯仰角度和偏航角作为虚拟角色的角色旋转参数,按照角色旋转参数旋转虚拟角色,以使虚拟角色紧贴墙面移动。
综上,步骤202中涉及到的射线检测过程总结如下:如图2B所示,以目标侧为碰撞体的左侧,另一侧为碰撞体的右侧为例,基于虚拟角色的碰撞体向虚拟角色的左侧进行射线检测,判断是否检测到障碍物。如果确定检测到障碍物,则障碍物的属性指示允许上墙时,将障碍物作为墙面,根据角色旋转参数对虚拟角色进行旋转,以使虚拟角色紧贴墙面并控制虚拟角色在墙面自由移动;而如果确定未检测到障碍物,则在碰撞体左侧的后方选取一基准点,以基准点为起点向虚拟角色朝向的方向进行射线检测。在检测结果指示检测到障碍物的条件下,在障碍物的属性指示允许上墙时,将障碍物作为墙面,根据角色旋转参数对虚拟角色进行旋转,以使虚拟角色紧贴墙面并控制虚拟角色在墙面自由移动。而在检测结果指示未检测到障碍物的条件下,或者在障碍物的属性指示不允许上墙时,停止对虚拟角色的旋转,在碰撞体左侧的前方选取一基准点,以基准点为起点,向虚拟角色的右侧方向进行射线检测。相应地,若检测结果指示检测到障碍物,则在障碍物的属性指示允许上墙时,将障碍物作为墙面根据角色旋转参数对虚拟角色进行旋转,以使虚拟角色紧贴墙面并控制虚拟角色在墙面自由移动;而若检测结果指示未检测到障碍物,或者在障碍物的属性指示不允许上墙时,在虚拟角色的右侧,以反方向重复左侧的射线检测操作,并根据检测结果确定角色旋转参数,根据角色旋转参数对虚拟角色进行旋转,以使虚拟角色紧贴墙面并控制虚拟角色在墙面自由移动。
实际上通过上述过程可以看出,对于凸拐角和凹拐角需要采用不同的射线检测策略,具体如下:对于凸拐角,如图2C所示,第一次检测是向虚拟角色左侧进行射线检测,检测不到墙面,因此,需要在虚拟角色的左侧后方选取一基准点,以基准点为起点向虚拟角色朝向的方向进行射线检测,也就是图2C中所示的第二次检测。如果第二次检测仍旧没有检测到墙面,则需要在虚拟角色的左侧前方选取一基准点,以基准点为起点向虚拟角色的右侧进行射线检测,从而确定可以自由移动的墙面,也就是图2C中所示的第三次检测。而对于凹拐角,如图2D所示,第一次检测是向虚拟角色的左侧进行射线检测,便能够直接检测到墙面,控制虚拟角色在墙面进行移动。
203、在距离大于碰撞体的半径的条件下,基于碰撞体对障碍物进行射线检测,以及在基于射线检测返回的物理碰撞检测结果指示允许在障碍物表面移动时,将障碍物作为墙面,控制虚拟角色向墙面贴近靠拢,以使虚拟角色紧贴墙面,以及确定输入至虚拟角色的第一移动控制指令指示的移动方向,控制虚拟角色按照移动方向紧贴墙面移动。
在本申请实施例中,在距离大于碰撞体的半径的条件下,表示虚拟角色已经脱离墙面,需要向墙面靠拢,因此,需要基于碰撞体对障碍物进行射线检测,以及在基于射线检测返回的物理碰撞检测结果指示允许在障碍物表面移动时,将障碍物作为墙面,控制虚拟角色向墙面贴近靠拢,以使虚拟角色紧贴墙面,以及确定输入至虚拟角色的第一移动控制指令指示的移动方向,控制虚拟角色按照移动方向紧贴墙面移动。具体基于射线检测确定是否允许在障碍物表面进行移动的过程与上面步骤202中描述的过程一致,此处不再进行赘述;另外,也可以采用上述步骤202中描述的过程,通过计算角色旋转参数以及根据角色旋转参数对虚拟角色进行旋转,以使虚拟角色紧贴墙面,对于计算角色旋转参数的过程此处不再进行赘述。
这样,通过上述步骤201至步骤203中的过程,便实现了在检测到虚拟角色处于墙面移动状态的条件下,根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动的效果。
在本申请实施例中,在检测到虚拟角色处于墙面移动状态的条件下,根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动,使虚拟角色可以在墙面上自由移动,提升操作自由度,为游戏角色赋予生命力,给玩家带来更加新奇的游戏体验。
本申请不仅提供在墙面上自由移动的功能,还提供在墙面上进行跳跃的功能,也即在虚拟角色在墙面上移动时,玩家可以通过向虚拟角色下发交互控制指令,控制虚拟角色在移动的过程中进行跳跃,实现跨墙跳、反墙跳等复杂新奇的操作,因此,本申请实施例提供了再一种角色的移动控制方法,如图2E所示,该方法包括:
204、在检测到虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及虚拟角色和第二移动控制指令确定的虚拟角色移动方向墙面的物理碰撞检测结果,确定虚拟角色的跳跃状态。
在本申请实施例中,玩家在控制虚拟角色在墙面上自由移动时,还可以控制虚拟角色跳跃,具体地,玩家可以通过发起第二移动控制指令来指示进行跳跃。这样,对于游戏来说,在检测到虚拟角色处于跳跃状态的条件下,会根据第二移动控制指令,以及虚拟角色和第二移动控制指令确定的虚拟角色移动方向墙面的物理碰撞检测结果,确定虚拟角色的跳跃状态。
其中,第二移动控制指令是玩家下发的,用以控制虚拟角色在墙面跳跃的交互控制指令,与第一移动控制指令同理,对于游戏来说,第二移动控制指令可以基于交互控件接收,交互控件包括方向交互控件、跳跃交互控件中的至少一项;跳跃状态用于控制虚拟角色执行跳跃动作,跳跃状态包括跨墙跳、反墙跳中的至少一项。具体地,跨墙跳是在不连续的墙面上进行跳跃的过程,也即在移动的过程中,从当前墙面跳至与当前墙面同属一个方向且与当前墙面不连续的另一墙面;反墙跳是反向跳至与当前墙面属于不同方向的另一墙面的过程,玩家可以通过发起第二移动控制指令指示跳跃的方向,以使虚拟角色执行跨墙跳或反墙跳中的任一种。下面对确定虚拟角色的不同跳跃状态的过程进行描述:
对于跨墙跳来说,需要基于虚拟角色的碰撞体进行射线检测,检测虚拟角色当前所处位置的前方是否存在墙面的墙面。其中,若基于射线检测确定虚拟角色当前所处位置的前方存在墙面的墙面,则表示跳跃后还是可以落在当前移动所在的墙面的,并没有到达墙面的边界,因此,控制虚拟角色落在墙面上,以及控制虚拟角色继续紧贴墙面移动。而若基于射线检测确定虚拟角色当前所处位置的前方不存在墙面的墙面,则表示当前已经到达所在墙面的边界,需要跨越跳到另外一墙面,因此,需要确定与墙面相邻的另一墙面,在另一墙面与墙面之间的对象距离满足虚拟角色的跳跃距离时,控制虚拟角色落在另一墙面上,以及控制虚拟角色紧贴另一墙面移动。实际应用的过程中,在游戏引擎中,玩家在墙面跳跃时,只要当前输入中也即玩家下发的第二移动控制指令中没有向下移动的分量,就会进入跨墙跳流程。在游戏引擎中,跨墙跳时虚拟角色会按当前在墙面的移动方向,以更快的速度移动约1s的时间,期间忽略玩家的方向输入,而且即使离开墙面也不会立刻结束,而是会在跳跃时间到的时候检查虚拟角色前方是否还有墙壁,这样一来可以实现虚拟角色在两段不连续的墙面之间无缝跨越,因此,实际应用的过程中,可以确定基于第二移动控制指令输入的跳跃移动向量,在识别到跳跃移动向量没有向下移动的分量时,启动跳跃计时,控制虚拟角色在上墙对象表面起跳,并当跳跃计时的计时时长达到预设时长时,再基于虚拟角色的碰撞体进行射线检测,检测虚拟角色当前所处位置的前方是否存在墙面的墙面。
对于反墙跳,需要基于虚拟角色的碰撞体进行射线检测,检测虚拟角色当前所处位置的前方是否存在障碍物。其中,若基于射线检测确定虚拟角色当前所处位置的前方存在障碍物,表示向反方向跳跃后,存在能够供虚拟角色落脚的障碍物,也能能够实现从一面墙上跳跃到与该墙相对的另外一面墙上,因此,在障碍物的属性指示允许上墙时,需要控制虚拟角色落在障碍物上,以及控制虚拟角色紧贴障碍物移动。而若基于射线检测确定虚拟角色当前所处位置的前方不存在障碍物,则表示向反方向跳跃后,没有能够供虚拟角色落脚的障碍物,只能使虚拟角色回归到地面,因此,控制虚拟角色落回地面,以及在地面移动。实际应用的过程中,在游戏引擎中,和贴墙跳相反,只要跳跃时有向下移动的分量(虚拟角色AxisMoveForward属性小于0)就会进入反墙跳流程,反墙跳时虚拟角色会向墙面的反方向跳跃移动约1s的时间,而且同时会转向到移动方向,跟贴墙跳一样,离开墙壁后不会立刻结束飞檐走壁的状态,而是会在结束时检查周围墙面情况,可以实现对后方墙壁的无缝跨越,因此,实际应用的过程中,可以确定基于所述交互控件指令输入的跳跃移动向量,在识别到所述跳跃移动向量有向下移动的分量时,确定所述交互控件指令指示的跳跃方向,并启动跳跃计时,控制所述虚拟角色转向至所述跳跃方向并控制所述虚拟角色在所述上墙对象表面起跳,进而当所述跳跃计时的计时时长达到预设时长时,检测虚拟角色当前所处位置的前方是否存在障碍物以及是否能够实现反墙跳。
需要说明的是,实际应用的过程中,无论是跨墙跳还是反墙跳,均可以不设置跳跃计时器,可以直接在虚拟角色起跳后便开始进行障碍物的检测,或者也可以在未达到计时时长或超出计时时长一段时间后开始进行障碍物检测,本申请对此不进行具体限定。
另外,在游戏中,每当虚拟角色在“飞檐走壁”状态下离开墙面时,都会解除对于武器和道具的使用,方便于玩家在离墙时使用勾爪等道具进行更自由的操作。
205、按照跳跃状态,控制虚拟角色执行跳跃操作。
在本申请实施例中,确定了虚拟角色的跳跃状态后,便可以控制虚拟角色执行跳跃操作,从而实现虚拟角色在游戏中的动画表现。
在另一个可选地实施方案中,在控制虚拟角色紧贴墙面移动以及控制虚拟角色执行跳跃操作的过程中,本申请还会持续检测虚拟角色是否距离地面过近以及在确定距离地面过近时控制虚拟角色结束墙面移动状态返回至地面。也即,虚拟角色在墙面上时会实时检测虚拟角色与地面的距离,具体做法是在碰撞体的后方确定一检测点,以检测点为起点,向碰撞体下方的第二距离内进行射线检测,并获取基于射线检测返回的检测结果。其中,第二距离的取值等于预设倍数的碰撞体高,预设倍数可以为0.8倍,若检测结果指示存在障碍物且障碍物的属性指示障碍物允许行走,则获取检测结果携带的法线向量值,计算法线向量值与世界坐标系的纵轴之间的夹角,在夹角小于预设角度的条件下,控制虚拟角色离开墙面,以及控制虚拟角色结束墙面移动状态返回至地面。在游戏引擎中一种可行的检测方法,如图2F所示,具体做法是在虚拟角色平行的后方(HorizontalForward的反方向)约一个胶囊体半径的位置,向虚拟角色下方向(ActorUpVector的反方向)检测约0.8倍的胶囊体(也即碰撞体)高度,如果发现有障碍物,再进一步判断障碍物是否可以行走,如果可以,进一步计算其法线向量值和世界坐标系的纵轴也即UpVector的夹角是否小于45度,如果小于则认为地面倾斜度可以站立,检测均通过的话虚拟角色会直接结束飞檐走壁状态。需要说明的是,若检测结果指示不存在障碍物或夹角大于等于预设角度,则表示虚拟角色距离地面并没有过近,因此,可以控制虚拟角色继续紧贴墙面移动。
在另一个可选地实施方案中,在控制所述虚拟角色紧贴所述墙面移动以及控制所述虚拟角色执行跳跃操作的过程中,本申请还会持续检测虚拟角色是否悬空并控制虚拟角色结束墙面移动状态返回至地面。悬空检测主要是检测虚拟角色面前是否还存在墙面,具体做法是以所述虚拟角色的碰撞体为起点,向所述虚拟角色当前朝向的方向进行射线检测,以及获取基于所述射线检测返回的检测结果。若所述检测结果指示与所述碰撞体之间的距离等于预设距离的位置不存在障碍物,则获取所述虚拟角色当前所处状态,其中,所述预设距离的取值等于所述碰撞体半径的二倍,在所述虚拟角色当前所处状态为跳跃状态的条件下,在检测到所述跳跃状态结束时,控制所述虚拟角色结束所述墙面移动状态返回至地面;在所述虚拟角色当前所处状态为奔跑状态的条件下,控制所述虚拟角色返回地面进行奔跑移动。游戏引擎中,如图2G所示,上述检测可以以虚拟角色碰撞体的位置为起点,以虚拟角色当前朝向为方向,如果两倍碰撞体半径的距离内没有墙面,则认为虚拟角色当前已经悬空,虚拟角色悬空时根据当前状态决定是否要结束飞檐走壁,如果当前处于跳跃,比如处于跨墙跳或者反墙跳,则会等待跳跃结束后再结束状态,而如果当前是奔跑状态,则会立刻结束“飞檐走壁”的状态。
这样,通过本申请实施例的技术方案,玩家可以在开放世界里实现较远距离且自由度较高的墙面移动,而且可以在不连续的墙面上实现无缝的跳跃和衔接,可以给玩家一种全新的墙面跑酷体验。
在本申请实施例中,在检测到所述虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及所述虚拟角色和所述第二移动控制指令确定的所述虚拟角色移动方向墙面的物理碰撞检测结果,确定所述虚拟角色的跳跃状态,使虚拟角色不仅可以在墙面上自由移动,还可以在移动的过程中执行跨墙跳、反墙跳等跳跃操作,在提升操作自由度的同时,实现在不连续墙面之间进行无缝移动衔接,为游戏角色赋予生命力,给玩家带来更加新奇的游戏体验。
在紧贴墙面移动的过程中,玩家很有可能会控制虚拟角色移动至墙面的顶部,这也是“飞檐走壁”的表现效果之一。而为了使角色的移动更加贴近真实情况,在本申请实施例中控制虚拟角色紧贴墙面移动的同时,会持续检测虚拟角色是否已经到达墙面的顶部并翻越,因此,本申请实施例提供了又一种角色的移动控制方法,如图2H所示,该方法包括:
206、在控制虚拟角色紧贴墙面移动的同时,持续以虚拟角色的碰撞体的顶部为起点,向虚拟角色的前方进行射线检测,并获取基于射线检测返回的检测结果。
在本申请实施例中,在控制虚拟角色紧贴墙面移动的同时,会持续以虚拟角色的碰撞体的顶部为起点,向虚拟角色的前方进行射线检测,并获取基于射线检测返回的检测结果。本次的射线检测也即露头检测,如图2I所示,是以虚拟角色头部为起点,向虚拟角色前方发射射线进行检测,从而判断虚拟角色前方是否存在墙面,如果不存在墙面才会进行进一步地翻越检测。
207、在检测结果指示不存在障碍物的条件下,以虚拟角色的碰撞体顶部上方半高的位置为起点,向虚拟角色前方的预设距离内进行射线检测,并获取基于射线检测返回的检测结果。
在本申请实施例中,在检测结果指示不存在障碍物的条件下,可以认为虚拟角色的前方已经没有墙面,可以进行进一步地翻越确认,因此,需要以虚拟角色的碰撞体顶部上方半高的位置为起点,向虚拟角色前方的预设距离内进行射线检测,并获取基于射线检测返回的检测结果。其中,预设距离的取值等于碰撞体半径的二倍,如图2J所示,也即以虚拟角色头顶上方半高的位置为起点,向虚拟角色前方两倍半径内进行检测,实现对虚拟角色前方的空间的深度是否可以站立的检测,相应地,在确定前方的空间的深度可以站立时才会继续进行落脚点的选择。
208、若检测结果指示不存在障碍物,则确定虚拟角色的落脚点,并基于落脚点计算虚拟角色的目标位置,在目标位置控制虚拟角色进入翻越状态,以使虚拟角色翻越后落地。
在本申请实施例中,若检测结果指示不存在障碍物,则表示没有检测到墙面,虚拟角色前方的空间深度是可以允许虚拟角色站立的,因此,需要确定虚拟角色的落脚点,并基于落脚点计算虚拟角色的目标位置,在目标位置控制虚拟角色进入翻越状态,以使虚拟角色翻越后落地。
其中,在确定落脚点时,需要在墙面的上方构建半径等于碰撞体半径的虚拟碰撞体,以虚拟碰撞体的底部为起点,竖直向下进行射线检测,以及获取基于射线检测返回的检测结果。具体地,在检测结果指示存在地面且地面的属性指示允许站立的条件下,将射线检测的与地面的触碰点作为落脚点。实际应用的过程中具体可以采用球体、胶囊体或正方体检测的方式,以球体检测为例,具体参见图2K,创建一半径等于碰撞体半径的球体作为虚拟碰撞体,起点是墙面的上方,检测方向是竖直向下,如果检测到了地面,就进一步获取地面信息,如果检测到的是可以站立或者行走的,则认为已经找到了可以落脚的地方。
继续参见图2K,当找到落脚点后,需要继续计算出虚拟角色的目标位置,具体需要确定预设偏移距离,以落脚点为起点,向正上方移动预设偏移距离,得到目标位置,其中,预设偏移距离的取值等于碰撞体高度的二分之一。接着,控制虚拟角色向目标位置进行移动,以及持续检测虚拟角色与目标位置之间是否存在障碍物,若虚拟角色与目标位置之间不存在障碍物,则在虚拟角色当前所处位置与目标位置之间的距离小于距离阈值的条件下,控制虚拟角色进入翻越状态,以使虚拟角色翻越后落地。实际应用的过程中,在游戏引擎中可以以在上一步中检测的为落脚点(游戏引擎中的Impact Point),向正上方移动一个碰撞体半高(Capsule Half Height)就是虚拟角色的目标位置,虚拟角色会进入翻越的状态,此过程中会进行两段位移,如图2L所示,第一段是虚拟角色向自己的ActorUpVector方向移动,同时不断检测自己和目标位置之间是否还存在遮挡,也即移动到图2L中的中间位置。接着,如图2L所示,如果没有遮挡了,可以进入下一阶段的移动,就是直接向目标位置进行移动,移动方向是目标位置-当前虚拟角色位置得出的向量,当虚拟角色的位置和目标位置接近小于距离阈值的时候,即可结束移动。需要说明的是,整个移动过程会忽略玩家所有的输入。
在本申请实施例中,在控制虚拟角色紧贴墙面移动的同时,持续以虚拟角色的碰撞体的顶部为起点,向虚拟角色的前方进行射线检测,并获取基于射线检测返回的检测结果,在检测结果指示不存在障碍物的条件下,以虚拟角色的碰撞体顶部上方半高的位置为起点,向虚拟角色前方的预设距离内进行射线检测,并获取基于射线检测返回的检测结果,若检测结果指示不存在障碍物,则确定虚拟角色的落脚点,并基于落脚点计算虚拟角色的目标位置,在目标位置控制虚拟角色进入翻越状态,以使虚拟角色翻越后落地,使虚拟角色不仅可以在墙面上自由移动,还可以在移动的过程中判断是否到达墙面顶部并翻越,在提升操作自由度的同时,保证游戏动作的真实感,为游戏角色赋予生命力,给玩家带来更加新奇的游戏体验。
进一步地,作为图1A所述方法的具体实现,本申请实施例提供了一种角色的移动控制装置,如图3所示,所述装置包括:控制模块301和确定模块302。
该控制模块301,用于在检测到虚拟角色处于墙面移动状态的条件下,根据所述虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制所述虚拟角色紧贴所述墙面移动,所述第一移动控制指令用以控制所述虚拟角色在墙面移动;
该确定模块302,用于在检测到所述虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及所述虚拟角色和所述第二移动控制指令确定的所述虚拟角色移动方向墙面的物理碰撞检测结果,确定所述虚拟角色的跳跃状态,所述第二移动控制指令用以控制所述虚拟角色在墙面跳跃,所述跳跃状态用于控制虚拟角色执行跳跃动作,所述跳跃状态包括跨墙跳、反墙跳中的至少一项。
在具体的应用场景中,第一移动控制指令或所述第二移动控制指令基于交互控件接收,所述交互控件包括方向交互控件、跳跃交互控件中的至少一项。
在具体的应用场景中,该控制模块301,用于基于所述虚拟角色的碰撞体向所述虚拟角色的前方进行射线检测,确定所述碰撞体与障碍物之间的距离;在所述距离小于等于所述碰撞体的半径的条件下,基于所述碰撞体对所述障碍物进行射线检测,以及在基于所述射线检测返回的物理碰撞检测结果指示允许在所述障碍物表面移动时,将所述障碍物作为所述墙面,确定输入至所述虚拟角色的第一移动控制指令指示的移动方向,控制所述虚拟角色按照所述移动方向紧贴所述墙面移动;在所述距离大于所述碰撞体的半径的条件下,基于所述碰撞体对所述障碍物进行射线检测,以及在基于所述射线检测返回的物理碰撞检测结果指示允许在所述障碍物表面移动时,将所述障碍物作为所述墙面,控制所述虚拟角色向所述墙面贴近靠拢,以使所述虚拟角色紧贴所述墙面,以及确定输入至所述虚拟角色的第一移动控制指令指示的移动方向,控制所述虚拟角色按照所述移动方向紧贴所述墙面移动。
在具体的应用场景中,该控制模块301,用于基于所述虚拟角色的碰撞体向所述虚拟角色的目标侧进行射线检测,以及获取基于所述射线检测返回的检测结果,所述目标侧是所述虚拟角色的左侧或右侧;若所述检测结果指示检测到障碍物,则在所述障碍物的属性指示允许上墙时,将所述障碍物作为所述墙面,以及确定接收到用于指示允许在所述墙面的表面进行移动的所述物理碰撞检测结果。
在具体的应用场景中,该控制模块301,还用于若所述检测结果指示未检测到障碍物,则在所述碰撞体目标侧的后方选取一基准点,以所述基准点为起点向所述虚拟角色朝向的方向进行射线检测,以及获取基于所述射线检测返回的检测结果;在所述检测结果指示检测到障碍物的条件下,在所述障碍物的属性指示允许上墙时,将所述障碍物作为所述墙面,以及确定接收到用于指示允许在所述墙面的表面进行移动的所述物理碰撞检测结果;在所述检测结果指示未检测到障碍物的条件下,在所述碰撞体目标侧的前方选取一基准点,以所述基准点为起点,向所述虚拟角色的另一侧方向进行射线检测,以及获取基于所述射线检测返回的检测结果,根据所述检测结果确定所述墙面以及确定是否允许在所述墙面的表面进行移动,其中,所述另一侧是所述碰撞体的左侧或右侧中除所述目标侧外的一侧。
在具体的应用场景中,该控制模块301,用于若所述检测结果指示检测到障碍物,则在所述障碍物的属性指示允许上墙时,将所述障碍物作为所述墙面,以及确定允许在所述墙面的表面进行移动;若所述检测结果指示未检测到障碍物,则基于所述碰撞体向所述虚拟角色的另一侧进行射线检测,以及获取基于所述射线检测返回的检测结果,根据所述检测结果确定是否在所述碰撞体的另一侧后方选取一基准点向所述虚拟角色朝向的方向进行射线检测,并获取基于所述射线检测返回的检测结果,根据所述检测结果确定是否在所述碰撞体的另一侧的前方选取一基准点在所述虚拟角色的所述目标侧方向进行射线检测,进而确定所述墙面以及确定是否允许在所述墙面的表面进行移动。
在具体的应用场景中,该确定模块302,用于基于所述虚拟角色的碰撞体进行射线检测,检测所述虚拟角色当前所处位置的前方是否存在所述墙面的墙面;若基于射线检测确定所述虚拟角色当前所处位置的前方存在所述墙面的墙面,则控制所述虚拟角色落在所述墙面上,以及控制所述虚拟角色继续紧贴所述墙面移动。
在具体的应用场景中,该确定模块302,用于基于所述虚拟角色的碰撞体进行射线检测,检测所述虚拟角色当前所处位置的前方是否存在障碍物;若基于射线检测确定所述虚拟角色当前所处位置的前方存在障碍物,则在所述障碍物的属性指示允许上墙时,控制所述虚拟角色落在所述障碍物上,以及控制所述虚拟角色紧贴所述障碍物移动。
在具体的应用场景中,该控制模块301,还用于在控制所述虚拟角色紧贴所述墙面移动的同时,持续以所述虚拟角色的碰撞体的顶部为起点,向所述虚拟角色的前方进行射线检测,并获取基于所述射线检测返回的检测结果;在所述检测结果指示不存在障碍物的条件下,以所述虚拟角色的碰撞体顶部上方半高的位置为起点,向所述虚拟角色前方的预设距离内进行射线检测,并获取基于所述射线检测返回的检测结果,其中,所述预设距离的取值等于所述碰撞体半径的二倍;若所述检测结果指示不存在障碍物,则确定所述虚拟角色的落脚点,并基于所述落脚点计算所述虚拟角色的目标位置,在所述目标位置控制所述虚拟角色进入翻越状态,以使所述虚拟角色翻越后落地。
在具体的应用场景中,该控制模块301,用于在所述墙面的上方构建半径等于所述碰撞体半径的虚拟碰撞体,以所述虚拟碰撞体的底部为起点,竖直向下进行射线检测,以及获取基于所述射线检测返回的检测结果;在所述检测结果指示存在地面且所述地面的属性指示允许站立的条件下,将所述射线检测的与所述地面的触碰点作为所述落脚点;确定预设偏移距离,以所述落脚点为起点,向正上方移动所述预设偏移距离,得到所述目标位置,所述预设偏移距离的取值等于所述碰撞体高度的二分之一;控制所述虚拟角色向所述目标位置进行移动,以及持续检测所述虚拟角色与所述目标位置之间是否存在障碍物;若所述虚拟角色与所述目标位置之间不存在障碍物,则在所述虚拟角色当前所处位置与所述目标位置之间的距离小于距离阈值的条件下,控制所述虚拟角色进入翻越状态,以使所述虚拟角色翻越后落地。
在具体的应用场景中,该控制模块301,还用于在控制所述虚拟角色紧贴所述墙面移动以及控制所述虚拟角色执行跳跃操作的过程中,持续检测所述虚拟角色的脚下状态,以及根据所述脚下状态控制所述虚拟角色继续处于所述墙面移动状态或结束所述墙面移动状态返回至地面。
在具体的应用场景中,该控制模块301,用于在所述碰撞体的后方确定一检测点,以所述检测点为起点,向所述碰撞体下方的第二距离内进行射线检测,并获取基于所述射线检测返回的检测结果,其中,所述第二距离的取值等于预设倍数的碰撞体高度;若所述检测结果指示存在障碍物且所述障碍物的属性指示所述障碍物允许行走,则获取所述检测结果携带的法线向量值,计算所述法线向量值与世界坐标系的纵轴之间的夹角;在所述夹角小于预设角度的条件下,控制所述虚拟角色离开所述墙面,以及控制所述虚拟角色结束所述墙面移动状态返回至地面;其中,若所述检测结果指示不存在障碍物或所述夹角大于等于所述预设角度,则控制所述虚拟角色继续紧贴所述墙面移动。
在具体的应用场景中,该控制模块301,用于以所述虚拟角色的碰撞体为起点,向所述虚拟角色当前朝向的方向进行射线检测,以及获取基于所述射线检测返回的检测结果;若所述检测结果指示与所述碰撞体之间的距离等于预设距离的位置不存在障碍物,则获取所述虚拟角色当前所处状态,其中,所述预设距离的取值等于所述碰撞体半径的二倍;在所述虚拟角色当前所处状态为跳跃状态的条件下,在检测到所述跳跃状态结束时,控制所述虚拟角色结束所述墙面移动状态返回至地面;在所述虚拟角色当前所处状态为奔跑状态的条件下,控制所述虚拟角色返回地面进行奔跑移动。
本申请实施例提供的装置,在检测到虚拟角色处于墙面移动状态的条件下,根据虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制虚拟角色紧贴墙面移动,且在检测到虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及虚拟角色和第二移动控制指令确定的虚拟角色移动方向墙面的物理碰撞检测结果,确定虚拟角色的跳跃状态,使虚拟角色不仅可以在墙面上自由移动,还可以在移动的过程中执行跨墙跳、反墙跳等跳跃操作,在提升操作自由度的同时,实现在不连续墙面之间进行无缝移动衔接,为游戏角色赋予生命力,给玩家带来更加新奇的游戏体验。
需要说明的是,本申请实施例提供的一种角色的移动控制装置所涉及各功能单元的其他相应描述,可以参考图1A至图1C和图2A至图2L中的对应描述,在此不再赘述。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
在示例性实施例中,参见图4,还提供了一种计算机设备,该计算机设备包括总线、处理器、存储器和通信接口,还可以包括输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的角色的移动控制方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的角色的移动控制方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (16)
1.一种角色的移动控制方法,其特征在于,包括:
在检测到虚拟角色处于墙面移动状态的条件下,根据所述虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制所述虚拟角色紧贴所述墙面移动,所述第一移动控制指令用以控制所述虚拟角色在墙面移动;
在检测到所述虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及所述虚拟角色和所述第二移动控制指令确定的所述虚拟角色移动方向墙面的物理碰撞检测结果,确定所述虚拟角色的跳跃状态,所述第二移动控制指令用以控制所述虚拟角色在墙面跳跃,所述跳跃状态用于控制虚拟角色执行跳跃动作,所述跳跃状态包括跨墙跳、反墙跳中的至少一项。
2.根据权利要求1所述的方法,其特征在于,所述第一移动控制指令或所述第二移动控制指令基于交互控件接收,所述交互控件包括方向交互控件、跳跃交互控件中的至少一项。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制所述虚拟角色紧贴所述墙面移动,包括:
基于所述虚拟角色的碰撞体向所述虚拟角色的前方进行射线检测,确定所述碰撞体与障碍物之间的距离;
在所述距离小于等于所述碰撞体的半径的条件下,基于所述碰撞体对所述障碍物进行射线检测,以及在基于所述射线检测返回的物理碰撞检测结果指示允许在所述障碍物表面移动时,将所述障碍物作为所述墙面,确定输入至所述虚拟角色的第一移动控制指令指示的移动方向,控制所述虚拟角色按照所述移动方向紧贴所述墙面移动;
在所述距离大于所述碰撞体的半径的条件下,基于所述碰撞体对所述障碍物进行射线检测,以及在基于所述射线检测返回的物理碰撞检测结果指示允许在所述障碍物表面移动时,将所述障碍物作为所述墙面,控制所述虚拟角色向所述墙面贴近靠拢,以使所述虚拟角色紧贴所述墙面,以及确定输入至所述虚拟角色的第一移动控制指令指示的移动方向,控制所述虚拟角色按照所述移动方向紧贴所述墙面移动。
4.根据权利要求3所述的方法,其特征在于,所述基于所述碰撞体对所述障碍物进行射线检测,包括:
基于所述虚拟角色的碰撞体向所述虚拟角色的目标侧进行射线检测,以及获取基于所述射线检测返回的检测结果,所述目标侧是所述虚拟角色的左侧或右侧;
若所述检测结果指示检测到障碍物,则在所述障碍物的属性指示允许上墙时,将所述障碍物作为所述墙面,以及确定接收到用于指示允许在所述墙面的表面进行移动的所述物理碰撞检测结果。
5.根据权利要求4所述的方法,其特征在于,所述基于所述虚拟角色的碰撞体向所述虚拟角色的目标侧进行射线检测,以及获取基于所述射线检测返回的检测结果之后,所述方法还包括:
若所述检测结果指示未检测到障碍物,则在所述碰撞体目标侧的后方选取一基准点,以所述基准点为起点向所述虚拟角色朝向的方向进行射线检测,以及获取基于所述射线检测返回的检测结果;
在所述检测结果指示检测到障碍物的条件下,在所述障碍物的属性指示允许上墙时,将所述障碍物作为所述墙面,以及确定接收到用于指示允许在所述墙面的表面进行移动的所述物理碰撞检测结果;
在所述检测结果指示未检测到障碍物的条件下,在所述碰撞体目标侧的前方选取一基准点,以所述基准点为起点,向所述虚拟角色的另一侧方向进行射线检测,以及获取基于所述射线检测返回的检测结果,根据所述检测结果确定所述墙面以及确定是否允许在所述墙面的表面进行移动,其中,所述另一侧是所述碰撞体的左侧或右侧中除所述目标侧外的一侧。
6.根据权利要求5所述的方法,其特征在于,所述根据所述检测结果确定所述墙面以及是否允许在所述墙面的表面进行移动,包括:
若所述检测结果指示检测到障碍物,则在所述障碍物的属性指示允许上墙时,将所述障碍物作为所述墙面,以及确定允许在所述墙面的表面进行移动;
若所述检测结果指示未检测到障碍物,则基于所述碰撞体向所述虚拟角色的另一侧进行射线检测,以及获取基于所述射线检测返回的检测结果,根据所述检测结果确定是否在所述碰撞体的另一侧后方选取一基准点向所述虚拟角色朝向的方向进行射线检测,并获取基于所述射线检测返回的检测结果,根据所述检测结果确定是否在所述碰撞体的另一侧的前方选取一基准点在所述虚拟角色的所述目标侧方向进行射线检测,进而确定所述墙面以及确定是否允许在所述墙面的表面进行移动。
7.根据权利要求1或2所述的方法,其特征在于,所述确定所述虚拟角色的跳跃状态,包括:
基于所述虚拟角色的碰撞体进行射线检测,检测所述虚拟角色当前所处位置的前方是否存在所述墙面的墙面;
若基于射线检测确定所述虚拟角色当前所处位置的前方存在所述墙面的墙面,则控制所述虚拟角色落在所述墙面上,以及控制所述虚拟角色继续紧贴所述墙面移动。
8.根据权利要求1或2所述的方法,其特征在于,所述确定所述虚拟角色的跳跃状态,包括:
基于所述虚拟角色的碰撞体进行射线检测,检测所述虚拟角色当前所处位置的前方是否存在障碍物;
若基于射线检测确定所述虚拟角色当前所处位置的前方存在障碍物,则在所述障碍物的属性指示允许上墙时,控制所述虚拟角色落在所述障碍物上,以及控制所述虚拟角色紧贴所述障碍物移动。
9.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在控制所述虚拟角色紧贴所述墙面移动的同时,持续以所述虚拟角色的碰撞体的顶部为起点,向所述虚拟角色的前方进行射线检测,并获取基于所述射线检测返回的检测结果;
在所述检测结果指示不存在障碍物的条件下,以所述虚拟角色的碰撞体顶部上方半高的位置为起点,向所述虚拟角色前方的预设距离内进行射线检测,并获取基于所述射线检测返回的检测结果,其中,所述预设距离的取值等于所述碰撞体半径的二倍;
若所述检测结果指示不存在障碍物,则确定所述虚拟角色的落脚点,并基于所述落脚点计算所述虚拟角色的目标位置,在所述目标位置控制所述虚拟角色进入翻越状态,以使所述虚拟角色翻越后落地。
10.根据权利要求9所述的方法,其特征在于,所述确定所述虚拟角色的落脚点,并基于所述落脚点计算所述虚拟角色的目标位置,在所述目标位置控制所述虚拟角色进入翻越状态,以使所述虚拟角色翻越后落地,包括:
在所述墙面的上方构建半径等于所述碰撞体半径的虚拟碰撞体,以所述虚拟碰撞体的底部为起点,竖直向下进行射线检测,以及获取基于所述射线检测返回的检测结果;
在所述检测结果指示存在地面且所述地面的属性指示允许站立的条件下,将所述射线检测的与所述地面的触碰点作为所述落脚点;
确定预设偏移距离,以所述落脚点为起点,向正上方移动所述预设偏移距离,得到所述目标位置,所述预设偏移距离的取值等于所述碰撞体高度的二分之一;
控制所述虚拟角色向所述目标位置进行移动,以及持续检测所述虚拟角色与所述目标位置之间是否存在障碍物;
若所述虚拟角色与所述目标位置之间不存在障碍物,则在所述虚拟角色当前所处位置与所述目标位置之间的距离小于距离阈值的条件下,控制所述虚拟角色进入翻越状态,以使所述虚拟角色翻越后落地。
11.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在控制所述虚拟角色紧贴所述墙面移动以及控制所述虚拟角色执行跳跃操作的过程中,持续检测所述虚拟角色的脚下状态,以及根据所述脚下状态控制所述虚拟角色继续处于所述墙面移动状态或结束所述墙面移动状态返回至地面。
12.根据权利要求11所述的方法,其特征在于,所述持续检测所述虚拟角色的脚下状态,以及根据所述脚下状态控制所述虚拟角色继续处于所述墙面移动状态或结束所述墙面移动状态返回至地面,包括:
在所述碰撞体的后方确定一检测点,以所述检测点为起点,向所述碰撞体下方的第二距离内进行射线检测,并获取基于所述射线检测返回的检测结果,其中,所述第二距离的取值等于预设倍数的碰撞体高度;
若所述检测结果指示存在障碍物且所述障碍物的属性指示所述障碍物允许行走,则获取所述检测结果携带的法线向量值,计算所述法线向量值与世界坐标系的纵轴之间的夹角;
在所述夹角小于预设角度的条件下,控制所述虚拟角色离开所述墙面,以及控制所述虚拟角色结束所述墙面移动状态返回至地面;
其中,若所述检测结果指示不存在障碍物或所述夹角大于等于所述预设角度,则控制所述虚拟角色继续紧贴所述墙面移动。
13.根据权利要求11所述的方法,其特征在于,所述持续检测所述虚拟角色的脚下状态,以及根据所述脚下状态控制所述虚拟角色继续处于所述墙面移动状态或结束所述墙面移动状态返回至地面,包括:
以所述虚拟角色的碰撞体为起点,向所述虚拟角色当前朝向的方向进行射线检测,以及获取基于所述射线检测返回的检测结果;
若所述检测结果指示与所述碰撞体之间的距离等于预设距离的位置不存在障碍物,则获取所述虚拟角色当前所处状态,其中,所述预设距离的取值等于所述碰撞体半径的二倍;
在所述虚拟角色当前所处状态为跳跃状态的条件下,在检测到所述跳跃状态结束时,控制所述虚拟角色结束所述墙面移动状态返回至地面;
在所述虚拟角色当前所处状态为奔跑状态的条件下,控制所述虚拟角色返回地面进行奔跑移动。
14.一种角色的移动控制装置,其特征在于,包括:
控制模块,用于在检测到虚拟角色处于墙面移动状态的条件下,根据所述虚拟角色与墙面的物理碰撞检测结果以及第一移动控制指令,控制所述虚拟角色紧贴所述墙面移动,所述第一移动控制指令用以控制所述虚拟角色在墙面移动;
确定模块,用于在检测到所述虚拟角色处于跳跃状态的条件下,根据第二移动控制指令,以及所述虚拟角色和所述第二移动控制指令确定的所述虚拟角色移动方向墙面的物理碰撞检测结果,确定所述虚拟角色的跳跃状态,所述第二移动控制指令用以控制所述虚拟角色在墙面跳跃,所述跳跃状态用于控制虚拟角色执行跳跃动作,所述跳跃状态包括跨墙跳、反墙跳中的至少一项。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310416945.0A CN116421975A (zh) | 2023-04-18 | 2023-04-18 | 角色的移动控制方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310416945.0A CN116421975A (zh) | 2023-04-18 | 2023-04-18 | 角色的移动控制方法、装置、计算机设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116421975A true CN116421975A (zh) | 2023-07-14 |
Family
ID=87092402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310416945.0A Pending CN116421975A (zh) | 2023-04-18 | 2023-04-18 | 角色的移动控制方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116421975A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117788701A (zh) * | 2023-12-22 | 2024-03-29 | 航天万源云数据河北有限公司 | 模型加载中防碰撞检测方法、装置、设备及存储介质 |
-
2023
- 2023-04-18 CN CN202310416945.0A patent/CN116421975A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117788701A (zh) * | 2023-12-22 | 2024-03-29 | 航天万源云数据河北有限公司 | 模型加载中防碰撞检测方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5157329B2 (ja) | ゲーム装置 | |
WO2022063177A1 (zh) | 一种虚拟摄像机的控制方法及装置、设备 | |
JP6077523B2 (ja) | 手動およびカメラ・ベースのアバター制御 | |
US7775882B2 (en) | Game apparatus for changing a visual point position of a virtual camera in conjunction with an attack by and enemy character | |
CN109550241B (zh) | 一种单摇杆控制方法和系统 | |
CN108355353B (zh) | 信息处理方法及装置、存储介质、电子设备 | |
CN108654085B (zh) | 游戏虚拟对象控制方法及装置、电子设备、存储介质 | |
JP4792878B2 (ja) | 対戦ビデオゲーム制御プログラム | |
JP6438198B2 (ja) | プログラム及びゲーム装置 | |
CN110732135B (zh) | 虚拟场景显示方法、装置、电子设备及存储介质 | |
JP7482256B2 (ja) | 仮想シーンにおける状態切り替え方法、装置、機器及びコンピュータプログラム | |
CN111729311B (zh) | 攀爬跳跃方法、装置、计算机设备及计算机可读存储介质 | |
JP2003334382A (ja) | ゲーム装置、画像処理装置及び画像処理方法 | |
JPH08305891A (ja) | 画像処理装置および画像処理方法 | |
JP7394872B2 (ja) | 仮想シーンにおける仮想オブジェクト制御方法、装置、機器及びコンピュータプログラム | |
JP2010068872A (ja) | プログラム、情報記憶媒体及びゲーム装置 | |
CN111714892A (zh) | 游戏寻路方法及装置、存储介质、计算机设备 | |
CN116421975A (zh) | 角色的移动控制方法、装置、计算机设备及可读存储介质 | |
WO2022156628A1 (zh) | 关卡画面的显示方法、装置、设备及存储介质 | |
JP2006320419A (ja) | ゲーム装置及びプログラム | |
CN112316429A (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
JP7020926B2 (ja) | プログラム、画像処理方法、及び画像処理装置 | |
US20240359096A1 (en) | Selective indication of off-screen object presence | |
JP2020163210A (ja) | 情報処理方法、装置、及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
KR101977964B1 (ko) | 가상의 크리켓 경기를 제어하는 제어 장치, 제어 방법 및 컴퓨터 프로그램 |
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 |