一种虚拟角色的移动方法及装置的制造方法

文档序号:9337278阅读:207来源:国知局
一种虚拟角色的移动方法及装置的制造方法
【技术领域】
[0001]本发明涉及互联网通信技术领域,特别涉及一种虚拟角色的移动方法及装置。
【背景技术】
[0002]目前,大部分的MMO(Massively Multiplayer Online,大型多人在线)游戏都具有自动寻路功能。其中,当虚拟角色位于游戏场景上的位置A时,如果玩家点击游戏场景上的位置B,则虚拟角色就会自动寻路,从位置A移动到位置B。进一步的,在虚拟角色从位置A移动到位置B的过程中,可能会有很多的障碍物,虚拟角色能够自动绕过这些障碍物,最终达到位置B。
[0003]现有技术,例如,寻路插件Navmesh所采用的寻路方法和A*寻路方法中,为了使虚拟角色能够自动绕过障碍物,会根据障碍物的位置预先计算出一条静态的可行走路线,并基于静态的可行走路线自动绕过障碍物。例如,根据位置A与位置B之间的障碍物的位置预先计算出一条静态的位置A与位置B之间的可行走路线,基于此位置A与位置B之间的可行走路线,虚拟角色能够自动绕过位置A与位置B之间的障碍物,从位置A移动到位置B。
[0004]在上述方式中,需要根据位置A与位置B之间的障碍物的位置预先计算出一条静态的可行走路线,这就要求在位置A与位置B之间的障碍物的位置不会发生变化。如果在位置A与位置B之间的障碍物的位置发生变化,则虚拟角色无法自动绕过位置发生变化的障碍物。而且,如果在位置A与位置B之间增加了新的障碍物,则虚拟角色无法自动绕过新增加的障碍物。

【发明内容】

[0005]本发明实施例公开了一种虚拟角色的移动方法及装置,以能够动态得到虚拟角色在移动过程中躲避障碍物的线路,实现智能行为模拟。
[0006]为达到上述目的,本发明实施例公开了一种虚拟角色的移动方法,在目标虚拟角色从第一位置移动到第二位置的过程中,所述方法包括:
[0007]检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
[0008]若存在至少一个目标对象,则分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息;
[0009]根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度;
[0010]控制所述目标虚拟角色以所述运动速度移动。
[0011]在本发明的一种具体实现方式中,所述虚拟角色的移动方法还包括:
[0012]在控制所述目标虚拟角色移动的过程中,根据所述运动速度的运动方向分量、所述目标虚拟角色的当前朝向以及插值因子,按照预设的插值算法确定所述目标虚拟角色的朝向;
[0013]根据所确定的朝向调整所述目标虚拟角色的朝向。
[0014]在本发明的一种具体实现方式中,所述根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度,包括:
[0015]按照以下表达式,确定所述目标虚拟角色针对各个目标对象的综合动力信息P,
[0016]P =+W1^Pn+"*
[0017]其中,^表示所述目标虚拟角色针对第η个目标对象的个体动力信息,Wn表示Pn的加权系数;
[0018]根据所述综合动力信息P,确定所述目标虚拟角色的运动速度。
[0019]在本发明的一种具体实现方式中,所述根据所述综合动力信息P,确定所述目标虚拟角色的运动速度,包括:
[0020]根据所述综合动力信息P,计算所述目标虚拟角色的加速度信息;
[0021]根据所述加速度信息,确定所述目标虚拟角色的运动速度。
[0022]在本发明的一种具体实现方式中,所述检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象,包括:
[0023]按照预设的时间间隔检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象,并在存在至少一个目标对象的情况下,收集所检测到的目标对象的信息;
[0024]所述分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息,包括:
[0025]根据所收集的信息分别获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息、平均位置对应的个体动力信息以及与所述目标虚拟角色之间的相对位置矢量对应的个体动力信息;
[0026]分别根据所述目标虚拟角色与每个上述检测到的目标对象中除了上述其他虚拟角色以外的剩余对象之间的移动模式,利用所述目标虚拟角色与每个剩余对象之间的距离计算所述目标虚拟角色针对每个剩余对象的个体动力信息;
[0027]所述根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度,包括:
[0028]在上述检测到的目标对象中存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,根据所获得的个体动力信息和计算得到的个体动力信息进行加权计算,确定所述目标虚拟角色的运动速度;
[0029]在上述检测到的目标对象中不存在与所述目标虚拟角色属于同一角色群体的其他虚拟角色的情况下,对计算得到的个体动力信息进行加权计算,并根据加权计算的结果确定所述目标虚拟角色的运动速度。
[0030]在本发明的一种具体实现方式中,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均朝向对应的个体动力信息,包括:
[0031]计算所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的平均朝向;
[0032]获得所述平均朝向对应的个体动力信息。
[0033]在本发明的一种具体实现方式中,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色的平均位置对应的个体动力信息,包括:
[0034]根据所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其它虚拟角色的位置,计算虚拟角色的平均位置;
[0035]获得所述平均位置对应的个体动力信息。
[0036]在本发明的一种具体实现方式中,获得所述目标虚拟角色的可视范围内存在的其所属角色群体中包含的其他虚拟角色与所述目标虚拟角色之间的相对位置矢量对应的个体动力信息,包括:
[0037]分别获得从所述目标虚拟角色当前可视范围内所属的角色群体中所包含的其他虚拟角色的位置到所述目标虚拟角色的位置的个体相对位置矢量;
[0038]计算所获得的各个个体相对位置矢量的矢量和,得到综合相对位置矢量;
[0039]获得所述综合相对位置矢量对应的个体动力信息。
[0040]在本发明的一种具体实现方式中,所述控制所述目标虚拟角色以所述运动速度移动,包括:
[0041]判断所述目标虚拟角色是否采用角色控制器;
[0042]若采用,则利用所述运动速度控制所述角色控制器移动,以使得所述目标虚拟角色以所述运动速度移动;
[0043]若未采用,则利用所述运动速度,按照预设的时间单位计算增量位移,并利用所述增量位移控制所述目标虚拟角色以所述运动速度移动。
[0044]在本发明的一种具体实现方式中,所述利用所述增量位移控制所述目标虚拟角色以所述运动速度移动,包括:
[0045]判断所述目标虚拟角色是否采用非运动学刚体;
[0046]若采用,则利用所述增量位移控制所述非运动学刚体移动,以使所述目标虚拟角色以所述运动速度移动;
[0047]如果未采用,则利用所述增量位移改变所述目标虚拟角色的移动位置,以使所述目标虚拟角色以所述运动速度移动。
[0048]在本发明的一种具体实现方式中,所述分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息,包括:
[0049]在所述目标虚拟角色与目标对象之间的移动模式为逃避模式的情况下,通过以下步骤计算所述目标虚拟角色针对该目标对象的个体动力信息:
[0050]判断所述目标虚拟角色与该目标对象之间的距离是否小于预设的警戒距离;
[0051]若为是,则沿着与从所述目标虚拟角色到该目标对象的方向相反的方向,计算所述目标虚拟角色针对该目标对象的个体动力信息。
[0052]在本发明的一种具体实现方式中,所述分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息,包括:
[0053]在所述目标虚拟角色与任一目标对象M之间的移动模式为追逐模式的情况下,通过以下步骤计算所述目标虚拟角色针对所述目标对象M的个体动力信息:
[0054]在所述目标虚拟角色的可视范围内只存在一个目标对象的情况下,利用所述目标虚拟角色与所述目标对象M之间的距离,根据从所述目标虚拟角色到所述目标对象M运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的个体动力信息;
[0055]在所述目标虚拟角色的可视范围内存在多个目标对象的情况下,获得所述目标对象M的运动预测位置,沿着从所述目标虚拟角色到所述运动预测位置的方向以及所述目标虚拟角色的当前运动速度,计算所述目标虚拟角色针对所述目标对象M的第一动力信息;确定上述多个目标对象中与所述目标虚拟角色属于同一角色群体的第一类目标对象,计算第一类目标对象的平均朝向对应的动力信息、平均位置对应的动力信息以及与所述目标虚拟角色之间的相对位置矢量对应的动力信息;在除了所述第一类目标对象之外的上述多个目标对象中,确定需要躲避的属于障碍物的第二类目标对象,利用所述目标虚拟角色与所述第二类目标对象之间的距离,分别根据与从所述目标虚拟角色到每个第二类目标对象的方向相反的方向,计算所述目标虚拟角色针对每个第二类目标对象的第二动力信息;对所述第一类动力信息、计算得到的平均朝向对应的动力信息、平均位置对应的动力信息、与所述目标虚拟角色之间的相对位置矢量对应的动力信息和所述第二动力信息进行加权计算,根据加权计算结果获得所述目标虚拟角色针对所述目标对象M的个体动力信息。
[0056]在本发明的一种具体实现方式中,所述目标虚拟角色,包括:
[0057]根据用户在本技术方案提供的用户界面UI上定制选择或输入的虚拟角色参数生成的虚拟角色。
[0058]为达到上述目的,本发明实施例公开了一种虚拟角色的移动装置,在目标虚拟角色从第一位置移动到第二位置的过程中,所述装置包括:
[0059]目标对象检测模块,用于检测所述目标虚拟角色的可视范围内是否存在至少一个目标对象;
[0060]个体动力信息计算模块,用于在所述目标对象检测模块的检测结果为是的情况下,则分别根据所述目标虚拟角色与各个目标对象之间的移动模式,利用所述目标虚拟角色与每个目标对象之间的距离计算所述目标虚拟角色针对每个目标对象的个体动力信息;
[0061]角色运动速度确定模块,用于根据计算得到的个体动力信息,确定所述目标虚拟角色的运动速度;
[0062]角色移动控制模块,用于控制所述目标虚拟角色以所述运动速度移动。
[0063]在本发明的一种具体实现方式中,所述虚拟角色的移动装置还包括:
[0064]角色朝向确定模块,用于在控制所述目标虚拟角色移动的过程中,根据所述运动速度的运动方向分量、所述目标虚拟角色的当前朝向以及插值因子,按照预设的插值算法确定所述目标虚拟角色的朝向;
[0065]角色朝向调整模块,用于根据所确定的朝向调整所述目标虚拟角色的朝向。
[0066]在本发明的一种具体实现方式中,所述角色运动速度确定模块,包括:
[0067]综合动力信息确定子模块,用于按照以下表达式,确定所述目标虚拟角色针对各个目标对象的综合动力信息P,
[0068]P =+W1^Pn+"*+wN*PN,
[0069]其中,^表示所述目标虚拟角色针对第η个目标对象的个体动力信息,Wn表示Pn的加权系数;
[0070]角色运动速度确定子模块,用于根据所述综合动力信息P,确定所述目标虚拟角色的运动速度。
[0071]在本发明的一种具体实现方式中,所述角色运动速度确定子模块,包括:
[0072]加速度计算单元,用于根据所述综合动力信息P,计算所述目标虚拟角色的加速度信息;
[0073]角色运动速度确定单元,用于根据所述加速度信息,确定所述目标虚拟角色的运动速度。
[0074]在本发明的一种具体实现方式中,所述目标对象检测
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1