CN110585711A - 虚拟飞行器的控制方法、装置、终端及存储介质 - Google Patents
虚拟飞行器的控制方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110585711A CN110585711A CN201910864466.9A CN201910864466A CN110585711A CN 110585711 A CN110585711 A CN 110585711A CN 201910864466 A CN201910864466 A CN 201910864466A CN 110585711 A CN110585711 A CN 110585711A
- Authority
- CN
- China
- Prior art keywords
- moment
- virtual aircraft
- virtual
- aircraft
- swing
- 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
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/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
-
- 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/80—Special adaptations for executing a specific game genre or game mode
- A63F13/803—Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
-
- 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
-
- 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/80—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 specially adapted for executing a specific type of game
- A63F2300/8017—Driving on land or water; Flying
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种虚拟飞行器的控制方法、装置、终端及存储介质,属于计算机和互联网技术领域,所述方法包括:显示用户界面,用户界面中包括位于虚拟环境中的虚拟飞行器;当虚拟飞行器在虚拟环境中飞行的过程中,向虚拟飞行器施加用于控制虚拟飞行器摆动的力矩;根据力矩计算虚拟飞行器的姿态参数;按照姿态参数控制虚拟飞行器进行飞行。本申请实施例提供的技术方案,通过给虚拟飞行器施加一定的力矩,并根据该力矩计算虚拟飞行器的姿态参数,从而根据该姿态参数控制虚拟飞行器进行飞行,达到了使用物理力矩控制虚拟飞行器的飞行,使得虚拟飞行器的飞行表现更接近真实物理世界的飞行器的飞行表现,从而提升了对于虚拟飞行器的界面展现效果。
Description
技术领域
本申请实施例涉及计算机和互联网技术领域,特别涉及一种虚拟飞行器的控制方法、装置、终端及存储介质。
背景技术
目前,随着游戏的内容和功能的逐步丰富,游戏中出现了具有飞行功能的虚拟飞行器。
在相关技术中,通过游戏引擎中自带的动画系统,可以在虚拟飞行器的起飞、降落及稳定飞行阶段播放相应的动画,以此表现出虚拟飞行器在各个阶段的动态效果。
然而,以动画的形式展现虚拟飞行器的动态效果,会导致虚拟飞行器的表现较为生硬,难以模拟真实物理世界中飞行器的飞行效果。
发明内容
本申请实施例提供了一种虚拟飞行器的控制方法、装置、终端及存储介质,可用于解决相关技术中虚拟飞行器的表现较为生硬,难以模拟真实物理世界中飞行器的飞行效果的问题。所述技术方案如下:
一方面,本申请实施例提供了一种虚拟飞行器的控制方法,所述方法包括:
显示用户界面,所述用户界面中包括位于虚拟环境中的虚拟飞行器;
当所述虚拟飞行器在所述虚拟环境中飞行的过程中,向所述虚拟飞行器施加用于控制所述虚拟飞行器摆动的力矩;
根据所述力矩计算所述虚拟飞行器的姿态参数;
按照所述姿态参数控制所述虚拟飞行器进行飞行。
另一方面,本申请实施例提供了一种虚拟飞行器的控制装置,所述装置包括:
界面显示模块,用于显示用户界面,所述用户界面中包括位于虚拟环境中的虚拟飞行器;
力矩施加模块,用于当所述虚拟飞行器在所述虚拟环境中飞行的过程中,向所述虚拟飞行器施加用于控制所述虚拟飞行器摆动的力矩;
参数计算模块,用于根据所述力矩计算所述虚拟飞行器的姿态参数;
飞行控制模块,用于按照所述姿态参数控制所述虚拟飞行器进行飞行。
再一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述虚拟飞行器的控制方法。
又一方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述虚拟飞行器的控制方法。
还一方面,提供了一种计算机程序产品,当所述计算机程序产品在终端上运行时,使得终端执行上述虚拟飞行器的控制方法。
本申请实施例提供的技术方案,通过给虚拟飞行器施加一定的力矩,并根据该力矩计算虚拟飞行器的姿态参数,从而根据该姿态参数控制虚拟飞行器进行飞行,达到了使用物理力矩控制虚拟飞行器的飞行,使得虚拟飞行器的飞行表现更接近真实物理世界的飞行器的飞行表现,从而提升了对于虚拟飞行器的界面展现效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的终端的结构示意图;
图3是本申请一个实施例提供的虚拟飞行器的控制方法的流程图;
图4是本申请一个实施例提供的用户界面的示意图;
图5是本申请一个实施例提供的给虚拟飞行器施加力矩的示意图;
图6是本申请一个实施例提供的虚拟飞行器的角速度变化的示意图;
图7是本申请一个实施例提供的虚拟飞行器的角度变化的示意图;
图8是本申请另一个实施例提供的虚拟飞行器的控制方法的流程图;
图9是本申请一个实施例提供的虚拟飞行器的控制装置的框图;
图10是本申请一个实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以包括:终端10和服务器20。
终端10可以是诸如手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC(Personal Computer,个人计算机)等便携式电子设备。终端10中可以安装应用程序(如游戏应用程序)的客户端。
在本申请实施例中,所述应用程序可以是任何能够提供虚拟环境,以供用户代入和操作的虚拟角色在该虚拟环境中进行活动的应用程序。典型地,该应用程序为游戏应用程序,如BR(Battle Royale,大逃杀生存)游戏、TPS(Third-Personal Shooting Game,第三人称射击游戏)、FPS(First-person shooting game,第一人称射击游戏)、MOBA(Multiplayer Online Battle Arena,多人在线战术竞技)游戏、多人枪战类生存游戏,等等。当然,除了游戏应用程序之外,其它类型的应用程序中也可以向用户展示虚拟对象,并给虚拟对象提供相应的功能。例如,VR(Virtual Reality,虚拟现实)类应用程序、AR(Augmented Reality,增强现实)类应用程序、三维地图程序、军事仿真程序、社交类应用程序、互动娱乐类应用程序等,本申请实施例对此不作限定。另外,对于不同的应用程序来说,其所提供的虚拟对象的形态也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。
其中,上述虚拟环境是应用程序(如游戏应用程序)的客户端在终端上运行时显示(或提供)的场景,该虚拟环境是指营造出的供虚拟对象进行活动(如游戏竞技)的场景,如虚拟房屋、虚拟岛屿、虚拟地图等。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境,也可以是2.5维虚拟环境,或者是三维虚拟环境,本申请实施例对此不作限定。可选地,在3D的虚拟环境中,存在3D的坐标轴,该3D坐标轴中包含X轴、Y轴和Z轴。其中,X轴、Y轴与虚拟环境中的水平面平行,Z轴与虚拟环境中的水平面垂直,且X轴、Y轴、Z轴三者之间任意两者的夹角为直角。
上述虚拟对象是指用户帐号在应用程序中控制的虚拟角色。以应用程序为游戏应用程序为例,虚拟对象是指用户帐号在游戏应用程序中控制的游戏角色。虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。虚拟对象可以三维形式展示,也可以二维形式展示,本申请实施例对此不作限定。可选地,当虚拟环境为三维虚拟环境时,虚拟对象是基于动画骨骼技术创建的三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。
服务器20用于为终端10中的应用程序的客户端提供后台服务。例如,服务器20可以是上述应用程序的后台服务器。服务器20可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。可选地,服务器20同时为多个终端10中的应用程序提供后台服务。
终端10和服务器20之间可通过网络30进行互相通信。该网络30可以是有线网络,也可以是无线网络。
在本申请方法实施例中,各步骤的执行主体可以是终端,如终端中运行的上述应用程序的客户端。在一些实施例中,上述应用程序是基于三维的虚拟环境引擎开发的应用程序,比如该虚拟环境引擎是Unity引擎,该虚拟环境引擎能够构建三维的虚拟环境、虚拟对象和虚拟道具等,给用户带来更加沉浸式的游戏体验。
请参考图2,其示出了本申请一个实施例提供的终端的结构示意图。该终端10可以包括:主板110、外部输出/输入设备120、存储器130、外部接口140以及电源160。
其中,主板110中集成有处理器和控制器等处理元件。
外部输出/输入设备120可以包括显示组件(比如显示屏)、声音播放组件(比如扬声器)、声音采集组件(比如麦克风)、鼠标、键盘以及各类按键等。
存储器130中存储有程序代码和数据。
外部接口140可以包括耳机接口、充电接口以及数据接口等。
可选地,当该终端为移动终端时,该终端还包括触控系统150,触控系统150可以集成在外部输出/输入设备120的显示组件或者按键中,触控系统150用于检测用户在显示组件或者按键上执行的触控操作。
电源160用于对终端10中的其它各个部件进行供电。
在本申请实施例中,主板110中的处理器可以通过执行或者调用存储器中存储的程序代码和数据生成用户界面(如游戏界面),并将生成的用户界面(如游戏界面)通过外部输出/输入设备120进行展示。在展示用户界面(如游戏界面)的过程中,可以通过外部输出/输入设备120或触控系统150检测用户与用户界面(如游戏界面)进行交互时执行的触控操作,并对该触控操作进行响应。
请参考图3,其示出了本申请一个实施例提供的虚拟飞行器的控制方法的流程图。该方法可应用于上文介绍的终端中,如应用于终端的应用程序(如射击类游戏应用程序)的客户端中。该方法可以包括如下几个步骤(301~304):
步骤301,显示用户界面,用户界面中包括位于虚拟环境中的虚拟飞行器。
以射击类游戏应用程序为例,用户界面可以是游戏对局的显示界面,该用户界面用于向用户呈现游戏对局的虚拟环境,如该用户界面中可以包括虚拟环境中的元素,如虚拟建筑、虚拟道具、虚拟对象等。可选地,该用户界面中还包括一些操作控件,如按钮、滑块、图标等,以供用户进行操作。
本申请实施例中,用户界面中包括位于虚拟环境中的虚拟飞行器。虚拟飞行器是指用于辅助虚拟对象进行飞行的道具,如虚拟飞机、虚拟直升机等。客户端可以控制虚拟飞行器离开虚拟环境的地面进行飞行,并可以根据操作信号的不同,控制虚拟飞行器进行一些必要的飞行表现,如起飞、上升、下降、降落等表现。可选地,上述用户界面中包括一些操作控件,如按钮、滑块、图标等,以便于用户通过使用操作控件,向客户端发送操作信号来控制虚拟飞行器的飞行表现。另外,虚拟飞行器也可以作为载具使用,用户可以控制虚拟对象进入虚拟飞行器,由虚拟飞行器带着虚拟对象进行飞行。
例如,如图4所示,以虚拟飞行器是虚拟直升机为例,对用户界面进行介绍。在用户界面40中,显示有虚拟飞行器41、虚拟摇杆控件42、上升按钮43和下降按钮44。用户点击虚拟摇杆控件42可以控制虚拟飞行器41在水平面上的飞行方向;用户点击上升按钮43或下降按钮44可以控制虚拟飞行器41在竖直方向上的飞行高度,其中,竖直方向是指与水平面垂直的方向。
可选地,用户界面包括第一视图层和第二视图层;其中,第一视图层的显示层级高于第二视图层的显示层级。操作控件位于第一视图层;用于显示游戏对局的虚拟环境的游戏画面位于第二视图层。当然,第一视图层中除了包括上文介绍的用于对虚拟飞行器的飞行进行控制的操作控件之外,还可以包括其它操作控件,如用于对虚拟对象的姿态进行控制的操作控件、用于对虚拟对象装配的虚拟装备进行控制的操作控件,等等,本申请实施例对此不作限定。
步骤302,当虚拟飞行器在虚拟环境中飞行的过程中,向虚拟飞行器施加用于控制虚拟飞行器摆动的力矩。
力矩是指作用力使物体绕着转动轴或支点转动的趋向。本申请实施例中,向虚拟飞行器施加的力矩是指作用力使虚拟飞行器绕着转动轴转动的趋向,当力矩的方向位于水平方向时,虚拟飞行器在竖直方向上摆动;当力矩的方向位于竖直方向时,虚拟飞行器在水平方向上摆动。可选地,为了模拟气流的阻力,使得虚拟飞行器的摆动与真实飞行器的摆动一致,本申请实施例中,力矩的方向位于水平方向。
在一种可能的实施方式中,为了使得虚拟飞行器达到上下左右摆动的效果,上述力矩包括第一力矩和第二力矩,第一力矩的方向和第二力矩的方向垂直,且第一力矩的方向和第二力矩的方向均位于水平方向;其中,第一力矩用于控制虚拟飞行器的机身绕着第一力矩的方向所在的轴进行摆动;第二力矩用于控制虚拟飞行器的机身绕着第二力矩的方向所在的轴进行摆动。需要说明的一点是,本申请实施例中第一力矩与第二力矩可以分别施加,也可以同时施加。且在本申请实施例中,第一力矩与第二力矩既可以是两个单独的力矩,也可以是一个合力矩的分解,即实际对虚拟飞行器施加的力矩是第一力矩与第二力矩的合力矩。
例如,如图5所示,以水平方向为x-y平面,以竖直方向为z轴所在的方向,以虚拟飞行器51的机头和机尾的连线为x轴,以虚拟飞行器51的重心为原点,建立三维直角坐标系xyz。若向虚拟飞行器51施加y轴方向的力矩,则虚拟飞行器51以原点为支点,绕着y轴摆动,即虚拟飞行器51在x-z平面内摆动;若向虚拟飞行器51施加x轴方向的力矩,则虚拟飞行器51以原点为支点,绕着x轴摆动,即虚拟飞行器51在y-z平面内摆动。例如,在某一时刻,施加给虚拟飞行器的力矩分为两个,一个是水平向右的力矩,根据右手定则,该力矩能够让虚拟飞行器51相对于y轴前后两端上下摆动;另一个是水平向前的力矩,根据右手定则,该力矩能够让虚拟飞行器51相对于x轴左右两端上下摆动。本申请实施例中,水平向前或水平向右均是相对于虚拟飞行器的方向而言的,即,水平向前所指示的方向即为虚拟飞行器的机头所朝向的方向,水平向右所指示的方向即为虚拟飞行器的右侧机翼所朝向的方向。
可选地,为了使得虚拟飞行器达到来回摆动的效果,且模拟出不同大小的气流对飞行的影响,上述力矩随时间呈正弦函数变化。当然,上述力矩随时间也可以呈余弦函数变化,这是本领域技术人员在本申请公开内容的基础上易于思及的内容,都属于本申请的保护范围之内。
可选地,本申请实施例中,在从虚拟飞行器的起飞时刻至预设时刻,上述力矩对应的摆动幅度为第一幅度;在从预设时刻至虚拟飞行器的落地时刻,上述力矩对应的摆动幅度为第二幅度;其中,第一幅度大于第二幅度。预设时刻用于指示虚拟飞行器稳定飞行的起始时刻,客户端可以预先设置预设时刻,本申请实施例对此不作限定。示例性地,当上述力矩为正弦函数时,上述力矩对应的摆动幅度即为正弦函数的幅度。通过这种设置,在起飞阶段,虚拟飞行器会剧烈摆动,一段时间后进入稳态飞行状态后,虚拟飞行器会小幅摆动,从而达到模拟真实气流对虚拟飞行器飞行带来的影响。
步骤303,根据力矩计算虚拟飞行器的姿态参数。
姿态参数是指控制虚拟飞行器飞行姿态的参数,如摆动角度等,本申请实施例中,摆动角度用于指示虚拟飞行器所在的平面偏离水平方向的角度。本申请实施例对姿态参数的具体内容不作限定,实际应用中可以根据虚拟飞行器所要达到的真实效果来具体确定姿态参数的内容。
步骤304,按照姿态参数控制虚拟飞行器进行飞行。
客户端计算出姿态参数后,即可按照该姿态参数控制虚拟飞行器进行飞行。例如,姿态参数包括摆动角度时,当客户端计算出摆动角度为左右两端上下摆动30度,前后两端上下摆动40度,则控制虚拟飞行器左右两端上下摆动30度,前后两端上下摆动45度。
综上所述,本申请实施例提供的技术方案,通过给虚拟飞行器施加一定的力矩,并根据该力矩计算虚拟飞行器的姿态参数,从而根据该姿态参数控制虚拟飞行器进行飞行,达到了使用物理力矩控制虚拟飞行器的飞行,使得虚拟飞行器的飞行表现更接近真实物理世界的飞行器的飞行表现,从而提升了对于虚拟飞行器的界面展现效果。
并且,本申请实施例中,力矩是随时间呈正弦函数变化的,从而模拟出了空气气流对虚拟飞行器的飞行影响,使得虚拟飞行器的飞行表现更为真实。
另外,本申请实施例提供的技术方案中,虚拟飞行器的起飞阶段至稳定飞行阶段的力矩对应的摆动幅度,与稳定飞行阶段至落地阶段的力矩对应的摆动幅度是不一样的,从而使得虚拟飞行器从起飞至稳定飞行之间的过渡更为自然。
下面以虚拟飞行器起飞后受到两个不同方向的附加力矩为例,说明力矩对该虚拟飞行器飞行姿态的影响。假设在某一时刻,施加给虚拟飞行器的力矩分为两个,一个是水平向右的力矩M1,根据右手定则,该力矩能够让虚拟飞行器前后两端上下摆动;另一个是水平向前的力矩M2,根据右手定则,该力矩能够让虚拟飞行器左右两端上下摆动。下面仅以虚拟飞行器受到水平向右的力矩M1为例,说明虚拟飞行器起飞后的角速度和角度的变化,本领域技术人员在了解本申请的技术方案后,将很容易想到虚拟飞行器受到水平向前的力矩M2时的角速度和角度的变化,本申请实施例对此不作限定。虚拟飞行器的实际飞行过程中摆动效果是水平向右的力矩M1和水平向前的力矩M2的共同作用结果。
在一种可能的实施方式中,上述步骤303,包括如下几个子步骤:
1、根据力矩、虚拟飞行器受到的阻力矩,以及虚拟飞行器的转动惯量,计算虚拟飞行器的角加速度;
可选地,为了更加真实地模拟虚拟飞行器在飞行过程中受到的气流大小,本申请实施例中,力矩M1是随时间变化的物理量,假设力矩M1为正弦函数,且其满足:
因为空气气流的存在,在虚拟飞行器摆动过程中,会受到一个与摆动角度成正比,与摆动方向的合力矩相反的阻力矩Mf,且Mf=kθt,其中,θt为摆动角度,k为阻力系数,其可以是一个预先设定的常数。
由此,可以计算出任意时刻虚拟飞行器的角加速度αt为:
其中,t为虚拟飞行器以起飞时刻为参考时的相对飞行时刻,θt为虚拟飞行器在t时刻的摆动角度,I为转动惯量,3000为虚拟飞行器从起飞时刻至稳定飞行时刻的摆动幅度,200为虚拟飞行器从稳定飞行时刻至落地时刻的摆动幅度,2为虚拟飞行器以起飞时刻为参考时的达到稳定飞行的相对时刻。需要说明的一点是,本申请实施例中,3000、200和2均是示例性地说明,实际可以根据虚拟飞行器的自身情况和气流情况进行不同的设定,本申请实施例对此不作限定。
2、根据角加速度、虚拟飞行器在上一个时间戳的角速度,以及相邻两个时间戳之间的时间间隔,计算虚拟飞行器在当前时间戳的角速度;
假设虚拟飞行器在起飞时刻的角速度为ω0,且虚拟飞行器在t时刻的角速度为ωt,则ωt为:
本申请实施例中,不同的帧对应的虚拟场景之间的切换存在一定的帧率限制,因此虚拟飞行器的角速度变化并不是连续变化,而应该是离散变换。假设虚拟飞行器在上一帧,即上一个时间戳的角速度为ωt-1,虚拟飞行器在当前帧,即当前时间戳的角速度为ωt,则ωt为:
ωt=ωt-1+αΔt;
其中,Δt为相邻两个时间戳之间的时间间隔。
3、根据虚拟飞行器在当前时间戳的角速度、虚拟飞行器在上一个时间戳的摆动角度,以及相邻两个时间戳之间的时间间隔,计算虚拟飞行器在当前时间戳的摆动角度;其中,姿态参数包括摆动角度。
假设虚拟飞行器在起飞时刻的摆动角度为θ0,且虚拟飞行器在t时刻的摆动角度为θt,则θt为:
同上,本申请实施例中,因为虚拟场景是通过动画来呈现的,动画的替换存在一定的帧率限制,因此虚拟飞行器的摆动角度变化也不是连续变化,而应该是离散变换。假设虚拟飞行器在上一帧,即上一个时间戳的摆动角度为θt-1,虚拟飞行器在当前帧,即当前时间戳的摆动角度为θt,则θt为:
θt=θt-1+wtΔt;
其中,Δt为相邻两个时间戳之间的时间间隔。
本申请实施例中,帧率与相邻两个时间戳之间的时间间隔呈倒数关系。例如,当帧率为30赫兹时,相连两个时间戳之间的时间间隔为0.0333秒,假设虚拟飞行器的转动惯量I、力矩M1和阻力矩Mf分别为:
I=1000N·m·s2;
Mf=6000θt;
由此,虚拟飞行器在起飞后,角速度变化曲线如图6所示,角度变化曲线如图7所示。图6和图7的纵坐标分别是角速度和摆动角度的大小,横坐标是动画的帧数。从图6和图7中可以看出虚拟飞行器在第100帧之前,即虚拟飞行器从起飞至起飞后3秒之间,角速度和摆动角度都是逐渐变小至稳定的,也即虚拟飞行器起飞时刻的摆动幅度较大,随后摆动幅度逐渐缩小直至稳定。
需要说明的一点是,本申请实施例中为了举例说明,上一个时间戳为上一帧,当前时间戳为当前帧,但是在实际中,上一个时间戳对应的帧与当前时间戳对应的帧不一定是相邻的两帧,即上一个时间戳对应的帧与当前时间戳对应的帧之间可以相隔n帧,n为正整数。
综上所述,本申请实施例提供的技术方案,通过根据虚拟飞行器受到的力矩、阻力矩及虚拟飞行器的转动惯量,计算出虚拟飞行器的角加速度,然后根据角加速度和上一个时间戳的角速度和摆动角度,计算当前时间戳的角速度和摆动角度,从而计算出控制虚拟飞行器飞行的姿态参数,达到了使用物理力矩控制虚拟飞行器的飞行表现的效果,进一步提升了虚拟飞行器飞行表现的真实性和生动性。
在一种可能的实施方式中,如图8所示,上述虚拟飞行器的控制方法,还可以包括如下几个步骤(801~806):
步骤801,用户执行用于控制虚拟飞行器起飞的操作;
步骤802,客户端接收起飞操作信号,并控制虚拟飞行器起飞;
步骤803,客户端给虚拟飞行器施加水平向右的力矩,此时,虚拟飞行器表现为前后两端上下摆动;
步骤804,客户端给虚拟飞行器施加水平向前的力矩,此时,虚拟飞行器表现为左右两端上下摆动;
步骤805,用户执行用于控制虚拟飞行器降落的操作;
步骤806,客户端接收降落操作信号,并控制虚拟飞行器降落,即停止施加所有的力矩,此时,虚拟飞行器表现为落地。
需要说明的一点是,本申请实施例中,步骤803和步骤804既可以同时执行,也可以分开执行。例如,客户端既可以同时给虚拟飞行器施加水平向右的力矩和水平向前的力矩,也可以分别给虚拟飞行器施加水平向右的力矩和水平向前的力矩,本申请实施例对此不作限定。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图9,其示出了本申请一个实施例提供的虚拟飞行器的控制装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是终端,也可以设置在终端中。该装置900可以包括:界面显示模块910、力矩施加模块920、参数计算模块930和飞行控制模块940。
界面显示模块910,用于显示用户界面,所述用户界面中包括位于虚拟环境中的虚拟飞行器。
力矩施加模块920,用于当所述虚拟飞行器在所述虚拟环境中飞行的过程中,向所述虚拟飞行器施加用于控制所述虚拟飞行器摆动的力矩。
参数计算模块930,用于根据所述力矩计算所述虚拟飞行器的姿态参数。
飞行控制模块940,用于按照所述姿态参数控制所述虚拟飞行器进行飞行。
可选地,所述力矩的方向位于水平方向。
可选地,所述力矩随时间呈正弦函数变化。
可选地,在从所述虚拟飞行器的起飞时刻至预设时刻,所述力矩对应的摆动幅度为第一幅度;在从所述预设时刻至所述虚拟飞行器的落地时刻,所述力矩对应的摆动幅度为第二幅度;其中,所述第一幅度大于所述第二幅度。
可选地,所述力矩包括第一力矩和第二力矩,所述第一力矩的方向和所述第二力矩的方向垂直,且所述第一力矩的方向和所述第二力矩的方向均位于水平方向;其中,所述第一力矩用于控制所述虚拟飞行器的机身绕着所述第一力矩的方向所在的轴进行摆动;所述第二力矩用于控制所述虚拟飞行器的机身绕着所述第二力矩的方向所在的轴进行摆动。
可选地,所述参数计算模块930用于:根据所述力矩、所述虚拟飞行器受到的阻力矩,以及所述虚拟飞行器的转动惯量,计算所述虚拟飞行器的角加速度;根据所述角加速度、所述虚拟飞行器在上一个时间戳的角速度,以及相邻两个时间戳之间的时间间隔,计算所述虚拟飞行器在当前时间戳的角速度;根据所述虚拟飞行器在当前时间戳的角速度、所述虚拟飞行器在所述上一个时间戳的摆动角度,以及所述相邻两个时间戳之间的时间间隔,计算所述虚拟飞行器在所述当前时间戳的摆动角度;其中,所述姿态参数包括所述摆动角度。
综上所述,本申请实施例提供的技术方案,通过给虚拟飞行器施加一定的力矩,并根据该力矩计算虚拟飞行器的姿态参数,从而根据该姿态参数控制虚拟飞行器进行飞行,达到了使用物理力矩控制虚拟飞行器的飞行,使得虚拟飞行器的飞行表现更接近真实物理世界的飞行器的飞行表现,从而提升了对于虚拟飞行器的界面展现效果。
并且,本申请实施例中,力矩是随时间呈正弦函数变化的,从而模拟出了空气气流对虚拟飞行器的飞行影响,使得虚拟飞行器的飞行表现更为真实。
另外,本申请实施例提供的技术方案中,虚拟飞行器的起飞阶段至稳定飞行阶段的力矩对应的摆动幅度,与稳定飞行阶段至落地阶段的力矩对应的摆动幅度是不一样的,从而使得虚拟飞行器从起飞至稳定飞行之间的过渡更为自然。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图10,其示出了本申请一个实施例提供的终端1000的结构框图。该终端1000可以是诸如计算机设备、手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备等电子设备。该终端用于实施上述实施例中提供的虚拟飞行器的控制方法。该终端可以是图1所示实施环境中的终端10。具体来讲:
通常,终端1000包括有:处理器1001和存储器1002。
处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个指令,至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集,且经配置以由一个或者一个以上处理器执行,以实现上述虚拟飞行器的控制方法。
在一些实施例中,终端1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、触摸显示屏1005、摄像头1006、音频电路1007、定位组件1008和电源1009中的至少一种。
本领域技术人员可以理解,图10中示出的结构并不构成对终端1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时以实现上述虚拟飞行器的控制方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。
在示例性实施例中,还提供一种计算机程序产品,当所述计算机程序产品在终端上运行时,使得终端执行上述虚拟飞行器的控制方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种虚拟飞行器的控制方法,其特征在于,所述方法包括:
显示用户界面,所述用户界面中包括位于虚拟环境中的虚拟飞行器;
当所述虚拟飞行器在所述虚拟环境中飞行的过程中,向所述虚拟飞行器施加用于控制所述虚拟飞行器摆动的力矩;
根据所述力矩计算所述虚拟飞行器的姿态参数;
按照所述姿态参数控制所述虚拟飞行器进行飞行。
2.根据权利要求1所述的方法,其特征在于,所述力矩的方向位于水平方向。
3.根据权利要求1所述的方法,其特征在于,所述力矩随时间呈正弦函数变化。
4.根据权利要求1所述的方法,其特征在于,
在从所述虚拟飞行器的起飞时刻至预设时刻,所述力矩对应的摆动幅度为第一幅度;
在从所述预设时刻至所述虚拟飞行器的落地时刻,所述力矩对应的摆动幅度为第二幅度;
其中,所述第一幅度大于所述第二幅度。
5.根据权利要求1所述的方法,其特征在于,所述力矩包括第一力矩和第二力矩,所述第一力矩的方向和所述第二力矩的方向垂直,且所述第一力矩的方向和所述第二力矩的方向均位于水平方向;
其中,所述第一力矩用于控制所述虚拟飞行器的机身绕着所述第一力矩的方向所在的轴进行摆动;所述第二力矩用于控制所述虚拟飞行器的机身绕着所述第二力矩的方向所在的轴进行摆动。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述力矩计算所述虚拟飞行器的姿态参数,包括:
根据所述力矩、所述虚拟飞行器受到的阻力矩,以及所述虚拟飞行器的转动惯量,计算所述虚拟飞行器的角加速度;
根据所述角加速度、所述虚拟飞行器在上一个时间戳的角速度,以及相邻两个时间戳之间的时间间隔,计算所述虚拟飞行器在当前时间戳的角速度;
根据所述虚拟飞行器在当前时间戳的角速度、所述虚拟飞行器在所述上一个时间戳的摆动角度,以及所述相邻两个时间戳之间的时间间隔,计算所述虚拟飞行器在所述当前时间戳的摆动角度;
其中,所述姿态参数包括所述摆动角度。
7.一种虚拟飞行器的控制装置,其特征在于,所述装置包括:
界面显示模块,用于显示用户界面,所述用户界面中包括位于虚拟环境中的虚拟飞行器;
力矩施加模块,用于当所述虚拟飞行器在所述虚拟环境中飞行的过程中,向所述虚拟飞行器施加用于控制所述虚拟飞行器摆动的力矩;
参数计算模块,用于根据所述力矩计算所述虚拟飞行器的姿态参数;
飞行控制模块,用于按照所述姿态参数控制所述虚拟飞行器进行飞行。
8.根据权利要求7所述的装置,其特征在于,所述力矩的方向位于水平方向。
9.根据权利要求7所述的装置,其特征在于,所述力矩随时间呈正弦函数变化。
10.根据权利要求7所述的装置,其特征在于,
在从所述虚拟飞行器的起飞时刻至预设时刻,所述力矩对应的摆动幅度为第一幅度;
在从所述预设时刻至所述虚拟飞行器的落地时刻,所述力矩对应的摆动幅度为第二幅度;
其中,所述第一幅度大于所述第二幅度。
11.根据权利要求7所述的装置,其特征在于,所述力矩包括第一力矩和第二力矩,所述第一力矩的方向和所述第二力矩的方向垂直,且所述第一力矩的方向和所述第二力矩的方向均位于水平方向;
其中,所述第一力矩用于控制所述虚拟飞行器的机身绕着所述第一力矩的方向所在的轴进行摆动;所述第二力矩用于控制所述虚拟飞行器的机身绕着所述第二力矩的方向所在的轴进行摆动。
12.根据权利要求7至11任一项所述的装置,其特征在于,所述参数计算模块,用于:
根据所述力矩、所述虚拟飞行器受到的阻力矩,以及所述虚拟飞行器的转动惯量,计算所述虚拟飞行器的角加速度;
根据所述角加速度、所述虚拟飞行器在上一个时间戳的角速度,以及相邻两个时间戳之间的时间间隔,计算所述虚拟飞行器在当前时间戳的角速度;
根据所述虚拟飞行器在当前时间戳的角速度、所述虚拟飞行器在所述上一个时间戳的摆动角度,以及所述相邻两个时间戳之间的时间间隔,计算所述虚拟飞行器在所述当前时间戳的摆动角度;
其中,所述姿态参数包括所述摆动角度。
13.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行,以实现如权利要求1至6任一项所述的虚拟飞行器的控制方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现如权利要求1至6任一项所述的虚拟飞行器的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910864466.9A CN110585711A (zh) | 2019-09-12 | 2019-09-12 | 虚拟飞行器的控制方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910864466.9A CN110585711A (zh) | 2019-09-12 | 2019-09-12 | 虚拟飞行器的控制方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110585711A true CN110585711A (zh) | 2019-12-20 |
Family
ID=68859479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910864466.9A Pending CN110585711A (zh) | 2019-09-12 | 2019-09-12 | 虚拟飞行器的控制方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110585711A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111569414A (zh) * | 2020-06-08 | 2020-08-25 | 浙江商汤科技开发有限公司 | 虚拟飞行器的飞行展示方法、装置、电子设备及存储介质 |
CN112807692A (zh) * | 2021-01-21 | 2021-05-18 | 网易(杭州)网络有限公司 | 游戏中的信息控制方法、装置和终端设备 |
CN113769385A (zh) * | 2021-09-17 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 一种虚拟对象的转移方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100066736A1 (en) * | 2008-09-16 | 2010-03-18 | Namco Bandai Games Inc. | Method, information storage medium, and game device |
CN107918400A (zh) * | 2017-11-14 | 2018-04-17 | 中国运载火箭技术研究院 | 一种空天飞行器在轨操作相对位置姿态联合控制方法 |
CN108496121A (zh) * | 2017-08-25 | 2018-09-04 | 深圳市大疆创新科技有限公司 | 无人机仿真飞行系统、方法、设备及机器可读存储介质 |
-
2019
- 2019-09-12 CN CN201910864466.9A patent/CN110585711A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100066736A1 (en) * | 2008-09-16 | 2010-03-18 | Namco Bandai Games Inc. | Method, information storage medium, and game device |
CN108496121A (zh) * | 2017-08-25 | 2018-09-04 | 深圳市大疆创新科技有限公司 | 无人机仿真飞行系统、方法、设备及机器可读存储介质 |
CN107918400A (zh) * | 2017-11-14 | 2018-04-17 | 中国运载火箭技术研究院 | 一种空天飞行器在轨操作相对位置姿态联合控制方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111569414A (zh) * | 2020-06-08 | 2020-08-25 | 浙江商汤科技开发有限公司 | 虚拟飞行器的飞行展示方法、装置、电子设备及存储介质 |
CN111569414B (zh) * | 2020-06-08 | 2024-03-29 | 浙江商汤科技开发有限公司 | 虚拟飞行器的飞行展示方法、装置、电子设备及存储介质 |
CN112807692A (zh) * | 2021-01-21 | 2021-05-18 | 网易(杭州)网络有限公司 | 游戏中的信息控制方法、装置和终端设备 |
CN113769385A (zh) * | 2021-09-17 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 一种虚拟对象的转移方法及相关装置 |
CN113769385B (zh) * | 2021-09-17 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 一种虚拟对象的转移方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740951B2 (en) | Foveal adaptation of particles and simulation models in a foveated rendering system | |
CN110559653B (zh) | 虚拟飞行器的控制方法、装置、终端及存储介质 | |
JP7355841B2 (ja) | 仮想キャラクタの現実間のクロスオーバを示すための方法及び非一時的なコンピュータ可読媒体 | |
CN104932677B (zh) | 互动式多驾乘者虚拟现实驾乘系统 | |
EP2527019B1 (en) | Sprite strip renderer | |
JP2021525911A (ja) | マルチサーバクラウド仮想現実(vr)ストリーミング | |
CN110585711A (zh) | 虚拟飞行器的控制方法、装置、终端及存储介质 | |
EP3634593B1 (en) | Optimized deferred lighting and foveal adaptation of particles and simulation models in a foveated rendering system | |
US8909506B2 (en) | Program, information storage medium, information processing system, and information processing method for controlling a movement of an object placed in a virtual space | |
US20050110789A1 (en) | Dynamic 2D imposters of 3D graphic objects | |
CN111672111A (zh) | 界面显示方法、装置、设备及存储介质 | |
US20160287989A1 (en) | Natural body interaction for mixed or virtual reality applications | |
CN111589114B (zh) | 虚拟对象的选择方法、装置、终端及存储介质 | |
CN113559518A (zh) | 虚拟模型的交互检测方法、装置、电子设备及存储介质 | |
CN111111195A (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
JP7547646B2 (ja) | 連絡先情報表示方法、装置、電子機器、及びコンピュータープログラム | |
CN115068929A (zh) | 游戏信息获取方法、装置、电子设备和存储介质 | |
US11978152B2 (en) | Computer-assisted graphical development tools | |
US12073511B2 (en) | Simulation of rigid bodies | |
Yazdani et al. | Adoption of VR influencing AI on 3D objects | |
WO2023246307A1 (zh) | 虚拟环境中的信息处理方法、装置、设备及程序产品 | |
JP2022188633A (ja) | 情報処理装置、プログラム、及びゲーム画像生成方法 | |
CN115738268A (zh) | 一种模拟无人机飞行机身回正控制方法及系统 | |
JP2001243499A (ja) | ゲームシステム及び情報記憶媒体 | |
CN115729402A (zh) | 一种对象显示方法、装置、电子设备及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40019478 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191220 |
|
RJ01 | Rejection of invention patent application after publication |