CN105056528A - 一种虚拟角色的移动方法及装置 - Google Patents

一种虚拟角色的移动方法及装置 Download PDF

Info

Publication number
CN105056528A
CN105056528A CN201510434900.1A CN201510434900A CN105056528A CN 105056528 A CN105056528 A CN 105056528A CN 201510434900 A CN201510434900 A CN 201510434900A CN 105056528 A CN105056528 A CN 105056528A
Authority
CN
China
Prior art keywords
virtual role
role
destination virtual
dynamic information
described destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510434900.1A
Other languages
English (en)
Other versions
CN105056528B (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.)
Zhuhai Kingsoft Digital Network Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Online Game Technology 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 Zhuhai Kingsoft Online Game Technology Co Ltd filed Critical Zhuhai Kingsoft Online Game Technology Co Ltd
Priority to CN201510434900.1A priority Critical patent/CN105056528B/zh
Publication of CN105056528A publication Critical patent/CN105056528A/zh
Application granted granted Critical
Publication of CN105056528B publication Critical patent/CN105056528B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例公开了一种虚拟角色的移动方法及装置,涉及互联网通信技术领域,在目标虚拟角色从第一位置移动到第二位置的过程中,上述方法包括:检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;若存在,则分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息;根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度;控制所述目标虚拟角色以所述运动速度移动。应用本发明实施例提供的方案,能够根据当前的场景动态的确定虚拟角色的移动线路,绕开场景中的障碍物,实现智能行为模拟。

Description

一种虚拟角色的移动方法及装置
技术领域
本发明涉及互联网通信技术领域,特别涉及一种虚拟角色的移动方法及装置。
背景技术
目前,大部分的MMO(MassivelyMultiplayerOnline,大型多人在线)游戏都具有自动寻路功能。其中,当虚拟角色位于游戏场景上的位置A时,如果玩家点击游戏场景上的位置B,则虚拟角色就会自动寻路,从位置A移动到位置B。进一步的,在虚拟角色从位置A移动到位置B的过程中,可能会有很多的障碍物,虚拟角色能够自动绕过这些障碍物,最终达到位置B。
现有技术,例如,寻路插件Navmesh所采用的寻路方法和A*寻路方法中,为了使虚拟角色能够自动绕过障碍物,会根据障碍物的位置预先计算出一条静态的可行走路线,并基于静态的可行走路线自动绕过障碍物。例如,根据位置A与位置B之间的障碍物的位置预先计算出一条静态的位置A与位置B之间的可行走路线,基于此位置A与位置B之间的可行走路线,虚拟角色能够自动绕过位置A与位置B之间的障碍物,从位置A移动到位置B。
在上述方式中,需要根据位置A与位置B之间的障碍物的位置预先计算出一条静态的可行走路线,这就要求在位置A与位置B之间的障碍物的位置不会发生变化。如果在位置A与位置B之间的障碍物的位置发生变化,则虚拟角色无法自动绕过位置发生变化的障碍物。而且,如果在位置A与位置B之间增加了新的障碍物,则虚拟角色无法自动绕过新增加的障碍物。
发明内容
本发明实施例公开了一种虚拟角色的移动方法及装置,以能够动态得到虚拟角色在移动过程中躲避障碍物的线路,实现智能行为模拟。
为达到上述目的,本发明实施例公开了一种虚拟角色的移动方法,在目标虚拟角色从第一位置移动到第二位置的过程中,所述方法包括:
检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
若存在至少一个目标对象,则分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息;
根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度;
控制所述目标虚拟角色以所述运动速度移动。
在本发明的一种具体实现方式中,所述虚拟角色的移动方法还包括:
在控制所述目标虚拟角色移动的过程中,根据所述运动速度的运动方向分量、所述目标虚拟角色的当前朝向以及插值因子,按照预设的插值算法确定所述目标虚拟角色的朝向;
根据所确定的朝向调整所述目标虚拟角色的朝向。
在本发明的一种具体实现方式中,所述根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度,包括:
按照以下表达式,确定所述目标虚拟角色针对各个目标对象的综合动力信息P,
P=w1*P1…+wn*Pn+…+wN*PN
其中,Pn表示所述目标虚拟角色针对第n个目标对象的个体动力信息,wn表示Pn的加权系数;
根据所述综合动力信息P,确定所述目标虚拟角色的运动速度。
在本发明的一种具体实现方式中,所述根据所述综合动力信息P,确定所述目标虚拟角色的运动速度,包括:
根据所述综合动力信息P,计算所述目标虚拟角色的加速度信息;
根据所述加速度信息,确定所述目标虚拟角色的运动速度。
在本发明的一种具体实现方式中,所述检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象,包括:
按照预设的时间间隔检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象,并在存在至少一个目标对象的情况下,收集所检测到的目标对象的信息;
所述分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息,包括:
根据所收集的信息分别获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息、平均位置对应的个体动力信息以及与所述目标虚拟角色之间的相对位置矢量对应的个体动力信息;
分别根据所述目标虚拟角色与每个上述检测到的目标对象中除了上述其他虚拟角色以外的剩余对象之间的移动模式,利用所述目标虚拟角色与每个剩余对象之间的距离计算所述目标虚拟角色针对每个剩余对象的个体动力信息;
所述根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度,包括:
在上述检测到的目标对象中存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,根据所获得的个体动力信息和计算得到的个体动力信息进行加权计算,确定所述目标虚拟角色的运动速度;
在上述检测到的目标对象中不存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,对计算得到的个体动力信息进行加权计算,并根据加权计算的结果确定所述目标虚拟角色的运动速度。
在本发明的一种具体实现方式中,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息,包括:
计算所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的平均朝向;
获得所述平均朝向对应的个体动力信息。
在本发明的一种具体实现方式中,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均位置对应的个体动力信息,包括:
根据所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的位置,计算虚拟角色的平均位置;
获得所述平均位置对应的个体动力信息。
在本发明的一种具体实现方式中,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色与所述目标虚拟角色之间的相对位置矢量对应的个体动力信息,包括:
分别获得从所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其他虚拟角色的位置到所述目标虚拟角色的位置的个体相对位置矢量;
计算所获得的各个个体相对位置矢量的矢量和,得到综合相对位置矢量;
获得所述综合相对位置矢量对应的个体动力信息。
在本发明的一种具体实现方式中,所述控制所述目标虚拟角色以所述运动速度移动,包括:
判断所述目标虚拟角色是否采用角色控制器;
若采用,则利用所述运动速度控制所述角色控制器移动,以使得所述目标虚拟角色以所述运动速度移动;
若未采用,则利用所述运动速度,按照预设的时间单位计算增量位移,并利用所述增量位移控制所述目标虚拟角色以所述运动速度移动。
在本发明的一种具体实现方式中,所述利用所述增量位移控制所述目标虚拟角色以所述运动速度移动,包括:
判断所述目标虚拟角色是否采用非运动学刚体;
若采用,则利用所述增量位移控制所述非运动学刚体移动,以使所述目标虚拟角色以所述运动速度移动;
如果未采用,则利用所述增量位移改变所述目标虚拟角色的移动位置,以使所述目标虚拟角色以所述运动速度移动。
在本发明的一种具体实现方式中,所述分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息,包括:
在所述目标虚拟角色与目标对象之间的移动模式为逃避模式的情况下,通过以下步骤计算所述目标虚拟角色针对该目标对象的个体动力信息:
判断所述目标虚拟角色与该目标对象之间的距离是否小于预设的警戒距离;
若为是,则沿着与从所述目标虚拟角色到该目标对象的方向相反的方向,计算所述目标虚拟角色针对该目标对象的个体动力信息。
在本发明的一种具体实现方式中,所述分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息,包括:
在所述目标虚拟角色与任一目标对象M之间的移动模式为追逐模式的情况下,通过以下步骤计算所述目标虚拟角色针对所述目标对象M的个体动力信息:
在所述目标虚拟角色的可视范围内只存在一个目标对象的情况下,利用所述目标虚拟角色与所述目标对象M之间的距离,根据从所述目标虚拟角色到所述目标对象M运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的个体动力信息;
在所述目标虚拟角色的可视范围内存在多个目标对象的情况下,获得所述目标对象M的运动预测位置,沿着从所述目标虚拟角色到所述运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的第一动力信息;确定上述多个目标对象中与所述目标虚拟角色属于同一角色群体的第一类目标对象,计算第一类目标对象的平均朝向对应的动力信息、平均位置对应的动力信息以及与所述目标虚拟角色之间的相对位置矢量对应的动力信息;在除了所述第一类目标对象之外的上述多个目标对象中,确定需要躲避的属于障碍物的第二类目标对象,利用所述目标虚拟角色与所述第二类目标对象之间的距离,分别根据与从所述目标虚拟角色到每个第二类目标对象的方向相反的方向,计算所述目标虚拟角色针对每个第二类目标对象的第二动力信息;对所述第一类动力信息、计算得到的平均朝向对应的动力信息、平均位置对应的动力信息、与所述目标虚拟角色之间的相对位置矢量对应的动力信息和所述第二动力信息进行加权计算,根据加权计算结果获得所述目标虚拟角色针对所述目标对象M的个体动力信息。
在本发明的一种具体实现方式中,所述目标虚拟角色,包括:
根据用户在本技术方案提供的用户界面UI上定制选择或输入的虚拟角色参数生成的虚拟角色。
为达到上述目的,本发明实施例公开了一种虚拟角色的移动装置,在目标虚拟角色从第一位置移动到第二位置的过程中,所述装置包括:
目标对象检测模块,用于检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
个体动力信息计算模块,用于在所述目标对象检测模块的检测结果为是的情况下,则分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息;
角色运动速度确定模块,用于根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度;
角色移动控制模块,用于控制所述目标虚拟角色以所述运动速度移动。
在本发明的一种具体实现方式中,所述虚拟角色的移动装置还包括:
角色朝向确定模块,用于在控制所述目标虚拟角色移动的过程中,根据所述运动速度的运动方向分量、所述目标虚拟角色的当前朝向以及插值因子,按照预设的插值算法确定所述目标虚拟角色的朝向;
角色朝向调整模块,用于根据所确定的朝向调整所述目标虚拟角色的朝向。
在本发明的一种具体实现方式中,所述角色运动速度确定模块,包括:
综合动力信息确定子模块,用于按照以下表达式,确定所述目标虚拟角色针对各个目标对象的综合动力信息P,
P=w1*P1…+wn*Pn+…+wN*PN
其中,Pn表示所述目标虚拟角色针对第n个目标对象的个体动力信息,wn表示Pn的加权系数;
角色运动速度确定子模块,用于根据所述综合动力信息P,确定所述目标虚拟角色的运动速度。
在本发明的一种具体实现方式中,所述角色运动速度确定子模块,包括:
加速度计算单元,用于根据所述综合动力信息P,计算所述目标虚拟角色的加速度信息;
角色运动速度确定单元,用于根据所述加速度信息,确定所述目标虚拟角色的运动速度。
在本发明的一种具体实现方式中,所述目标对象检测模块,包括:
目标对象检测子模块,用于按照预设的时间间隔检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
信息收集子模块,用于在所述目标对象检测子模块检测到存在至少一个目标对象的情况下,收集所检测到的目标对象的信息;
所述个体动力信息计算模块,包括:
第一个体动力信息获得子模块,用于根据所收集的信息,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息;
第二个体动力信息获得子模块,用于根据所收集的信息,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均位置对应的个体动力信息;
第三个体动力信息获得子模块,用于根据所收集的信息,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色与所述目标虚拟角色之间的相对位置矢量对应的个体动力信息;
个体动力信息计算子模块,用于分别根据所述目标虚拟角色与每个上述检测到的目标对象中除了上述其他虚拟角色以外的剩余对象之间的移动模式,利用所述目标虚拟角色与每个剩余对象之间的距离计算所述目标虚拟角色针对每个剩余对象的个体动力信息;
所述角色运动速度确定模块,具体用于在上述检测到的目标对象中存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,根据所获得的个体动力信息和计算得到的个体动力信息进行加权计算,确定所述目标虚拟角色的运动速度;在上述检测到的目标对象中不存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,对计算得到的个体动力信息进行加权计算,并根据加权计算的结果确定所述目标虚拟角色的运动速度。
在本发明的一种具体实现方式中,所述第一个体动力信息获得子模块,包括:
角色平均朝向计算单元,用于计算所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的平均朝向;
第一个体动力信息获得单元,用于获得所述平均朝向对应的个体动力信息。
在本发明的一种具体实现方式中,所述第二个体动力信息获得子模块,包括:
角色平均位置计算单元,用于根据所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的位置,计算虚拟角色的平均位置;
第二个体动力信息获得单元,用于获得所述平均位置对应的个体动力信息。
在本发明的一种具体实现方式中,所述第三个体动力信息获得子模块,包括:
个体相对位置矢量获得单元,用于分别获得从所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其他虚拟角色的位置到所述目标虚拟角色的位置的个体相对位置矢量;
综合相对位置矢量计算单元,用于计算所获得的各个个体相对位置矢量的矢量和,得到综合相对位置矢量;
第三个体动力信息确定单元,用于获得所述综合相对位置矢量对应的个体动力信息。
在本发明的一种具体实现方式中,所述角色移动控制模块,包括:
角色控制器判断子模块,用于判断所述目标虚拟角色是否采用角色控制器;
第一角色移动控制子模块,用于在所述角色控制器判断子模块的判断结果为是的情况下,则利用所述运动速度控制所述角色控制器移动,以使得所述目标虚拟角色以所述运动速度移动;
增量位移计算子模块,用于在所述角色控制器判断子模块的判断结果为否的情况下,则利用所述运动速度,按照预设的时间单位计算增量位移;
第二角色移动控制子模块,用于利用所述增量位移控制所述目标虚拟角色以所述运动速度移动。
在本发明的一种具体实现方式中,所述第二角色移动控制子模块,包括:
非运动学刚体判断单元,用于判断所述目标虚拟角色是否采用非运动学刚体;
第一角色移动控制单元,用于在所述非运动学刚体判断单元的判断结果为是的情况下,利用所述增量位移控制所述非运动学刚体移动,以使所述目标虚拟角色以所述运动速度移动;
第二角色移动控制单元,用于在所述非运动学刚体判断单元的判断结果为否的情况下,利用所述增量位移改变所述目标虚拟角色的移动位置,以使所述目标虚拟角色以所述运动速度移动。
在本发明的一种具体实现方式中,所述个体动力信息计算模块,具体用于在所述目标虚拟角色与目标对象之间的移动模式为逃避模式的情况下,通过以下方式计算所述目标虚拟角色针对该目标对象的个体动力信息:
判断所述目标虚拟角色与该目标对象之间的距离是否小于预设的警戒距离;
若为是,则沿着与从所述目标虚拟角色到该目标对象的方向相反的方向,计算所述目标虚拟角色针对该目标对象的个体动力信息。
在本发明的一种具体实现方式中,所述个体动力信息计算模块,具体用于在所述目标虚拟角色与任一目标对象M之间的移动模式为追逐模式的情况下,通过以下方式计算所述目标虚拟角色针对所述目标对象M的个体动力信息:
在所述目标虚拟角色的可视范围内只存在一个目标对象的情况下,利用所述目标虚拟角色与所述目标对象M之间的距离,根据从所述目标虚拟角色到所述目标对象M运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的个体动力信息;
在所述目标虚拟角色的可视范围内存在多个目标对象的情况下,获得所述目标对象M的运动预测位置,沿着从所述目标虚拟角色到所述运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的第一动力信息;确定上述多个目标对象中与所述目标虚拟角色属于同一角色群体的第一类目标对象,计算第一类目标对象的平均朝向对应的动力信息、平均位置对应的动力信息以及与所述目标虚拟角色之间的相对位置矢量对应的动力信息;在除了所述第一类目标对象之外的上述多个目标对象中,确定需要躲避的属于障碍物的第二类目标对象,利用所述目标虚拟角色与所述第二类目标对象之间的距离,分别根据与从所述目标虚拟角色到每个第二类目标对象的方向相反的方向,计算所述目标虚拟角色针对每个第二类目标对象的第二动力信息;对所述第一类动力信息、计算得到的平均朝向对应的动力信息、平均位置对应的动力信息、与所述目标虚拟角色之间的相对位置矢量对应的动力信息和所述第二动力信息进行加权计算,根据加权计算结果获得所述目标虚拟角色针对所述目标对象M的个体动力信息。
在本发明的一种具体实现方式中,所述目标虚拟角色,包括:
根据用户在本技术方案提供的用户界面UI上定制选择或输入的虚拟角色参数生成的虚拟角色。
由以上可见,本发明实施例提供的方案中,在检测到目标虚拟角色的可视范围内存在目标对象时,根据目标虚拟角色与各个目标对象之间的移动模式,计算得到目标虚拟角色针对各个目标对象的个体动力信息,再根据计算得到的个体动力信息确定目标虚拟角色的运动速度,并根据所确定的运动速度,控制目标虚拟角色运动。由于在计算目标虚拟角色的运动速度之前,先检测了目标虚拟角色可视范围内的目标对象,又由于检测结果与当前的实时场景相关,并非仅仅与场景的设置相关,所以,计算得到的运动速度能够兼顾当前场景内的所有目标对象,进而应用本发明实施例提供的方案移动目标虚拟角色时,能够根据当前的场景动态的确定目标虚拟角色的移动线路,绕开场景中的障碍物,实现智能行为模拟。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的虚拟角色的移动方法的第一种流程示意图;
图2为本发明实施例提供的虚拟角色的移动方法的第二种流程示意图;
图3为本发明实施例提供的虚拟角色的移动方法的第三种流程示意图;
图4为本发明实施例提供的一种虚拟角色的移动装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的虚拟角色移动方法的第一种流程示意图,该方法应用于目标虚拟角色从第一位置移动到第二位置的过程中。
在MMO游戏中,为目标虚拟角色从起始位置移动到终点位置寻找路径时,需根据当前的场景信息不断获取数据,以确定较佳的从起始位置到终点位置的路径。
具体的,可以按照预设的时间周期,例如,0.2秒、0.3秒、0.4秒等等,获得目标虚拟角色所处场景中的信息,并根据这些信息确定预设时间周期内目标虚拟角色的运动信息,例如,运动速度、运动路径等等,其中,运动速度可以以运动速率和运动方向两个分量组成,连续多个时间周期对应的运动路径即可形成目标虚拟角色从起始位置到达终点位置的路径。
鉴于以上描述,上述的第一位置和第二位置可以理解为,一个预设时间周期对应的目标虚拟角色移动的起始位置和结束位置。
上述的虚拟角色移动方法包括:
S101:检测目标虚拟角色的可视范围内是否存在至少一个目标对象,若存在至少一个目标对象,执行S102,否则,执行S105。
上述目标虚拟角色可以是根据用户在本技术方案提供的UI(UserInterface,用户界面)上定制选择生成的虚拟角色,还可以是根据用户输入的虚拟角色参数生成的虚拟角色。
实际应用中,不管是根据用户定制选择生成虚拟角色,还是根据用户输入的虚拟角色参数生成虚拟角色,在生成虚拟角色时,还可以考虑一些随机因素,以得到更加切合应用场景的虚拟角色,例如,根据游戏场景确定的随机因素等。
具体的,上述根据用户定制选择生成的目标虚拟角色或者根据用户输入的虚拟角色参数生成的目标虚拟角色可以是根据角色模板生成的,其中,角色模板可以是由用户设计指定的。
另外,本步骤中涉及的目标虚拟角色还可以是用户将自己事先摆放在游戏场景中的虚拟角色关联引入到本技术方案中进行使用的。
可以理解的是,本发明实施例的用户即游戏开发者可以在本技术方案提供的UI上预先为目标虚拟角色设定智能行为类型和其它选项参数,游戏系统根据用户选择输入的结果,生成虚拟角色。具体的,随着用户所选择的行为类型不同,向用户展现的参数选项也会跟随发生变化。这些参数选项可以分为两类:一类是必填或必选项,一类是可选项。其中,必选项如用户想要实现的智能行为类型等,必填项如用户需要在游戏运行时自动生成的那些角色的模板、生成数量、随机生成这些角色的区域范围等,可选项主要是与各种智能行为有关的各参数项设置,如果用户勾选了某个参数项,该项的同一行上会出现定制输入框,用户可以根据需要填写参数值或进行选择。当然,实际应用中也可以不按照上述方式生成虚拟角色,而是由用户通过程序控制的方式或者直接设置的方式在场景中摆放虚拟角色等等。
上述的目标对象,可以是游戏场景中预先设置的目标点、障碍物、虚拟角色等等,还可以是在游戏过程中动态添加的目标点、障碍物、虚拟角色等等。
具体的,在目标虚拟角色所属的角色群体中只包含目标虚拟角色一个虚拟角色的情况下,上述的目标对象可以是目标点、障碍物,还可以是虚拟角色,但是该作为目标对象的虚拟角色肯定与目标虚拟角色不属于同一角色群体。
在目标虚拟角色所属的角色群体中包含多个虚拟角色的情况下,上述的目标对象可以是目标点、障碍物,还可以是虚拟角色,这种情况下的虚拟角色可能是与目标虚拟角色属于同一角色群体的虚拟角色,还可能是与目标虚拟角色不属于同一角色群体的虚拟角色。
另外,需要说明的是,目标虚拟角色的可视范围内目标对象的数量是不确定的,但是在本申请中需大于等于1。在目标虚拟角色的可视范围内目标对象的数量为1时,目标虚拟角色的移动只受该目标对象的影响,而在目标虚拟角色的可视范围内目标对象的数量大于1时,目标虚拟角色的移动是多个目标对象综合影响的结果。
S102:分别根据目标虚拟角色与各个目标对象之间的的移动模式,利用目标虚拟角色与每个目标对象之间的距离计算目标虚拟角色针对每个目标对象的个体动力信息。
由前述描述可知,在目标虚拟角色的可视范围内可能存在一个目标对象,也可能存在多个目标对象,又由于实际应用中可以认为目标虚拟角色与每个目标对象之间均存在相对运动,该相对运动可以是相对运动速度为零的相对运动、相对运动速度为正数的相对运动或者相对运动速度为负数的相对运动,签于此目标虚拟角色与每个目标对象之间对应相应的移动模式。在经检测得知目标虚拟角色的可视范围内存在多个目标对象的情况下,目标虚拟角色与每个目标对象之间的移动模式可能相同,也可能不相同。
具体的,在游戏过程中,目标虚拟角色与目标对象之间的移动模式可以存在多种情况,例如,逃避模式、追逐模式等等,每种模式下,目标虚拟角色会对应不同的运动特点,具体的:
目标虚拟角色与目标对象之间的移动模式为逃避模式时,在目标虚拟角色的运动过程中,目标虚拟角色不会与目标对象产生碰撞,即两者之间的距离不能等于零,且在两者之间的距离小于一定数值时目标虚拟角色需改变原来的运动方向,以使得其能够远离目标角色,进而绕过目标对象,达到逃避目标对象的效果。
目标虚拟角色与目标对象之间的移动模式为追逐模式时,由于在目标虚拟角色的移动过程中,最终目标虚拟角色可能追上目标对象,也可能追不上目标对象,所以,这种情况下目标虚拟角色的运动速度可以根据具体的场景确定,以逼近真实效果。
例如,猎人与豹子之间的移动模式为追逐模式时,由于豹子的速度与人的速度相比快的多,则猎人虽然追在豹子的后面,但是通常情况下猎人的速度低于豹子的速度,两者之间的距离随着时间的推移增大。
士兵与敌人之间的移动模式为追逐模式时,现实中士兵追逐敌人的时候,可能会追上,也可能追不上。若具体场景为步兵追逐敌方的机械化部队,由于步兵速度较低,所以一般情况下士兵追不上敌方的机械化部队;若具体场景为骑兵追逐步兵,由于骑兵速度高于步兵速度,所以一般情况下骑兵可以追上步兵,不过若该场景中骑兵受伤、步兵得到敌方强大掩护火力、骑兵遇到无法逾越的障碍物等,则骑兵速度会下降或者需要绕行,从而导致骑兵追不上步兵。
目标虚拟角色与目标对象之间的移动模式还可以是其他移动模式,这里不再一一列举,本申请并不对此进行限定。
由于上述的各种移动模式存在不同的运动特点,所以在计算目标虚拟角色针对每个目标对象的个体动力信息时,可以采用不同的方式确定。
具体的,在目标虚拟角色与目标对象L之间的移动模式为逃避模式的情况下,可以通过以下步骤计算目标虚拟角色针对目标对象L的个体动力信息:
判断目标虚拟角色与目标对象L之间的距离是否小于预设的警戒距离,若小于预设的警戒距离,则沿着与从目标虚拟角色到目标对象L的方向相反的方向,计算目标虚拟角色针对目标对象L的个体动力信息,这样可以给目标虚拟角色一个向外的力,能够使得目标虚拟角色远离目标对象L,进而达到逃避目标对象L的效果。
在本发明的一种较佳实现方式中,计算目标虚拟角色针对目标对象L的个体动力信息时,还可以考虑目标虚拟角色与目标对象L之间的距离、目标虚拟角色的当前运动速度、目标对象L的当前运动速度、目标虚拟角色的当前朝向、目标对象的当前朝向等信息。
在本发明的一种可选实现方式中,若判断得目标虚拟角色与目标对象L之间的距离不小于警戒距离时,可以认为两者之间的距离较远,目标虚拟角色还无需逃避目标对象L,这时该目标对象L可以不对目标虚拟角色的移动产生影响,进而使得目标虚拟角色仍然以原来的运动速度移动。
需要说明的是,由于目标虚拟角色的可视范围内可能会存在多个目标对象,而这些目标对象均有可能会影响目标虚拟角色针对目标对象L的个体动力信息,所以在计算目标虚拟角色针对目标对象L的个体动力信息时,还可以考虑目标虚拟角色的可视范围内除了目标对象L以外的其他目标对象的影响,例如,目标虚拟角色的可视范围内与目标虚拟角色属于同一角色群体的目标虚拟角色的平均朝向信息、平均位置信息、与目标虚拟角色之间的相对位置矢量信息等等。
具体的,目标虚拟角色与其可视范围内任一目标对象M之间的移动模式为追逐模式的情况下,可以通过以下步骤计算目标虚拟角色针对目标对象M的个体动力信息:
在目标虚拟角色的可视范围内只存在一个目标对象的情况下,利用目标虚拟角色与目标对象M之间的距离,根据从目标虚拟角色到目标对象M运动预测位置的方向以及目标虚拟角色的当前运动速度,计算目标虚拟角色针对目标对象M的个体动力信息;
在目标虚拟角色的可视范围内存在多个目标对象的情况下,获得目标对象M的运动预测位置,沿着从目标虚拟角色到运动预测位置的方向以及目标虚拟角色的当前运动速度,计算目标虚拟角色针对目标对象M的第一动力信息;确定上述多个目标对象中与目标虚拟角色属于同一角色群体的第一类目标对象,计算第一类目标对象的平均朝向对应的动力信息、平均位置对应的动力信息以及与目标虚拟角色之间的相对位置矢量对应的动力信息;在除了第一类目标对象之外的上述多个目标对象中,确定需要躲避的属于障碍物的第二类目标对象,利用目标虚拟角色与第二类目标对象之间的距离,分别根据与从目标虚拟角色到每个第二类目标对象的方向相反的方向,计算目标虚拟角色针对每个第二类目标对象的第二动力信息;对第一类动力信息、计算得到的平均朝向对应的动力信息、平均位置对应的动力信息、与目标虚拟角色之间的相对位置矢量对应的动力信息和第二动力信息进行加权计算,根据加权计算结果获得目标虚拟角色针对目标对象M的个体动力信息。
由于在整个计算过程中目标对象M可能一直处于运动状态,所以目标对象M的位置会随时发生变化,为了得到更加准确的个体动力信息,可以根据目标对象M的当前运动信息,获得目标对象M的运动预测位置作为后续计算动力信息的基础。具体的,在目标对象M处于静止状态的情况下,目标对象预测位置为目标对象的当前位置,在目标对象处于运动状态的情况下,目标对象M的运动预测位置为根据目标对象M的运动速度、运动趋势等信息预测得到的位置信息。
进一步的,在计算上述的第一动力信息时,还可以考虑目标虚拟角色与目标对象M的运动预测位置之间的距离、目标虚拟角色的当前朝向等因素,本申请并不对此进行限定。
需要说明的是,计算第一类目标对象的平均朝向对应的动力信息、平均位置对应的动力信息以及与目标虚拟角色之间的相对位置矢量对应的动力信息的方法,可以与后续图2所示实施例中将要提到的获得目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息、平均位置对应的个体动力信息以及与目标虚拟角色之间的相对位置矢量对应的个体动力信息对应相似,这里暂不进行详述。
计算目标虚拟角色针对上述第二类目标对象中每个目标对象的的第二动力信息时,可以参照前面提到的目标虚拟角色与目标对象之间的移动模式为逃避模式的情况下,计算目标虚拟角色针对该目标对象的个体动力信息的方法,这里也不再赘述。
另外,由于上述第二类目标对象中可以包含多个目标对象,所以,相应的这里可以通过计算得到多个第二动力信息。
需要说明的是,通常情况下,目标虚拟角色与目标对象之间的移动模式是相互的,也就是目标虚拟角色与目标对象之间的移动模式、目标对象与目标虚拟角色之间的移动模式相同。
S103:根据计算得到的个体动力信息,确定目标虚拟角色的运动速度。
由前面的描述得知,目标虚拟角色的可视范围内可以存在多个目标对象,而每个目标对象均可能会对目标虚拟角色的运动产生影响,所以计算得到的个体动力信息可能会是多个,鉴于此,在本发明的一种可选实现方式中,根据计算得到的个体动力信息,确定目标虚拟角色的运动速度时,
可以先按照以下表达式,确定目标虚拟角色针对各个目标对象的综合动力信息P,
P=w1*P1…+wn*Pn+…+wN*PN
然后再根据上述综合动力信息P,确定目标虚拟角色的运动速度。
其中,Pn表示目标虚拟角色针对第n个目标对象的个体动力信息,wn表示Pn的加权系数。
需要说明的是,上述的各个加权系数可以是开发人员通过大量的数据分析得到并预先设置好的,另外,开发人员可以预先设置多组加权系数,实际应用中们可以根据具体的场景信息从多组加权系数中选择一组进行上述计算,本申请并不对此进行限定。
本领域内的技术人员可以理解的是,根据上述方式计算得到的综合动力信息如果偏大会使得目标虚拟角色运动速度变化的比较突兀不够真实,这种情况下,可以判断上述的综合动力信息P是否大于预设的阈值,若大于,调整上述综合动力信息P为预设的阈值,以使得后续步骤根据调整后的综合动力信息P确定虚拟角色的运动速度。
具体的,在根据综合动力信息P,确定目标虚拟角色的运动速度时,可以先根据上述的综合动力信息P,计算目标虚拟角色的加速度信息,然后再根据计算得到的加速度信息,确定目标虚拟角色的运动速度。
S104:控制目标虚拟角色以上述运动速度移动。
在使用Unity等开发的游戏中,常常会用到角色控制器,其中,角色控制器是一个特殊的碰撞器,使用角色控制器后,虚拟角色可以根据虚拟角色运动速度等信息实现爬坡、上台阶等功能,而不需要处理刚体协作。
具体的,控制目标虚拟角色以上述运动速度移动时,可以先判断目标虚拟角色是否采用角色控制器,若采用,则利用上述的运动速度控制角色控制器移动,以使得目标虚拟角色以上述的运动速度移动;若未采用,则利用上述的运动速度,按照预设的时间单位计算增量位移,并利用该增量位移控制目标虚拟角色以上述的运动速度移动。
可选的,实际应用中,利用增量位移控制目标虚拟角色以上述的运动速度移动时,可以先判断目标虚拟角色是否采用非运动学刚体,若采用,则利用该增量位移控制上述的非运动学刚体移动,以使目标虚拟角色以上述的运动速度移动;如果未采用,则利用该增量位移改变目标虚拟角色的移动位置,以使目标虚拟角色以上述的运动速度移动。
S105:结束本流程。
需要说明的是,发明人在实际应用中应用上述的方法控制虚拟角色移动时发现,即使对由多个虚拟角色构成的角色群体的移动情况进行多次模拟,得到的移动路线通常是各不相同的,并且角色群体中各个虚拟角色的移动路线也具有各自不同的特点,这样对于角色群体中的每个角色而言可以产生更加逼真的移动效果。
值得一提的是,现有技术中,Navmesh技术不支持简单寻路以外的其它人工智能行为,而A*寻路一方面仿真结果规则可预期,另一方面能够仿真的行为种类非常有限。而对于本发明提供的技术方案而言,发明人经过大量实验发现,目前其能够支持的智能行为和行为组合模拟的数量达到十五种以上。
由以上可见,本实施例提供的方案中,在检测到目标虚拟角色的可视范围内存在目标对象时,根据虚拟角色与各个目标对象之间的移动模式,计算得到目标虚拟角色针对各个目标对象的个体动力信息,再根据计算得到的个体动力信息确定目标虚拟角色的运动速度,并根据所确定的运动速度,控制目标虚拟角色运动。由于在计算目标虚拟角色的运动速度之前,先检测了目标虚拟角色可视范围内的目标对象,又由于检测结果与当前的实时场景相关,并非仅仅与场景的设置相关,所以,计算得到的运动速度能够兼顾当前场景内的所有目标对象,进而应用本实施例提供的方案移动目标虚拟角色时,能够根据当前的场景动态的确定目标虚拟角色的移动线路,绕开场景中的障碍物,实现智能行为模拟。
实际应用中,目标虚拟角色所属角色群体,第一种情况下,可以仅仅包含目标虚拟角色这个一个虚拟角色,第二种情况下,可以包含处理目标虚拟角色以外的其他虚拟角色。在目标虚拟角色所属角色群体为第二种情况时,该角色群体中的每个虚拟角色与其他虚拟角色之间通常朝向基本一致,移动过程中各个虚拟角色的位置相对集中,表现为一个群体,且相互之间不会发生碰撞。基于以上的特点,下面分情况描述如何根据计算得到的个体动力信息,确定目标虚拟角色的运动速度。
一种可选的实现方式中,在目标虚拟角色所属角色群体中仅仅包含一个虚拟角色的情况下,可以先根据计算得到的个体动力信息确定其对目标虚拟角色的运动速度的影响,得到速度影响值,然后将该影响值与目标虚拟角色的当前运动速度进行矢量叠加,确定目标虚拟角色的运动速度。
本发明的一种具体实现方式中,在目标虚拟角色属于一个包含多个虚拟角色的角色群体的情况下,参见图2,提供了虚拟角色移动方法的第二种流程示意图,具体的,与前述实施例相比,本实施例中,
检测目标虚拟角色的可视范围内是否存在至少一个目标对象(S101),包括:
S101A:按照预设的时间间隔检测目标虚拟角色的可视范围内是否存在至少一个目标对象,并在存在至少一个目标对象的情况下,收集所检测到的目标对象的信息。
分别根据目标虚拟角色与各个目标对象之间的移动模式,利用目标虚拟角色与每个目标对象之间的距离计算目标虚拟角色针对每个目标对象的个体动力信息(S102),包括:
S102A:根据所收集的信息分别获得目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息、平均位置对应的个体动力信息以及与目标虚拟角色之间的相对位置矢量对应的个体动力信息。
具体的,获得目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息时,可以先计算目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的平均朝向,再获得上述平均朝向对应的个体动力信息,该个体动力信息主要用于保证角色群体内的各个虚拟角色在移动过程中朝向基本一致。
另外,可以理解的是,实际应用中,除了可以通过为目标虚拟角色当前可视范围内所属的角色群体中所包含的其他虚拟角色的朝向赋予相同朝向权重值的方式得到上述的平均朝向之外,还可以通过赋予不同朝向权重值的方式得到上述的平均朝向。
简单的,获得上述平均朝向对应的个体动力信息时,处理考虑上述的平均朝向外,还可以考虑目标虚拟角色的当前朝向,具体的,计算上述平均朝向与目标虚拟角色的当前朝向之间的矢量差值,根据该矢量插值确定上述平均朝向对应的个体动力信息,例如,可以直接将该矢量差值作为上述平均朝向对应的个体动力信息等等。
具体的,获得目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均位置对应的个体动力信息时,可以先根据目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的位置,计算虚拟角色的平均位置,再获得上述平均位置对应的个体动力信息,该个体动力信息主要用于保证角色群体内的虚拟角色在移动过程中位置相对集中。
与获得平均朝向对应的个体动力信息类似,这里,除了可以通过为目标虚拟角色当前可视范围内所属的角色群体中所包含的其他虚拟角色的位置赋予相同位置权重值的方式得到上述的平均朝向之外,还可以通过赋予不同位置权重值的方式得到上述的平均位置。
具体的,获得上述平均位置对应的个体动力信息时,可以先沿着从目标虚拟角色当前位置到上述平均位置的方向做复杂计算得到第一矢量信息,然后,将计算得到的第一矢量信息与目标虚拟角色的当前运动速度进行差值计算得打第二矢量信息,最后,根据计算得到的第二矢量信息确定上述平均位置对应的个体动力信息,例如,可以直接将计算得到的第二矢量信息作为上述平均位置对应的个体动力信息。
一种可选的实现方式中,沿着从目标虚拟角色当前位置到上述平均位置的方向做复杂计算得到第一矢量信息时,具体可以是,上述平均位置减去目标虚拟角色的当前位置得到第三矢量信息,对第三矢量信息进行归一化处理得到上述的第一矢量信息,其中,经归一化处理得到的第一矢量信息的模等于目标虚拟角色自身能够达到的最大速度。当然,本申请只是以此为例进行说明,实际应用中,并不限定具体得到第一矢量信息的方法。
需要说明的是,上述方法只是获得平均位置对应的个体动力信息的方法的一种,并不构成对本申请的限定。
具体的,获得目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色与目标虚拟角色之间的相对位置矢量对应的个体动力信息时,可以先分别获得从目标虚拟角色当前可视范围内所属的角色群体中所包含的其他虚拟角色的位置到目标虚拟角色的位置的个体相对位置矢量,再计算所获得的各个个体相对位置矢量的矢量和,得到综合相对位置矢量,最后获得该综合相对位置矢量对应的个体动力信息,该个体动力信息主要用于保证角色群体中的虚拟角色在移动过程中相互之间不发生碰撞。
例如,假设,目标虚拟角色RA的可视范围内存在的其所属角色群体中包含的其他虚拟角色有RB、RC和RD,则
沿着RB的位置到RA的位置的方向得到个体相对位置矢量VBA
沿着RC的位置到RA的位置的方向得到个体相对位置矢量VCA
沿着RD的位置到RA的位置的方向得到个体相对位置矢量VDA
计算VBA、VCA和VDA的矢量和VA
最后根据VA获得其对应的个体动力信息。
具体的,根据VA获得其对应的个体动力信息时,可以理解为:沿着VA的方向确定个体动力信息,具体的,该个体动力信息的具体内容处理可以与VA的方向相关外,还可以与其大小相关。
另外,值得一提的是,由于RB、RC和RD与RA的距离不同,所以它们对RA运动速度的影响也不同,为了得到较佳的个体动力信息,实际应用中,在计算VA时,还可以考虑RB、RC和RD与RA之间的距离,例如,根据距离值为VBA、VCA和VDA赋予不同的矢量和叠加系数等等。
综合以上可以得知,获得目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色与目标虚拟角色之间的相对位置矢量对应的个体动力信息时,处理需考虑目标虚拟角色和上述各个其他虚拟角色的位置外,还可以考虑目标虚拟角色与其他虚拟角色之间的距离,以得到更佳的个体动力信息。
S102B:分别根据目标虚拟角色与每个上述检测到的目标对象中除了上述其他虚拟角色以外的剩余对象之间的移动模式,利用目标虚拟角色与每个剩余对象之间的距离计算目标虚拟角色针对每个剩余对象的个体动力信息。
需要说明的是,本实施例提供的方案中,并不限定S102A和S102B之间的执行顺序,即S102A可以与S102B同时执行,可以在S102B之前执行,也可以在S102B之后执行。
根据计算得到的个体动力信息,确定目标虚拟角色的运动速度(S103),包括:
S103A:在检测到目标虚拟角色的可视范围内存在其所属角色群体中包含的其他虚拟角色的情况下,根据所获得的个体动力信息和计算得到的个体动力信息进行加权计算,确定目标虚拟角色的运动速度。
S103B:在检测到目标虚拟角色的可视范围内不存在其所属角色群体中包含的其他虚拟角色的情况下,对计算得到的个体动力信息进行加权计算,并根据加权计算的结果确定目标虚拟角色的运动速度。
本领域内的技术人员可以理解的是,任何用于计算目标虚拟角色运动速度的算法都有可能存在误差,那么为保证上述计算得到的目标虚拟角色的运动速度在合理范围内,可以通过阈值限定的方式,将上述计算得到的运动速度限定在合理的范围内。
由以上可见,本实施例提供的方案中,在目标虚拟角色的可视范围内存在其所属角色群体中包含的其他虚拟角色的情况下,还获得了上述其他虚拟角色的平均朝向对应的个体动力信息、平均位置对应的个体动力信息以及与目标虚拟角色之间的相对位置矢量对应的个体动力信息,这样可以有效保证目标虚拟角色与其可视范围内同一群体中的其他虚拟角色之间在移动过程中朝向基本一致、相对集中且不会发生碰撞,能够得到更好的用户体验。
在本发明的一种具体实现方式中,参见图3,提供了虚拟角色移动方法的第三种流程示意图,与前述实施例相比,本实施例中,上述的虚拟角色移动方法还包括:
S106:在控制目标虚拟角色移动的过程中,根据上述运动速度的运动方向分量、目标虚拟角色的当前朝向以及插值因子,按照预设的插值算法确定目标虚拟角色的朝向。
目标虚拟角色的朝向可以理解为:目标虚拟角色面部朝向和/或身体朝向。
上述的插值因子可以是预先设定的数值,可以根据当前场景等因素确定的数据,还可以是根据上述两种情况得到的综合数值等等,本申请并不对此进行限定。
可以理解的,目标虚拟角色在移动过程中可能会改变原有的运动方向,这时由于目标虚拟角色运动方向的改变,使得目标虚拟角色的面部朝向和/或身体朝向显得不协调,为使得目标虚拟角色朝向与目标虚拟角色运动协调,需随着目标虚拟角色的运动调整其朝向。
例如,游戏场景中一个兔子正沿着垂直方向奔跑,这时兔子的面部及身体是朝向垂直方向的,此时,在周围目标对象的影响下,兔子需调整其奔跑方向为:与水平方向成45度角的方向,这种情况下若不调整兔子的面部及身体的朝向,游戏玩家会明显感觉到兔子的动作不协调,因此,可以根据调整后兔子的运动方向调整其面部朝向及身体朝向为与水平方向成45度角的方向。
例如,游戏场景中一个士兵队列正在沿着水平方向移动,目标虚拟角色为该士兵队列中的一员,这时士兵队列改变其运动方向为沿着垂直方向移动,可以理解的,一个士兵队列中所有士兵的动作应该是基本一致的,若其他士兵的面部朝向已调整为朝向垂直方向,而不调整目标虚拟角色的朝向的话,则在该士兵队列中,目标虚拟角色与其他士兵的动作不一致,打乱了整个士兵队列的协调性,因此,需调整目标虚拟角色的面部朝向为朝向垂直方向。
S107:根据所确定的朝向调整目标虚拟角色的朝向。
由以上可见,本实施例提供的方案中,在控制目标虚拟角色移动的过程中,根据目标虚拟角色运动速度的运动方向分量,确定目标虚拟角色的朝向,并对其进行调整,这样可以保证目标虚拟角色运动协调,提高了用户体验。
与上述的虚拟角色移动方法相对应,本发明实施例还提供了一种虚拟角色移动装置。
图4为本发明实施例提供的一种虚拟角色的移动装置的结构示意图,在目标虚拟角色从第一位置移动到第二位置的过程中,该装置包括:
目标对象检测模块401,用于检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
个体动力信息计算模块402,用于在所述目标对象检测模块的检测结果为是的情况下,则分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息;
角色运动速度确定模块403,用于根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度;
角色移动控制模块404,用于控制所述目标虚拟角色以所述运动速度移动。
具体的,所述虚拟角色的移动装置还可以包括:
角色朝向确定模块,用于在控制所述目标虚拟角色移动的过程中,根据所述运动速度的运动方向分量、所述目标虚拟角色的当前朝向以及插值因子,按照预设的插值算法确定所述目标虚拟角色的朝向;
角色朝向调整模块,用于根据所确定的朝向调整所述目标虚拟角色的朝向。
具体的,所述角色运动速度确定模块403可以包括:
综合动力信息确定子模块,用于按照以下表达式,确定所述目标虚拟角色针对各个目标对象的综合动力信息P,
P=w1*P1…+wn*Pn+…+wN*PN
其中,Pn表示所述目标虚拟角色针对第n个目标对象的个体动力信息,wn表示Pn的加权系数;
角色运动速度确定子模块,用于根据所述综合动力信息P,确定所述目标虚拟角色的运动速度。
具体的,所述角色运动速度确定子模块可以包括:
加速度计算单元,用于根据所述综合动力信息P,计算所述目标虚拟角色的加速度信息;
角色运动速度确定单元,用于根据所述加速度信息,确定所述目标虚拟角色的运动速度。
具体的,所述目标对象检测模块401可以包括:
目标对象检测子模块,用于按照预设的时间间隔检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
信息收集子模块,用于在所述目标对象检测子模块检测到存在至少一个目标对象的情况下,收集所检测到的目标对象的信息;
所述个体动力信息计算模块402可以包括:
第一个体动力信息获得子模块,用于根据所收集的信息,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息;
第二个体动力信息获得子模块,用于根据所收集的信息,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均位置对应的个体动力信息;
第三个体动力信息获得子模块,用于根据所收集的信息,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色与所述目标虚拟角色之间的相对位置矢量对应的个体动力信息;
个体动力信息计算子模块,用于分别根据所述目标虚拟角色与每个上述检测到的目标对象中除了上述其他虚拟角色以外的剩余对象之间的移动模式,利用所述目标虚拟角色与每个剩余对象之间的距离计算所述目标虚拟角色针对每个剩余对象的个体动力信息;
所述角色运动速度确定模块403,具体用于在上述检测到的目标对象中存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,根据所获得的个体动力信息和计算得到的个体动力信息进行加权计算,确定所述目标虚拟角色的运动速度;在上述检测到的目标对象中不存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,对计算得到的个体动力信息进行加权计算,并根据加权计算的结果确定所述目标虚拟角色的运动速度。
具体的,所述第一个体动力信息获得子模块可以包括:
角色平均朝向计算单元,用于计算所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的平均朝向;
第一个体动力信息获得单元,用于获得所述平均朝向对应的个体动力信息。
具体的,所述第二个体动力信息获得子模块可以包括:
角色平均位置计算单元,用于根据所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的位置,计算虚拟角色的平均位置;
第二个体动力信息获得单元,用于获得所述平均位置对应的个体动力信息。
具体的,所述第三个体动力信息获得子模块可以包括:
个体相对位置矢量获得单元,用于分别获得从所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其他虚拟角色的位置到所述目标虚拟角色的位置的个体相对位置矢量;
综合相对位置矢量计算单元,用于计算所获得的各个个体相对位置矢量的矢量和,得到综合相对位置矢量;
第三个体动力信息确定单元,用于获得所述综合相对位置矢量对应的个体动力信息。
具体的,所述角色移动控制模块404可以包括:
角色控制器判断子模块,用于判断所述目标虚拟角色是否采用角色控制器;
第一角色移动控制子模块,用于在所述角色控制器判断子模块的判断结果为是的情况下,则利用所述运动速度控制所述角色控制器移动,以使得所述目标虚拟角色以所述运动速度移动;
增量位移计算子模块,用于在所述角色控制器判断子模块的判断结果为否的情况下,则利用所述运动速度,按照预设的时间单位计算增量位移;
第二角色移动控制子模块,用于利用所述增量位移控制所述目标虚拟角色以所述运动速度移动。
具体的,所述第二角色移动控制子模块可以包括:
非运动学刚体判断单元,用于判断目标虚拟角色是否采用非运动学刚体;
第一角色移动控制单元,用于在所述非运动学刚体判断单元的判断结果为是的情况下,利用所述增量位移控制所述非运动学刚体移动,以使所述目标虚拟角色以所述运动速度移动;
第二角色移动控制单元,用于在所述非运动学刚体判断单元的判断结果为否的情况下,利用所述增量位移改变所述目标虚拟角色的移动位置,以使所述目标虚拟角色以所述运动速度移动。
具体的,所述个体动力信息计算模块402,具体用于在所述目标虚拟角色与目标对象之间的移动模式为逃避模式的情况下,通过以下方式计算所述目标虚拟角色针对该目标对象的个体动力信息:
判断目标虚拟角色与该目标对象之间的距离是否小于预设的警戒距离;
若为是,则沿着与从所述目标虚拟角色到该目标对象的方向相反的方向,计算所述目标虚拟角色针对该目标对象的个体动力信息。
具体的,所述个体动力信息计算模块402,具体用于在所述目标虚拟角色与任一目标对象M之间的移动模式为追逐模式的情况下,通过以下方式计算所述目标虚拟角色针对所述目标对象M的个体动力信息:
在所述目标虚拟角色的可视范围内只存在一个目标对象的情况下,利用所述目标虚拟角色与所述目标对象M之间的距离,根据从所述目标虚拟角色到所述目标对象M运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的个体动力信息;
在所述目标虚拟角色的可视范围内存在多个目标对象的情况下,获得所述目标对象M的运动预测位置,沿着从所述目标虚拟角色到所述运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的第一动力信息;确定上述多个目标对象中与所述目标虚拟角色属于同一角色群体的第一类目标对象,计算第一类目标对象的平均朝向对应的动力信息、平均位置对应的动力信息以及与所述目标虚拟角色之间的相对位置矢量对应的动力信息;在除了所述第一类目标对象之外的上述多个目标对象中,确定需要躲避的属于障碍物的第二类目标对象,利用所述目标虚拟角色与所述第二类目标对象之间的距离,分别根据与从所述目标虚拟角色到每个第二类目标对象的方向相反的方向,计算所述目标虚拟角色针对每个第二类目标对象的第二动力信息;对所述第一类动力信息、计算得到的平均朝向对应的动力信息、平均位置对应的动力信息、与所述目标虚拟角色之间的相对位置矢量对应的动力信息和所述第二动力信息进行加权计算,根据加权计算结果获得所述目标虚拟角色针对所述目标对象M的个体动力信息。
具体的,所述目标虚拟角色可以包括:
根据用户在本技术方案提供的UI上定制选择或输入的虚拟角色参数生成的虚拟角色。
由以上可见,本实施例提供的方案中,在检测到目标虚拟角色的可视范围内存在目标对象时,根据目标虚拟角色与各个目标对象之间的移动模式,计算得到目标虚拟角色针对各个目标对象的个体动力信息,根据计算得到的个体动力信息确定目标虚拟角色的运动速度,根据所确定的运动速度,控制目标虚拟角色运动。由于在计算目标虚拟角色的运动速度之前,先检测了目标虚拟角色可视范围内的目标对象,又由于检测结果与当前的实时场景相关,并非仅仅与场景的设置相关,所以,计算得到的运动速度能够兼顾当前场景内的所有目标对象,进而应用本实施例提供的方案移动虚拟角色时,能够根据当前的场景动态的确定目标虚拟角色的移动线路,绕开场景中的障碍物,实现智能行为模拟。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (26)

1.一种虚拟角色的移动方法,其特征在于,在目标虚拟角色从第一位置移动到第二位置的过程中,所述方法包括:
检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
若存在至少一个目标对象,则分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息;
根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度;
控制所述目标虚拟角色以所述运动速度移动。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在控制所述目标虚拟角色移动的过程中,根据所述运动速度的运动方向分量、所述目标虚拟角色的当前朝向以及插值因子,按照预设的插值算法确定所述目标虚拟角色的朝向;
根据所确定的朝向调整所述目标虚拟角色的朝向。
3.根据权利要求1或2所述的方法,其特征在于,所述根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度,包括:
按照以下表达式,确定所述目标虚拟角色针对各个目标对象的综合动力信息P,
P=w1*P1…+wn*Pn+…+wN*PN
其中,Pn表示所述目标虚拟角色针对第n个目标对象的个体动力信息,wn表示Pn的加权系数;
根据所述综合动力信息P,确定所述目标虚拟角色的运动速度。
4.根据权利要求3所述的方法,其特征在于,所述根据所述综合动力信息P,确定所述目标虚拟角色的运动速度,包括:
根据所述综合动力信息P,计算所述目标虚拟角色的加速度信息;
根据所述加速度信息,确定所述目标虚拟角色的运动速度。
5.根据权利要求1或2所述的方法,其特征在于,
所述检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象,包括:
按照预设的时间间隔检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象,并在存在至少一个目标对象的情况下,收集所检测到的目标对象的信息;
所述分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息,包括:
根据所收集的信息分别获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息、平均位置对应的个体动力信息以及与所述目标虚拟角色之间的相对位置矢量对应的个体动力信息;
分别根据所述目标虚拟角色与每个上述检测到的目标对象中除了上述其他虚拟角色以外的剩余对象之间的移动模式,利用所述目标虚拟角色与每个剩余对象之间的距离计算所述目标虚拟角色针对每个剩余对象的个体动力信息;
所述根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度,包括:
在上述检测到的目标对象中存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,根据所获得的个体动力信息和计算得到的个体动力信息进行加权计算,确定所述目标虚拟角色的运动速度;
在上述检测到的目标对象中不存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,对计算得到的个体动力信息进行加权计算,并根据加权计算的结果确定所述目标虚拟角色的运动速度。
6.根据权利要求5所述的方法,其特征在于,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息,包括:
计算所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的平均朝向;
获得所述平均朝向对应的个体动力信息。
7.根据权利要求5所述的方法,其特征在于,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均位置对应的个体动力信息,包括:
根据所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的位置,计算虚拟角色的平均位置;
获得所述平均位置对应的个体动力信息。
8.根据权利要求5所述的方法,其特征在于,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色与所述目标虚拟角色之间的相对位置矢量对应的个体动力信息,包括:
分别获得从所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其他虚拟角色的位置到所述目标虚拟角色的位置的个体相对位置矢量;
计算所获得的各个个体相对位置矢量的矢量和,得到综合相对位置矢量;
获得所述综合相对位置矢量对应的个体动力信息。
9.根据权利要求1或2所述的方法,其特征在于,所述控制所述目标虚拟角色以所述运动速度移动,包括:
判断所述目标虚拟角色是否采用角色控制器;
若采用,则利用所述运动速度控制所述角色控制器移动,以使得所述目标虚拟角色以所述运动速度移动;
若未采用,则利用所述运动速度,按照预设的时间单位计算增量位移,并利用所述增量位移控制所述目标虚拟角色以所述运动速度移动。
10.根据权利要求9所述的方法,其特征在于,所述利用所述增量位移控制所述目标虚拟角色以所述运动速度移动,包括:
判断所述目标虚拟角色是否采用非运动学刚体;
若采用,则利用所述增量位移控制所述非运动学刚体移动,以使所述目标虚拟角色以所述运动速度移动;
如果未采用,则利用所述增量位移改变所述目标虚拟角色的移动位置,以使所述目标虚拟角色以所述运动速度移动。
11.根据权利要求1或2所述的方法,其特征在于,所述分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息,包括:
在所述目标虚拟角色与目标对象之间的移动模式为逃避模式的情况下,通过以下步骤计算所述目标虚拟角色针对该目标对象的个体动力信息:
判断所述目标虚拟角色与该目标对象之间的距离是否小于预设的警戒距离;
若为是,则沿着与从所述目标虚拟角色到该目标对象的方向相反的方向,计算所述目标虚拟角色针对该目标对象的个体动力信息。
12.根据权利要求1或2所述的方法,其特征在于,所述分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息,包括:
在所述目标虚拟角色与任一目标对象M之间的移动模式为追逐模式的情况下,通过以下步骤计算所述目标虚拟角色针对所述目标对象M的个体动力信息:
在所述目标虚拟角色的可视范围内只存在一个目标对象的情况下,利用所述目标虚拟角色与所述目标对象M之间的距离,根据从所述目标虚拟角色到所述目标对象M运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的个体动力信息;
在所述目标虚拟角色的可视范围内存在多个目标对象的情况下,获得所述目标对象M的运动预测位置,沿着从所述目标虚拟角色到所述运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的第一动力信息;确定上述多个目标对象中与所述目标虚拟角色属于同一角色群体的第一类目标对象,计算第一类目标对象的平均朝向对应的动力信息、平均位置对应的动力信息以及与所述目标虚拟角色之间的相对位置矢量对应的动力信息;在除了所述第一类目标对象之外的上述多个目标对象中,确定需要躲避的属于障碍物的第二类目标对象,利用所述目标虚拟角色与所述第二类目标对象之间的距离,分别根据与从所述目标虚拟角色到每个第二类目标对象的方向相反的方向,计算所述目标虚拟角色针对每个第二类目标对象的第二动力信息;对所述第一类动力信息、计算得到的平均朝向对应的动力信息、平均位置对应的动力信息、与所述目标虚拟角色之间的相对位置矢量对应的动力信息和所述第二动力信息进行加权计算,根据加权计算结果获得所述目标虚拟角色针对所述目标对象M的个体动力信息。
13.如权利要求1或2所述的方法,其特征在于,所述目标虚拟角色,包括:
根据用户在本技术方案提供的用户界面UI上定制选择或输入的虚拟角色参数生成的虚拟角色。
14.一种虚拟角色的移动装置,其特征在于,在目标虚拟角色从第一位置移动到第二位置的过程中,所述装置包括:
目标对象检测模块,用于检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
个体动力信息计算模块,用于在所述目标对象检测模块的检测结果为是的情况下,则分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息;
角色运动速度确定模块,用于根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度;
角色移动控制模块,用于控制所述目标虚拟角色以所述运动速度移动。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
角色朝向确定模块,用于在控制所述目标虚拟角色移动的过程中,根据所述运动速度的运动方向分量、所述目标虚拟角色的当前朝向以及插值因子,按照预设的插值算法确定所述目标虚拟角色的朝向;
角色朝向调整模块,用于根据所确定的朝向调整所述目标虚拟角色的朝向。
16.根据权利要求14或15所述的装置,其特征在于,所述角色运动速度确定模块,包括:
综合动力信息确定子模块,用于按照以下表达式,确定所述目标虚拟角色针对各个目标对象的综合动力信息P,
P=w1*P1…+wn*Pn+…+wN*PN
其中,Pn表示所述目标虚拟角色针对第n个目标对象的个体动力信息,wn表示Pn的加权系数;
角色运动速度确定子模块,用于根据所述综合动力信息P,确定所述目标虚拟角色的运动速度。
17.根据权利要求16所述的装置,其特征在于,所述角色运动速度确定子模块,包括:
加速度计算单元,用于根据所述综合动力信息P,计算所述目标虚拟角色的加速度信息;
角色运动速度确定单元,用于根据所述加速度信息,确定所述目标虚拟角色的运动速度。
18.根据权利要求14或15所述的装置,其特征在于,
所述目标对象检测模块,包括:
目标对象检测子模块,用于按照预设的时间间隔检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
信息收集子模块,用于在所述目标对象检测子模块检测到存在至少一个目标对象的情况下,收集所检测到的目标对象的信息;
所述个体动力信息计算模块,包括:
第一个体动力信息获得子模块,用于根据所收集的信息,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息;
第二个体动力信息获得子模块,用于根据所收集的信息,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均位置对应的个体动力信息;
第三个体动力信息获得子模块,用于根据所收集的信息,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色与所述目标虚拟角色之间的相对位置矢量对应的个体动力信息;
个体动力信息计算子模块,用于分别根据所述目标虚拟角色与每个上述检测到的目标对象中除了上述其他虚拟角色以外的剩余对象之间的移动模式,利用所述目标虚拟角色与每个剩余对象之间的距离计算所述目标虚拟角色针对每个剩余对象的个体动力信息;
所述角色运动速度确定模块,具体用于在上述检测到的目标对象中存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,根据所获得的个体动力信息和计算得到的个体动力信息进行加权计算,确定所述目标虚拟角色的运动速度;在上述检测到的目标对象中不存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,对计算得到的个体动力信息进行加权计算,并根据加权计算的结果确定所述目标虚拟角色的运动速度。
19.根据权利要求18所述的装置,其特征在于,所述第一个体动力信息获得子模块,包括:
角色平均朝向计算单元,用于计算所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的平均朝向;
第一个体动力信息获得单元,用于获得所述平均朝向对应的个体动力信息。
20.根据权利要求18所述的装置,其特征在于,所述第二个体动力信息获得子模块,包括:
角色平均位置计算单元,用于根据所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的位置,计算虚拟角色的平均位置;
第二个体动力信息获得单元,用于获得所述平均位置对应的个体动力信息。
21.根据权利要求18所述的装置,其特征在于,所述第三个体动力信息获得子模块,包括:
个体相对位置矢量获得单元,用于分别获得从所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其他虚拟角色的位置到所述目标虚拟角色的位置的个体相对位置矢量;
综合相对位置矢量计算单元,用于计算所获得的各个个体相对位置矢量的矢量和,得到综合相对位置矢量;
第三个体动力信息确定单元,用于获得所述综合相对位置矢量对应的个体动力信息。
22.根据权利要求14或15所述的装置,其特征在于,所述角色移动控制模块,包括:
角色控制器判断子模块,用于判断所述目标虚拟角色是否采用角色控制器;
第一角色移动控制子模块,用于在所述角色控制器判断子模块的判断结果为是的情况下,则利用所述运动速度控制所述角色控制器移动,以使得所述目标虚拟角色以所述运动速度移动;
增量位移计算子模块,用于在所述角色控制器判断子模块的判断结果为否的情况下,则利用所述运动速度,按照预设的时间单位计算增量位移;
第二角色移动控制子模块,用于利用所述增量位移控制所述目标虚拟角色以所述运动速度移动。
23.根据权利要求22所述的装置,其特征在于,所述第二角色移动控制子模块,包括:
非运动学刚体判断单元,用于判断所述目标虚拟角色是否采用非运动学刚体;
第一角色移动控制单元,用于在所述非运动学刚体判断单元的判断结果为是的情况下,利用所述增量位移控制所述非运动学刚体移动,以使所述目标虚拟角色以所述运动速度移动;
第二角色移动控制单元,用于在所述非运动学刚体判断单元的判断结果为否的情况下,利用所述增量位移改变所述目标虚拟角色的移动位置,以使所述目标虚拟角色以所述运动速度移动。
24.根据权利要求14或15所述的装置,其特征在于,
所述个体动力信息计算模块,具体用于在所述目标虚拟角色与目标对象之间的移动模式为逃避模式的情况下,通过以下方式计算所述目标虚拟角色针对该目标对象的个体动力信息:
判断所述目标虚拟角色与该目标对象之间的距离是否小于预设的警戒距离;
若为是,则沿着与从所述目标虚拟角色到该目标对象的方向相反的方向,计算所述目标虚拟角色针对该目标对象的个体动力信息。
25.根据权利要求14或15所述的装置,其特征在于,
所述个体动力信息计算模块,具体用于在所述目标虚拟角色与任一目标对象M之间的移动模式为追逐模式的情况下,通过以下方式计算所述目标虚拟角色针对所述目标对象M的个体动力信息:
在所述目标虚拟角色的可视范围内只存在一个目标对象的情况下,利用所述目标虚拟角色与所述目标对象M之间的距离,根据从所述目标虚拟角色到所述目标对象M运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的个体动力信息;
在所述目标虚拟角色的可视范围内存在多个目标对象的情况下,获得所述目标对象M的运动预测位置,沿着从所述目标虚拟角色到所述运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的第一动力信息;确定上述多个目标对象中与所述目标虚拟角色属于同一角色群体的第一类目标对象,计算第一类目标对象的平均朝向对应的动力信息、平均位置对应的动力信息以及与所述目标虚拟角色之间的相对位置矢量对应的动力信息;在除了所述第一类目标对象之外的上述多个目标对象中,确定需要躲避的属于障碍物的第二类目标对象,利用所述目标虚拟角色与所述第二类目标对象之间的距离,分别根据与从所述目标虚拟角色到每个第二类目标对象的方向相反的方向,计算所述目标虚拟角色针对每个第二类目标对象的第二动力信息;对所述第一类动力信息、计算得到的平均朝向对应的动力信息、平均位置对应的动力信息、与所述目标虚拟角色之间的相对位置矢量对应的动力信息和所述第二动力信息进行加权计算,根据加权计算结果获得所述目标虚拟角色针对所述目标对象M的个体动力信息。
26.如权利要求14或15所述的装置,其特征在于,所述目标虚拟角色,包括:
根据用户在本技术方案提供的用户界面UI上定制选择或输入的虚拟角色参数生成的虚拟角色。
CN201510434900.1A 2015-07-23 2015-07-23 一种虚拟角色的移动方法及装置 Active CN105056528B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510434900.1A CN105056528B (zh) 2015-07-23 2015-07-23 一种虚拟角色的移动方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510434900.1A CN105056528B (zh) 2015-07-23 2015-07-23 一种虚拟角色的移动方法及装置

Publications (2)

Publication Number Publication Date
CN105056528A true CN105056528A (zh) 2015-11-18
CN105056528B CN105056528B (zh) 2019-04-26

Family

ID=54486172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510434900.1A Active CN105056528B (zh) 2015-07-23 2015-07-23 一种虚拟角色的移动方法及装置

Country Status (1)

Country Link
CN (1) CN105056528B (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106056989A (zh) * 2016-06-23 2016-10-26 广东小天才科技有限公司 一种语言学习方法及装置、终端设备
CN106201266A (zh) * 2016-07-06 2016-12-07 广东小天才科技有限公司 一种虚拟角色移动的控制方法及装置、电子设备
CN106293070A (zh) * 2016-07-27 2017-01-04 网易(杭州)网络有限公司 虚拟角色视角方向控制方法及装置
CN107422847A (zh) * 2017-06-16 2017-12-01 福建天晴数码有限公司 一种远程测试虚拟角色加速度值的方法及系统
CN107422848A (zh) * 2017-06-16 2017-12-01 福建天晴数码有限公司 一种测试虚拟角色加速度值的方法及系统
CN107609631A (zh) * 2017-08-03 2018-01-19 福建省天晴互动娱乐有限公司 Unity中实现群集AI的方法、存储介质
WO2018090705A1 (zh) * 2016-11-17 2018-05-24 腾讯科技(深圳)有限公司 角色模型的移动控制方法、装置及数据同步方法、系统
CN108629847A (zh) * 2018-05-07 2018-10-09 网易(杭州)网络有限公司 虚拟对象移动路径生成方法、装置、存储介质及电子设备
CN108654085A (zh) * 2018-05-18 2018-10-16 网易(杭州)网络有限公司 游戏虚拟对象控制方法及装置、电子设备、存储介质
CN109116990A (zh) * 2018-08-20 2019-01-01 广州市三川田文化科技股份有限公司 一种移动控制的方法、装置、设备及计算机可读存储介质
CN109126134A (zh) * 2018-09-29 2019-01-04 北京金山安全软件有限公司 游戏角色的移动方法、装置和电子设备
CN109151555A (zh) * 2018-10-29 2019-01-04 奇想空间(北京)教育科技有限公司 游乐设备以及处理视频图像的方法
CN109224446A (zh) * 2018-07-17 2019-01-18 派视觉虚拟现实(深圳)软件技术有限公司 一种游戏中的动物运动方法、装置及设备
CN109407959A (zh) * 2018-10-31 2019-03-01 腾讯科技(深圳)有限公司 虚拟场景中的虚拟对象控制方法、设备以及存储介质
CN109817048A (zh) * 2018-12-04 2019-05-28 广西峰和云启文化投资有限公司 一种虚拟仿真环境中角色姿态与行走方向的识别系统
CN110052027A (zh) * 2019-04-26 2019-07-26 腾讯科技(深圳)有限公司 虚拟场景中的虚拟对象控制方法、装置、设备及存储介质
CN110681156A (zh) * 2019-10-10 2020-01-14 腾讯科技(深圳)有限公司 虚拟世界中的虚拟角色控制方法、装置、设备及存储介质
EP3524329A4 (en) * 2017-01-18 2020-04-15 Tencent Technology (Shenzhen) Company Limited STORAGE METHOD, DEVICE AND MEDIUM FOR DETERMINING THE ORIENTATION OF A VIRTUAL CHARACTER
CN111167117A (zh) * 2019-12-27 2020-05-19 深圳市瑞立视多媒体科技有限公司 一种虚幻对象的随机行走方法及其控制系统、存储介质
CN111544889A (zh) * 2020-04-27 2020-08-18 腾讯科技(深圳)有限公司 虚拟对象的行为控制方法和装置及存储介质
CN111544888A (zh) * 2020-04-22 2020-08-18 腾讯科技(深圳)有限公司 虚拟群体单位的移动方法和装置、存储介质及电子设备
CN112569598A (zh) * 2020-12-22 2021-03-30 上海幻电信息科技有限公司 目标对象控制方法及装置
CN113082713A (zh) * 2021-03-01 2021-07-09 上海硬通网络科技有限公司 游戏控制方法、装置及电子设备
WO2022027262A1 (zh) * 2020-08-05 2022-02-10 上海莉莉丝科技股份有限公司 游戏对象的交互控制系统、方法、服务器及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615301A (zh) * 2009-07-29 2009-12-30 腾讯科技(深圳)有限公司 计算机虚拟环境中目标的路径控制方法和系统
CN103823466A (zh) * 2013-05-23 2014-05-28 电子科技大学 一种动态环境下移动机器人路径规划方法
CN103893969A (zh) * 2014-04-15 2014-07-02 广州博冠信息科技有限公司 一种游戏中寻路的方法和设备
CN104606886A (zh) * 2014-12-25 2015-05-13 珠海金山网络游戏科技有限公司 一种分布式无碰撞移动规划的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615301A (zh) * 2009-07-29 2009-12-30 腾讯科技(深圳)有限公司 计算机虚拟环境中目标的路径控制方法和系统
CN103823466A (zh) * 2013-05-23 2014-05-28 电子科技大学 一种动态环境下移动机器人路径规划方法
CN103893969A (zh) * 2014-04-15 2014-07-02 广州博冠信息科技有限公司 一种游戏中寻路的方法和设备
CN104606886A (zh) * 2014-12-25 2015-05-13 珠海金山网络游戏科技有限公司 一种分布式无碰撞移动规划的方法

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106056989B (zh) * 2016-06-23 2018-10-16 广东小天才科技有限公司 一种语言学习方法及装置、终端设备
CN106056989A (zh) * 2016-06-23 2016-10-26 广东小天才科技有限公司 一种语言学习方法及装置、终端设备
CN106201266A (zh) * 2016-07-06 2016-12-07 广东小天才科技有限公司 一种虚拟角色移动的控制方法及装置、电子设备
CN106201266B (zh) * 2016-07-06 2019-05-28 广东小天才科技有限公司 一种虚拟角色移动的控制方法及装置、电子设备
CN106293070A (zh) * 2016-07-27 2017-01-04 网易(杭州)网络有限公司 虚拟角色视角方向控制方法及装置
CN106293070B (zh) * 2016-07-27 2019-11-15 网易(杭州)网络有限公司 虚拟角色视角方向控制方法及装置
WO2018090705A1 (zh) * 2016-11-17 2018-05-24 腾讯科技(深圳)有限公司 角色模型的移动控制方法、装置及数据同步方法、系统
EP3524329A4 (en) * 2017-01-18 2020-04-15 Tencent Technology (Shenzhen) Company Limited STORAGE METHOD, DEVICE AND MEDIUM FOR DETERMINING THE ORIENTATION OF A VIRTUAL CHARACTER
CN107422847B (zh) * 2017-06-16 2020-04-17 福建天晴数码有限公司 一种远程测试虚拟角色加速度值的方法及系统
CN107422848A (zh) * 2017-06-16 2017-12-01 福建天晴数码有限公司 一种测试虚拟角色加速度值的方法及系统
CN107422847A (zh) * 2017-06-16 2017-12-01 福建天晴数码有限公司 一种远程测试虚拟角色加速度值的方法及系统
CN107609631B (zh) * 2017-08-03 2020-08-18 福建省天晴互动娱乐有限公司 Unity中实现群集AI的方法、存储介质
CN107609631A (zh) * 2017-08-03 2018-01-19 福建省天晴互动娱乐有限公司 Unity中实现群集AI的方法、存储介质
CN108629847A (zh) * 2018-05-07 2018-10-09 网易(杭州)网络有限公司 虚拟对象移动路径生成方法、装置、存储介质及电子设备
CN108654085B (zh) * 2018-05-18 2021-06-04 网易(杭州)网络有限公司 游戏虚拟对象控制方法及装置、电子设备、存储介质
CN108654085A (zh) * 2018-05-18 2018-10-16 网易(杭州)网络有限公司 游戏虚拟对象控制方法及装置、电子设备、存储介质
CN109224446B (zh) * 2018-07-17 2022-05-06 派视觉虚拟现实(深圳)软件技术有限公司 一种游戏中的动物运动方法、装置及设备
CN109224446A (zh) * 2018-07-17 2019-01-18 派视觉虚拟现实(深圳)软件技术有限公司 一种游戏中的动物运动方法、装置及设备
CN109116990B (zh) * 2018-08-20 2019-06-11 广州市三川田文化科技股份有限公司 一种移动控制的方法、装置、设备及计算机可读存储介质
CN109116990A (zh) * 2018-08-20 2019-01-01 广州市三川田文化科技股份有限公司 一种移动控制的方法、装置、设备及计算机可读存储介质
CN109126134A (zh) * 2018-09-29 2019-01-04 北京金山安全软件有限公司 游戏角色的移动方法、装置和电子设备
CN109151555A (zh) * 2018-10-29 2019-01-04 奇想空间(北京)教育科技有限公司 游乐设备以及处理视频图像的方法
CN109407959B (zh) * 2018-10-31 2020-11-10 腾讯科技(深圳)有限公司 虚拟场景中的虚拟对象控制方法、设备以及存储介质
CN109407959A (zh) * 2018-10-31 2019-03-01 腾讯科技(深圳)有限公司 虚拟场景中的虚拟对象控制方法、设备以及存储介质
CN109817048A (zh) * 2018-12-04 2019-05-28 广西峰和云启文化投资有限公司 一种虚拟仿真环境中角色姿态与行走方向的识别系统
CN109817048B (zh) * 2018-12-04 2022-07-08 广西峰和云启文化投资有限公司 一种虚拟仿真环境中角色姿态与行走方向的识别系统
CN110052027A (zh) * 2019-04-26 2019-07-26 腾讯科技(深圳)有限公司 虚拟场景中的虚拟对象控制方法、装置、设备及存储介质
CN110052027B (zh) * 2019-04-26 2021-12-28 腾讯科技(深圳)有限公司 虚拟场景中的虚拟对象控制方法、装置、设备及存储介质
CN110681156A (zh) * 2019-10-10 2020-01-14 腾讯科技(深圳)有限公司 虚拟世界中的虚拟角色控制方法、装置、设备及存储介质
CN110681156B (zh) * 2019-10-10 2021-10-29 腾讯科技(深圳)有限公司 虚拟世界中的虚拟角色控制方法、装置、设备及存储介质
CN111167117A (zh) * 2019-12-27 2020-05-19 深圳市瑞立视多媒体科技有限公司 一种虚幻对象的随机行走方法及其控制系统、存储介质
CN111167117B (zh) * 2019-12-27 2023-06-02 深圳市瑞立视多媒体科技有限公司 一种虚幻对象的随机行走方法及其控制系统、存储介质
CN111544888A (zh) * 2020-04-22 2020-08-18 腾讯科技(深圳)有限公司 虚拟群体单位的移动方法和装置、存储介质及电子设备
CN111544889A (zh) * 2020-04-27 2020-08-18 腾讯科技(深圳)有限公司 虚拟对象的行为控制方法和装置及存储介质
WO2022027262A1 (zh) * 2020-08-05 2022-02-10 上海莉莉丝科技股份有限公司 游戏对象的交互控制系统、方法、服务器及计算机可读存储介质
US11511191B2 (en) 2020-08-05 2022-11-29 Shanghai Lilith Technology Corporation Interactive control system and method for game objects, server and computer-readable storage medium
CN112569598A (zh) * 2020-12-22 2021-03-30 上海幻电信息科技有限公司 目标对象控制方法及装置
CN113082713A (zh) * 2021-03-01 2021-07-09 上海硬通网络科技有限公司 游戏控制方法、装置及电子设备
CN113082713B (zh) * 2021-03-01 2022-12-09 上海硬通网络科技有限公司 游戏控制方法、装置及电子设备

Also Published As

Publication number Publication date
CN105056528B (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN105056528A (zh) 一种虚拟角色的移动方法及装置
CN109974737A (zh) 基于安全疏散标志和强化学习结合的路径规划方法及系统
Roli et al. On the design of Boolean network robots
Dubiel et al. Integrating agent based modeling into a discrete event simulation
CN104941180B (zh) 一种2d游戏的碰撞检测方法和装置
Godoy et al. Implicit coordination in crowded multi-agent navigation
CN100524363C (zh) 一种用于动态实体的分层避障方法
CN110415521A (zh) 交通数据的预测方法、装置和计算机可读存储介质
CN105205860B (zh) 三维模型场景的展示方法及装置
CN105468801A (zh) 公共场所人群疏散仿真方法及系统
Zank et al. Optimized graph extraction and locomotion prediction for redirected walking
CN106709471A (zh) 跌倒检测方法及装置
KR20130133778A (ko) 트레이싱 정보에 기초한 충돌 회피 방식을 사용하여 캐릭터들을 애니메이팅하기 위한 방법
CN107748942A (zh) 基于速度场感知网络的雷达回波外推预测方法和系统
Tastan et al. Learning to intercept opponents in first person shooter games
CN109325979A (zh) 基于深度学习的机器人回环检测方法
CN109163728A (zh) 一种动态环境避障方法、控制器及机器人
Pretorius et al. A comparison of neural networks and physics models as motion simulators for simple robotic evolution
Chehelgami et al. Safe deep learning-based global path planning using a fast collision-free path generator
O'Connor et al. Perceived realism of crowd behaviour with social forces
Ruan et al. Dynamic cellular learning automata for evacuation simulation
CN101344970A (zh) 一种基于卡尔曼滤波的群组动态跟踪特效设计方法
CN109376371A (zh) 一种行人运动仿真方法和系统
CN114964247A (zh) 基于高阶图卷积神经网络的人群感知导航方法及系统
Rodriguez et al. Utilizing roadmaps in evacuation planning

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Patentee after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Address before: No. 8 Lianshan Lane, Jingshan Road, Jida, Zhuhai, Guangdong, 519000

Patentee before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address