CN111773724B - 一种跨越虚拟障碍的方法和装置 - Google Patents

一种跨越虚拟障碍的方法和装置 Download PDF

Info

Publication number
CN111773724B
CN111773724B CN202010762005.3A CN202010762005A CN111773724B CN 111773724 B CN111773724 B CN 111773724B CN 202010762005 A CN202010762005 A CN 202010762005A CN 111773724 B CN111773724 B CN 111773724B
Authority
CN
China
Prior art keywords
virtual
obstacle model
character
game scene
virtual obstacle
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.)
Active
Application number
CN202010762005.3A
Other languages
English (en)
Other versions
CN111773724A (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.)
Netease Shanghai Network Co ltd
Original Assignee
Netease Shanghai Network 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 Netease Shanghai Network Co ltd filed Critical Netease Shanghai Network Co ltd
Priority to CN202010762005.3A priority Critical patent/CN111773724B/zh
Publication of CN111773724A publication Critical patent/CN111773724A/zh
Application granted granted Critical
Publication of CN111773724B publication Critical patent/CN111773724B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例提供了一种跨越虚拟障碍的方法和装置,通过终端提供图形用户界面,所述图形用户界面显示的内容包含至少部分游戏场景和虚拟角色,所述方法包括:从所述虚拟角色朝所述虚拟角色的移动方向发出射线,并检测所述射线照射到与所述游戏场景中的虚拟环境相交的交点信息;根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型;控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。通过在游戏运行时对虚拟障碍模型进行检测以及控制虚拟角色对虚拟障碍模型进行跨越,不需要对游戏场景进行预处理,实现对游戏场景中动态生成的虚拟障碍模型的实时检测,以及对动态生成的虚拟障碍模型进行实时跨越。

Description

一种跨越虚拟障碍的方法和装置
技术领域
本发明涉及虚拟世界技术领域,特别是涉及一种跨越虚拟障碍的方法和一种跨越虚拟障碍的装置。
背景技术
随着应用程序中虚拟世界的多样化以及复杂化,虚拟世界中的虚拟游戏角色除了能够在虚拟游戏场景中进行简单的移动、转向以及攻击以外,还可以进行一些较为复杂的行为,例如攀登、翻越、滑翔等,这些较为复杂的行为使得虚拟游戏世界显得更为真实,大幅度提高了游戏玩家的游戏体验以及沉浸感。然而,由于这些较为复杂的行为涉及到角色与游戏场景的交互,在实现上往往存在一些困难。
在现有技术中,一般可以通过给游戏场景中物件添加标记的方式,对可攀爬面或障碍物进行攀爬或翻越指示。具体的,会在攀爬面或翻越物上以一定间隔记录一系列点,表示攀爬轨迹;在游戏过程中,角色以一定的时间间隔以及一定的检测距离探测周围的物件,若发现攀爬面或翻越物标记,且玩家下达攀爬或翻越指令,则角色开始进入攀爬或翻越状态。在该状态下,玩家的移动方向被转化为攀爬方向,角色沿着预先生成的攀爬点的攀爬轨迹进行移动,当角色移动至攀爬面或翻越障碍边缘,即表示攀爬或翻越结束,此时切换到正常移动模式。
然而,通过对攀爬面或翻越物标记的方式,需要游戏制作人员对游戏场景进行预处理,即需要花费大量精力手动指定攀爬面或可翻越障碍,不利于游戏制作人员的敏捷开发;且对于随机生成的游戏场景中,其场景中的物件有可能也是随机生成的,这些随机生成的物件未经过游戏制作人员的预处理,可能在进行攀爬或翻越时出现预料之外的结果,不利于动态生成场景中的攀爬或翻越。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种跨越虚拟障碍的方法和相应的一种跨越虚拟障碍的装置。
为了解决上述问题,本发明实施例公开了一种跨越虚拟障碍的方法,通过终端提供图形用户界面,所述图形用户界面显示的内容包含至少部分游戏场景和虚拟角色,所述方法包括:
从所述虚拟角色朝所述虚拟角色的移动方向发出射线,并检测所述射线照射到与所述游戏场景中的虚拟环境相交的交点信息;
根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型;
控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
可选地,所述从所述虚拟角色朝所述虚拟角色的移动方向发出射线,并检测所述射线照射到与所述游戏场景中的虚拟环境相交的交点信息,根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型,包括:
从所述虚拟角色所在位置朝所述虚拟角色的移动方向发出N条射线,检测所述N条射线与所述游戏场景中的虚拟环境相交的交点信息;所述交点信息包括交点数,其中N为正整数;
若所述交点数小于发出的射线数N,则确定所述虚拟角色的移动方向不存在虚拟障碍模型。
可选地,所述N为大于或等于3的整数。
可选地,所述从所述虚拟角色所在位置朝所述虚拟角色的移动方向发出N条射线,包括:
从所述虚拟角色的头部、中部和脚部朝所述虚拟角色的移动方向分别发出至少一条射线。
可选地,所述根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型,包括:
若所述交点数等于发出的射线数N,则确定每个交点与所述虚拟角色之间的距离;
若每个交点与所述虚拟角色之间的距离均大于第一预设值,则确定所述游戏场景中不存在虚拟障碍模型。
可选地,所述根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型,包括:
若所述交点数等于发出的射线数N,则确定任意两个交点所构成的直线,并获取所有直线的斜率;
当所有直线中任意两条直线的斜率的差值小于第二预设值,且所有直线的斜率的平均值大于第三预设值,则确定所述游戏场景中存在虚拟障碍模型。
可选地,所述根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型,包括:
当根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中虚拟障碍模型时,生成与所述虚拟角色对应的胶囊体;
控制所述胶囊体朝所述虚拟角色的移动方向做胶囊体扫射,获得所述胶囊体与所述虚拟障碍模型相交的交点位置以及所述交点位置的法线方向;
根据所述交点位置的法线方向确定所述虚拟障碍模型的攀爬面相对于地面的倾斜角度;
根据倾斜角度确定所述虚拟障碍模型是否为合格的虚拟障碍模型。
可选地,所述根据倾斜角度确定所述虚拟障碍模型是否为合格的虚拟障碍模型,包括:
若所述倾斜角度小于预设倾斜角度,则确定所述虚拟障碍模型为不合格的虚拟障碍模型;
若所述倾斜角度大于或等于所述预设倾斜角度,则确定所述虚拟障碍模型为合格的虚拟障碍模型。
可选地,所述控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型,包括:
确定所述虚拟障碍模型的类型;
根据所述虚拟障碍模型的类型,控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
可选地,所述确定所述虚拟障碍模型的类型,包括:
获取所述虚拟角色的当前位置以及预设的出墙动画的动画位移,通过所述虚拟角色的当前位置以及所述动画位移得到所述虚拟角色的出墙位置;
从所述出墙位置朝所述出墙位置的下方做射线检测,以判断所述出墙位置的下方是否存在可站立面;
若所述出墙位置的下方存在可站立面,则确定所述虚拟障碍模型的类型为攀爬类型的虚拟障碍模型;
若所述出墙位置的下方不存在可站立面且所述虚拟障碍模型的高度小于预设高度阈值,则确定所述虚拟障碍模型的类型为翻越类型的虚拟障碍模型。
可选地,所述根据所述虚拟障碍模型的类型,控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型,包括:
当所述虚拟障碍模型的类型为攀爬类型时,控制所述游戏场景中的所述虚拟角色攀爬所述虚拟障碍模型;
当所述虚拟障碍模型的类型为翻越类型时,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
可选地,所述控制所述游戏场景中的所述虚拟角色攀爬所述虚拟障碍模型,包括:
获取所述虚拟角色的当前攀爬位置以及所述虚拟角色对应的胶囊体;
控制所述虚拟角色对应的胶囊体朝所述虚拟角色的移动方向发出射线,得到射线照射到所述虚拟障碍模型的交点位置及所述交点位置的法线方向;
根据所述交点位置的法线方向调整所述虚拟角色的轴向;
根据所述虚拟角色的轴向控制所述虚拟角色攀爬所述虚拟障碍模型。
可选地,所述控制所述游戏场景中所述虚拟角色攀爬所述虚拟障碍模型,还包括:
生成所述虚拟角色对应的检测胶囊体;
获取所述检测胶囊体的当前位置,所述检测胶囊体的当前位置由所述虚拟角色的当前攀爬位置以及预设的攀爬动画的动画位移确定;
根据所述检测胶囊体的当前位置判断所述检测胶囊体与所述虚拟环境是否重叠;
若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
可选地,所述若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型,包括:
若所述检测胶囊体与所述虚拟环境不重叠,则检测所述检测胶囊体的下方是否存在可站立面;
若所述检测胶囊体的下方存在可站立面,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
可选地,所述若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型,包括:
若所述检测胶囊体与所述虚拟环境不重叠,则根据所述预设的攀爬动画的结束动作判断所述虚拟角色是否会与所述虚拟环境发生碰撞;
若确定所述虚拟角色不会与所述虚拟环境发生碰撞,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
所述若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型,包括:
若所述检测胶囊体与所述虚拟环境不重叠,则从所述检测胶囊体的当前位置朝上方发出射线,检测所发出的射线与所述虚拟环境的交点;
若所述检测胶囊体与所述交点之间的距离超出预设距离,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
可选地,所述方法还包括:
若所述检测胶囊体与所述虚拟环境重叠,则确定所述虚拟角色不在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
可选地,所述控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型,包括:
从预设的翻越动画中获取预设的障碍模型的尺寸信息;
获取所述游戏场景中的所述虚拟障碍模型的尺寸信息;
采用所述虚拟障碍模型的尺寸信息与所述预设的障碍模型的尺寸信息,得到根骨骼的缩放比;
采用所述缩放比对所述预设的翻越动画中根骨骼的关键帧进行缩放;
根据缩放后的所述预设的翻越动画,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
本发明实施例还公开了一种虚拟障碍跨越的装置,通过终端提供图形用户界面,所述图形用户界面显示的内容包含至少部分游戏场景和虚拟角色,所述装置包括:
交点信息检测模块,用于从所述虚拟角色朝所述虚拟角色的移动方向在所述游戏场景中发出射线,并检测所述射线与所述游戏场景中的虚拟环境相交的交点信息;
虚拟障碍模型确定模块,用于根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型;
虚拟障碍模型跨越模块,用于控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
可选地,所述交点信息检测模块包括:
交点信息检测子模块,用于从所述虚拟角色所在位置朝所述虚拟角色的移动方向发出N条射线,检测所述N条射线与所述游戏场景中的虚拟环境相交的交点信息;所述交点信息包括交点数,其中N为正整数。
可选地,所述虚拟障碍模型确定模块包括:
虚拟障碍模型第一确定子模块,用于若所述交点数小于发出的射线数N,则确定所述虚拟角色的移动方向不存在虚拟障碍模型。
可选地,所述N为大于或等于3的整数。
可选地,所述交点信息检测子模块包括:
射线发出单元,用于从所述虚拟角色的头部、中部和脚部朝所述虚拟角色的移动方向分别发出至少一条射线。
可选地,所述虚拟障碍模型确定模块包括:
距离确定子模块,用于若所述交点数等于发出的射线数N,则确定每个交点与所述虚拟角色之间的距离;
虚拟障碍模型第二确定子模块,用于若每个交点与所述虚拟角色之间的距离均大于第一预设值,则确定所述游戏场景中不存在虚拟障碍模型。
可选地,所述虚拟障碍模型确定模块包括:
斜率确定子模块,用于若所述交点数等于发出的射线数N,则确定任意两个交点所构成的直线,并获取所有直线的斜率;
虚拟障碍模型第三确定子模块,用于当所有直线中任意两条直线的斜率的差值小于第二预设值,且所有直线的斜率的平均值大于第三预设值,则确定所述游戏场景中存在虚拟障碍模型。
可选地,所述虚拟障碍模型确定模块包括:
胶囊体生成子模块,用于当根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中存虚拟障碍模型时,生成与所述虚拟角色对应的胶囊体;
胶囊体扫射子模块,用于控制所述胶囊体朝所述虚拟角色的移动方向做胶囊体扫射,获得所述胶囊体与所述虚拟障碍模型相交的交点位置以及所述交点位置的法线方向;
倾斜角度确定子模块,用于根据所述交点位置的法线方向确定所述虚拟障碍模型的攀爬面相对于地面的倾斜角度;
虚拟障碍模型判定子模块,用于根据倾斜角度确定所述虚拟障碍模型是否为合格的虚拟障碍模型。
可选地,所述虚拟障碍模型判定子模块包括:
不合格虚拟障碍模型确定单元,用于若所述倾斜角度小于预设倾斜角度,则确定所述虚拟障碍模型为不合格的虚拟障碍模型;
合格虚拟障碍模型确定单元,用于若所述倾斜角度大于或等于所述预设倾斜角度,则确定所述虚拟障碍模型为合格的虚拟障碍模型。
可选地,所述虚拟障碍模型跨越模块包括:
虚拟障碍类型确定子模块,用于确定所述虚拟障碍模型的类型;
虚拟障碍模型跨越子模块,用于根据所述虚拟障碍模型的类型,控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
可选地,所述虚拟障碍类型确定子模块包括:
出墙位置确定单元,用于获取所述虚拟角色的当前位置以及预设的出墙动画的动画位移,通过所述虚拟角色的当前位置以及所述动画位移得到所述虚拟角色的出墙位置;
可站立面判断单元,用于从所述出墙位置朝所述出墙位置的下方做射线检测,以判断所述出墙位置的下方是否存在可站立面;
攀爬类型确定单元,用于若所述出墙位置的下方存在可站立面,则确定所述虚拟障碍模型的类型为攀爬类型的虚拟障碍模型;
翻越类型确定单元,用于若所述出墙位置的下方不存在可站立面且所述虚拟障碍模型的高度小于预设高度阈值,则确定所述虚拟障碍模型的类型为翻越类型的虚拟障碍模型。
可选地,所述虚拟障碍模型跨越子模块包括:
虚拟障碍模型攀爬单元,用于当所述虚拟障碍模型的类型为攀爬类型时,控制所述游戏场景中的所述虚拟角色攀爬所述虚拟障碍模型;
虚拟障碍模型翻越单元,用于当所述虚拟障碍模型的类型为翻越类型时,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
可选地,所述虚拟障碍模型攀爬单元包括:
当前攀爬位置获取子单元,用于获取所述虚拟角色的当前攀爬位置以及所述虚拟角色对应的胶囊体;
交点位置确定子单元,用于控制所述虚拟角色对应的胶囊体朝所述虚拟角色的移动方向发出射线,得到射线照射到所述虚拟障碍模型的交点位置及所述交点位置的法线方向;
轴向调整子单元,用于根据所述交点位置的法线方向调整所述虚拟角色的轴向;
虚拟障碍模型攀爬子单元,用于根据所述虚拟角色的轴向控制所述虚拟角色攀爬所述虚拟障碍模型。
可选地,所述虚拟障碍模型攀爬单元还包括:
检测胶囊体生成子单元,用于生成所述虚拟角色对应的检测胶囊体;
当前位置获取子单元,用于获取所述检测胶囊体的当前位置;所述检测胶囊体的当前位置由所述虚拟角色的当前攀爬位置以及预设的攀爬动画的动画位移确定;
重叠判断子单元,用于根据所述检测胶囊体的当前位置判断所述检测胶囊体与所述虚拟环境是否重叠;
结束攀爬子单元,用于若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
可选地,所述虚拟障碍模型攀爬单元还包括:不结束攀爬子单元,用于若所述检测胶囊体与所述虚拟环境重叠,则确定所述虚拟角色不在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
可选地,所述虚拟障碍模型翻越单元包括:
预设障碍模型尺寸信息获取子单元,用于从预设的翻越动画中获取预设的障碍模型的尺寸信息;
虚拟障碍模型尺寸信息获取子单元,用于获取所述游戏场景中的所述虚拟障碍模型的尺寸信息;
根骨骼缩放确定子单元,用于采用所述虚拟障碍模型的尺寸信息与所述预设的障碍模型的尺寸信息,得到根骨骼的缩放比;
关键帧缩放子单元,用于采用所述缩放比对所述预设的翻越动画中根骨骼的关键帧缩放;
虚拟障碍模型翻越子单元,用于根据缩放后的所述预设的翻越动画,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
本发明实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现任一项所述跨越虚拟障碍的方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现任一项所述跨越虚拟障碍的方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,在游戏运行时,从虚拟角色朝其移动方向发出射线,通过射线对游戏场景中的虚拟环境进行检测,得到射线与虚拟环境相交的交点信息,并根据交点信息确定游戏场景中的虚拟障碍模型,在确定虚拟障碍模型之后可以控制游戏场景中的虚拟角色跨越虚拟障碍模型。通过在游戏运行时对虚拟障碍模型进行检测以及控制虚拟角色对虚拟障碍模型进行跨越,不需要对游戏场景进行预处理,实现对游戏场景中动态生成的虚拟障碍模型的实时检测,以及对动态生成的虚拟障碍模型进行实时跨越。
附图说明
图1是本发明实施例提供的一种跨越虚拟障碍的方法的步骤流程图;
图2是本发明实施例提供的另一种跨越虚拟障碍的方法的步骤流程图;
图3是本发明实施例中虚拟角色进行与虚拟环境的交点信息检测的工作示意图;
图4是本发明实施例中胶囊体的示意图;
图5是本发明实施例中确定虚拟障碍模型类型的过程示意图;
图6是本发明实施例中确定翻越位置的工作示意图;
图7是本发明的一种跨越虚拟障碍的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例的跨越虚拟障碍的方法可以运行于终端设备或者是服务器。其中,终端设备可以为本地终端设备。当虚拟障碍跨越的方法运行于服务器时,该跨越虚拟障碍的方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
在一种可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,跨越虚拟障碍的方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行跨越虚拟障碍的方法的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
在一种可选的实施方式中,终端设备可以为本地终端设备。以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
参照图1,示出了本发明实施例提供的一种跨越虚拟障碍的方法的步骤流程图,通过终端提供图形用户界面,所述图形用户界面显示的内容包含至少部分游戏场景和虚拟角色,具体可以包括如下步骤:
需要说明的是,终端可以是前述提到的本地终端设备,也可以是前述提到的云交互系统中的客户端设备。该终端的操作系统可以包括Android(安卓)、IOS、Windows Phone、Windows等等,通常可以支持各种游戏应用的运行。
通过在终端上运行游戏应用,并在移动终端的显示器上渲染得到图形用户界面,图形用户界面所显示的内容至少部分地包含一局部或全部的游戏场景,游戏场景的具体形态可以是方形,也可以是其它形状(比如,圆形等)。
具体地,游戏场景中可以包括至少一虚拟角色,该虚拟角色可以是玩家通过移动终端进行操控的游戏虚拟角色,可以通过图形用户界面呈现,所呈现的内容可以包含虚拟角色的全部,也可以是虚拟角色的局部。例如,在第三人称视角游戏中,图形用户界面所呈现的内容可以包含虚拟角色的全部,或者,在第一人称视角游戏中,图形用户界面所呈现的内容可以包含虚拟角色的部分或局部。此外,游戏场景中还可以包括由游戏中敌方玩家所控制的游戏虚拟角色,也可以是游戏开发者在某个具体游戏场景中预先设置的非玩家角色(Non-Practicing Character,NPC)。
步骤101,从所述虚拟角色朝所述虚拟角色的移动方向发出射线,并检测所述射线照射到与所述游戏场景中的虚拟环境相交的交点信息;
在本发明的一种实施例中,由于在现有技术中,在控制游戏场景中的虚拟角色对游戏场景中的物件进行相应行为控制时,需要游戏制作人员预先对游戏场景进行处理,此时可以在游戏运行过程中,从虚拟角色朝虚拟角色的移动方向发出射线,对游戏场景中的虚拟环境进行检测,并得到射线照射到与虚拟环境相交的交点信息,以根据与虚拟环境相交的交点信息对游戏场景中的虚拟障碍模型进行确定。
具体的,可以通过调用物理引擎提供的检测接口对游戏场景中的虚拟环境进行检测,其中,物理引擎通常是游戏引擎的一部分,物理引擎指的是计算机基于现实世界的物理规律,抽象出一系列数字化的物理对象,通过数学和算法对物理对象进行模拟,从而在虚拟世界中重现真实物理现象的软件套件。而游戏引擎指的是一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件,这些系统为游戏设计者提供编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用从零开始。
步骤102,根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型;
在本发明的一种实施例中,在通过虚拟角色朝其移动方向发出射线,以对射线照射到与虚拟环境相交的交点信息进行检测之后,可以根据与虚拟环境的交点信息,确定虚拟环境中的虚拟障碍模型,以完成对虚拟障碍模型的实时检测与确定,以及控制游戏场景中的虚拟角色对确定的虚拟障碍模型进行跨越。
在实际应用中,调用物理引擎检测的虚拟环境可以是针对游戏场景中固定存在的虚拟物件进行检测,还可以对游戏场景中动态随机生成的虚拟物件进行检测;通过物理引擎检测得到的交点信息可以是针对游戏场景中虚拟物件的交点信息,可以包括针对交点的距离参数、针对交点的斜率参数等。假设所检测的虚拟物件为虚拟障碍模型,所检测得到的交点信息为针对交点的距离参数,则可以根据距离参数对虚拟障碍模型进行确定,即确定虚拟障碍模型的距离。对此,本发明实施例不加以限制。
步骤103,控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
在本发明的一种实施例中,在通过调用物理引擎提供的检测接口以及从虚拟角色朝其移动方向发射射线以对虚拟环境进行检测,并根据检测得到的与虚拟环境相交的交点信息对虚拟障碍模型进行确定之后,可以控制游戏场景中的虚拟角色对确定的虚拟障碍模型进行相应的跨越动作,以完成在对虚拟障碍模型进行实时检测与确定之后,对确定的虚拟障碍模型进行实时跨越。
在本发明实施例中,在游戏运行时,从虚拟角色朝其移动方向发出射线,通过射线对游戏场景中的虚拟环境进行检测,得到射线与虚拟环境相交的交点信息,并根据交点信息确定游戏场景中的虚拟障碍模型,在确定虚拟障碍模型之后可以控制游戏场景中的虚拟角色跨越虚拟障碍模型。通过在游戏运行时对虚拟障碍模型进行检测以及控制虚拟角色对虚拟障碍模型进行跨越,不需要对游戏场景进行预处理,实现对游戏场景中动态生成的虚拟障碍模型的实时检测,以及对动态生成的虚拟障碍模型进行实时跨越。
参照图2,示出了本发明实施例提供的另一种跨越虚拟障碍的方法的步骤流程图,通过终端提供图形用户界面,所述图形用户界面显示的内容包含至少部分游戏场景和虚拟角色,具体可以包括如下步骤:
步骤201,按照虚拟角色的移动方向发出射线,并检测得到与虚拟环境相交的交点信息,以及根据交点信息确定虚拟障碍模型;
在本发明的一种实施例中,可以通过虚拟角色朝其移动方向发出射线,以对射线照射到与虚拟环境相交的交点信息进行检测,并可以根据与虚拟环境的交点信息,确定虚拟环境中的虚拟障碍模型,以完成对虚拟障碍模型的实时检测与确定,以及控制游戏场景中的虚拟角色对确定的虚拟障碍模型进行跨越。
具体的,可以通过调用物理引擎提供的检测接口对游戏场景中的虚拟环境进行检测,可以获取游戏场景中虚拟角色的角色移动方向,以确定检测接口进行检测的方向,即可以以虚拟角色为检测原点(即射线原点),并以角色移动方向作为检测方向(即射线方向),调用物理引擎提供的检测接口对游戏场景中的虚拟环境的交点信息进行检测。
在一种优选的实施例中,在调用检测接口对虚拟环境进行检测时,不仅可以将虚拟角色的角色移动方向作为检测方向,还可以根据虚拟角色的角色移动方向确定目标虚拟区域,并将确定的目标虚拟区域作为检测接口的检测区域范围,即可以物理引擎提供的检测参数对游戏场景中检测区域范围的交点信息进行检测。
其中,物理引擎所提供的检测接口的检测方式可以包括射线检测、胶囊体扫射以及重叠检测等。其中,射线检测指的是基于物理引擎提供的接口,以一个定点作为射线原点,并沿着一定方向求取该射线与游戏场景中相交点的信息的技术;胶囊体扫射指的是基于物理引擎提供的接口,以一个定点作为胶囊几何体的中心,围绕该中心构造一个胶囊状几何体,将这个几何体沿着一定方向在游戏场景中平移,求取平移过程中相交点的信息的技术;重叠检测指的是基于物理引擎提供的接口,通过创建与胶囊几何体相似的胶囊几何体(可以称为检测胶囊几何体),并通过对检测胶囊几何体进行相应控制后,检测是否与游戏场景重叠。
在本发明的一种实施例中,步骤201可以包括如下子步骤S11至子步骤S16:
子步骤S11,从所述虚拟角色所在位置朝所述虚拟角色的移动方向发出N条射线,检测所述N条射线与所述游戏场景中的虚拟环境相交的交点信息;所述交点信息包括交点数,其中N为正整数;
在具体实现中,按照虚拟角色的移动方向发出射线可以表现为从虚拟角色所在位置朝其移动方向发出N条(N为正整数)射线,并检测发出的N条射线与虚拟环境相交的交点信息,此时所检测得到的交点信息可以包括交点数。
在实际应用场景中,从虚拟角色发出射线所采用的检测方式可以是射线检测,即以虚拟角色中的至少一个定点作为射线原点,并沿着虚拟角色的移动方向求取至少一条射线与游戏场景中相交的交点信息。
参照图3,示出了本发明实施例中虚拟角色进行与虚拟环境的交点信息检测的工作示意图,在虚拟角色移动过程中,可以从虚拟角色中设置三个出射点,此时从虚拟角色所在位置朝其移动方向发出N条射线可以包括从虚拟角色的头部、中部和脚部朝虚拟角色的移动方向分别发出至少一条射线,即在这种情况下,所发出射线的数量N为大于或等于3的正整数。
需要说明的是,射线照射到的与虚拟环境相交的交点信息可以包括交点的数量、交点距离虚拟角色的距离,交点的位置,以及交点的斜率等信息。对此,本发明实施例不加以限制。
子步骤S12,若所述交点数小于发出的射线数N,则确定所述虚拟角色的移动方向不存在虚拟障碍模型;
其中,从虚拟角色的头部、中部和脚部朝其移动方向分别发出至少一条射线,可以出现第一种情况,所检测得到的交点数小于发出的射线数N,假设N为3,若与虚拟环境相交的交点数量不足3个,则表示虚拟角色的移动方向不存在虚拟障碍模型(指的是适用于攀爬或适用于翻越的障碍模型),例如从虚拟角色的头部以及脚部发射出的射线与虚拟环境具有相交的交点,但从虚拟角色的中部发射出的射线与虚拟环境部不具有相交点,则表示此时不存在适用于攀爬或适用于翻越的虚拟障碍模型。
子步骤S13,若所述交点数等于发出的射线数N,则确定每个交点与所述虚拟角色之间的距离;
子步骤S14,若每个交点与所述虚拟角色之间的距离均大于第一预设值,则确定所述游戏场景中不存在虚拟障碍模型;
可以出现第二种情况,所检测得到的交点数等于发出的射线数N,此时还可以确定每个交点与虚拟角色之间的距离,假设N为3,若与虚拟环境相交的交点数量满足3个,但3个交点与虚拟角色之间的距离超出了第一预设值A,则表示虚拟障碍模型与虚拟角色相隔的距离较远,当前暂不需要对虚拟角色进行相应的跨越操作,可以默认为当前不存在虚拟障碍模型。
子步骤S15,若所述交点数等于发出的射线数N,则确定任意两个交点所构成的直线,并获取所有直线的斜率;
子步骤S16,当所有直线中任意两条直线的斜率的差值小于第二预设值,且所有直线的斜率的平均值大于第三预设值,则确定所述游戏场景中存在虚拟障碍模型。
可以出现第三种情况,所检测得到的交点数等于发出的射线数N,确定每个交点与虚拟角色之间的距离均未超出第一预设值之后,此时还可以确定任意两个交点所构成的直线,并获取所有直线的斜率。
假设N为3,若与虚拟环境相交的交点数量满足3个,3个交点与虚拟角色之间的距离未超出第一预设值A,且三个相交点可以近似构成一条直线,则可以表示距离较近的区域内存在虚拟障碍模型。其中,3个交点近似构成一条直线,即任意两个相交点之间所构成直线的斜率差不大于第二预设值B,以及三个相交点所构成直线的斜率的均值不小于第三预设值C。
需要说明的是,上述第一预设值A,第二预设值B以及第三预设值C,均可以按照实际情况进行设定,主要可以为游戏制作人员或游戏设计师指定的经验参数。对此,本发明实施例不加以限制。
在一种优选的实施例中,在确定游戏场景中虚拟障碍模型的过程中,步骤201可以执行如下子步骤S17至子步骤S20:
子步骤S17,当根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中虚拟障碍模型时,生成与所述虚拟角色对应的胶囊体;
在本发明实施例中,确定游戏场景中虚拟障碍模型的过程可以包括确定潜在障碍模型的过程以及确定潜在障碍模型是否为虚拟障碍模型的过程,上述子步骤S16确定的虚拟障碍模型可以是潜在障碍模型,在根据射线与虚拟环境相交的交点信息确定游戏场景中的潜在障碍模型之后,可以生成与虚拟角色对应的胶囊体,以便通过胶囊体对确定潜在障碍模型是否为虚拟障碍模型。
具体的,与虚拟角色对应的胶囊体,参照图4,示出了本发明实施例中胶囊体的示意图,胶囊体可以相当于一种类似胶囊状的几何体,其主要是由HALF HEIGHT(半高)长度的圆柱和另两个RADIUS(半径)长度的半球组成,与人体(即虚拟角色)的结构更为接近,可以用于代替虚拟角色测试游戏地图里的碰撞是否合理,是否会卡住人物出不来等测试场景。其中,SHAPE X-AXIS(中心轴)可以用于表示胶囊体的中心轴方向,其可以是由胶囊体中心(SHAPE ORIGIN)为原点的正上方方向。
需要说明的是,由于在游戏场景中可以包括至少一个虚拟角色,而游戏玩家可以操控虚拟角色与游戏场景中的虚拟环境进行互动,并显示在图形用户界面上,而与虚拟角色对应的胶囊体可以用于对虚拟环境进行检测,胶囊体相对于虚拟角色而言可以是虚拟的,即在胶囊体进行检测的过程中没有显示在图像用户界面上,游戏玩家并不能对胶囊体进行操控。
子步骤S18,控制所述胶囊体朝所述虚拟角色的移动方向做胶囊体扫射,获得所述胶囊体与所述虚拟障碍模型相交的交点位置以及所述交点位置的法线方向;
在本发明的一种实施例中,在根据虚拟角色发射出的射线与虚拟环境的相交的交点信息对潜在障碍模型进行确定之后,还可以按照虚拟角色的移动方向控制胶囊体进行胶囊体扫射,获取胶囊体与确定的潜在障碍模型相交的交点位置以及交点位置的法线方向,以对虚拟障碍模型进行确定。
在实际应用中,控制胶囊体进行胶囊体扫射按照虚拟角色的移动方向进行胶囊体扫射,可以表现为将胶囊体沿着虚拟角色的移动方向在游戏场景中进行平移,求取平移过程中与虚拟环境相交的交点信息。
具体的,由于先前已对潜在障碍物进行确定,即已确定距离胶囊体较近的移动方向上存在潜在障碍模型,此时在将胶囊体进行平移的过程中,可以以胶囊体的当前位置为起点,并向虚拟角色的移动方向做胶囊体扫射,获得第一个与潜在障碍模型相交的交点。该交点可以用于表示潜在障碍模型的表面特征信息,与该交点对应的信息可以包括交点的位置以及交点位置的法线方向,以便基于交点位置的法线方向计算出潜在障碍模型的倾斜角度。
子步骤S19,根据所述交点位置的法线方向确定所述虚拟障碍模型的攀爬面相对于地面的倾斜角度;
在具体实现中,在得到交点的位置以及交点位置的法线方向之后,由于该交点是与潜在障碍物相交的点,则可以将该交点位置的法线方向相当于潜在障碍模型的法线方向,此时可以根据潜在障碍模型的法线方向确定潜在障碍模型的攀爬面相对于地面的倾斜角度,以根据确定的倾斜角度确定潜在障碍模型是否为虚拟障碍模型。
子步骤S20,根据倾斜角度确定所述虚拟障碍模型是否为合格的虚拟障碍模型。
其中,若所述倾斜角度小于预设倾斜角度,则确定所述虚拟障碍模型为不合格的虚拟障碍模型;若所述倾斜角度大于或等于所述预设倾斜角度,则确定所述虚拟障碍模型为合格的虚拟障碍模型。
由图3所示,若所确定的倾斜角度小于预设倾斜角度α,则表示该潜在障碍物的倾斜角度过于平缓,不是适于攀爬或适于翻越的障碍模型;若潜在障碍物的倾斜角度达到预设倾斜角度α,则表示该潜在障碍物的倾斜角度适于攀爬或适于翻越,确定潜在障碍物为虚拟障碍模型。需要说明的是,预设倾斜角度α可以按照实际情况进行设定,主要可以为游戏制作人员或游戏设计师指定的经验参数。对此,本发明实施例不加以限制。
步骤202,确定虚拟障碍模型的类型;
在本发明的一种实施例中,在通过调用物理引擎提供的检测接口以及从虚拟角色朝其移动方向发射射线以对虚拟环境进行检测,并根据检测得到的与虚拟环境相交的交点信息对虚拟障碍模型进行确定之后,可以对虚拟障碍模型的类型进行确定,以便控制游戏场景中的虚拟角色对相应类型的虚拟障碍模型进行相应的跨越动作。
在一种优选的实施例中,在对虚拟障碍模型进行确定之后,还可以对虚拟障碍模型的类型进行确定,以便根据虚拟障碍模型的类型控制游戏场景中的虚拟角色进行相应的跨越操作。
具体的,除了可以调用物理引擎提供的检测接口对虚拟环境中的虚拟障碍物进行确定以外,还可以调用物理引擎提供的检测接口对虚拟障碍模型的类型进行确定。
在本发明的一种实施例中,步骤202可以包括如下子步骤S21至子步骤S24:
子步骤S21,获取所述虚拟角色的当前位置以及预设的出墙动画的动画位移,通过所述虚拟角色的当前位置以及所述动画位移得到所述虚拟角色的出墙位置;
子步骤S22,从所述出墙位置朝所述出墙位置的下方做射线检测,以判断所述出墙位置的下方是否存在可站立面;
在本发明实施例中,对虚拟障碍模型的类型进行确定,首先可以获取虚拟角色的当前位置以及预设的出墙动画的动画位移确定虚拟角色的出墙位置,并调用物理引擎提供的检测接口,从虚拟角色的出墙位置向下方发出射线,以判断该虚拟障碍模型是否存在可站立面,并根据判断结果对虚拟障碍模型的类型进行确定。
在实际应用中,在获取虚拟角色的当前位置之后,可以获取针对虚拟角色出墙动画的动画位移,此时可以将虚拟角色的当前位置加上出墙动画的动画位移,得到虚拟角色出墙时的出墙位置,然后再以出墙位置为原点,向正下方发射出射线,确定该射线与虚拟障碍模型相交的交点以及交点信息。出墙位置指的是虚拟角色对虚拟障碍进行攀爬或翻越后的站立点。
其中,由于动画位移指的是游戏画师在制作动画中动画关键帧的角色位置相对于初始位置的差值,此时出墙动画选取的方式可以使用一个固定动画,或者多个动画,其关键点在于出墙动画本身在制作时第一帧和最后一帧存在位置上的变化,假设这个变化的竖直高度差为h,那么只要保证开始播放出墙动画时,角色位置(即虚拟角色的当前位置)和出墙后站立的位置(即出墙位置)之间的数值高度差也为h,就可以开始播放出墙动画,以保证在动画播放完毕时,虚拟角色的当前位置加上出墙动画的动画位移得到的出墙位置,与虚拟角色的当前位置可以形成的高度差为h。
子步骤S23,若所述出墙位置的下方存在可站立面,则确定所述虚拟障碍模型的类型为攀爬类型的虚拟障碍模型;
子步骤S24,若所述出墙位置的下方不存在可站立面且所述虚拟障碍模型的高度小于预设高度阈值,则确定所述虚拟障碍模型的类型为翻越类型的虚拟障碍模型。
具体的,参照图5,示出了本发明实施例中确定虚拟障碍模型类型的过程示意图,在得到虚拟角色出墙时的出墙位置,并以出墙位置为射线原点,向正下方发射出射线之后,可以确定该射线照射到虚拟障碍模型的交点以及对应的交点信息。
其中,可以出现以下情况:(1)若该射线与虚拟障碍模型不存在相交点,则可以表示出墙位置的下方不存在可站立面,即表示该虚拟障碍模型不适于攀爬,可能是适于翻越的障碍模型;(2)若该射线与虚拟障碍模型存在相交的交点,且与虚拟环境中的其他虚拟物件(例如地面,即虚拟障碍模型放置的平面)相交的交点与出墙位置之间的距离大于预设高度阈值,则可以表示虽然出墙位置的下方存在可站立面,但是出墙位置距离地面较远,出墙后虚拟角色将会进行自由落体运动,即表示该虚拟障碍模型不适于攀爬以及不适于翻越;(3)若该射线与虚拟障碍模型存在相交的交点,且与虚拟环境中的其他虚拟物件相交的交点与出墙位置之间的距离小于预设高度阈值,则可以表示出墙位置的下方存可站立面,且该虚拟障碍模型适于攀爬,即确定该虚拟障碍模型的类型为攀爬类型;(4)若该射线与虚拟障碍模型不存在相交点,且与虚拟环境中的其他虚拟物件相交的交点与出墙位置之间的距离小于预设高度阈值,则可以表示虽然出墙位置的下方不存在可站立面,但是虚拟角色在出墙后不会进行自由落体运动,该虚拟障碍模型适于攀爬,即确定该虚拟障碍模型的类型为攀爬类型。
需要说明的是,预设高度阈值可以按照实际情况进行设定,主要可以为游戏制作人员或游戏设计师指定的经验参数。对此,本发明实施例不加以限制。
步骤203,根据所述虚拟障碍模型的类型,控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
在本发明的一种实施例中,在确定虚拟障碍模型的类型之后,游戏玩家可以根据虚拟障碍模型的类型,在图形用户界面上操控虚拟角色进行相应的跨越动作,以完成在对虚拟障碍模型进行实时检测与确定之后,对确定的虚拟障碍模型进行实时跨越。
在实际的应用中,对确定的虚拟障碍模型进行跨越操作,无论虚拟障碍模型的类型是攀爬类型的虚拟障碍模型还是翻越类型的虚拟障碍模型,均可以是由游戏引擎通过回调函数的方式通知游戏脚本,然后通过游戏脚本对动画配置进行读取。其中,游戏脚本指的是用程序设计语言,例如python(一种计算机程序设计语言)、lua(是一种嵌入式的轻量级脚本语言)编写的,用来处理游戏逻辑和游戏事件的软件开发系统,一般和游戏引擎相互配合共同创造游戏世界中的游戏场景。
在本发明实施例中,可以基于不同情况选用不同的动画,若选用的动画中存在动画位移,则可以基于动画位移更新模型位置的同时更新对应物理刚体的位置。
例如,在对虚拟障碍模型进行攀爬/翻越时,可以针对当前的虚拟障碍模型的模型信息,对动画中虚拟角色的攀爬/翻越信息进行相应修改,即使用物理引擎对选用动画中的虚拟角色的姿势进行矫正,使之契合当前的攀爬类型/翻越类型的虚拟障碍模型;当动画中的虚拟角色攀爬到虚拟障碍模型边缘,或翻越过障碍物之后,还可以在物理引擎以及动画系统的帮助下,从之前的攀爬/翻越状态再次过渡到行走状态。
在本发明的一种实施例中,步骤203可以包括如下子步骤S31和子步骤S32:
子步骤S31,当所述虚拟障碍模型的类型为攀爬类型时,控制所述游戏场景中的所述虚拟角色攀爬所述虚拟障碍模型;
具体的,当确定虚拟障碍模型的类型为攀爬类型时,与攀爬类型的虚拟障碍模型对应的跨越动作为攀爬动作,此时可以控制游戏场景中的虚拟角色对攀爬类型的虚拟障碍模型进行攀爬。
在本发明的一种实施例中,子步骤S31可以包括如下子步骤S311至子步骤S314:
子步骤S311,获取所述虚拟角色的当前攀爬位置以及所述虚拟角色对应的胶囊体;
子步骤S312,控制所述虚拟角色对应的胶囊体朝所述虚拟角色的移动方向发出射线,得到射线照射到所述虚拟障碍模型的交点位置及所述交点位置的法线方向;
在本发明的一种实施例中,在确定虚拟障碍模型的类型为攀爬类型之后,首先可以获取虚拟角色的当前攀爬位置以及与虚拟角色对应的胶囊体,然后调用物理引擎所提供的检测接口,从与虚拟角色对应的胶囊体的当前攀爬位置按照虚拟角色的移动方向发出射线,得到射线照射到与虚拟障碍模型相交的交点位置及交点位置的法线方向,以通过交点位置的法线方向调整虚拟角色的轴向,并确定虚拟角色的攀爬方向。
子步骤S313,根据所述交点位置的法线方向调整所述虚拟角色的轴向;
在实际应用中,可以对攀爬类型的虚拟障碍模型的攀爬面进行确定,在确定攀爬面之后,可以在虚拟角色的当前攀爬位置开始播放攀爬起始动作,在播放到攀爬起始动作的最后一帧时,可以对攀爬面的法线方向(即交点位置的法线方向)进行确定,并调整虚拟角色的轴向,即将虚拟角色的轴向始终垂直于攀爬面的法线方向,使其始终紧贴攀爬面,虚拟角色的攀爬方向即为随着法线方向调整后的轴向方向。
子步骤S314,根据所述虚拟角色的轴向控制所述虚拟角色攀爬所述虚拟障碍模型。
其中,当操控角色胶囊体对攀爬面进行攀爬时,可以修改当前角色待机动画为攀爬待机动画,并可以将攀爬待机动画中针对虚拟角色不同朝向的移动动画,分别替换为不同朝向的攀爬移动动画。
在一种优选的实施例中,每当虚拟角色在攀爬面上移动到新的攀爬位置,即新的攀爬位置与虚拟角色原先的当前攀爬位置不同,或新的攀爬面与原先的攀爬面为不连续和/或倾斜角度不同和/或方向不同的攀爬面时,可以在新的攀爬位置以与虚拟角色对应的胶囊体的中心为原点,按照角色胶囊体面朝向的方向(即虚拟角色的移动方向)发射出射线,得到与攀爬面相交的交点位置以及交点位置的法线方向,并将的法线方向作为新攀爬位置的攀爬面的方向,在此过程中,始终胶囊体的轴向(即虚拟角色的轴向)与新攀爬面的法线方向保持垂直关系,则当前胶囊体的轴向(即虚拟角色的轴向)即为新的攀爬位置的攀爬方向。其中,由于游戏场景通常都比较复杂,在攀爬过程中,虚拟角色面对的攀爬面不一定总是与最初朝向一致,按照虚拟方向的移动方向发射出射线的目的是为了保证虚拟角色可以适应突变的攀爬面,并实时进行虚拟角色的姿态的矫正。
在本发明的一种实施例中,在控制虚拟角色攀爬虚拟障碍模型之后,还可以控制虚拟角色结束对虚拟障碍模型的攀爬,子步骤S31还可以包括如下子步骤S315至子步骤S319:
子步骤S315,生成所述虚拟角色对应的检测胶囊体;
子步骤S316,获取所述检测胶囊体的当前位置;所述检测胶囊体的当前位置由所述虚拟角色的当前攀爬位置以及预设的攀爬动画的动画位移确定;
在本发明的一种实施例中,游戏玩家在根据虚拟角色的轴向(即攀爬方向)控制虚拟角色攀爬虚拟障碍模型,即虚拟角色在攀爬面上发生移动的过程中,可以生成与虚拟角色对应的检测胶囊体,然后根据虚拟角色的当前位置以及预设攀爬动画的动画位移对检测胶囊体的当前位置进行确定。
在实际应用中,生成的检测胶囊体的形态大小可以与胶囊体一致,该检测胶囊体的当前位置可以是虚拟角色(即胶囊体)的当前位置加上攀爬结束动作的动画位移。检测胶囊体可以用于对攀爬结束的检测,通过检测胶囊体进行攀爬结束的检测可以是借助于物理引擎的检测接口实现的重叠检测。
子步骤S317,根据所述检测胶囊体的当前位置判断所述检测胶囊体与所述虚拟环境是否重叠;
子步骤S318,若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型;
在一种优选的实施例中,若所述检测胶囊体与所述虚拟环境不重叠,则检测所述检测胶囊体的下方是否存在可站立面;若所述检测胶囊体的下方存在可站立面,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
在一种优选的实施例中,若所述检测胶囊体与所述虚拟环境不重叠,则根据所述预设的攀爬动画的结束动作判断所述虚拟角色是否会与所述虚拟环境发生碰撞;若确定所述虚拟角色不会与所述虚拟环境发生碰撞,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
在一种优选的实施例中,若所述检测胶囊体与所述虚拟环境不重叠,则从所述检测胶囊体的当前位置朝上方发出射线,检测所发出的射线与所述虚拟环境的交点;若所述检测胶囊体与所述交点之间的距离超出预设距离,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
其中,若检测胶囊体与游戏场景中的任何虚拟物件没有重叠,此时可以进一步从检测胶囊体的当前位置对其正下方一定距离内是否存在立足点,若不存在立足点,则说明在检测胶囊体的当前位置播放攀爬结束动作结束之后,虚拟角色会到达一个悬空的位置,表示虚拟角色不能在检测胶囊体的当前位置结束攀爬动作;若检测胶囊体与游戏场景中的任何虚拟物件没有重叠,且存在立足点,此时还需要判断检测胶囊体是否会与游戏场景中的虚拟物件发生碰撞,即判断是否存在其他障碍物,出于对性能的考虑,可以从检测胶囊体触发按照正上方进行射线检测,若在预设距离内存在交点,则说明检测胶囊体的头部具有障碍物,表示不能在检测胶囊体的当前位置结束攀爬动作。
在均通过上述的所有检测之后,才可以判断检测胶囊体的当前位置满足攀爬结束条件,此时游戏玩家可以操控虚拟角色在检测胶囊体的当前位置结束攀爬。
需要说明的是,上述攀爬动画的选取方式可以使用一个固定动画,或者多个动画;上述选取的攀爬动画中的攀爬起始动作与攀爬结束动作,可以是任意的攀爬起始动作与攀爬结束动作,对此,本发明实施例不加以限制。
子步骤S319,若所述检测胶囊体与所述虚拟环境重叠,则确定所述虚拟角色不在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
其中,若检测胶囊体与游戏场景中的任何虚拟物件有重叠,则说明在检测胶囊体的当前位置播放攀爬结束动作之后,虚拟角色会与游戏场景进行重叠,即不能在检测胶囊体的当前位置结束攀爬动作。
子步骤S32,当所述虚拟障碍模型的类型为翻越类型时,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
具体的,当确定虚拟障碍模型的类型为翻越类型时,与翻越类型的虚拟障碍模型对应的跨越动作为翻越动作,此时可以控制游戏场景中的虚拟角色对翻越类型的虚拟障碍模型进行翻越。
在本发明的一种实施例中,子步骤S32可以包括如下子步骤S321至子步骤S325:
子步骤S321,从预设的翻越动画中获取预设的障碍模型的尺寸信息;
在确定虚拟障碍模型的类型为翻越类型之后,可以在虚拟角色的当前位置播放翻越动画,由于游戏动画师在制作翻越动画时只会参考若干个障碍模型的高度与宽度进行制作,然而游戏场景内实时出现的障碍模型可以是任意尺寸,此时需要采用一定机制,使得当障碍模型的高度与宽度为任意大小时,保证翻越动画都能够与障碍模型正确匹配,不会产生异样感与违和感。
在本发明的一种实施例中,可以获取翻越动画的动画数据中的预设障碍模型的尺寸信息,翻越动画中可以存在针对虚拟角色进行翻越时的骨骼动画,骨骼动画指的是模型(这里指虚拟角色)具有互相连接的“骨骼”组成的骨架树状结构,可以通过改变骨骼的朝向和位置来改变模型(即虚拟角色)顶点,从而使虚拟角色呈现出不同的姿态;翻越动画指的是任意的骨骼动画,该骨骼动画可以用于翻越或跨越预设障碍模型。
具体的,对预设障碍模型的尺寸信息进行获取的方式,首先可以读取翻越动画所包含骨骼动画中的根骨骼动画数据,并遍历翻越动画的所有关键帧,得到其中根骨骼最高点位置h和最远点距离s,则这两个值就是动画设计师在制作翻越动画时预设障碍模型的原始高度与宽度。
子步骤S322,获取所述游戏场景中的所述虚拟障碍模型的尺寸信息;
在本发明的一种实施例中,在获取翻越动画的动画数据中的预设障碍模型的尺寸信息之后,还可以获取虚拟障碍模型的尺寸信息,以便根据当前虚拟障碍模型的尺寸信息与预设障碍模型的尺寸信息,对预设骨骼动画进行处理。
在实际应用中,参照图6,示出了本发明实施例中确定翻越位置的工作示意图,为了确定翻越类型的虚拟障碍模型的高度,可以根据虚拟角色的当前位置向正上方发射出射线,即进行射线检测,以确定游戏场景的虚拟环境中头顶遮蔽物的位置M,若虚拟角色的头顶没有遮蔽物,则可以选取距离虚拟角色正上方1000码(=914.4m,为试验理论值)的位置为M。此时可以以M点为原点,并沿着虚拟角色前进方向移动一定距离(该距离由游戏设计师指定),将移动后的位置记为N;此时可以以N点为射线原点向正下方发出射线,记录在射线检测过程中命中的所有相交点,构成一个碰撞点合集S。
在一种优选的实施例中,在得到碰撞点合集S之后,可以对碰撞点合集S中的所有相交点按照高度进行排序,并遍历排序后的相交点,计算每个相交点与位于其上方的相交的交点之间的距离d。此时可以将距离d与虚拟角色的高度进行判断,若某个相交点的距离d小于虚拟角色的高度,由于距离d不足以容纳虚拟角色,则可以说明虚拟角色无法在该相交的交点进行虚拟障碍模型的翻越;若某个相交点的距离d大于或等于虚拟角色的高度,则可以说明距离d可以容纳虚拟角色,虚拟角色可能可以在相交的交点进行虚拟障碍模型的翻越,即该相交的交点可能为一个有效的翻越位置。
具体的,对虚拟障碍模型的尺寸信息进行获取的方式,虚拟障碍模型的高度可以在获取多个有效的翻越位置之后,在所有可能的翻越位置中选取一个既高于虚拟角色的所在位置,且与虚拟角色的竖直距离差最小的点(例如图6中的点C),并可以将点C对应的高度作为虚拟障碍模型的高度H;而对于虚拟障碍模型的宽度,可以从虚拟角色的头部发射出射线,并沿着虚拟角色的移动方向进行射线检测,此时可以选取射线照射到与虚拟障碍模型的第一个相交点和第二个相交点,则计算出第一个相交点与第二个相交点的距离,即为虚拟障碍模型的宽度S。
子步骤S323,采用所述虚拟障碍模型的尺寸信息与所述预设的障碍模型的尺寸信息,得到根骨骼的缩放比;
在本发明的一种实施例中,在得到预设骨骼动画对应的预设障碍模型的尺寸信息,以及虚拟障碍模型的尺寸信息之后,可以采用虚拟障碍模型的尺寸信息与预设障碍模型的尺寸信息的比值,得到根骨骼的缩放比,并采用得到的根骨骼的缩放比,对翻越动画中根骨骼的关键帧进行相应的缩放,以控制缩放后的根骨骼满足当前的翻越类的虚拟障碍模型的尺寸。
在实际应用中,采用虚拟障碍模型的尺寸信息与预设障碍模型的尺寸信息的比值得到根骨骼的缩放比,可以采用虚拟障碍模型的高度的比值H与预设障碍模型的高度h,得到针对高度的第一缩放比r=H/h;以及可以采用虚拟障碍模型的宽度S与预设模型的宽度s的比值,得到针对宽度的第二缩放比t=S/s;此时可以分别采用针对高度的第一缩放比对翻越动画中的根骨骼进行高度的缩放,以及采用针对宽度的第二缩放比对翻越动画中的根骨骼进行宽度的缩放,以控制骨骼与虚拟障碍模型的高度和宽度进行适配。
子步骤S324,采用所述缩放比对所述预设的翻越动画中根骨骼的关键帧进行缩放;
具体的,可以采用修改动画根骨骼关键帧的方法对预设骨骼进行缩放。在骨骼动画中,其特点是父骨骼驱动子骨骼,此时可以通过控制父骨骼的位移和朝向来影响子骨骼动画;即在得到第一缩放比r=H/h与第二缩放比t=S/s之后,在保持其他骨骼关键帧动画数据不变的情况下,可以将根骨骼的所有关键帧的高度h和距离s分别乘以上述缩放比r和t,即可得到经过缩放的根骨骼关键帧,得到了一个新的骨骼动画,以用来进行翻越。
其中,根骨骼指的是在骨骼动画中骨骼树的根节点,其特征是不具有父节点;而控制父骨骼的位移和朝向来影响子骨骼动画中,父骨骼的确定可以根据IK(inversekinematics,反向动力学)进行确定,即通过先确定子骨骼的位置,然后反求推导出其所在骨骼链上n级父骨骼位置,从而确定整条骨骼链的方法;上述在通过修改骨骼动画适配障碍模型尺寸时,同样也可以使用反向动力学(IK)实现。
在一种优选的实施例中,在对虚拟障碍模型的高度和宽度进行确定时,还可以建立一张用于配置不同高度、宽度下所应该使用的翻越动作(即对应的骨骼动画,可能有多个)的表格,为了在不同高度和宽度下播放翻越动作时都能有比较好的表现力,翻越动作可以通过表格进行配置,例如表格中配置虚拟障碍模型的高度为1且宽度为0.5时,此时可以将对应的翻越动作命名为anim_cross1;虚拟障碍模型的高度为1且宽度为1时,此时可以将对应的翻越动作命名为anim_cross2;虚拟障碍模型的高度为2且宽度为1时,此时可以将对应的翻越动作命名为anim_cross3等。表格中的高度与宽度可以为数值,也可以为区间,对此,本发明实施例不加以限制。
子步骤S325,根据缩放后的所述预设的翻越动画,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
在本发明的一种实施例中,在对翻越动画中的根骨骼动画的关键帧进行相应缩放以匹配虚拟障碍模型之后,需要对翻越位置进行获取,如上述子步骤S322所述,在对虚拟障碍模型的高度进行确定时,已经对有效翻越位置进行确定,此时可以对有效翻越位置(例如,图6中的点C)直接获取,以根据该有效翻越位置对虚拟障碍模型进行翻越;在对有效翻越位置进行获取之后,此时游戏玩家可以操控图像用户界面上的虚拟角色对翻越类型的虚拟障碍模型进行翻越。
需要说明的是,本发明实施例采用的根骨骼关键帧修改法,除了可以适用于翻越,还可以应用于其他对动画位移有要求的应用场景。此外本发明实施例所进行的物理计算量不大,对于攀爬面检测而言,只需要进行4次射线检测和一次胶囊体扫射,而对于翻越障碍检测也只需要进行少量射线检测、胶囊体扫射以及重叠检测,能够在低端设备上运行,并实现实时障碍检测以及实时攀爬/翻越操作。
在本发明实施例中,在游戏运行时,从虚拟角色朝其移动方向发出射线,通过射线对游戏场景中的虚拟环境进行检测,得到射线与虚拟环境相交的交点信息,并根据交点信息确定游戏场景中的虚拟障碍模型,在确定虚拟障碍模型之后可以控制游戏场景中的虚拟角色跨越虚拟障碍模型。通过在游戏运行时对虚拟障碍模型进行检测以及控制虚拟角色对虚拟障碍模型进行跨越,不需要对游戏场景进行预处理,实现对游戏场景中动态生成的虚拟障碍模型的实时检测,以及对动态生成的虚拟障碍模型进行实时跨越。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了本发明的一种跨越虚拟障碍的装置实施例的结构框图,通过终端提供图形用户界面,所述图形用户界面显示的内容包含至少部分游戏场景和虚拟角色,具体可以包括如下模块:
交点信息检测模块701,用于从所述虚拟角色朝所述虚拟角色的移动方向在所述游戏场景中发出射线,并检测所述射线与所述游戏场景中的虚拟环境相交的交点信息;
虚拟障碍模型确定模块702,用于根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型;
虚拟障碍模型跨越模块703,用于控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
在本发明的一种实施例中,所述交点信息检测模块701可以包括如下子模块:
交点信息检测子模块,用于从所述虚拟角色所在位置朝所述虚拟角色的移动方向发出N条射线,检测所述N条射线与所述游戏场景中的虚拟环境相交的交点信息;所述交点信息包括交点数,其中N为正整数。
在本发明的一种实施例中,虚拟障碍模型确定模块702可以包括如下子模块:
虚拟障碍模型第一确定子模块,用于若所述交点数小于发出的射线数N,则确定所述虚拟角色的移动方向不存在虚拟障碍模型。
在本发明的一种实施例中,所述N为大于或等于3的整数。
在本发明的一种实施例中,交点信息检测子模块可以包括如下单元:
射线发出单元,用于从所述虚拟角色的头部、中部和脚部朝所述虚拟角色的移动方向分别发出至少一条射线。
在本发明的一种实施例中,虚拟障碍模型确定模块702可以包括如下子模块:
距离确定子模块,用于若所述交点数等于发出的射线数N,则确定每个交点与所述虚拟角色之间的距离;
虚拟障碍模型第二确定子模块,用于若每个交点与所述虚拟角色之间的距离均大于第一预设值,则确定所述游戏场景中不存在虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍模型确定模块702可以包括如下子模块:
斜率确定子模块,用于若所述交点数等于发出的射线数N,则确定任意两个交点所构成的直线,并获取所有直线的斜率;
虚拟障碍模型第三确定子模块,用于当所有直线中任意两条直线的斜率的差值小于第二预设值,且所有直线的斜率的平均值大于第三预设值,则确定所述游戏场景中存在虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍模型确定模块702可以包括如下子模块:
胶囊体生成子模块,用于当根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中存虚拟障碍模型时,生成与所述虚拟角色对应的胶囊体;
胶囊体扫射子模块,用于控制所述胶囊体朝所述虚拟角色的移动方向做胶囊体扫射,获得所述胶囊体与所述虚拟障碍模型相交的交点位置以及所述交点位置的法线方向;
倾斜角度确定子模块,用于根据所述交点位置的法线方向确定所述虚拟障碍模型的攀爬面相对于地面的倾斜角度;
虚拟障碍模型判定子模块,用于根据倾斜角度确定所述虚拟障碍模型是否为合格的虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍模型判定子模块可以包括如下单元:
不合格虚拟障碍模型确定单元,用于若所述倾斜角度小于预设倾斜角度,则确定所述虚拟障碍模型为不合格的虚拟障碍模型;
合格虚拟障碍模型确定单元,用于若所述倾斜角度大于或等于所述预设倾斜角度,则确定所述虚拟障碍模型为合格的虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍模型跨越模块703可以包括如下子模块:
虚拟障碍类型确定子模块,用于确定所述虚拟障碍模型的类型;
虚拟障碍模型跨越子模块,用于根据所述虚拟障碍模型的类型,控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍类型确定子模块可以包括如下单元:
出墙位置确定单元,用于获取所述虚拟角色的当前位置以及预设的出墙动画的动画位移,通过所述虚拟角色的当前位置以及所述动画位移得到所述虚拟角色的出墙位置;
可站立面判断单元,用于从所述出墙位置朝所述出墙位置的下方做射线检测,以判断所述出墙位置的下方是否存在可站立面;
攀爬类型确定单元,用于若所述出墙位置的下方存在可站立面,则确定所述虚拟障碍模型的类型为攀爬类型的虚拟障碍模型;
翻越类型确定单元,用于若所述出墙位置的下方不存在可站立面且所述虚拟障碍模型的高度小于预设高度阈值,则确定所述虚拟障碍模型的类型为翻越类型的虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍模型跨越子模块可以包括如下单元:
虚拟障碍模型攀爬单元,用于当所述虚拟障碍模型的类型为攀爬类型时,控制所述游戏场景中的所述虚拟角色攀爬所述虚拟障碍模型;
虚拟障碍模型翻越单元,用于当所述虚拟障碍模型的类型为翻越类型时,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍模型攀爬单元可以包括如下子单元:
当前攀爬位置获取子单元,用于获取所述虚拟角色的当前攀爬位置以及所述虚拟角色对应的胶囊体;
交点位置确定子单元,用于控制所述虚拟角色对应的胶囊体朝所述虚拟角色的移动方向发出射线,得到射线照射到所述虚拟障碍模型的交点位置及所述交点位置的法线方向;
轴向调整子单元,用于根据所述交点位置的法线方向调整所述虚拟角色的轴向;
虚拟障碍模型攀爬子单元,用于根据所述虚拟角色的轴向控制所述虚拟角色攀爬所述虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍模型攀爬单元还可以包括如下子单元:
检测胶囊体生成子单元,用于生成所述虚拟角色对应的检测胶囊体;
当前位置获取子单元,用于获取所述检测胶囊体的当前位置;所述检测胶囊体的当前位置由所述虚拟角色的当前攀爬位置以及预设的攀爬动画的动画位移确定;
重叠判断子单元,用于根据所述检测胶囊体的当前位置判断所述检测胶囊体与所述虚拟环境是否重叠;
结束攀爬子单元,用于若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍模型攀爬单元还可以包括如下子单元:
不结束攀爬子单元,用于若所述检测胶囊体与所述虚拟环境重叠,则确定所述虚拟角色不在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
在本发明的一种实施例中,虚拟障碍模型翻越单元可以包括如下子单元:
预设障碍模型尺寸信息获取子单元,用于从预设的翻越动画中获取预设的障碍模型的尺寸信息;
虚拟障碍模型尺寸信息获取子单元,用于获取所述游戏场景中的所述虚拟障碍模型的尺寸信息;
根骨骼缩放确定子单元,用于采用所述虚拟障碍模型的尺寸信息与所述预设的障碍模型的尺寸信息,得到根骨骼的缩放比;
关键帧缩放子单元,用于采用所述缩放比对所述预设的翻越动画中根骨骼的关键帧缩放;
虚拟障碍模型翻越子单元,用于根据缩放后的所述预设的翻越动画,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述跨越虚拟障碍的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述针对跨越虚拟障碍的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种跨越虚拟障碍的方法和一种跨越虚拟障碍的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (20)

1.一种跨越虚拟障碍的方法,其特征在于,通过终端提供图形用户界面,所述图形用户界面显示的内容包含至少部分游戏场景和虚拟角色,所述方法包括:
从所述虚拟角色朝所述虚拟角色的移动方向发出射线,并检测所述射线与所述游戏场景中的虚拟环境相交的交点信息;
根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型;所述交点信息包括交点数,其中若所述交点数等于发出的射线,基于在任意两个交点所构成直线的任意两条直线的斜率的差值小于第二预设值,且所有直线的斜率的平均值大于第三预设值时,确定所述游戏场景中的虚拟障碍模型存在;
控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
2.根据权利要求1所述的方法,其特征在于,所述从所述虚拟角色朝所述虚拟角色的移动方向发出射线,并检测所述射线与所述游戏场景中的虚拟环境相交的交点信息,根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型,包括:
从所述虚拟角色所在位置朝所述虚拟角色的移动方向发出N条射线,检测所述N条射线与所述游戏场景中的虚拟环境相交的交点信息;其中N为正整数;若所述交点数小于发出的射线数N,则确定所述虚拟角色的移动方向不存在虚拟障碍模型。
3.根据权利要求2所述的方法,其特征在于,所述N为大于或等于3的整数。
4.根据权利要求3所述的方法,其特征在于,所述从所述虚拟角色所在位置朝所述虚拟角色的移动方向发出N条射线,包括:
从所述虚拟角色的头部、中部和脚部朝所述虚拟角色的移动方向分别发出至少一条射线。
5.根据权利要求3所述的方法,其特征在于,所述根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型,包括:
若所述交点数等于发出的射线数N,则确定每个交点与所述虚拟角色之间的距离;
若每个交点与所述虚拟角色之间的距离均大于第一预设值,则确定所述游戏场景中不存在虚拟障碍模型。
6.根据权利要求1所述的方法,其特征在于,所述根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型,包括:
当根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中存虚拟障碍模型时,生成与所述虚拟角色对应的胶囊体;
控制所述胶囊体朝所述虚拟角色的移动方向做胶囊体扫射,获得所述胶囊体与所述虚拟障碍模型相交的交点位置以及所述交点位置的法线方向;
根据所述交点位置的法线方向确定所述虚拟障碍模型的攀爬面相对于地面的倾斜角度;
根据倾斜角度确定所述虚拟障碍模型是否为合格的虚拟障碍模型。
7.根据权利要求6所述的方法,其特征在于,所述根据倾斜角度确定所述虚拟障碍模型是否为合格的虚拟障碍模型,包括:
若所述倾斜角度小于预设倾斜角度,则确定所述虚拟障碍模型为不合格的虚拟障碍模型;
若所述倾斜角度大于或等于所述预设倾斜角度,则确定所述虚拟障碍模型为合格的虚拟障碍模型。
8.根据权利要求1所述的方法,其特征在于,所述控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型,包括:
确定所述虚拟障碍模型的类型;
根据所述虚拟障碍模型的类型,控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
9.根据权利要求8所述的方法,其特征在于,所述确定所述虚拟障碍模型的类型,包括:
获取所述虚拟角色的当前位置以及预设的出墙动画的动画位移,通过所述虚拟角色的当前位置以及所述动画位移得到所述虚拟角色的出墙位置;
从所述出墙位置朝所述出墙位置的下方做射线检测,以判断所述出墙位置的下方是否存在可站立面;
若所述出墙位置的下方存在可站立面,则确定所述虚拟障碍模型的类型为攀爬类型的虚拟障碍模型;
若所述出墙位置的下方不存在可站立面且所述虚拟障碍模型的高度小于预设高度阈值,则确定所述虚拟障碍模型的类型为翻越类型的虚拟障碍模型。
10.根据权利要求8所述的方法,其特征在于,所述根据所述虚拟障碍模型的类型,控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型,包括:
当所述虚拟障碍模型的类型为攀爬类型时,控制所述游戏场景中的所述虚拟角色攀爬所述虚拟障碍模型;
当所述虚拟障碍模型的类型为翻越类型时,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
11.根据权利要求10所述的方法,其特征在于,所述控制所述游戏场景中的所述虚拟角色攀爬所述虚拟障碍模型,包括:
获取所述虚拟角色的当前攀爬位置以及所述虚拟角色对应的胶囊体;
控制所述虚拟角色对应的胶囊体朝所述虚拟角色的移动方向发出射线,得到射线照射到所述虚拟障碍模型的交点位置及所述交点位置的法线方向;
根据所述交点位置的法线方向调整所述虚拟角色的轴向;
根据所述虚拟角色的轴向控制所述虚拟角色攀爬所述虚拟障碍模型。
12.根据权利要求11所述的方法,其特征在于,所述控制所述游戏场景中所述虚拟角色攀爬所述虚拟障碍模型,还包括:
生成所述虚拟角色对应的检测胶囊体;
获取所述检测胶囊体的当前位置;所述检测胶囊体的当前位置由所述虚拟角色的当前攀爬位置以及预设的攀爬动画的动画位移确定;
根据所述检测胶囊体的当前位置判断所述检测胶囊体与所述虚拟环境是否重叠;
若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
13.根据权利要求12所述的方法,其特征在于,所述若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型,包括:
若所述检测胶囊体与所述虚拟环境不重叠,则检测所述检测胶囊体的下方是否存在可站立面;
若所述检测胶囊体的下方存在可站立面,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
14.根据权利要求12所述的方法,其特征在于,所述若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型,包括:
若所述检测胶囊体与所述虚拟环境不重叠,则根据所述预设的攀爬动画的结束动作判断所述虚拟角色是否会与所述虚拟环境发生碰撞;
若确定所述虚拟角色不会与所述虚拟环境发生碰撞,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
15.根据权利要求12所述的方法,其特征在于,所述若所述检测胶囊体与所述虚拟环境不重叠,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型,包括:
若所述检测胶囊体与所述虚拟环境不重叠,则从所述检测胶囊体的当前位置朝上方发出射线,检测所发出的射线与所述虚拟环境的交点;
若所述检测胶囊体与所述交点之间的距离超出预设距离,则确定所述虚拟角色在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
16.根据权利要求12所述的方法,其特征在于,所述方法还包括:
若所述检测胶囊体与所述虚拟环境重叠,则确定所述虚拟角色不在所述检测胶囊体的当前位置结束攀爬所述虚拟障碍模型。
17.根据权利要求10所述的方法,其特征在于,所述控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型,包括:
从预设的翻越动画中获取预设的障碍模型的尺寸信息;
获取所述游戏场景中的所述虚拟障碍模型的尺寸信息;
采用所述虚拟障碍模型的尺寸信息与所述预设的障碍模型的尺寸信息,得到根骨骼的缩放比;
采用所述缩放比对所述预设的翻越动画中根骨骼的关键帧缩放;
根据缩放后的所述预设的翻越动画,控制所述游戏场景中的所述虚拟角色翻越所述虚拟障碍模型。
18.一种跨越虚拟障碍的装置,其特征在于,通过终端提供图形用户界面,所述图形用户界面显示的内容包含至少部分游戏场景和虚拟角色,所述装置包括:
交点信息检测模块,用于从所述虚拟角色朝所述虚拟角色的移动方向在所述游戏场景中发出射线,并检测所述射线与所述游戏场景中的虚拟环境相交的交点信息;
虚拟障碍模型确定模块,用于根据所述射线与所述虚拟环境相交的交点信息,确定所述游戏场景中的虚拟障碍模型;所述交点信息包括交点数,其中若所述交点数等于发出的射线,基于在任意两个交点所构成直线的任意两条直线的斜率的差值小于第二预设值,且所有直线的斜率的平均值大于第三预设值时,确定所述游戏场景中的虚拟障碍模型存在;
虚拟障碍模型跨越模块,用于控制所述游戏场景中的虚拟角色跨越所述虚拟障碍模型。
19.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至17中任一项所述跨越虚拟障碍的方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17中任一项所述跨越虚拟障碍的方法的步骤。
CN202010762005.3A 2020-07-31 2020-07-31 一种跨越虚拟障碍的方法和装置 Active CN111773724B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010762005.3A CN111773724B (zh) 2020-07-31 2020-07-31 一种跨越虚拟障碍的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010762005.3A CN111773724B (zh) 2020-07-31 2020-07-31 一种跨越虚拟障碍的方法和装置

Publications (2)

Publication Number Publication Date
CN111773724A CN111773724A (zh) 2020-10-16
CN111773724B true CN111773724B (zh) 2024-04-26

Family

ID=72766597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010762005.3A Active CN111773724B (zh) 2020-07-31 2020-07-31 一种跨越虚拟障碍的方法和装置

Country Status (1)

Country Link
CN (1) CN111773724B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112546630B (zh) * 2020-12-25 2022-09-02 珠海西山居数字科技有限公司 角色移动方法及装置
IL305745A (en) * 2021-03-10 2023-11-01 Bungie Inc A lug catch is free of it
CN113018865B (zh) * 2021-03-31 2022-07-29 腾讯科技(深圳)有限公司 攀爬线生成方法、装置、计算机设备及存储介质
CN113509725B (zh) * 2021-07-08 2024-07-12 杭州炎魂网络科技有限公司 一种二维游戏角色移动控制方法、装置及存储介质
CN113663335B (zh) * 2021-07-15 2024-08-16 广州三七极耀网络科技有限公司 Fps游戏的ai模型训练方法、装置、设备和存储介质
CN113713372B (zh) * 2021-09-09 2024-02-09 腾讯科技(深圳)有限公司 虚拟角色的控制方法和装置、存储介质及电子设备
CN114288663A (zh) * 2022-01-05 2022-04-08 腾讯科技(深圳)有限公司 游戏数据处理方法、装置、设备及计算机可读存储介质
CN117732074A (zh) * 2022-12-13 2024-03-22 苏州幻塔网络科技有限公司 角色攀爬方法、装置、计算机设备及计算机可读存储介质
CN117224951B (zh) * 2023-11-02 2024-05-28 深圳市洲禹科技有限公司 基于感知的行人行为预测方法、装置及电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4089524A (en) * 1977-01-18 1978-05-16 Gremlin Industries, Inc. Digitally controlled electronic game
EP2444940A1 (en) * 2010-10-21 2012-04-25 Thomson Licensing Method for estimation of occlusion in a virtual environment
WO2018103635A1 (zh) * 2016-12-07 2018-06-14 腾讯科技(深圳)有限公司 一种vr场景下的攀爬操作处理方法、装置及可读存储介质
CN108635853A (zh) * 2018-03-23 2018-10-12 腾讯科技(深圳)有限公司 对象的控制方法和装置、存储介质、电子装置
CN109550247A (zh) * 2019-01-09 2019-04-02 网易(杭州)网络有限公司 游戏中虚拟场景调整方法、装置、电子设备及存储介质
CN109999498A (zh) * 2019-05-16 2019-07-12 网易(杭州)网络有限公司 一种虚拟对象的寻路方法和装置
CN110665230A (zh) * 2019-09-26 2020-01-10 腾讯科技(深圳)有限公司 虚拟世界中的虚拟角色控制方法、装置、设备及介质
CN110751706A (zh) * 2019-10-29 2020-02-04 网易(杭州)网络有限公司 游戏中的图形处理方法、装置、设备及存储介质
CN111068324A (zh) * 2019-11-26 2020-04-28 腾讯科技(深圳)有限公司 虚拟对象控制方法、装置、设备及存储介质
CN111243103A (zh) * 2020-01-07 2020-06-05 青岛小鸟看看科技有限公司 设置安全区域的方法、装置、vr设备及存储介质
CN111265856A (zh) * 2020-01-17 2020-06-12 腾讯科技(深圳)有限公司 虚拟操作对象的控制方法、装置、存储介质及电子装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080309618A1 (en) * 2007-06-12 2008-12-18 Kazuyuki Okada Methods and systems for controlling an input device, for generating collision data, and for controlling a camera angle
US10062199B2 (en) * 2016-06-27 2018-08-28 Pixar Efficient rendering based on ray intersections with virtual objects

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4089524A (en) * 1977-01-18 1978-05-16 Gremlin Industries, Inc. Digitally controlled electronic game
EP2444940A1 (en) * 2010-10-21 2012-04-25 Thomson Licensing Method for estimation of occlusion in a virtual environment
WO2018103635A1 (zh) * 2016-12-07 2018-06-14 腾讯科技(深圳)有限公司 一种vr场景下的攀爬操作处理方法、装置及可读存储介质
CN108635853A (zh) * 2018-03-23 2018-10-12 腾讯科技(深圳)有限公司 对象的控制方法和装置、存储介质、电子装置
CN109550247A (zh) * 2019-01-09 2019-04-02 网易(杭州)网络有限公司 游戏中虚拟场景调整方法、装置、电子设备及存储介质
CN109999498A (zh) * 2019-05-16 2019-07-12 网易(杭州)网络有限公司 一种虚拟对象的寻路方法和装置
CN110665230A (zh) * 2019-09-26 2020-01-10 腾讯科技(深圳)有限公司 虚拟世界中的虚拟角色控制方法、装置、设备及介质
CN110751706A (zh) * 2019-10-29 2020-02-04 网易(杭州)网络有限公司 游戏中的图形处理方法、装置、设备及存储介质
CN111068324A (zh) * 2019-11-26 2020-04-28 腾讯科技(深圳)有限公司 虚拟对象控制方法、装置、设备及存储介质
CN111243103A (zh) * 2020-01-07 2020-06-05 青岛小鸟看看科技有限公司 设置安全区域的方法、装置、vr设备及存储介质
CN111265856A (zh) * 2020-01-17 2020-06-12 腾讯科技(深圳)有限公司 虚拟操作对象的控制方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
CN111773724A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN111773724B (zh) 一种跨越虚拟障碍的方法和装置
EP0842682B9 (en) Image processor for games
US6088042A (en) Interactive motion data animation system
JP3786132B2 (ja) ゲーム画像処理プログラム及び記憶媒体
US5616078A (en) Motion-controlled video entertainment system
JP2011508290A (ja) 運動アニメーション方法及び装置
Shum et al. Interaction patches for multi-character animation
US20090195544A1 (en) System and method for blended animation enabling an animated character to aim at any arbitrary point in a virtual space
WO1998035734A1 (fr) Dispositif et procede pour le traitement des images
CN112121417B (zh) 虚拟场景中的事件处理方法、装置、设备及存储介质
Zhang et al. KaraKter: An autonomously interacting Karate Kumite character for VR-based training and research
JP7009087B2 (ja) ゲーム環境内の位置にキャラクタアニメーションを配置する方法及びシステム
US11816772B2 (en) System for customizing in-game character animations by players
CN116310152A (zh) 基于unity平台的步进式虚拟场景搭建、漫游方法及虚拟场景
CN114494421A (zh) 虚拟现实游戏安全保护系统、方法以及虚拟现实游戏
CN112891940A (zh) 图像数据处理方法及装置、存储介质、计算机设备
CN113041616A (zh) 游戏中控制跳字显示的方法、装置、电子设备及存储介质
CN112396683B (zh) 虚拟场景的阴影渲染方法、装置、设备及存储介质
CN116251349A (zh) 一种游戏中目标位置的提示方法、装置及电子设备
CN112090076B (zh) 游戏角色动作控制方法、装置、设备和介质
Garcia et al. Modifying a game interface to take advantage of advanced I/O devices
US11684848B2 (en) Method to improve user understanding of XR spaces based in part on mesh analysis of physical surfaces
KR100684401B1 (ko) 가상현실 기반의 골프학습 장치, 그 방법 및 그 기록매체
US20240037885A1 (en) Method and apparatus for controlling virtual object, electronic device, storage medium, and program product
CN117732074A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230106

Address after: 201700 Room 2075, Zone A, Floor 2, Lane 99, Jiajie Road, Zhaoxiang Town, Qingpu District, Shanghai

Applicant after: Netease (Shanghai) Network Co.,Ltd.

Address before: 310052 Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province, 4, 7 stories

Applicant before: NETEASE (HANGZHOU) NETWORK Co.,Ltd.

GR01 Patent grant
GR01 Patent grant