一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于虚拟引擎的载具平面移动控制方法和装置与流程

2021-10-09 12:04:00 来源:中国专利 TAG:虚拟 引擎 装置 平面 特别


1.本发明涉及虚拟引擎技术领域,特别是涉及一种基于虚拟引擎的载具平面移动控制方法、装置、计算机设备和存储介质。


背景技术:

2.虚拟引擎中的movement组件提供了一套可供普通角色自动寻径移动到目标点的moveto接口,然而针对载具类的移动操控,movement组件中所包含的vehiclemovement组件或者simplewheeledvehiclemovement组件均无法使得载具直接使用moveto接口移动至目标点,说明虚拟引擎本身并不具备载具自控移动功能。


技术实现要素:

3.本发明的目的在于克服现有技术的不足,提供了一种基于虚拟引擎的载具平面移动控制方法、装置、计算机设备和存储介质,能够在虚拟引擎中实现将载具类有序移动至给定的任意目标点这一功能。
4.为了解决上述中至少一个技术问题,本发明实施例提供了一种基于虚拟引擎的载具平面移动控制方法,所述方法包括:
5.构建一个moveto函数并定义其输入变量为目标点坐标信息以及设定载具当前状态为可移动,再利用所述moveto函数调用蓝图中的tick事件;
6.在所述tick事件中,基于所述目标点坐标信息和载具当前坐标信息获取载具朝向目标点的目标向量,再利用vectorlength函数计算出所述目标向量的长度值;
7.当所述长度值超过预设长度值时,获取载具的正前方向量同时结合所述目标向量进行再处理与向量求解运算,得到两个向量间的夹角值;
8.当所述夹角值超过预设角度值时,基于所述正前方向量和所述目标向量确定载具的待旋转角度,并计算出载具在当前帧的最大旋转角度;
9.当所述待旋转角度的绝对值大于等于所述最大旋转角度时,利用addactorlocalrotation函数控制载具按照所述最大旋转角度进行旋转,或者当所述待旋转角度的绝对值小于所述最大旋转角度时,利用setactorrotation函数控制载具按照所述待旋转角度进行旋转;
10.在载具执行完本体旋转之后,利用setdrivetorque函数驱动载具轮子按照既定的转矩功率朝向目标点继续前进。
11.优选地,所述基于所述目标点坐标信息和载具当前坐标信息获取载具朝向目标点的目标向量包括:
12.利用getactorlocation函数获取载具当前坐标信息,再将所述目标点坐标信息和所述载具当前坐标信息进行减运算,得到载具朝向目标点的目标向量。
13.优选地,所述获取载具的正前方向量同时结合所述目标向量进行再处理与向量求解运算,得到两个向量间的夹角值包括:
14.利用getactorforwardvector函数获取载具的正前方向量,再对所述目标向量和所述正前方向量依次进行z轴数据清零处理和归一化处理;
15.利用dot函数计算出处理后的目标向量和正前方向量之间的夹角余弦值,再利用degacos函数计算出所述夹角余弦值所对应的夹角值。
16.优选地,所述基于所述正前方向量和所述目标向量确定载具的待旋转角度包括:
17.利用cross函数计算出所述正前方向量和所述目标向量之间所关联的一个法向量,再将所述法向量与向量(0,0,1)进行一次点积运算;
18.当运算结果为正数时,将所述夹角值定义为载具的待旋转角度;或者,当运算结果为负数时,将所述夹角值的相反数定义为载具的待旋转角度。
19.优选地,所述计算出载具在当前帧的最大旋转角度包括:
20.利用getworlddaltatime函数获取当前帧时间,将既定的载具轮子旋转速度与所述当前帧时间进行乘运算,得到载具在当前帧的最大旋转角度。
21.优选地,所述方法还包括:
22.当所述长度值未超过预设长度值时,利用setbraketorque函数对载具轮子进行制动刹车,并更新载具当前状态为不可移动以使得载具保持停靠在目标点处。
23.优选地,所述方法还包括:
24.当所述夹角值未超过预设角度值时,跳转至利用setdrivetorque函数驱动载具轮子按照既定的转矩功率朝向目标点继续前进。
25.另外,本发明实施例还提供了一种基于虚拟引擎的载具平面移动控制装置,所述装置包括:
26.创建模块,用于构建一个moveto函数并定义其输入变量为目标点坐标信息以及设定载具当前状态为可移动,再利用所述moveto函数调用蓝图中的tick事件;
27.获取模块,用于在所述tick事件中,基于所述目标点坐标信息和载具当前坐标信息获取载具朝向目标点的目标向量,再利用vectorlength函数计算出所述目标向量的长度值;
28.第一计算模块,用于当所述长度值超过预设长度值时,获取载具的正前方向量同时结合所述目标向量进行再处理与向量求解运算,得到两个向量间的夹角值;
29.第二计算模块,用于当所述夹角值超过预设角度值时,基于所述正前方向量和所述目标向量确定载具的待旋转角度,并计算出载具在当前帧的最大旋转角度;
30.旋转控制模块,用于当所述待旋转角度的绝对值大于等于所述最大旋转角度时,利用addactorlocalrotation函数控制载具按照所述最大旋转角度进行旋转,或者当所述待旋转角度的绝对值小于所述最大旋转角度时,利用setactorrotation函数控制载具按照所述待旋转角度进行旋转;
31.移动控制模块,用于在载具执行完本体旋转之后,利用setdrivetorque函数驱动载具轮子按照既定的转矩功率朝向目标点继续前进。
32.另外,本发明实施例还提供了一种计算机设备,其包括:存储器、处理器及存储在存储器上并可在处理器上运行的应用程序,处理器执行应用程序时实现上述任一实施例方法的步骤。
33.另外,本发明实施例还提供了一种计算机可读存储介质,其上存储有应用程序,应
用程序被处理器执行时实现上述任一实施例方法的步骤。
34.在本发明实施例中,基于开发者使用一个moveto函数并已输入用户需要的目标点位置信息,通过在tick事件中调用各类相关的函数对载具当前位置进行移动路径分析,并以“判断距离一调整角度

驱动前行”的顺序对载具执行定时循环控制操作,由此可实现在虚拟引擎中将载具类有序移动至给定的任意目标点这一功能。
附图说明
35.图1是本发明实施例中的一种基于虚拟引擎的载具平面移动控制方法的流程示意图;
36.图2是本发明实施例中的一种基于虚拟引擎的载具平面移动控制装置的结构示意图;
37.图3是本发明实施例中的计算机设备的结构组成示意图。
具体实施方式
38.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
39.本发明实施例提供了一种基于虚拟引擎的载具平面移动控制方法,如图1所示,该方法包括以下步骤:
40.s101、构建一个moveto函数并定义其输入变量为目标点坐标信息以及设定载具当前状态为可移动,再利用所述moveto函数调用蓝图中的tick事件;
41.具体地,在定义虚拟引擎自带的moveto函数的输入变量为目标点坐标信息之后,需要将所述目标点坐标信息赋值给targetlocation变量进行保存,再将载具当前状态所关联的bmove变量设置为true以使得载具处于可移动状态。
42.s102、在所述tick事件中,基于所述目标点坐标信息和载具当前坐标信息获取载具朝向目标点的目标向量,再利用vectorlength函数计算出所述目标向量的长度值;
43.具体地,首先利用虚拟引擎自带的getactorlocation函数获取载具当前坐标信息并将其保存至location变量中,再将所述目标点坐标信息和所述载具当前坐标信息进行减运算,即调用所述targetlocation变量和所述location变量进行减运算,得到载具朝向目标点的目标向量targetvector;其次将所述目标向量targetvector导入虚拟引擎自带的vectorlength函数进行长度计算,由此获取载具当前到目标点的距离。
44.s103、当所述长度值超过预设长度值时,获取载具的正前方向量同时结合所述目标向量进行再处理与向量求解运算,得到两个向量间的夹角值;
45.具体地,首先确定一个预设长度值并将其赋值给mindistance变量,在系统判断所述长度值超过所述预设长度值之后,说明载具当前仍未到达目标点,此时利用虚拟引擎自带的getactorforwardvector函数获取载具的正前方向量forwardvector,再对所述目标向量targetvector和所述正前方向量forwardvector依次进行z轴数据清零处理和归一化处理,其中的z轴数据清零处理过程体现为将上述两个向量中携带着方向信息的z轴数据重置
为零,以确保后续计算仅输出所需的航向角;其次利用dot函数(即虚拟引擎自带的向量点积函数)计算出处理后的目标向量和正前方向量之间的夹角余弦值,再利用degacos函数(即虚拟引擎自带的反三角函数值转化为角度值的函数)计算出所述夹角余弦值所对应的夹角值并将其赋值给needrotabs变量。
46.此外,在系统判断所述长度值未超过所述预设长度值之后,说明载具当前可视为到达目标点,此时无需继续计算两个向量间的夹角以及执行后续的载具旋转操作,直接利用虚拟引擎自带的setbraketorque函数对载具轮子进行制动刹车,并更新载具当前状态为不可移动(即把bmove变量设置为false)以使得载具保持停靠在目标点处。
47.s104、当所述夹角值超过预设角度值时,基于所述正前方向量和所述目标向量确定载具的待旋转角度,并计算出载具在当前帧的最大旋转角度;
48.具体地,首先确定一个预设角度值并将其赋值给minrot变量,在系统判断所述夹角值超过所述预设角度值之后,说明载具当前未能朝向目标点等待前进,此时利用cross函数(即虚拟引擎自带的叉乘函数)计算出所述正前方向量forwardvector和所述目标向量targetvector之间所关联的一个法向量,再将所述法向量与向量(0,0,1)进行一次点积运算,且当运算结果为正数时(说明载具当前需要进行顺时针旋转),将所述夹角值定义为载具的待旋转角度并将其赋值给needrot变量,或者当运算结果为负数时(说明载具当前需要进行逆时针旋转),将所述夹角值的相反数(即所述夹角值与

|的乘积)定义为载具的待旋转角度并将其赋值给needrot变量;其次,由于在每一帧时间内载具旋转角度的调整能力是有限的,利用虚拟引擎自带的getworlddaltatime函数获取当前帧时间,将既定的载具轮子旋转速度与所述当前帧时间进行乘运算,得到载具在当前帧的最大旋转角度,其中所述载具轮子旋转速度已预先赋值给moverightspeed变量进行保存。
49.此外,在系统判断所述夹角值未超过所述预设角度值之后,说明载具当前可视为朝向目标点等待前进,此时无需继续计算载具的旋转角度以及执行后续的载具旋转操作,直接跳转执行步骤s107即可。
50.s105、当所述待旋转角度的绝对值大于等于所述最大旋转角度时,利用addactorlocalrotation函数控制载具按照所述最大旋转角度进行旋转;
51.具体地,以载具为执行对象,将所述最大旋转角度作为输入变量导入虚拟引擎自带的addactorlocalrotation函数后,可控制载具进行本体旋转。
52.s106、当所述待旋转角度的绝对值小于所述最大旋转角度时,利用setactorrotation函数控制载具按照所述待旋转角度进行旋转;
53.具体地,以载具为执行对象,将所述待旋转角度作为输入变量导入虚拟引擎自带的setactorrotation函数后,可控制载具进行本体旋转。
54.s107、在载具执行完本体旋转之后,利用setdrivetorque函数驱动载具轮子按照既定的转矩功率朝向目标点继续前进。
55.具体地,以载具为执行对象,将所述既定的转矩功率作为输入变量导入虚拟引擎自带的setdrivetorque函数后,可控制载具朝向目标点进行本体移动,其中所述既定的转矩功率已预先赋值给drivetorquepower变量进行保存。
56.在本发明实施例中,基于开发者使用一个moveto函数并已输入用户需要的目标点位置信息,通过在tick事件中调用各类相关的函数对载具当前位置进行移动路径分析,并
以“判断距离

调整角度

驱动前行”的顺序对载具执行定时循环控制操作,由此可实现在虚拟引擎中将载具类有序移动至给定的任意目标点这一功能。
57.在一实施例中,本发明还提供一种基于虚拟引擎的载具平面移动控制装置,如图2所示,该装置包括:
58.创建模块201,用于构建一个moveto函数并定义其输入变量为目标点坐标信息以及设定载具当前状态为可移动,再利用所述moveto函数调用蓝图中的tick事件;
59.获取模块202,用于在所述tick事件中,基于所述目标点坐标信息和载具当前坐标信息获取载具朝向目标点的目标向量,再利用vectorlength函数计算出所述目标向量的长度值;
60.第一计算模块203,用于当所述长度值超过预设长度值时,获取载具的正前方向量同时结合所述目标向量进行再处理与向量求解运算,得到两个向量间的夹角值;
61.第二计算模块204,用于当所述夹角值超过预设角度值时,基于所述正前方向量和所述目标向量确定载具的待旋转角度,并计算出载具在当前帧的最大旋转角度;
62.旋转控制模块205,用于当所述待旋转角度的绝对值大于等于所述最大旋转角度时,利用addactorlocalrotation函数控制载具按照所述最大旋转角度进行旋转,或者当所述待旋转角度的绝对值小于所述最大旋转角度时,利用setactorrotation函数控制载具按照所述待旋转角度进行旋转;
63.移动控制模块206,用于在载具执行完旋转之后,利用setdrivetorque函数驱动载具轮子按照既定的转矩功率朝向目标点继续前进。
64.关于一种基于虚拟引擎的载具平面移动控制装置的具体限定可以参见上文中对于一种基于虚拟引擎的载具平面移动控制方法的限定,在此不再赘述。上述一种基于虚拟引擎的载具平面移动控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
65.本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序,该程序被处理器执行时实现上述实施例中任意一个实施例的一种基于虚拟引擎的载具平面移动控制方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd

rom、和磁光盘)、rom(read

only memory,只读存储器)、ram(random access memory,随即存储器)、eprom(erasable programmable read

only memory,可擦写可编程只读存储器)、eeprom(electrically erasable programmableread

only memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
66.本发明实施例还提供了一种计算机应用程序,其运行在计算机上,该计算机应用程序用于执行上述中任意一个实施例的一种基于虚拟引擎的载具平面移动控制方法。
67.此外,图3是本发明实施例中的计算机设备的结构组成示意图。
68.本发明实施例还提供了一种计算机设备,如图3所示。所述计算机设备包括处理器302、存储器303、输入单元304以及显示单元305等器件。本领域技术人员可以理解,图3示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组
合某些部件。存储器303可用于存储应用程序301以及各功能模块,处理器302运行存储在存储器303的应用程序301,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、zip盘、u盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
69.输入单元304用于接收信号的输入,以及接收用户输入的关键字。输入单元304可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元305可用于显示用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元305可采用液晶显示器、有机发光二极管等形式。处理器302是终端设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器303内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
70.作为一个实施例,所述计算机设备包括:一个或多个处理器302,存储器303,一个或多个应用程序301,其中所述一个或多个应用程序301被存储在存储器303中并被配置为由所述一个或多个处理器302执行,所述一个或多个应用程序301配置用于执行上述实施例中的任意一实施例中的一种基于虚拟引擎的载具平面移动控制方法。
71.另外,以上对本发明实施例所提供的一种基于虚拟引擎的载具平面移动控制方法、装置、计算机设备和存储介质进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜