在虚拟人物交互场景中带人观看的方法、系统及存储介质
文献发布时间:2024-04-18 19:58:26
技术领域
本发明涉及虚拟与现实技术领域,特别涉及在虚拟人物交互场景中带人观看的方法、系统及存储介质。
背景技术
虚拟与现实是20世纪发展起来的一项全新的实用技术。VR虚拟数字人: VR虚拟数字人是基于以上技术构建的一个在计算机中真实展示VR人物模型的技术,用人工智能、虚拟现实技术和先进技术打造的一系列虚拟形象,它由一个或多个计算机生成并融合了真人形象的数据和特征的人类活动过程和信息的综合表现形式。虚拟数字人可使人们通过数字形象进行与真人平等的交流沟通;也可通过其互动形式完成虚拟形象与现实世界之间的互动;更有人情味。
目前虚拟与现实技术应用在各个领域中,在不同场景下,用户之间的交互需求也是不同的,例如在一些需要导览的场景,往往导游在讲解展品时,需要不停的移动到各个展台位置,传统的交互形式是通过用户自由跟随导游观看展品,但是可能会出现用户无法及时的跟进导游,导致用户只听到语音无法看到展品,又或者在展品较多时,被带领的用户的视角无法精准的定位到当前介绍的展品的情况发生,因此传统的靠用户主动跟随的交互方式,交互效果差,不够真实。
发明内容
本发明的目的就在于为了解决上述在导游移动讲解展品的虚拟场景下其他用户与导游之间交互效果差的问题提出在虚拟人物交互场景中带人观看的方法、系统及存储介质,具有可管理场景中被带看人员准确移动到带看人员的位置并同步带看人员的视角,交互更真实的优点。
第一方面,本发明通过以下技术方案来实现上述目的,一种在虚拟人物交互场景中带人观看的方法,定义客户端一的用户A为被跟随人员,客户端二的用户B为跟随人员,该方法包括以下步骤:
步骤S1、客户端一获取用户A的跟随指令,向客户端二发送跟随消息,所述跟随消息用于所述客户端二控制用户B进入跟随状态;
步骤S2、客户端一向所述客户端二实时发送所述用户A的位置坐标,所述客户端二控制所述用户B朝着所述位置坐标自动移动;
步骤S3、客户端二实时计算所述用户B与所述用户A之间的距离,当距离小于预先设置的最短间距时,所述客户端二控制所述用户B脱离跟随状态,当距离大于预先设置的最短间距时,重复执行步骤S2和步骤S3;
步骤S4、客户端一接收用户A的带看指令,向客户端二发送带看消息,所述带看消息用于所述客户端二控制用户B进入带看状态;
步骤S5、计算所述用户A的视角目标的坐标,将所述坐标发送给所述客户端二,所述坐标用于所述客户端二控制用户B的摄像机朝向所述视角目标。
优选的,所述客户端二控制所述用户B朝着所述位置坐标自动移动的方法包括:
客户端二接收到跟随消息在当前虚拟场景的地面烘焙出NavMesh网格,所述NavMesh网格用于控制用户B按照与目标点之间最短的路径自动移动,将所述目标点的输入设置为用户A的位置坐标。
优选的,所述预先设定的最短间距的长度范围为0.1-1m,所述最短间距的长度单位是虚拟场景中设置的长度单位。
优选的,所述计算所述用户A的视角目标的坐标的方法包括:
计算虚拟场景显示界面对角线交叉点的坐标;
以用户A的摄像机为出发点向该坐标发送一条射线;
通过碰撞检测获得所述射线上碰撞的物体,作为视角目标;
获取摄像与该物体表面碰撞处的坐标作为视角目标的坐标。
优选的,该方法还包括所述用户B进入跟随状态时,关闭用户B接收移动指令指令的操作功能。
优选的,该方法还包括所述用户B进入带看状态时,关闭用户B接收转动视角指令的操作功能。
第二方面,本发明通过以下技术方案来实现上述目的,一种在虚拟人物交互场景中带人观看的系统,所述系统包括:
跟随开始单元,用于客户端一获取用户A的跟随指令,向客户端二发送跟随消息,所述跟随消息用于所述客户端二控制用户B进入跟随状态;
移动控制单元,用于客户端一向所述客户端二实时发送所述用户A的位置坐标,所述客户端二控制所述用户B朝着所述位置坐标自动移动;
跟随结束单元,用于客户端二实时计算所述用户B与所述用户A之间的距离,当距离小于预先设置的最短间距时,所述客户端二控制所述用户B脱离跟随状态,当距离大于预先设置的最短间距时,重复执行移动控制单元和跟随结束单元;
带看开始单元,用于客户端一接收用户A的带看指令,向客户端二发送带看消息,所述带看消息用于所述客户端二控制用户B进入带看状态;
视野同步单元,用于计算所述用户A的视角目标的坐标,将所述坐标发送给所述客户端二,所述坐标用于所述客户端二控制处于脱离跟随状态下的用户B的摄像机朝向所述视角目标。
优选的,所述移动控制单元中客户端二控制所述用户B朝着所述位置坐标自动移动的方法包括:
客户端二接收到跟随消息在当前虚拟场景的地面烘焙出NavMesh网格,所述NavMesh网格用于控制用户B按照与目标点之间最短的路径自动移动,将所述目标点的输入设置为用户A的位置坐标。
优选的,所述视野同步单元中计算所述用户A的视角目标的坐标的方法包括:
计算虚拟场景显示界面对角线交叉点的坐标;
以用户A的摄像机为出发点向该坐标发送一条射线;
通过碰撞检测获得所述射线上碰撞的物体,作为视角目标;
获取摄像与该物体表面碰撞处的坐标作为视角目标的坐标。
第三方面,本发明通过以下技术方案来实现上述目的,一种存储介质,其上存储有计算机程序,在所述计算机程序被处理器执行时,实现如第一方面所述的在虚拟人物交互场景中带人观看的方法。
与现有技术相比,本发明的有益效果是:本发明利用用户B在进入跟随状态下可随着用户A移动,并且再靠近用户A的时候,用户B可进入带看状态,在带看状态下用户B可同步用户A的视角,这样能保证用户B看到的目标与用户A一致,该方法在一些带人游览参观的场景中,可以保证带领人员可以精准的向被带人员介绍目标,使用户交互的更加真实,也方便管理被带人员,避免掉队。
附图说明
图1为本发明的在虚拟人物交互场景中带人观看的方法流程图。
图2为本发明的在虚拟人物交互场景中带人观看的系统组成示意图。
实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,一种在虚拟人物交互场景中带人观看的方法,定义客户端一的用户A为被跟随人员,客户端二的用户B为跟随人员,该方法包括以下步骤:
步骤S1、客户端一获取用户A的跟随指令,向客户端二发送跟随消息,所述跟随消息用于所述客户端二控制用户B进入跟随状态,跟随指令由用户A通过点击场景显示界面上的跟随按钮开启,如图2所示,在显示界面的地步显示出用户B的名称、跟随状态以及控制跟随的几个按钮,在交互时,用户A点击完跟随按钮,用户B收到邀请跟随的消息,用户B进入跟随状态,而用户A点击结束控制按钮后,用户B收到结束消息,脱离跟随状态,这一种控制方式是由用户A手动来控制用户B的跟随和脱离,而在下文所说的用户B脱离跟随状态是由用户B触发的,具体细节在下文中进行描述。如步骤S2所提到的在跟随状态下用户B自动跟随用户A移动。
步骤S2、客户端一向所述客户端二实时发送所述用户A的位置坐标,所述客户端二控制所述用户B朝着所述位置坐标自动移动;在步骤S1中,我们知道了用户B进入跟随状态时会跟着用户A移动,那么具体是通过用户A实时同步位置坐标给用户B,使用户B实时朝着用户A的位置坐标移动,从视觉上来看,用户B实现跟随用户A行走的效果,所述客户端二控制所述用户B朝着所述位置坐标自动移动的方法包括:
客户端二接收到跟随消息在当前虚拟场景的地面烘焙出NavMesh网格,所述NavMesh网格用于控制用户B按照与目标点之间最短的路径自动移动,将所述目标点的输入设置为用户A的位置坐标。NavMesh网格是3Dunity中的一种自动寻路的算法,它可以自动算出最优路径进行寻路,本方案利用该自动寻路的功能,将用户A的位置坐标作为自动寻路的目标点,实现用户B跟随用户A移动的效果。
步骤S3、客户端二实时计算所述用户B与所述用户A之间的距离,当距离小于预先设置的最短间距时,所述客户端二控制所述用户B脱离跟随状态,当距离大于预先设置的最短间距时,重复执行步骤S2和步骤S3;为了避免用户B与用户A的角色模型重叠,造成用户视角上的违和感,通过设置最短间距来限定用户B跟随用户A的距离,当用户B与用户A距离比较近时,用户B从跟随状态脱离,此时用户A移动,用户B不会跟着移动,用户B可以自动转动视角和小范围移动,但是一旦用户B移动范围变大,导致二者的距离重新超过最短间距,用户B的客户端二又会重新执行步骤S2和步骤S3,继续恢复到跟随状态跟随用户A移动。
步骤S4、客户端一接收用户A的带看指令,向客户端二发送带看消息,所述带看消息用于所述客户端二控制用户B进入带看状态,在用户B与用户A间距小于最短间距的时候,客户端一才能接收用户A的带看指令,实现向用户B发送带看消息,用户B收到该消息后进入带看状态后,处于带看状态下的用户B视角无法由用户B操控移动,而用户B的视角所看到的内容就是用户A看到的画面或者场景。
步骤S5、计算所述用户A的视角目标的坐标,将所述坐标发送给所述客户端二,所述坐标用于所述客户端二控制用户B的摄像机朝向所述视角目标,在步骤S4中可知,用户B进入带看状态,用户A的视角同步给用户B,本步骤是对用户A如何同步进行详细描述,用户A同步视角目标所采用的方式是同步坐标,将坐标发送给用户B,这样用户B的摄像机输入该坐标后,就能转动到这个坐标的位置,从而使用户B所看到的画面与用户A所看到的画面一致。这种同步方式可选择性很多,例如还有一种方式是通过同步用户A的摄像机的旋转角度给用户B,这样用户B按照同样的旋转角度直接旋转即可,但是这种方式对用户B所站的位置要求过高,因为用户B一旦与用户A的距离过远,那么即使二者摄像机的旋转角度相同,所看到的内容也会有偏差,在步骤S3中也提到了,用户B与用户A距离过近会脱离跟随状态,可以自由移动,这样就不好掌握用户B的位置,因此该方式虽然也能起到同步视角的效果,但是准确性不如步骤S5,所以一般不使用该方式。
最短间距属于预先设定的,可以根据需求来设定这个间距范围,所述预先设定的最短间距的长度范围为0.1-1m,所述最短间距的长度单位是虚拟场景中设置的长度单位,由于虚拟场景追求的是一比一还原现实场景,所以这里的0.1-1m是虚拟场景的长度单位,若是展台所在区域比较大,可以一次性容纳多个用户,由于角色模型多那么为了避免角色的模型叠加,这个最短间距可以设置为1m这个最大值,相反的,若是展台区域较小,那么为了避免用户间的距离过大导致同步视角目标出现偏差,因此可以将最短间距设置为0.1m这个最小值。
在步骤S5中,我们知道利用同步视角坐标的方式可以保证用户B的视角与用户A的视角偏差较小,为了保证误差最小,所述计算所述用户A的视角目标的坐标的方法包括:
计算虚拟场景显示界面对角线交叉点的坐标,该步骤为了计算出用户A视角的画面的中心点;
以用户A的摄像机为出发点向该坐标发送一条射线,射线用来进行碰撞检测;
通过碰撞检测获得所述射线上碰撞的物体,作为视角目标,射线能碰撞到的物体,就代表当前用户所看到的物体;
获取摄像与该物体表面碰撞处的坐标作为视角目标的坐标,物体的中心点作为视角目标,即使用户B的位置与用户A之间具有间距,那么所看到的物体中心也是相同的,二者视角画面大小一致,那么所看到的内容也趋近相同,该方式所获取的视角目标误差最小。
在步骤S3中可知用户B跟随用户A时为了防止用户B影响自动移动的效果,所以用户B是无法手动控制移动的,因此该方法还包括所述用户B进入跟随状态时,关闭用户B接收移动指令指令的操作功能,用户B关闭了接收指令的操作功能,即使有使用者通过屏幕上的移动按钮进行操作,用户B依旧按照自动移动的路径进行移动,不会破坏自动移动的效果。在步骤S4中可知,进入带看状态的用户B所看到的视角都是用户A的视角,为了避免使用者主动晃动鼠标而影响视角的同步,该方法还包括所述用户B进入带看状态时,关闭用户B接收转动视角指令的操作功能,即使有使用者通过屏幕上的视角转动按钮进行操作,用户B看到的画面依旧是用户A的视角画面,不会破坏同步视角的效果。
实施例2
如图2所示,一种在虚拟人物交互场景中带人观看的系统,所述系统包括:
跟随开始单元,用于客户端一获取用户A的跟随指令,向客户端二发送跟随消息,所述跟随消息用于所述客户端二控制用户B进入跟随状态,所述用户B进入跟随状态时,关闭用户B接收移动指令指令的操作功能。
移动控制单元,用于客户端一向所述客户端二实时发送所述用户A的位置坐标,所述客户端二控制所述用户B朝着所述位置坐标自动移动。
跟随结束单元,用于客户端二实时计算所述用户B与所述用户A之间的距离,当距离小于预先设置的最短间距时,所述客户端二控制所述用户B脱离跟随状态,当距离大于预先设置的最短间距时,重复执行移动控制单元和跟随结束单元,所述移动控制单元中客户端二控制所述用户B朝着所述位置坐标自动移动的方法包括:
客户端二接收到跟随消息在当前虚拟场景的地面烘焙出NavMesh网格,所述NavMesh网格用于控制用户B按照与目标点之间最短的路径自动移动,将所述目标点的输入设置为用户A的位置坐标。
带看开始单元,用于客户端一接收用户A的带看指令,向客户端二发送带看消息,所述带看消息用于所述客户端二控制用户B进入带看状态,用户B进入带看状态时,关闭用户B接收转动视角指令的操作功能;
视野同步单元,用于计算所述用户A的视角目标的坐标,将所述坐标发送给所述客户端二,所述坐标用于所述客户端二控制处于脱离跟随状态下的用户B的摄像机朝向所述视角目标。所述视野同步单元中计算所述用户A的视角目标的坐标的方法包括:
计算虚拟场景显示界面对角线交叉点的坐标;
以用户A的摄像机为出发点向该坐标发送一条射线;
通过碰撞检测获得所述射线上碰撞的物体,作为视角目标;
获取摄像与该物体表面碰撞处的坐标作为视角目标的坐标。
实施例2与实施例1的本质相同,因此不在赘述各个单元模块之间的运行原理。
实施例3
本实施例提出了一种存储介质,存储介质包括存储程序区和存储数据区,其中存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。计算机程序存储在存储程序区,在所述计算机程序被处理器执行时,实现如实施例1所述的在虚拟人物交互场景中带人观看的方法。处理器可以包括一个或多个中央处理单元(centrNlprocessingunit,CPU)或者为数字处理单元等等。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
- 应用场景的交互处理方法、装置及终端、系统、存储介质
- 基于区块链的虚拟形象交互方法、终端及可读存储介质
- 一种监控虚拟机中系统调用的方法、装置及存储介质
- 一种场景运动目标分割方法、系统、存储介质及设备
- 场景推荐方法、装置及系统、存储介质
- 虚拟场景中的交互方法、系统和存储介质
- 多场景切换中角色带人传送的方法、系统及存储介质