掌桥专利:专业的专利平台
掌桥专利
首页

三维虚拟环境中导航辅助的方法与系统

文献发布时间:2024-04-18 19:58:26


三维虚拟环境中导航辅助的方法与系统

技术领域

本公开一般涉及虚拟环境领域,更具体地涉及用于在三维(3D)虚拟环境中提供导航辅助的方法和系统。

背景技术

随着创新技术的快速进步,生活的方方面面都发生了根本性的变化。近年来,随着三维技术的发展,三维虚拟环境得到了广泛的应用。

3D虚拟环境提供了同时与多个用户进行虚拟连接和交流的新方法。此外,3D虚拟环境也可用于教育目的,组织会议,视频会议,以及传统和远程学习。3D虚拟环境类似于物理场所,如会议室、教室、博物馆等。3D虚拟环境还可用于视频游戏或虚拟活动,例如视频会议,用于用户之间的相互交流,而无需考虑参与虚拟活动的每个用户的位置。传统的3D虚拟环境,如视频游戏或虚拟活动,由于其实现规模较大,用户很容易错过在3D虚拟环境中提供整体体验所需的某些细节。在某些情况下,剧情场景可以为用户提供程序员所定义的体验,但这些剧情场景通常会阻止或限制用户可能进行的交互。在视频游戏中,剧情场景(或事件场景)可以定义为一系列不可交互的场景,其中会中断游戏进程。通常,剧情场景用于展示角色之间的对话,设置氛围,介绍新的模型和游戏元素,建立情感联系等。因此,在传统的三维虚拟环境中存在一个技术问题,即如何改善用户体验。

因此,在上述讨论的基础上,需要克服传统三维虚拟环境所带来的上述缺点。

发明内容

本公开提供一种在三维(3D)虚拟环境中提供导航辅助的方法和系统。本发明为传统三维虚拟环境中如何提高用户体验提供了一种解决方案。本公开的目的是提供一种解决方案,至少部分克服在现有技术中遇到的问题,并提供一种改进的方法和一种在三维(3D)虚拟环境中提供导航辅助的系统。

本公开的一个或多个目标是通过所提供的独立权利要求中的解决方案实现的。本公开的优选实施方案在从属权利要求中进一步定义。

在某一方面,本公开提供了一种在三维虚拟环境中提供导航辅助的方法。所述方法包括使用与多个用户相关联的多个用户设备访问3D虚拟环境,其中3D虚拟环境包括对应于多个用户的多个虚拟角色,其中多个虚拟角色被安排在随着多个虚拟角色在3D虚拟环境中导航而动态变化的不同虚拟位置上,以及多个虚拟角色在3D虚拟环境中相互交流的地方。所述三维虚拟环境还包括与所述多个虚拟角色相对应的多个虚拟摄像机,其中所述虚拟摄像机位于与所述虚拟角色相对应的给定距离处并从给定方向观看所述三维虚拟环境,所述虚拟摄像机根据所述虚拟角色的运动可移动。所述方法还包括在3D虚拟环境中提供至少一个预定义的导航路径,用于指导多个虚拟角色朝着3D虚拟环境中的至少一个虚拟区域移动,其中在至少一个虚拟区域将至少一个预定义导航路径划分为多个子路径。所述方法还包括当多个虚拟角色中的至少一个出现在至少一个虚拟区域或接近所述虚拟区域时,提供所述至少一个虚拟区域中的场景细节的指示。所述方法还包括使用多个虚拟摄像机捕获多个视频流,从与给定虚拟角色相关联的给定虚拟摄像机的角度捕获给定视频流,其中给定的视频流至少代表一个三维虚拟环境的区域,所述区域中给定的虚拟角色出现,并将多个视频流发送到多个用户设备以在那里显示。

所公开的方法提供了增强的三维虚拟环境用户体验。所述方法提供了改进的导航辅助功能以访问三维虚拟环境,以便每个用户都不会错过在三维虚拟环境中提供的特定细节。所公开的预定义导航路径指向三维虚拟环境中的至少一个虚拟区域。此外,预定义的导航路径被分为多个子路径以帮助多个用户从不同的方向探索至少一个虚拟区域。此外,通过多个虚拟角色的不同虚拟位置形成不同形状的几何图形,提供了视频游戏或3D视频会议平台通常无法提供的交互式电影体验和过场动画。

值得注意的是,上述所有实现形式都可以结合起来。

必须注意的是,在目前的应用程序中描述的所有设备、元素、电路、单元和方法都可以在软件或硬件元素或其任何种类的组合中实现。本应用程序中所描述的各个实体所执行的所有步骤,以及所描述的将由各个实体执行的功能,意在表示各个实体已适应或配置以执行各自的步骤和功能。即使,在接下来的具体实施例的描述中,由外部实体执行的特定功能或步骤没有反映在执行所述特定步骤或功能的所述实体的特定详细元素的描述中,对于本领域技术人员来说,应所述清楚知道,这些方法和功能可以在各自的软件或硬件元件中,或它们的任何类型的组合中实现。值得注意的是,本公开中的各种特征可按不同的组合方式结合使用,而不影响本公开所定义的范围,所述范围由附加的权利要求所确定。

本公开的其他方面、优点、特征和目标将从附图和详细描述的示例实现中显现出来,并结合随后的附加权利要求进行解释。

附图说明

上述摘要以及接下来的详细的实施例描述与附图一起阅读时能够更好的理解。为了说明本发明的内容,附图展示了本发明的优选实现。但是,本发明不限于此处披露的具体方法和工具。此外,本领域技术人员将了解到附图并不是按比例缩放的。在可能的情况下,相似的元素由相同的编号表示。

现在将仅以示例的方式描述本发明的实施例,参考下列图表:

根据本公开的一实施例,图1A至1E共同构成了一种在三维(3D)虚拟环境中提供导航帮助的方法的流程图;

图2示出了根据本公开的实施例用于在3D虚拟环境中提供导航辅助的系统;

图3A示出了根据本公开的一实施例的3D虚拟环境的实现方案;和

图3B根据本公开的一实施例示出在3D虚拟环境中预定导航路径的实现方案。

在附图中,使用带下划线的数字来表示带下划线的数字所处的项目或与带下划线的数字相邻的项目。非下划线数字与将非下划线数字与所述项相连的线相关联。当数字是非下划线且伴随一个相关箭头时,非下划线数字用于标识箭头所指向的一般项。

具体实施方式

以下详细描述说明了本公开的实施例及其实现方式。虽然一些实施本公开的方式已经被披露,但是本领域的技术人员将会认识到还有其他实施或实践本公开的方式也是可能的。

图1A到1E共同构成了根据本公开实施例提供在三维虚拟环境中的导航辅助的方法的流程图。关于图1A到1E,方法100的流程图示出,其包括步骤102、104、106、108、110、112、114、116、118、120、122、124、126、128、130、132、134A、134B、134C、136、138A、138B、138C、140和142。步骤102包括子步骤102A和102B。步骤102包括102A、102B、104、106如图1A所示,步骤108、110、112、114、116如图1B所示,步骤118、120、122、124、126如图1C所示,步骤128、130、132、134A、134B、134C如图1D所示,步骤136、138A、138B、138C、140如图1E所示。

提供了在三维虚拟环境中导航辅助的方法100。所述方法100提供了在三维虚拟环境中的整体视图以及导航,以指示每个感兴趣的点,帮助用户探索三维虚拟环境的每个虚拟区域。在方法100中,通过预定的导航路径,多个虚拟角色由相应的多个用户控制以探索三维虚拟环境。预定的导航路径提供了方向,以使多个用户使多个虚拟角色移动至至少一个虚拟区域。

参考图1A,在步骤102中,方法100包括使用与多个用户相关联的多个用户设备访问3D虚拟环境。所述多个用户中的每一个被配置为使用所述多个用户设备中的一个来访问3D虚拟环境。多个用户设备的例子可能包括但不限于智能手机、笔记本电脑、台式机、平板电脑等。

在步骤102的子步骤102A中,3D虚拟环境包括与多个用户相对应的多个虚拟角色。将多个虚拟角色布置在不同的虚拟位置上,这些虚拟位置随着多个虚拟角色在三维虚拟环境中的穿行而动态变化,多个虚拟角色在三维虚拟环境中相互通信。一般将三维虚拟环境定义为计算机模拟的电子三维虚拟环境,其中多个用户可以通过多个虚拟角色(如化身)进行相互交流和互动。通常,虚拟角色可以定义为电子图像,既可以表示用户,也可以由用户操作。或者,可以将多个虚拟角色定义为多个用户的图形表示。而且,通过移动三维虚拟环境中的多个虚拟角色,使得多个用户可以对三维虚拟环境进行探索。由于多个用户可以在三维虚拟环境中自由移动多个虚拟角色,因此多个虚拟角色的位置都是动态变化的。在一种实现中,多个用户中的每个用户的虚拟角色可以由头部跟踪装置控制。在另一种实现中,多个用户中的每一个的虚拟角色都可以通过鼠标移动来控制。在另一种实现中,多个用户中的每个用户的虚拟角色可以由一个或多个键盘键控制。此外,在3D虚拟环境中,众多用户通过点击特定的虚拟角色与其他众多虚拟角色进行交流。在一实现中,多个虚拟角色通过共享一音频进行通信。在另一种实现中,多个虚拟角色通过共享一视频进行通信。有利地,通过对三维虚拟环境的访问,多个用户可以在同一个平台上进行交互,动态地探索整个三维虚拟环境。

在步骤102的子步骤102B中,3D虚拟环境进一步包括,与多个虚拟角色对应的多个虚拟摄像机,其中给定虚拟摄像机位于与对应虚拟角色的给定距离处并从给定方向观看3D虚拟环境。此外,给定的虚拟摄像机可以根据相应的虚拟角色的运动进行移动。此外,与众多虚拟角色对应的众多虚拟摄像头捕获了3D虚拟环境在虚拟角色移动时的不同视角。在一实现中,给定的虚拟摄像头位于距离相应的虚拟角色一给定距离。所述给定的距离可以是固定的,也可以由与相应虚拟角色相关的用户设置。此外,给定的虚拟摄像头从给定方向捕捉3D虚拟环境的不同视图,所述方向可以是固定的,也可以由与相应虚拟角色相关的用户变化。例如,第一个用户控制第一个虚拟角色和对应于第一虚拟角色的第一个虚拟摄像机,那么第一个虚拟角色所看到的特定虚拟区域将被第一个虚拟摄像机捕捉。此外,第一个用户将查看由第一虚拟摄像机捕捉的视图。

在步骤104中,在任何给定的时间,多个虚拟角色的不同虚拟位置形成一个几何图形,这个几何图形可以是以下之一:一个圆形几何图形,一个椭圆形几何图形,一个多边形几何图形,一个线性几何图形,一个弓形几何图形,一个曲线几何图形,或一个自由几何图形。由多个虚拟角色形成的几何形状可以围绕虚拟环境的虚拟结构布置,如桌子、一个或多个沙发、篝火、礼堂或教室的座位等。在一实现中,多个虚拟角色的不同虚拟位置提供了3D虚拟环境的逼真视图,其中多个用户中的每个用户都能够在一个视图中看到彼此。在另一种实现中,多个虚拟角色的不同虚拟位置提供了一种方便的相互通信方式,因为每个用户都不需要搜索另一个用户,因为与多个用户对应的多个虚拟角色在一个地方形成圆形几何、椭圆形几何、多边形几何、线形几何、弧形几何、曲线几何、自由几何等之一。

在步骤106中,方法100包括位于相应虚拟角色的高度以上的给定虚拟摄像机。在一个实现中,给定的虚拟摄像机位于相应的虚拟角色的高度之上以及相应的虚拟角色的后面,以便来自多个用户的用户可以查看3D虚拟环境中的场景以及相应的虚拟角色的头部和躯干。此外,相应虚拟角色的头部和躯干视图使用户能够分析相应虚拟角色的运动。在另一实现中,给定的虚拟摄像机位于相应虚拟角色的高度之上以及相应虚拟角色的前面,以便与相应虚拟角色相关联的用户接收到相应虚拟角色的视距视图。

现在参照图1B,在步骤108中,方法100包括从多个用户设备中使用至少一个用户设备控制给定的虚拟摄像机。例如,如果第一个用户正在使用第一个用户设备来控制第一个虚拟角色,那么第一个用户将看到第一个虚拟角色所覆盖的3D虚拟环境中的至少一个虚拟区域。其原因是,与第一虚拟角色对应的第一虚拟摄像机捕获了相对于第一虚拟角色所观看的至少一个虚拟区域的视图。

在步骤110中,方法100包括在3D虚拟环境中提供至少一个预定义导航路径,用于指导多个虚拟角色向3D虚拟环境中的至少一个虚拟区域移动。此外,至少一个预定义导航路径包括公共起点。此外,所述至少一个预定义的导航路径使多个用户能够将其对应的多个虚拟角色移动到3D虚拟环境中的一个或多个虚拟区域。此外,所述至少一条预定义的导航路径还引导多个用户探索3D虚拟环境的不同虚拟区域,使多个用户不会错过3D虚拟环境中提供的特定细节。

在步骤112中,方法100包括提供至少一个虚拟摄像机的位置的视觉指示,其相应的虚拟角色沿着至少一个预定义导航路径移动。例如,如果多个用户中的第一用户和第二用户通过第一虚拟角色和第二虚拟角色探索3D虚拟环境,那么第一用户可以看到虚拟摄像机位于第二虚拟角色上的位置(例如高度)。第一用户通过视觉指示从多个用户观看位于第二虚拟角色上的虚拟摄像机。视觉指示的例子可能包括但不限于一个点、一个球体、一个虚拟物体、一个光晕、一个虚拟雾等等。

在步骤114中,在至少一个虚拟区域内,将至少一个预定义导航路径分成多个子路径,并且至少一个预定义导航路径是3D样条线,3D样条线包括一系列线段,给定的线段可以是线性段、曲线段等。至少一个预定义导航路径根据3D虚拟环境而变化,例如,将至少一个预定义导航路径分成多个子路径,使多个用户可以从不同的方向体验一个或多个虚拟区域的整体视图。此外,多个子路径可能具有不同的模式。在一个示例中,根据3D虚拟环境的实现场景,预定义的导航路径可以是一个或多个。在实现中,至少一个预定义导航路径可以是3D样条线,其中3D样条线包括一系列线段,给定的线段可以是线性线段或曲线线段。曲线线段的示例包括但不限于贝塞尔(Bezier)线段,埃尔米特(Hermite)线段等。

在步骤116中,多个子路径的形式可以是螺旋形式、线性形式或自由形式中的至少一种。在实施中,螺旋形式是通过至少一个预定义导航路径的子路径获得,以向多个用户提供360度视图。在另一种实施中,线性模式是通过至少一个预定义导航路径的子路径获得,以向多个用户提供直线视图。在另一种实施中,自由形式是通过至少一个预定义导航路径的子路径获得,以允许多个用户在特定虚拟区域内自由移动。

现在,参考步骤118中的图1C,方法100包括当多个虚拟角色中的至少一个出现在至少一个虚拟区域或接近所述虚拟区域时,提供所述至少一个虚拟区域中的场景细节的指示。例如,在本例中,来自多个虚拟角色的三个虚拟角色正沿着至少一个预定义导航路径移动到3D虚拟环境中的至少一个虚拟区域。只要三个虚拟角色中的一个接近至少一个虚拟区域或到达至少一个虚拟区域,就提供场景细节的指示,以便为向至少一个虚拟区域移动的虚拟角色提供增强的观看体验。这样,将场景细节的指示提供给接近或到达至少一个虚拟区域的虚拟角色,或也可以提供给多个虚拟角色。在一实施中,可以通过从至少一个虚拟区域中闪烁特定虚拟区域来提供对至少一个虚拟区域中的场景细节的指示。在另一实施中,可通过从至少一个虚拟区域中突出显示特定虚拟区域来提供至少一个虚拟区域中的场景细节的指示。在另一实施中,当来自多个虚拟角色的任何虚拟角色进入至少一个虚拟区域的邻近时,可通过从至少一个虚拟区域中播放特定虚拟区域中的音频或视频来提供至少一个虚拟区域中的场景细节的指示。所述至少一个虚拟区域中的场景细节指示支持从多个用户中引起每个用户的注意。在一种实施中,多个用户通过在至少一个虚拟区域内点击特定区域来进行交互。在另一种实施中,多个用户通过从至少一个虚拟区域进入特定区域来在至少一个虚拟区域内进行交互。例如,多个用户通过在至少一个虚拟区域内的特定区域发送语音命令来在至少一个虚拟区域内进行交互。另一个例子是,多个用户通过在至少一个虚拟区域的特定区域提供手势命令来在至少一个虚拟区域内进行交互。

在步骤120中,所述场景细节的指示以视觉指示、音频指示、触觉指示中的至少一个的形式存在。在一个示例中,如果来自多个用户中的第一个用户进入至少一个虚拟区域的范围,那么视频指示将向第一个用户提供,以吸引第一个用户的注意力朝向至少一个虚拟区域。视觉指示的示例包括但不限于播放视频、播放图形交换格式(GIF)图像、播放动画视频等。在另一个示例中,如果来自多个用户中的第一个用户进入至少一个虚拟区域的范围,则播放音频提示以吸引第一个用户的注意力朝向至少一个虚拟区域。音频提示的示例包括但不限于播放铃声、播放语音记录等。在另一个示例中,如果来自多个用户中的第一个用户进入至少一个虚拟区域的范围,则提供触觉提示给第一用户,以便第一个用户与至少一个虚拟区域进行交互。触觉提示的示例包括但不限于在至少一个虚拟区域中点击或移动。

在步骤122中,方法100包括将多个虚拟角色中与给定角色相关联的数据发布到3D虚拟环境的给定区域,并将所述数据广播到至少一个用户设备,其用户已订阅了3D环境的给定区域。数据的发布和广播被用作三维虚拟环境中多个用户之间的通信模型。与给定虚拟角色相关的数据(例如位置、音频、视频等)被发布到多个虚拟角色之间的3D虚拟环境中的给定区域(或特定区域)。而那些想要查看和听取已发布数据的用户,订阅了3D虚拟环境中给定区域,因此,数据会广播到那些用户设备上,这些用户已经订阅了3D虚拟环境中给定区域。例如,第一个用户通过相应的第一个用户设备,在3D虚拟环境的第一个虚拟区域中发布数据(即位置、音频、视频等)。此外,已发布的数据仅限于第一个虚拟区域。在一实施中,如果第二个用户需要访问第一个用户在第一个虚拟区域发布的数据,则第二个用户需要订阅3D虚拟环境中第一个虚拟区域。在订阅了第一个虚拟区域之后,已发布的数据将会广播到第二个用户操作的第二个用户设备上。在另一种实施中,如果第二个用户需要访问第一个用户在第一个虚拟区域发布的数据,则第二个用户需要将其对应的第二个虚拟人物移动到第一个虚拟区域,以访问第一个用户发布的数据。有益的是,多个用户通过订阅数据发布的虚拟区域,可以接收彼此发布的数据。

在一个实施中,与给定虚拟角色相关的数据通过发布-订阅模块发布,并进一步由已订阅3D虚拟环境的给定区域的用户使用。处理器使用发布-订阅模块来限制其他未订阅3D虚拟环境的给定区域的多个用户设备访问其他用户设备的所述数据的权限。在示例中,发布-订阅模块用作通信模型,其中将用户(例如第一个用户)的数据(例如位置、音频和视频)发布到3D虚拟环境的特定虚拟区域,并将想要查看和收听它的另一个用户订阅3D虚拟环境的特定虚拟区域。发布-订阅模块对应一种基于内容生产和消费的通信模型,在所述模型中,通过发布-订阅模型的通信可以匿名进行,这意味着服务器和/或多个用户设备的每个不需要知道订阅信息即可获取虚拟环境的资源。典型的发布-订阅模块使每个参与者之间的信息交换成为可能,使每个参与者都可以发布和接收信息,具有比典型的客户端-服务器模型更大程度的灵活性。当前公开的发布-订阅模块允许将更多数量的资源动态地集中到最需要它们的多个用户设备中的每一个,例如用户设备可以订阅的对资源要求较高的单元。此外,随着发布的资源数量提高了3D虚拟环境的数量,以及每个用户可见的3D虚拟环境部分内的交互水平。

在步骤124中,所述数据包括与所述给定角色相关联的位置、方向、音频、视频中的至少一个。与给定角色相关的数据包括在多个虚拟角色中发布的位置、方向、音频和视频中的一个,并广播给订阅了3D虚拟环境给定区域的用户。

在步骤126中,方法100包括在任何多个虚拟角色通过至少一个预定义导航路径进入至少一个虚拟区域时触发至少一个动作。所述至少一个预定义导航路径包括至少一个触发点,如果多个虚拟角色中的任何一个存在于所述触发点,则触发至少一个动作。如果多个虚拟角色中的任何一个通过至少一个预定义的导航路径进入至少一个虚拟区域,则触发至少一个动作。之所以至少一个预定义导航路径包括至少一个触发点,是因为当多个虚拟角色之一出现在至少一个触发点时,所述触发点会被触发。

参考图1D,步骤128中,至少一个动作包括以下内容之一:发送视频,播放音频或激活放置在至少一个预定义导航路径中的对象。当多个虚拟角色中的任何一个通过至少一个预定义的导航路径进入至少一个虚拟区域时,触发至少一个动作,所述至少一个动作包括发送视频、播放音频或激活放置在至少一个预定义导航路径中的对象之一。

在步骤130中,方法100包括:使用多个虚拟摄像机捕获多个视频流,从与给定虚拟角色相关联的给定虚拟摄像机的角度捕获的给定视频流,其中给定的视频流至少代表了3D虚拟环境中给定虚拟角色所在的至少一个区域。例如,在某种情况下,第一个用户控制第一个虚拟角色,第一个虚拟摄像机与第一个虚拟角色相关联,那么第一个虚拟摄像机捕获的视频流至少代表第一个虚拟角色所在的3D虚拟环境的区域。同样,多个虚拟摄像机捕获多个对应的虚拟角色所在的一个或多个3D虚拟环境区域。

在步骤132中,给定视频流也表示给定虚拟角色的一部分。例如,如果第一个用户在3D虚拟环境中控制第一个虚拟角色,那么在探索3D虚拟环境时,第一个用户可以看到第一个虚拟角色的部分(例如,头部和躯干)。有益的是,给定虚拟角色的部分的表示能够跟踪给定虚拟角色的移动和手势。例如,在一种情况下,如果给定的虚拟摄像机位于虚拟角色头部上方,则给定的视频流代表虚拟角色头部的顶部和后部以及躯干的后部。在这种情况下,虚拟角色的脚可能不在给定的虚拟摄像机的视角中。

在步骤134A中,方法100包括在用户设备上接收来自多个用户设备中的至少两个其他用户设备的至少两个视频流。例如,在一种情况下,如果多个用户中的第一用户、第二用户和第三用户等三个用户正在使用3D虚拟环境,并且第一用户和第二用户随后探索了至少一个虚拟区域,则将第一用户和第二用户探索的至少一个虚拟区域的视频流广播给第三用户。

在步骤134B中,方法100包括将至少两个视频流组织成主要流和至少一个外围流,其基于至少两个视频流所对应的虚拟角色相对虚拟位置,其是用户设备的用户所对应的虚拟角色的虚拟位置和相对于虚拟角色的虚拟摄像机的视角方向,所述虚拟角色对应于至少两个其它用户设备的至少两个用户。在上述情况中的三个用户,包括使用3D虚拟环境的众多用户中的第一用户、第二用户和第三用户。第一用户进入特定区域的接近区域后,探索至少一个3D虚拟环境的虚拟区域,而第二用户在未进入特定区域的接近区域的情况下也可以探索至少一个3D虚拟环境的虚拟区域。此外,第一个虚拟角色对应第一用户的第一个虚拟相机所捕获的视频流被视为主要流。同样地,第二个虚拟角色对应第二用户的第二个虚拟相机所捕获的视频流被视为外围流。在这种情况下,第三个用户接收作为主要流的第一个用户的视频流,和作为外围流第二个用户的视频流。因此,捕获的视频流根据相应虚拟角色(例如,第一个虚拟角色和第二个虚拟角色)的位置和方向(例如,第一个虚拟相机和第二个虚拟相机的方向)进行组织,分为主要流和至少一外围流。有益的是,将接收到的两个视频流组织成主要流和外围流,为接收这两个视频流的多个用户之一(例如第三个用户)提供了更好的观看体验。

在步骤134C中,方法100包括在用户设备上提供用于显示的具有不同视频质量的主流和至少一个外围流,主流的视频质量高于至少一个外围流的视频质量。例如,如果第一个虚拟角色定位在至少一个虚拟区域的邻近范围内,则对应于第一个虚拟角色的第一个虚拟摄像机所捕获的视频流(即主流)具有高质量和高像素率。同样,第二虚拟角色定位于至少一个虚拟区域的邻近外,且对应于第二虚拟角色的第二虚拟摄像机捕获的视频流(即外围流)是低质量和低像素率的。

现在参考图1E,在步骤136中,方法100包括组织至少两个视频流的步骤,所述步骤包括:当与视频流对应的虚拟角色的虚拟位置位于与用户设备的用户对应的虚拟角色的虚拟位置的距离大于预定义阈值距离时,将视频流确定为外围流;所述视频流对应的虚拟角色的位置与所述虚拟角色对应的虚拟摄像机的视角方向处于大于预定义阈值角度的位置。在一实施中,设定了一个预定义的阈值距离,从虚拟角色对应的用户的虚拟位置开始,来确定外围流,这个阈值距离大于0.5米。在另一个实施中,设定了一个预定义的阈值角度,从虚拟摄像机对应的虚拟角色的视角方向开始,来确定外围流,这个阈值角度大于30度。视频流是主流还是外围流的确定,取决于来自多个虚拟角色的虚拟角色的位置、虚拟角色的虚拟摄像机的视角和方向。例如,如果第一个虚拟角色的位置在至少一个虚拟区域的预定义阈值距离内,则由第一个虚拟角色对应的第一个虚拟摄像机捕获的视频流将成为主流。在另一种情况下,如果第一个虚拟角色的位置距离至少一个虚拟区域的预定义阈值距离更远,则由第一个虚拟角色对应的第一个虚拟摄像机捕获的视频流将成为外围流。此外,如果第一个虚拟角色的位置与第一个虚拟角色对应的第一个虚拟摄像机的视角形成的角度大于预定义的阈值角度,则在这种情况下,由第一个虚拟摄像机捕获的视频流被视为外围流。

在步骤138A中,方法100包括使用多个用户设备的摄像机捕获多个视频源,这些视频源代表多个用户。例如,如果来自多个用户中的第一个用户、第二个用户和第三个用户通过各自的用户设备使用3D虚拟环境,则对应的用户设备的摄像机会捕获各自用户的视频。换句话说,第一个用户设备的摄像机捕获第一个用户的视频,第二个用户设备的摄像机捕获第二个用户的视频,第三个用户设备的摄像机捕获第三个用户的视频。

在步骤138B中,方法100包括从对应的视频源中删除多个用户中每个用户的背景。此外,用户设备的摄像机捕获的视频会被处理以去除捕获视频的背景。在一实施中,处理器可以通过对捕获的视频剪裁背景来去除背景。在另一实施中,处理器可以通过模糊捕获的视频的背景来去除背景。在另一种实现中,处理器可以改变捕获的视频的背景(例如,改变颜色、改变亮度等)。有益的是,去除捕获视频的背景可以使注意力集中于相应用户的面部外观上。

在步骤138C中,方法100包括将多个缺乏背景的用户的每个用户的视频剪辑与3D虚拟环境中的相应虚拟角色合并。在删除捕获的视频背景之后,视频流中只剩下用户的面部外观和/或完整的躯干,并插入到虚拟环境中。此外,在一实施中,可以将视频流粘贴到相应用户的虚拟角色上,从而使相应虚拟角色的人脸表示为相应用户的人脸。因此,虚拟角色的外观是插入到虚拟环境中的视频剪辑的用户的外观,给人一种用户实际上存在于虚拟环境中的印象,从而有助于产生虚拟存在感。

在步骤140中,方法100包括广播元数据,指示沿着至少一个预定义导航路径移动的,对应于虚拟角色的每个虚拟相机的位置坐标,从与所述虚拟角色的用户相关联的用户设备到多个用户设备中的至少一个其他用户设备。例如,与第一用户相对应的第一虚拟角色的元数据被广播(例如,通过Web套接字)到第二用户对应的第二用户设备中。此外,元数据的广播使第二用户能够在3D虚拟环境中搜索并到达第一用户的第一个虚拟角色。通过接收元数据,第二个用户跟踪第一个虚拟角色的坐标,并移动第二个虚拟角色以到达第一个虚拟角色。

在步骤142中,方法100包括,将多个视频流发送到多个用户设备以在其上显示。在一实施中,由多个虚拟摄像机捕获的多个视频流可以从多个用户或多个用户中的每一个发送到选择用户。

方法100在三维虚拟环境中提供了增强的用户体验。方法100提供了一种改进的导航辅助,用于以这样的方式访问3D虚拟环境,使得多个用户中的每一个都不会错过3D虚拟环境中提供的特定细节。所述方法100中公开的预定义导航路径指向3D虚拟环境的至少一个虚拟区域。进一步,将预定义的导航路径划分为多个子路径,以辅助多个用户从不同方向探索至少一个虚拟区域。此外,通过多个虚拟角色的不同虚拟位置形成不同形状的几何图形,提供了视频游戏或3D视频会议平台中通常无法获得的交互式电影体验和过场动画。

步骤102到142仅为说明性步骤,可以提供其他替代方案,其中可以添加一个或多个步骤,删除一个或多个步骤,或按不同顺序提供一个或多个步骤,而不超出权利要求所保护的范围。

图2根据本公开的实施例示出用于在3D虚拟环境中提供导航辅助的系统。图2与图1中的元素一起描述。如图2所示,在三维虚拟环境202中提供导航辅助的系统200。此外,系统200中包含一个服务器204,用于访问3D虚拟环境202。服务器204包括一个处理器206和一个内存208。这里进一步显示了多个用户设备,如第一用户设备210A和第二用户设备210B,分别由多个用户操作,如第一用户212A和第二用户212B。此外,展示了多个虚拟角色,例如第一个虚拟角色214A和第二个虚拟角色214B,其中每个虚拟角色与多个用户之一相关联,例如第一个虚拟角色214A与第一个用户212A相关联,第二个虚拟角色214B与第二个用户212B相关联。这些虚拟角色,例如第一个虚拟角色214A和第二个虚拟角色214B,具有多个虚拟摄像头,例如第一个虚拟摄像头216A和第二个虚拟摄像头216B。所述系统200被配置为执行方法100(如图1A到图1E中所示)。

3D虚拟环境202是指通过任何适合的3D建模技术和计算机辅助绘图(CAD)方法构建的虚拟构造(例如虚拟模型),使得用户可以通过其相应的虚拟角色进行探索和交流。因此,3D虚拟环境202可以是一个虚拟会议平台或视频会议平台,具有虚拟设置,用户可以在其中四处走动,看到彼此的虚拟角色,并相互交流。3D虚拟环境202的示例包括但不限于3D过山车、娱乐公园中的3D鬼屋、娱乐公园、电子游戏、3D博物馆、3D城市、学校、工厂或任何场所等。

服务器204可包括适当的逻辑、电路、接口和/或代码,所述代码可通信耦合到多个用户设备,例如第一用户设备210A和第二用户设备210B。换句话说,服务器204被配置为通过多个用户设备(例如第一个用户设备210A和第二个用户设备210B)向多个用户(例如第一个用户212A和第二个用户212B)提供对3D虚拟环境202的访问。服务器204还可以被配置为提供多个用户(例如第一个用户212A和第二个用户212B)在3D虚拟环境202中执行的动作的实时反馈。服务器204的实现示例包括但不限于存储服务器、基于云的服务器、Web服务器、应用服务器或其组合。

处理器206可包括合适的逻辑、电路、接口或代码,其被配置为执行存储在服务器204的内存208中的指令,以便根据多个用户(例如第一个用户212A和第二个用户212B)在3D虚拟环境202中提供的指令来控制多个虚拟角色,例如第一个虚拟角色214A和第二个虚拟角色214B。处理器206的例子可能包括但不限于:处理器、数字信号处理器(DSP)、微处理器、微控制器、复杂指令集计算(CISC)处理器、专用集成电路(ASIC)处理器、精简指令集(RISC)处理器、超长指令字(VLIW)处理器、状态机、数据处理单元、图形处理单元(GPU)以及其他处理器或控制电路。

内存208可包括合适的逻辑、电路和/或接口,其被配置为存储与包括3D虚拟环境202相关的数据,包括但不限于3D虚拟环境202的虚拟区域、多个虚拟角色的位置、音频、视频等。在一实施中,内存208可以被配置为存储数据和指令,可由多个用户(例如第一个用户212A和第二个用户212B)执行。所述存储器208的实现示例可包括但不限于电可擦除可编程只读存储器(EEPROM)、动态随机存取存储器(DRAM)、随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器(HDD)、闪存存储器、安全数字(SD)卡、固态驱动器(SSD)和/或CPU高速缓存存储器。

多个用户设备的每一个,例如第一个用户设备210A和第二个用户设备210B,可包括合适的逻辑、电路、接口和/或代码,其被配置为与服务器204进行通信连接,以使3D虚拟环境202可分别访问多个用户,例如第一个用户212A和第二个用户212B。所述多个用户设备中的每一个示例可包括但不限于物联网(IoT)设备、智能手机、机器类型通信(MTC)设备、计算设备、IoT控制器、无人机、用于无线通信的定制硬件、发射器或任何其他便携式或非便携式电子设备。

多个虚拟角色的每一个都由多个用户的每一个控制,以便探索3D虚拟环境202。例如,第一个虚拟角色214A由第一个用户212A控制,同样地,第二个虚拟角色214B由第二个用户212B控制。

多个虚拟相机的每个相机,如第一个虚拟相机216A和第二个虚拟相机216B,用于捕捉在3D虚拟环境202中移动的多个虚拟角色的每个,如第一个虚拟角色214A和第二个虚拟角色214B的不同视角,然后在多个用户设备上表示捕捉到的视图,如分别在第一个用户设备210A和第二个用户设备210B。

提供了用于在3D虚拟环境202中进行导航辅助的系统200。在3D虚拟环境202中的导航辅助意味着向多个用户,如第一个用户212A和第二个用户212B提供一个或多个特定方向,以便向3D虚拟环境202中的兴趣点移动。在一个实施中,系统200可能具有N个用户,因此具有N个用户设备,N个虚拟角色和N个虚拟相机,但为了简单起见,在图2中仅显示了两个用户、两个用户设备、两个虚拟角色和两个虚拟相机。

系统200包括与多个用户相关联的多个用户设备以及至少一个服务器,例如服务器204,与多个用户设备通信耦合。在一种实施中,多个用户设备,诸如第一个用户设备210A与第一个用户212A相关联。类似地,第二个用户设备210B与第二个用户212B相关联。系统200进一步包括服务器204,所述服务器与第一个用户设备210A和第二个用户设备210B通信耦合,以便使3D虚拟环境202对第一个用户212A和第二个用户212B均可访问。

至少一个服务器,例如服务器204被配置为向多个用户设备提供访问3D虚拟环境。多个用户设备的每个都通过至少一个服务器,例如服务器204访问3D虚拟环境202。例如,第一个用户212A将第一个用户设备210A连接至至少一个服务器例如服务器204,以便访问3D虚拟环境202。同样,第二个用户212B将第二个用户设备210B连接至至少一个服务器例如服务器204,以便访问3D虚拟环境202。

3D虚拟环境202包括与多个用户对应的多个虚拟角色,其中多个虚拟角色以不同的虚拟位置排列,并随着多个虚拟角色在3D虚拟环境202中导航而动态变化,多个虚拟角色在3D虚拟环境202中相互通信。在一种实施方式中,第一个用户212A移动对应的第一个虚拟角色214A在3D虚拟环境202中,第二个用户212B移动对应的第二个虚拟角色214B在3D虚拟环境202中。为了向多个用户提供3D虚拟环境202的所有虚拟区域的不同视图,第一个虚拟角色214A和第二个虚拟角色214B的虚拟位置会动态变化。多个虚拟角色之间的通信已在例如图1A至1E中详细描述。

3D虚拟环境202还包括与多个虚拟角色相对应的多个虚拟摄像机,其中给定的虚拟摄像机位于对应的虚拟角色的给定距离处,并从给定方向查看3D虚拟环境202,给定的虚拟摄像机可以根据相应虚拟角色的移动而移动。例如,如果第一个用户212A将第一个虚拟角色214A从一个位置移动到另一个位置,则相应的第一个虚拟摄像机216A会根据第一个虚拟角色214A的移动而移动。在另一个例子中,如果第二个用户212B将第二个虚拟角色214B从一个位置移动到另一个位置,则相应的第二个虚拟摄像机216B会根据第二个虚拟角色214B的移动而移动。有益的是,多个虚拟摄像机的移动与多个虚拟角色的移动相对应,提供了一个整体视图,显示对应虚拟角色所处的3D虚拟环境202的虚拟区域。

至少一个服务器,如服务器204,进一步配置为在3D虚拟环境202中提供至少一条预定义的导航路径,以引导多个虚拟角色向3D虚拟环境202中的至少一个虚拟区域移动。例如,第一个用户212A操作第一个用户设备210A,将第一个虚拟角色214A沿着至少一个预定义的导航路径向3D虚拟环境202中的至少一个虚拟区域移动。在另一个例子中,第二个用户212B操作第二个用户设备210B,将第二个虚拟角色214B沿着至少一个预定义的导航路径向3D虚拟环境202中的至少一个虚拟区域移动。此外,至少一个预定义的导航路径被分成多个子路径,以便每个用户从多个方向探索和体验至少一个虚拟区域。在一种实现中,至少一个预定义的导航路径在至少一个虚拟区域内被分成多个子路径。此外,至少一个预定义的导航路径被分成多个子路径,使得多个用户可以从不同的方向体验一个或多个虚拟区域的整体视角。此外,多个子路径可能具有不同的模式。

至少一个服务器,例如服务器204,还配置为,当多个虚拟角色的至少一个在或接近至少一个虚拟区域时,在至少一个虚拟区域内提供场景细节的指示。在一实现中,如果第一个用户212A将相应的第一个虚拟角色214A移动到接近至少一个虚拟区域的位置,则通过突出显示特定的虚拟区域或在特定的虚拟区域播放音频或视频等方式向第一个虚拟角色214A提供场景细节的指示。提供至少一个虚拟区域的场景细节指示给第一个虚拟角色214A,以便第一个用户212A观察到场景的特定细节并始终注意它们。

至少一个服务器,例如服务器204,还配置为使用多个虚拟摄像机捕获多个视频流,给定视频流是从与给定虚拟角色相关联的给定虚拟摄像机的视角捕获的,其中给定视频流代表给定虚拟角色的至少一部分,以及给定虚拟角色所在的三维虚拟环境202的一个区域。例如,与第一个虚拟角色214A相关联的第一个虚拟摄像机216A捕获视频流。捕获的视频流包括第一个虚拟角色214A所在的特定虚拟区域的不同视角。此外,捕获的视频流还包括与第一个虚拟角色214A相应的一部分。此外,由第一个虚拟摄像机216A捕获的视频流显示在第一个用户设备210A上,以向第一个用户212A提供3D虚拟环境202的不同视图。

至少一个服务器(例如服务器204)进一步配置为将多个视频流发送到多个用户设备以在那里显示。例如,由第一个虚拟摄像机216A捕获的视频流显示在第一个用户设备210A上。另一个例子是,由第二个虚拟摄像机216B捕获的视频流显示在第二个用户设备210B上。在多个用户设备上显示捕获的视频流向多个用户提供了至少一个虚拟区域的第三个视角。

根据一种实施方案,至少一个服务器(例如服务器204)包括至少一个处理器(例如处理器206)和至少一个存储器(例如存储器208),它们互相通信连接,所述至少一个处理器(例如处理器206)被配置为实现托管至少一个3D虚拟环境202的虚拟环境平台,而至少一个存储器(如存储器208)被配置为存储与至少一个3D虚拟环境202相关的信息和/或数据。在一种实现中,服务器204的处理器206执行3D虚拟环境202中的任务。此外,服务器204的至少一个存储器(例如存储器208)提供存储以存储与3D虚拟环境202相关的数据。

在某一方面,一种用于在三维(3D)虚拟环境202中提供导航辅助的计算机程序产品,所述计算机程序产品包括非瞬时的机器可读数据存储介质,所述存储介质在被处理设备访问时存储程序指令。在一实现中,计算机程序产品包括就多个用户提供的输入需要执行的指令和命令集。例如,如果第一个用户212A命令移动第一个虚拟角色214A,那么计算机程序产品在分析与移动第一个虚拟角色214A命令相关的指令后执行所述命令。有益的是,计算机程序产品提供了3D虚拟环境202的免费功能。例如,指令在计算机可读媒体上实现,包括但不限于电可擦除可编程只读存储器(EEPROM)、随机访问存储器(RAM)、只读存储器(ROM)、硬盘驱动器(HDD)、闪存、安全数字(SD)卡、固态驱动器(SSD)、计算机可读存储介质和/或CPU高速缓存内存。非临时计算机可读介质使计算机在接收到来自多个用户设备的命令时执行操作,包括移动多个虚拟角色,并在其中之一进入至少一个虚拟区域附近时指示对象。此外,所述非临时计算机可读介质被配置用于存储任何一个用户更新的数据,并将数据广播到已经订阅已上传数据所在的至少一个虚拟区域的多个用户中的特定用户。而且,这个非临时计算机可读介质还被配置为将多个虚拟角色所查看的至少一个虚拟区域显示给相应的多个虚拟设备。

图3A说明了一种三维虚拟环境的实现场景,根据本公开的一种实施方案。图3A与图1和图2的元素相结合描述。参考图3A,显示了一个三维虚拟环境302的实现场景300A。还显示了一台服务器304,以向多个用户提供对三维虚拟环境302的访问,如第一用户306A、第二用户306B、第三用户306C和第四用户306D。此外,三维虚拟环境302包括至少一个虚拟区域314、预定义的导航路径316和路径相机318。

图3A中的三维虚拟环境302对应于图2中的三维虚拟环境202。图3A中的304服务器对应图2中的204服务器。同样,多个用户对应于图2中的多个用户,多个用户设备对应于图2中的多个用户设备。

在实现场景300A中,考虑3D虚拟环境302中至少有一个虚拟区域314作为虚拟会议室,供多个用户(如第一用户306A、第二用户306B、第三用户306C、第四用户306D)进行视频会议。多个用户中的每一个被配置为使用多个用户设备中的一个来访问至少一个虚拟区域314(即虚拟会议室),例如第一用户设备308A、第二用户设备308B、第三用户设备308C和第四用户设备308D。其后,多个虚拟角色中的每个通过多个用户设备中的一个由多个用户中的一个控制。例如,第一个虚拟角色310A需要第一个用户306A使用第一个用户设备308A在预定义的导航路径316上移动,以便到达或接近至少一个虚拟区域314(即,虚拟会议室)。同样地,第二个虚拟角色310B、第三个虚拟角色310C和第四个虚拟角色310D中的每个都需要由第二个用户306B、第三个用户306C和第四个用户306D在分别预定义的导航路径316上移动,并分别使用第二个用户设备308B、第三个用户设备308C和第四个用户设备308D,以到达或处于至少一个虚拟区域314(即虚拟会议室)的附近。

当众多虚拟角色之一出现在或靠近至少一个虚拟区域314(即虚拟会议室)时,将向朝向至少一个虚拟区域314(即虚拟会议室)的虚拟角色提供感兴趣的点的指示。例如,如果第一个虚拟角色310A进入至少一个虚拟区域314(即虚拟会议室)的附近,则至少一个虚拟区域314(即虚拟会议室)开始闪烁或突出显示,以引起第一个用户306A(对应于第一个虚拟角色310A)的注意。此外,每个众多虚拟摄像机都被配置为捕捉众多虚拟角色的视频流。例如,第一个虚拟摄像机312A与第一个虚拟角色310A相关联,被配置为捕捉第一个虚拟角色310A向3D虚拟环境302的至少一个虚拟区域314(即虚拟会议室)移动的视频流。同样地,第二个虚拟摄像机312B、第三个虚拟摄像机312C和第四个虚拟摄像机312D分别与第二个虚拟角色310B、第三个虚拟角色310C和第四个虚拟角色310D相关联,被配置为捕捉第二个虚拟角色310B、第三个虚拟角色310C和第四个虚拟角色310D分别向3D虚拟环境302的至少一个虚拟区域314(即虚拟会议室)移动的视频流。捕获的视频流将在相应的用户设备上显示。例如,由第一个虚拟摄像机312A捕获的第一个虚拟角色310A的视频流将显示在第一个用户设备308A上。

此外,还显示了经过预定义导航路径316的路径摄像机318。尽管在图3A中显示的预定义导航路径316的形状为圆形,但可以使用任何其他适当的形状(例如在图3B中详细描述)使预定义导航路径316将用户的虚拟角色从3D虚拟环境302中至少一个虚拟区域314的一个位置带到另一个位置。例如,预定义的导航路径316可以是一条直线,从虚拟房间的一端穿过去到另一端,或者可以是一个正方形、椭圆形或矩形路径,绕着房间走来给用户提供预定义的虚拟环境体验,同时也让他们有自由去四处查看(例如,通过旋转路径相机318),放大或缩小、倾斜等,与相机路径中的元素交互,并且还可以与其他用户进行交互(例如,通过语音或文字聊天或者让他们共享文件)。路径相机318被配置为在3D虚拟环境302中捕捉视频流。在某些实现中,路径相机318被配置为在预定义的导航路径316中执行移动,同时保持在至少一个虚拟区域314(即虚拟会议室)中的恒定距离和恒定视角。通过用户设备,任何用户均可以通过其相应的虚拟角色访问路径相机318,从而为用户提供路径相机318的视图。当路径相机318移动使,或视角被调整,例如通过倾斜或旋转路径相机318来改变观察角度,透视在3D虚拟环境302中会被更新。换句话说,路径相机318提供第三人称视角。例如,如果第一用户306A需要查看对应于第二用户306B的第二个虚拟角色310B,但第三个虚拟角色310C挡住了第一用户306A的视野,那么路径相机318通过改变其位置和方向来查看第二个虚拟角色310B,以便第一用户306A无需改变相应的第一个虚拟角色310A的位置。有益的是,路径相机318在不改变多个虚拟角色的位置的情况下提供多个视角。多个虚拟摄像机的每个与路径相机318不同,因为每个虚拟摄像机提供相应虚拟角色的视线视角,而路径相机318为多个用户提供第三人称视角。例如,如果第一个虚拟角色310A位于第二个虚拟角色310B的前面,那么第一个用户306A只能看到第二个虚拟角色310B。原因是,第二个虚拟角色310B正好在第一个虚拟摄像机312A的视线范围内。此外,第一个用户306A可以通过使用路径相机318来查看其他方向,而不必移动第一个虚拟角色310A。

图3B说明了根据本申请的实施例在3D虚拟环境中的预定导航路径实现情景。图3B结合图1A到1E、图2和图3A中的元素进行描述。参考图3B,显示了3D虚拟环境302中预定导航路径的实现场景300B。

在一个实现中,预定义的导航路径316从一个公共路径开始分支成多个子路径,并且多个子路径分支螺旋向下延伸到3D虚拟环境302中多个用户的座位。例如,第一个预定义的导航路径320分支成多个子路径,如第一个子路径320A,第二个子路径320B,第三个子路径320C,第四个子路径320D,第五个子路径320E,第六个子路径320F和第七个子路径320G,这些子路径在3D虚拟环境302中螺旋下降到表326周围的多个用户的座位上。类似地,第二个预定义导航路径322和第三个预定义导航路径324也分别在表328和表330周围分支出多个子路径,如图3B所示。类似地,其他可能数量的预定义导航路径和子路径可以在不限制公开范围的情况下进行分支。

对前文所述本公开的实施例进行修改是可能的,而不会偏离随附权利要求所界定的本公开的范围。诸如“包括”、“组成”、“合并”、“具有”、“是”之类的表述用于描述和声明本公开,旨在以非排他性的方式进行解释,即允许未明确描述的项目、组件或要素也存在。提到单数也应解释为与复数有关。“示例”一词在此指“作为示例、实例或说明”。任何被描述为“示范性”的实施例并不一定要被解释为优于或优于其他实施例和/或排除从其他实施例中合并特征。“可选的”一词在这里是指“在某些实施例中提供而在其他实施例中没有提供”。为了清晰起见,在不同实施例的上下文中所描述的本公开的某些特征,也可以在单个实施例中组合提供。相反,为简洁起见,在单个实施例中描述的本披露的各种特征,也可以单独或以任何适当的组合方式提供,或在本披露的任何其他所描述的实施例中提供。

相关技术
  • 智能导航场景中利用知识图谱辅助导航的方法及系统
  • 器官三维图像重建方法、手术导航方法及手术辅助系统
技术分类

06120116489930