一种玩家与虚拟角色互动方法与流程

文档序号:11250458阅读:1783来源:国知局
一种玩家与虚拟角色互动方法与流程

本发明涉及虚拟现实技术领域,尤其涉及一种虚拟现实中玩家与虚拟角色互动方法。



背景技术:

虚拟现实技术(简称vr),是以沉浸性、交互性和构想性为基本特征的计算机高级人机界面。他综合利用了计算机图形学、仿真技术、多媒体技术、人工智能技术、计算机网络技术、并行处理技术和多传感器技术,模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。使用者不仅能够通过虚拟现实系统感受到在客观物理世界中所经历的“身临其境”的逼真性,而且能够突破空间、时间以及其他客观限制,感受到真实世界中无法亲身经历的体验。

现有技术中,在vr场景中如何真实模仿与虚拟角色的互动,并通过互动产生对应结果,一直是强调真实的vr产品需要解决的实际问题。



技术实现要素:

为了解决现有技术存在的不足,本发明的目的在于提供一种玩家与虚拟角色互动方法,在vr场景中如何真实模仿与虚拟角色的互动,并通过互动产生对应结果。

为实现上述目的,本发明提供的玩家与虚拟角色互动方法,包括以下步骤:

建立虚拟角色,并为其添加抓取模块;

设定虚拟角色的表现效果;

玩家与虚拟角色进行互动,并产生相应的表现效果。

进一步地,所述建立虚拟角色,并为其添加抓取模块,是建立被抓取的动物的类,并在所述类中添加抓取模块。

进一步地,所述动物的类,包括普通动物、在水中的动物、全息地图恐龙,以及全息资料台上的恐龙。

进一步地,所述虚拟角色的表现效果,包括:

当玩家抓取动物后停止ai和动作蓝图,播放被抓动作;

如果是普通动物,则被玩家扔出并落地后,恢复ai和动作蓝图;

如果是水中的动物,被玩家扔出并落到水里,则恢复ai和动作蓝图并使动物逃离;被玩家扔出并落到地面上,则需要先判断是否为两栖动物,如果是两栖动物则恢复ai和动作蓝图,不是两栖动物则让动物播放在地面上挣扎的动作;

如果是全息地图恐龙被玩家扔出,所述全息地图恐龙将在落地后放大并播放特定的动作,然后恢复被抓取之前的位置和大小,恢复ai和动作蓝图;

如果是全息资料台上的恐龙被玩家扔出,所述恐龙回到台子并在显示区域显示相应的恐龙资料。

更进一步地,所述玩家与虚拟角色进行互动,包括以下步骤:

玩家抓住动物,vr设备发送抓取消息给服务端,服务端接收抓取消息,并将动物绑在人物手上;

玩家松开动物,vr设备发送松开消息给服务端,服务端接收松开消息,并将动物从玩家手上解绑切换掉落动作;

动物与地面发生碰撞,编辑器产生一个hit事件,服务端根据该hit事件,并抛出落地事件。

本方法运用继承与多态的方法表现了不同种类的动物在与玩家互动时产生的不同效果,并通过这些效果上细节的打磨,增加了玩家与动物之间的交互性,观赏性与趣味性。

采用本发明,可以将vr场景中的所有动物都赋予被可以抓取的属性,实现了玩家对场景中动物的操作,丰富了场景中的玩法与表现效果,增强了vr设备与虚拟场景之间的操作与交互。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为根据本发明的玩家与虚拟角色互动方法流程图;

图2为根据本发明的玩家抓取动物的界面截图;

图3为根据本发明的抓取动物时动物与玩家之间的互动界面截图;

图4为根据本发明的丢掉动物后动物与玩家之间的互动界面截图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1为根据本发明的玩家与虚拟角色互动方法,下面将参考图1,对本发明的玩家与虚拟角色互动方法进行详细描述。

首先,在步骤101,建立虚拟角色,并为其添加抓取模块。

在该步骤中,首先建立一个可以被抓取的动物的类作为虚拟角色,然后在这个类中添加一个抓取模块。

当玩家抓住动物后,将会上发给服务端一个消息,服务端接收到这个消息后会开始处理抓取事件:将动物绑在人物手上,并停止动物的ai和动作蓝图,开始播放自定义的抓取动画。在自定义的动物挣扎动画中有自定义的事件反馈,当接收到反馈后将会抛出手柄反馈使手柄震动,增加玩家的交互感。当玩家松开手柄的时候会上发给服务端一个消息,服务端接收到这个消息将会处理松开手柄的事件:将动物从玩家手上解绑并添加物理模拟,并且将动物的动作切换为自定义的掉落动作。当动物与地面发生碰撞后编辑器将会产生一个hit事件,当服务端接收到这个hit事件后将会抛出一个落地的事件,该事件可以被子类继承。

在步骤102,设定虚拟角色的表现效果。

在该步骤中,本发明中一共定义了4个类来实现所有被抓取的动物的表现效果,这些类都是继承于上述所建立的类,并重写了落地事件,具体实现如下:

1、普通动物:在接收到落地事件后,将会关闭模拟物理并恢复ai和动作蓝图。

2、在水中的动物:继承基类中松开手柄的事件,重写该事件并判定在松开手柄后到落地之间,如果所在的物理体为水体的话则判定为落入水中,否则接收到落地事件则判定为落在地面上。如果动物是落入水中则恢复动物ai和动画蓝图,并停止模拟物理;如果动物落在地面上则先停止模拟物理,并判断动物是否是两栖动物,如果是两栖动物则恢复动物ai和动画蓝图,否则将播放自定义的在地面上的挣扎动画。

3、全息地图恐龙:当接收到落地消息后,将会关闭模拟物理,恐龙会原地放大数倍,并播放一些特定的动作让玩家观看。过一段时间后恐龙将消失并回到出生点并恢复出生时的状态。

4、全息资料台上的可被选择恐龙:类似于水中的动物,当玩家将恐龙抛出后将判定是否与资料台的屏幕有碰撞,如果与屏幕碰撞了则将屏幕上显示的恐龙信息改为当前的恐龙资料,并关闭物理并回到资料台上,如果碰到了地面则返回资料台上。

在步骤103,vr设备玩家与虚拟角色进行互动,并产生相应的表现效果。

在该步骤中,当玩家抓住动物后,将会上发给服务端一个消息,服务端接收到这个消息后会开始处理抓取事件:将动物绑在人物手上,并停止动物的ai和动作蓝图,开始播放自定义的抓取动画。在自定义的动物挣扎动画中有自定义的事件反馈,当接收到反馈后将会抛出手柄反馈使手柄震动,增加玩家的交互感。当玩家松开手柄的时候会上发给服务端一个消息,服务端接收到这个消息将会处理松开手柄的事件:将动物从玩家手上解绑并添加物理模拟,并且将动物的动作切换为自定义的掉落动作。当动物与地面发生碰撞后编辑器将会产生一个hit事件,当服务端接收到这个hit事件后将会抛出一个落地的事件,该事件可以被子类继承。

本发明主要通过以下的步骤来实现vr设备玩家与虚拟角色进行互动,并产生相应的表现效果:

1、玩家手柄与动物产生碰撞后,按住手柄扳机,服务端接收到抓取指令,将动物绑在玩家手上,并让动物播放被抓取的动画;图2为根据本发明的玩家抓取动物的界面截图。

2、在挣扎的过程中一直产生手柄震动反馈;图3为根据本发明的抓取动物时动物与玩家之间的互动界面截图。

3、当玩家将动物扔出去并松开扳机的时候,将动物从玩家手上解绑,并开启物理模拟;图4为根据本发明的丢掉动物后动物与玩家之间的互动界面截图。

4、当动物撞到地上后,服务端将接收到hit事件,在hit事件中抛出一个事件并给不同类型的动物根据所处的状态添加不同的表现。

本发明的恐龙表现效果一共有3种,具体如下:

普通动物:当玩家抓取动物后停止ai和动作蓝图,播放被抓动作;当玩家扔出动物并落地后,恢复ai和动作蓝图;

可以在水里游的动物:当玩家抓取动物后停止ai和动作蓝图,播放被抓动作;当玩家抛出动物后,根据是否产生hit事件或者是否落入到水体中判断是落到地面上还是落到水里,如果落到水里则恢复ai和动作蓝图并使动物逃离,如果落到地面上则需要先判断是不是两栖动物,如果是两栖动物则恢复ai和动作蓝图,不是两栖动物则让动物播放一个在地面上挣扎的动作;

全息恐龙:我们的场景中有2种全息恐龙,分别是全息地图上的恐龙和恐龙资料台上可供选择的全息恐龙。两者的功能是在落地后的表现方面有所不同。当玩家抓取动物后停止ai和动作蓝图,播放被抓动作;当玩家扔出动物后,全息地图恐龙将在落地后放大并播放一个特定的动作,过段时间后恢复到一开始被抓取之前的位置并恢复原来的大小,恢复ai和动作蓝图;而全息恐龙资料台上的恐龙将会判定是落地还是落入恐龙资料显示区域,如果落地了将回到台子上,如果落入资料显示区域也会回到台子上并在显示区域显示相应的恐龙资料。

本发明玩家与虚拟角色互动方法,实现了玩家与vr场景中动物的抓取互动,当玩家没有抓取动物时动物是由自身,由ai控制其行为,而当玩家抓起了动物后则是由玩家的行为来控制动物的行为,达到了玩家与动物之间的交互,并通过互动产生对应结果。

当玩家利用手柄触碰一名可以互动的虚拟角色后,服务端会接收到消息,此时服务端会广播消息让该角色播放一个相对应的动作。当玩家松开手柄后,服务端会收到放弃事件,广播给客户端播放对应动作并模拟物理效果。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1