1.本公开涉及计算机技术领域,尤其涉及一种虚拟对象的显示方法、虚拟对象的显示装置、计算机可读存储介质与电子设备。
背景技术:
2.虚拟对象一般指虚拟场景或虚拟场景中的人或物。终端设备在显示虚拟对象时,是以某个特定视角进行显示的,这样用户在对虚拟对象进行观察、控制或编辑时,通常需要多次调整视角,以看到虚拟对象在不同方向上的信息。这导致用户操作非常不便,频繁调整也会提高设备计算资源开销,增加能耗。
技术实现要素:
3.本公开提供一种虚拟对象的显示方法、虚拟对象的显示装置、计算机可读存储介质与电子设备,以至少在一定程度上解决用户在对虚拟对象进行观察、控制或编辑时操作不便的问题。
4.根据本公开的第一方面,提供一种虚拟对象的显示方法,通过终端设备提供图形用户界面,所述图形用户界面包括第一画面,所述第一画面显示所述虚拟对象在第一视野平面中的投影;所述虚拟对象具有至少一个参考轴;所述方法包括:在所述参考轴中确定相对于所述第一视野平面的不可见方向轴;根据所述不可见方向轴确定第二视野平面,所述不可见方向轴与所述第二视野平面的夹角小于或等于第一预设角度;在所述图形用户界面中提供第二画面,在所述第二画面中显示所述虚拟对象在所述第二视野平面中的投影。
5.根据本公开的第二方面,提供一种虚拟对象的显示装置,通过终端设备提供图形用户界面,所述图形用户界面包括第一画面,所述第一画面显示所述虚拟对象在第一视野平面中的投影;所述虚拟对象具有至少一个参考轴;所述装置包括:不可见方向轴确定模块,被配置为在所述参考轴中确定相对于所述第一视野平面的不可见方向轴;第二视野平面确定模块,被配置为根据所述不可见方向轴确定第二视野平面,所述不可见方向轴与所述第二视野平面的夹角小于或等于第一预设角度;显示处理模块,被配置为在所述图形用户界面中提供第二画面,在所述第二画面中显示所述虚拟对象在所述第二视野平面中的投影。
6.根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的虚拟对象的显示方法及其可能的实现方式。
7.根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令,来执行上述第一方面的虚拟对象的显示方法及其可能的实现方式。
8.在通过第一画面显示虚拟对象在第一视野平面中的投影外,确定参考轴中相对于第一视野平面的不可见方向轴,并确定第二视野平面,在图形用户界面中提供第二画面,通
过第二画面显示虚拟对象在第二视野平面中的投影。第二视野平面能够重点呈现虚拟对象在不可见方向轴上的信息,由此对第一视野平面中缺失的信息形成有效补充,这样用户通过观看两个画面,即可获得虚拟对象的较为完整的信息,不需要在观看、控制或编辑过程中多次调整视角,提高了用户操作的便利性,同时降低了设备计算资源开销,节省能耗。
附图说明
9.图1示出本公开示例性实施方式中第一画面和第二画面的示意图;
10.图2示出本公开示例性实施方式中游戏编辑场景与场景组件选择控件的示意图;
11.图3示出本公开示例性实施方式中设置游戏编辑场景的视角的示意图;
12.图4a示出本公开示例性实施方式中上帝视角的示意图;
13.图4b示出本公开示例性实施方式中游戏视角的示意图;
14.图5示出本公开示例性实施方式中一种虚拟对象的显示方法的流程图;
15.图6示出本公开示例性实施方式中一种确定不可见方向轴的流程图;
16.图7示出本公开示例性实施方式中对虚拟对象缩放操作的示意图;
17.图8示出本公开示例性实施方式中对虚拟对象移动操作的示意图;
18.图9示出本公开示例性实施方式中一种虚拟对象的显示装置的结构示意图;
19.图10示出本公开示例性实施方式中一种电子设备的结构示意图。
具体实施方式
20.下文将结合附图更全面地描述本公开的示例性实施方式。
21.附图为本公开的示意性图解,并非一定是按比例绘制。附图中所示的一些方框图可能是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在硬件模块或集成电路中实现这些功能实体,或在网络、处理器或微控制器中实现这些功能实体。实施方式能够以多种形式实施,不应被理解为限于在此阐述的范例。本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或多个实施方式中。在下文的描述中,提供许多具体细节从而给出对本公开实施方式的充分说明。然而,本领域技术人员应意识到,可以在实现本公开的技术方案时省略其中的一个或多个特定细节,或者可以采用其它的方法、组元、装置、步骤等替代一个或多个特定细节。
22.用户通过显示屏看到的虚拟对象,是虚拟对象在显示平面上的投影,该投影无法完全体现虚拟对象的信息。例如,虚拟对象为三维虚拟对象或更高维度的虚拟对象,用户通过显示平面仅能看到其一个面的投影信息,无法看到其他面的信息。因此,用户在对虚拟对象进行观察、控制或编辑时,通常需要多次调整视角,以看到虚拟对象在不同方向上的信息,如看到三维虚拟对象在不同方向上的位置、尺寸等,以便于进行准确地控制或编辑。显然,这给用户的操作带来极大不便。并且,若用户频繁调整视角,也会提高设备计算资源开销,增加能耗。
23.鉴于上述问题,本公开的示例性实施方式提供一种虚拟对象的显示方法,以提高用户对虚拟对象进行观察、控制或编辑时的操作便利性,并降低设备计算资源开销与能耗。
24.在本公开其中一种实施例中的虚拟对象的控制方法可以运行于本地终端设备或者是服务器。当游戏内的交互方法运行于服务器时,该方法则可以基于云交互系统来实现
与执行,其中,云交互系统包括服务器和客户端设备。
25.在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,游戏内的交互方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
26.本示例性实施方式中,可以通过终端设备显示图形用户界面,终端设备可以是手机、个人电脑、平板电脑、智能穿戴设备、游戏机等,其具有显示功能,可显示图形用户界面。图形用户界面可以包括终端设备运行操作系统的画面,如桌面、系统设置界面、应用程序界面等。
27.参考图1所示,图形用户界面可以包括第一画面110,第一画面110显示虚拟对象130在第一视野平面中的投影,即沿第一视野平面的法线方向观察虚拟对象130所看到的影像。图形用户界面还可以包括第二画面120,第二画面120可以固定显示在图形用户界面中,也可以在满足特定条件时显示在图形用户界面中。第二画面120显示虚拟对象130在第二视野平面中的投影,即沿第二视野平面的法线方向观察虚拟对象130所看到的影像。第一视野平面和第二视野平面不平行,这样第一画面110和第二画面120的观察视角不完全相同,使得用户通过结合两个画面中的投影,能够得到虚拟对象130较为全面的信息。
28.图1中示出第一画面110为主界面,第二画面120为窗口界面。此外,也可以将图形用户界面按照横向或纵向划分为两部分,一部分为第一画面110,另一部分为第二画面120,等等。本公开对第一画面110、第二画面120的排布方式或位置关系不做限定。
29.虚拟对象可以是虚拟场景,也可以是虚拟场景中的人或物。在一种实施方式中,虚拟对象可以是三维虚拟对象。虚拟对象具有至少一个参考轴,参考轴用于提供特定方向的基准化信息,通过参考轴可以衡量与表征虚拟对象的信息,例如通过获取三维虚拟对象在每个参考轴上的位置与尺寸,可以确定三维虚拟对象在三维空间中的位置与三维尺寸。任意两个参考轴相交,可以形成特定大小的夹角。在一种实施方式中,参考轴可以是虚拟对象自身的参考坐标系的坐标轴,如参考上述图1所示,参考轴可以包括x轴、y轴、z轴。其中任意两个参考轴相互垂直。若虚拟对象为虚拟场景,则其自身的参考坐标系可以是虚拟场景的世界坐标系。在一种实施方式中,参考轴可以是虚拟对象的表面的法线轴,例如,若虚拟对象为四面体(如棱锥),其每个面的法线轴可以作为一个参考轴,可以得到四个参考轴。
30.在一种实施方式中,虚拟对象可以是游戏编辑场景中的当前编辑对象。其中,游戏编辑场景是可编辑的游戏场景,用户可以对场景中的组件、场景的背景等进行编辑,以生成可在游戏中使用的游戏场景。当终端设备运行游戏程序时,图形用户界面中可以显示运行游戏程序提供的游戏编辑场景。该游戏程序可以是游戏主程序,游戏主程序中提供游戏场景编辑功能(如游戏程序内置有游戏编辑器),用户使用该功能时,可以进入游戏编辑场景中。或者,该游戏程序也可以是游戏主程序关联的游戏场景编辑程序,如不依赖于游戏主程
序而可以独立运行的游戏编辑器。用户可以选择新建一个游戏场景并进行编辑,也可以选择对已有的游戏场景进行编辑,进而触发进入游戏编辑场景中以进行编辑操作。
31.本示例性实施方式中的游戏程序可以支持玩家自定义编辑游戏场景,因此,本文中的用户可以指游戏厂商的游戏制作人员(如美术人员),也可以指玩家。
32.在一种实施方式中,参考图2所示,图像用户界面中可以显示待编辑的游戏编辑场景以及多个场景组件选择控件。游戏编辑场景可以包括场景的背景和已生成的场景组件。场景组件选择控件是用于对游戏程序中预先配置的场景组件进行操作的控件,响应于对场景组件选择控件的操作,可以在游戏编辑场景中生成对应的场景组件。例如,图2示出“方块组件”、“圆柱组件”、“半圆柱组件”等场景组件选择控件,当用户使用这些控件进行操作时,可以在游戏编辑场景中生成对应的方块组件、圆柱组件、半圆柱组件等。
33.游戏程序可以自带多个不同的场景组件,如可以是美术人员预先配置并存储在游戏程序中的。或者,可以由玩家预先配置场景组件,如玩家可以通过在游戏编辑场景或其他编辑界面中进行建模,得到游戏程序中原本没有的场景组件,并将其存储在游戏程序中。在进行游戏场景编辑时,可以在图形用户界面中显示上述场景组件对应的场景组件选择控件,使得玩家可以方便地使用这些场景组件进行场景编辑。
34.预先配置场景组件时,可以对场景组件的尺寸、位置、方向、颜色、纹理、形态等的一种或多种信息进行配置。这样当用户在游戏编辑场景中使用这些场景组件时,可以直接调用已配置的信息,非常方便与高效。当然,用户也可以对场景组件中的已配置的信息进行调整,如调整上述一种或多种信息,使其更符合自己的需求与偏好。
35.游戏程序可以通过预设逻辑在图形用户界面中显示或隐藏场景组件选择控件,或者用户可以通过特定操作在图形用户界面中显示或隐藏场景组件选择控件。例如,当用户选中游戏编辑场景中的某个场景组件作为当前编辑对象时,可以隐藏场景组件选择控件,当用户未选中任何场景组件时,可以显示场景组件选择控件。
36.在一种实施方式中,游戏编辑场景可以同时显示在第一画面和第二画面中,场景组件选择控件可以显示在第一画面中。
37.在游戏编辑场景中,用户可以选中一个场景组件进行编辑,该场景组件即当前编辑对象,也即上述虚拟对象。
38.在一种实施方式中,游戏编辑场景中可以设置第一虚拟摄像机和第二虚拟摄像机。虚拟摄像机是游戏程序中模拟真实摄像机,以拍摄游戏场景画面的工具。第一虚拟摄像机和第二虚拟摄像机可以以不同的视角拍摄虚拟对象以及虚拟对象所在的局部场景。第一视野平面为第一虚拟摄像机的成像平面,第一画面显示第一虚拟摄像机拍摄游戏编辑场景所形成的画面。第二视野平面为第二虚拟摄像机的成像平面,第二画面显示第二虚拟摄像机拍摄游戏编辑场景所形成的画面。
39.第一虚拟摄像机和第二虚拟摄像机的位姿均可动态变化。例如,用户可以控制调整第一虚拟摄像机的位姿,使得第一视野平面动态变化,显示出以不同角度观察虚拟对象的效果。当用户控制调整第一虚拟摄像机的位姿时,可以根据本示例性实施方式中的虚拟对象的显示方法,来自动调整第二虚拟摄像机的位姿。
40.参考图3所示,游戏编辑场景可以呈现两种不同的视角,分别为上帝视角和游戏视角。上帝视角是指以第三人称的视角观察游戏编辑场景,参考图4a所示,在上帝视角下,用
户在游戏编辑场景中可以不操控游戏角色,而是直接操控虚拟摄像机(如第一虚拟摄像机)以移动视角。游戏视角是指以第一人称的视角观察游戏编辑场景,参考图4b所示,在游戏视角下,用户在游戏编辑场景中可以操控某个游戏角色,该游戏角色可以绑定虚拟摄像机(如第一虚拟摄像机),即该游戏角色与虚拟摄像机的位置关系固定,例如该游戏角色可以位于虚拟摄像机的焦点处,用户操控游戏角色移动时,虚拟摄像机同步移动,由此移动视角。在上帝视角或游戏视角下,游戏编辑场景中可以设置虚拟摇杆、上移或下移的控件等,用户可以通过操作这些控件来移动虚拟摄像机或移动游戏角色。本示例性实施方式中的虚拟对象的显示方法,可适用于游戏编辑场景中的上帝视角或游戏视角。
41.图5示出了虚拟对象的显示方法的示例性流程,可以包括以下步骤s510至s530:
42.步骤s510,在参考轴中确定相对于第一视野平面的不可见方向轴;
43.步骤s520,根据不可见方向轴确定第二视野平面,不可见方向轴与第二视野平面的夹角小于或等于第一预设角度;
44.步骤s530,在图形与用户界面中提供第二画面,在第二画面中显示虚拟对象在第二视野平面中的投影。
45.基于图5的方法,在通过第一画面显示虚拟对象在第一视野平面中的投影外,确定参考轴中相对于第一视野平面的不可见方向轴,并确定第二视野平面,在图形用户界面中提供第二画面,通过第二画面显示虚拟对象在第二视野平面中的投影。第二视野平面能够重点呈现虚拟对象在不可见方向轴上的信息,由此对第一视野平面中缺失的信息形成有效补充,这样用户通过观看两个画面,即可获得虚拟对象的较为完整的信息,不需要在观看、控制或编辑过程中多次调整视角,提高了用户操作的便利性,同时降低了设备(如终端设备或后台处理的服务器等)计算资源开销,节省能耗。
46.下面对图5中的每个步骤做具体说明。
47.参考图5,在步骤s510中,在参考轴中确定相对于第一视野平面的不可见方向轴。
48.第一视野平面仅能显示虚拟对象在一些方向上的信息,会丢失掉其他方向上的信息,如显示虚拟对象在第一视野平面中的二维投影信息,会导致在第一视野平面中丢失三维中某一个或多个维度的信息,本示例性实施方式将丢失的信息所对应的方向称为不可见方向,相应的轴称为不可见方向轴。需要说明的是,不可见方向可以指完全不可见的方向,例如当第一视野平面平行于x-y平面时,在第一视野平面中完全无法看到z轴方向的信息,即z轴方向完全不可见,可以将z轴确定为不可见方向轴。不可见方向也可以指可见性差的方向,例如参考上述图1所示,当第一视野平面与x-y平面的夹角很小时,第一视野平面与x-y平面接近平行,在第一视野平面中仅能看到z轴方向上很少的信息,即z轴方向的可见性差,可以将z轴确定为不可见方向轴。
49.在一种实施方式中,可以根据参考轴与第一视野平面的位置关系,在参考轴中确定不可见方向轴。参考轴与第一视野平面的位置关系可以通过参考轴与第一视野平面的夹角、参考轴在第一视野平面中的投影参数等来体现,根据参考轴与第一视野平面的位置关系,可以量化参考轴在第一视野平面中的可见性,由此将可见性较差的参考轴确定为不可见方向轴。
50.下面提供确定不可见方向轴的示例性方式:
51.可选的,在一些实施方式中,参考图6所示,上述在参考轴中确定相对于第一视野
平面的不可见方向轴,可以包括以下步骤s610和s620:
52.步骤s610,获取参考轴在第一视野平面中的投影,得到参考轴对应的第一投影轴;
53.步骤s620,根据不同的第一投影轴间的夹角,从参考轴中确定不可见方向轴。
54.其中,第一投影轴是指参考轴在第一视野平面中的投影,如图1中示出了的x轴、y轴、z轴是虚拟场景中针对虚拟对象的x轴、y轴、z轴在第一视野平面中的投影,即第一投影轴。
55.可以获取每两个第一投影轴间的夹角,如图1中的∠xoy、∠xoz、∠yoz,根据夹角大小确定不可见方向轴。例如,若任意两个参考轴相互垂直,则可以确定上述夹角中最接近90度的夹角,在形成该夹角的第一投影轴所对应的参考轴以外的其他参考轴中确定不可见方向轴。如图1中的三个夹角中,∠xoy最接近90度,该夹角由x轴的第一投影轴和y轴的第一投影轴形成,其他参考轴只剩下z轴,则确定z轴为不可见方向轴。由此能够快速、方便地确定不可见方向轴。
56.在一种实施方式中,上述根据不同的第一投影轴间的夹角,从参考轴中确定不可见方向轴,可以包括以下步骤:
57.若两个第一投影轴间的夹角小于第二预设角度,则从该两个第一投影轴对应的两个参考轴中确定不可见方向轴。
58.其中,第二预设角度是用于衡量第一投影轴的夹角大小的参考角度,可以根据经验或具体情况确定。若两个第一投影轴间的夹角小于第二预设角度,说明这两个第一投影轴对应的两个参考轴在第一视野平面中的投影存在较为严重的透视变换,这两个参考轴中存在不可见方向轴,可以将其中之一确定为不可见方向轴,或者将两个参考轴均确定为不可见方向轴。
59.在一种实施方式中,可以根据虚拟对象在参考轴上的尺寸确定第二预设角度,第二预设角度可以与虚拟对象在参考轴上的尺寸正相关,两者之间可以呈现线性或非线性的映射关系,该映射关系可以根据经验或具体需求事先设定。由于虚拟对象可能为不规则形状,虚拟对象在参考轴上的尺寸,可以是虚拟对象在参考轴上的最大尺寸,也可以是虚拟对象的规则形状包围盒(如长方体包围盒)在参考轴上的尺寸。由于虚拟对象在不同参考轴上的尺寸可能不同,可以针对不同参考轴分别确定第二预设角度。示例性的,可以根据虚拟对象在x轴、y轴、z轴上的尺寸,分别确定x轴对应的第二预设角度、y轴对应的第二预设角度、z轴对应的第二预设角度。若∠yoz小于z轴对应的第二预设角度,而不小于y轴对应的第二预设角度,则确定z轴是不可见方向轴,y轴不是不可见方向轴。这样确定的不可见方向轴较为准确。
60.在一种实施方式中,若两个第一投影轴间的夹角与该两个第一投影轴对应的两个参考轴间的夹角之差大于第三预设角度,则从该两个第一投影轴对应的两个参考轴中确定不可见方向轴。其中,两个第一投影轴间的夹角与该两个第一投影轴对应的两个参考轴间的夹角之差,表示两个参考轴在第一视野平面上投影前后的夹角变化,进而可以表征两个参考轴投影至第一视野平面所发生的透视变换的程度。第三预设角度是用于衡量夹角变化大小的参考角度,可以根据经验或具体情况确定。示例性的,如图1所示,三个参考轴中任意两个的夹角均为90度,若两个第一投影轴间的夹角与90度之差(可以取差值的绝对值)大于第三预设角度,则在这两个第一投影轴对应的两个参考轴中确定不可见方向轴。
61.在一种实施方式中,可以通过取交集的方式确定不可见方向轴。例如,x轴的第一投影轴与z轴的第一投影轴间的夹角小于第二预设角度,确定x轴与z轴中存在不可见方向轴,并且y轴的第一投影轴与z轴的第一投影轴间的夹角也小于第二预设角度,确定y轴与z轴中存在不可见方向轴,综合可知,z轴为不可见方向轴。又例如,x轴的第一投影轴与z轴的第一投影轴间的夹角与90度之差大于第三预设角度,确定x轴与z轴中存在不可见方向轴,并且y轴的第一投影轴与z轴的第一投影轴间的夹角与90度之差大于第三预设角度,确定y轴与z轴中存在不可见方向轴,综合可知,z轴为不可见方向轴。
62.在一些实施方式中,上述在参考轴中确定相对于第一视野平面的不可见方向轴,可以包括以下步骤:
63.获取参考轴与第一视野平面的夹角,将与第一视野平面的夹角大于第四预设角度的参考轴确定为不可见方向轴。
64.其中,参考轴与第一视野平面的夹角是指三维空间中参考轴的正方向与第一视野平面的夹角,而非在第一视野平面中的投影夹角。关于参考轴的正方向与反方向的区分,通常可以认为正方向与第一视野平面的夹角不大于90度,则相应的,反方向与第一视野平面的夹角不小于90度。参考轴与第一视野平面的夹角越小,则参考轴方向在第一视野平面中的可见性越好,反之则可见性越差。因此,可以针对参考轴与第一视野平面的夹角设置第四预设角度,以作为衡量夹角是否过大的角度阈值。第四预设角度可以根据经验或虚拟对象的尺寸来确定。示例性的,第四预设角度可以大于45度,如可以是60度,在第四预设角度大于45度的情况下,可以使不可见方向轴的数量不超过1个。
65.若某个参考轴与第一视野平面的夹角大于第四预设角度,说明该参考轴方向在第一视野平面中的可见性很差,可以将该参考轴确定为不可见方向轴。
66.在一些可选的实施例中,上述在参考轴中确定相对于第一视野平面的不可见方向轴,可以包括以下步骤:
67.获取参考轴在第一视野平面中的投影长度,将投影长度小于预设长度的参考轴确定为不可见方向轴。
68.一般的,参考轴表示方向,其不具有长度。本示例性实施方式中,为了便于对参考轴的投影长度进行量化,可以为参考轴设置默认长度,不同参考轴的默认长度可以相同。参考轴在第一视野平面中的投影长度越长,则参考轴方向在第一视野平面中的可见性越好,反之则可见性越差。因此,可以针对参考轴在第一视野平面中的投影长度设置预设长度,以作为衡量投影长度是否过小的长度阈值。预设长度可以根据参考轴的默认长度并结合经验等确定,如预设长度可以是1/2默认长度。
69.若某个参考轴在第一视野平面中的投影长度小于预设长度,说明该参考轴方向在第一视野平面中的可见性很差,可以将该参考轴确定为不可见方向轴。
70.以上通过多种示例性方式说明了如何确定不可见方向轴,第一投影轴的夹角、参考轴与第一视野平面的夹角、参考轴在第一视野平面中的投影长度等参数均易于获得,再结合第二预设角度、第三预设角度、第四预设角度、预设长度等阈值条件,能够较为简单、快速地确定不可见方向轴。
71.应当理解,以上第二预设角度、第三预设角度、第四预设角度、预设长度等阈值条件,相当于为不可见方向轴设置了绝对条件。也就是说,可能存在无不可见方向轴的情况,
如任意两个第一投影轴间的夹角均不小于第二预设角度,或者任意两个第一投影轴间的夹角与对应的两个参考轴的夹角之差不大于第三预设角度,或者任意参考轴与第一视野平面的夹角均小于第四预设角度,或者任意参考轴在第一视野平面中的投影长度均不小于预设长度等情况下,确定参考轴中无不可见方向轴。
72.在一种实施方式中,可以将参考轴在第一视野平面中可见性最差的方向轴确定为不可见方向轴,以保证始终存在不可见方向轴。例如,获取每两个第一投影轴间的夹角,在夹角最小的两个第一投影轴所对应的两个参考轴中确定不可见方向轴。或者,获取每两个第一投影轴间的夹角与对应的两个参考轴的夹角之差,在夹角之差最大的两个第一投影轴所对应的两个参考轴中确定不可见方向轴。或者,将与第一视野平面的夹角最大的参考轴确定为不可见方向轴。或者,将在第一视野平面中的投影长度最小的参考轴确定为不可见方向轴。
73.在确定不可见方向轴的情况下,继续参考图5,在步骤s520中,根据不可见方向轴确定第二视野平面,不可见方向轴与第二视野平面的夹角小于或等于第一预设角度。
74.其中,不可见方向轴与第二视野平面的夹角可以是不可见方向轴的正方向与第二视野平面的夹角。关于不可见方向轴的正方向与反方向的区分,通常可以认为正方向与第二视野平面的夹角不大于90度,则相应的,反方向与第二视野平面的夹角不小于90度。设置不可见方向轴与第二视野平面的夹角小于或等于第一预设角度,能够确保不可见方向轴在第二视野平面中具有较好的可见性。第一预设角度可以根据经验或具体需求确定。示例性的,第一预设角度可以是0度。或者,第一预设角度可以等于90度与第四预设角度之差,如第四预设角度为60度,则第一预设角度为30度。
75.在一种实施方式中,可以将与不可见方向轴的夹角小于或等于第一预设角度的任意平面作为第二视野平面。
76.在一种实施方式中,上述根据不可见方向轴确定第二视野平面,可以包括以下步骤:
77.将不可见方向轴与任一其他参考轴形成参考平面,将与参考平面平行的平面作为第二视野平面。
78.其中,对于不可见方向轴与任一其他参考轴形成的平面,不可见方向轴与该平面的夹角为0度,说明不可见方向轴在该平面内具有最佳的可见性。例如,若确定z轴为不可见方向轴,则可以将x-z平面或y-z平面作为上述参考平面,并在参考平面的平行平面中确定第二视野平面,在第二视野平面内可以充分观察到z轴的信息。如图1所示,将与y-z平面平行的平面作为第二视野平面。
79.基于上述不可见方向轴与第二视野平面的夹角小于或等于第一预设角度这一条件,可以确定第二视野平面的角度,通常并不能唯一确定一个第二视野平面,而是确定一组平行平面。因此,还可以确定第二视野平面与虚拟对象的距离,由此确定第二视野平面的位置,这样能够唯一确定一个第二视野平面。通过确定合适的距离,可以使虚拟对象在第二视野平面内呈现出合适的大小。
80.在一种实施方式中,在根据不可见方向轴确定第二视野平面时,还可以确定第二视野平面和虚拟对象的距离与第一视野平面和虚拟对象的距离相同。例如,在图1中,可以获取虚拟对象130与第一视野平面的距离d,确定y-z平面为参考平面后,将y-z平面沿着其
法线方向(即x轴方向)移动d的长度,得到第二视野平面。这样基于透视关系,虚拟对象在第一画面中的比例与其在第二画面中的比例相同或相近,这样用户同时观看第一画面和第二画面的视觉感受较为和谐。
81.在一种实施方式中,在根据不可见方向轴确定第二视野平面时,还可以确定第二视野平面和虚拟对象的距离为预设距离。该预设距离可以根据第二虚拟摄像机的视野大小、焦距等参数确定,使得在默认距离下观察虚拟对象,虚拟对象在第二画面中的比例较为合适。
82.在一种实施方式中,在根据不可见方向轴确定第二视野平面之后,方法还包括:
83.根据第二视野平面以及虚拟对象的位置,确定第二虚拟摄像机的目标位姿,并将第二虚拟摄像机调整到目标位姿。
84.其中,根据不可见方向轴确定第二视野平面,是指确定第二视野平面的角度,由此可以确定第二虚拟摄像机的角度(或姿态)。根据虚拟对象的位置,可以确定第二虚拟摄像机的位置,如将虚拟对象置于第二虚拟摄像机的视野正前方的预设距离处(即虚拟对象位于第二虚拟摄像机的光轴上,与第二虚拟摄像机的距离等于预设距离)或等于第一视野平面和虚拟对象间距离的距离处,由此计算出第二虚拟摄像机的位置。综合位置和角度,可以得到第二虚拟摄像机的目标位姿,目标位姿是指能够展示虚拟对象的不可见方向信息的位姿。将第二虚拟摄像机调整到目标位姿,在目标位姿下拍摄虚拟对象及其所在的局部场景,视角与视距均较为合适,可以将拍摄的画面显示在第二画面中。
85.继续参考图5,在步骤s530中,在图形用户界面中提供第二画面,在第二画面中显示虚拟对象在第二视野平面中的投影。
86.在一种实施方式中,可以在确定存在不可见方向轴的情况下,在图形用户界面中显示第二画面,如以窗口的形式显示第二画面,在确定不存在不可见方向轴的情况下,可以将第二画面隐藏。在一种实施方式中,可以始终将参考轴中在第一视野平面中可见性最差的轴确定为不可见方向轴,即始终存在不可见方向轴的情况,则可以始终显示第二画面。
87.在一种实施方式中,可以在图形用户界面中固定显示第二画面,或者在确定待显示的虚拟对象的情况(如用户选中某个虚拟对象作为待显示的虚拟对象)下固定显示第二画面,即无论是否存在不可见方向轴,都可以显示第二画面。其中,在确定存在不可见方向轴的情况下,可以在第二画面中显示虚拟对象在第二视野平面中的投影。在确定不存在不可见方向轴的情况下,可以在第二画面中显示其他信息,如虚拟对象的属性信息,虚拟场景的地图信息等。
88.如图1所示,确定z轴为不可见方向轴,确定y-z平面的平行平面为第二视野平面,获取虚拟对象130在第二视野平面中的投影,以显示在第二画面120,从第二画面120可以充分看到虚拟对象130在z轴方向上的信息。相比之下,在第一画面110中用户很难清楚地看到虚拟对象130在z轴方向上的尺寸或位置,而在第二画面120中用户能够很清楚地看到这些信息。第二画面120对第一画面110的显示信息形成了有效的补充,通过第一画面110与第二画面120的结合,使得用户能够较为完整地获得虚拟对象130的信息。
89.在一种实施方式中,虚拟对象为三维虚拟对象,第一画面显示该三维虚拟对象在第一视野平面中的二维投影,第二画面显示该三维虚拟对象在第二视野平面中的二维投影。通过两种视野平面中的二维投影的互补,可以较为充分地显示出三维虚拟对象的三维
信息。
90.在一种实施方式中,虚拟对象为游戏编辑场景中的当前编辑对象。虚拟对象的显示方法还可以包括以下步骤:
91.响应于在第一画面或第二画面内对当前编辑对象的编辑操作,在第一画面和第二画面同步显示编辑操作的编辑过程。
92.其中,编辑操作可以包括但不限于:缩放操作、移动操作、旋转操作、形态调整操作、颜色或纹理编辑操作,等等。用户可以在第一画面或第二画面内对当前编辑对象进行编辑操作。例如,第一画面为主界面,可以设置仅能在第一画面内进行编辑操作,不能在第二画面内进行编辑操作。在进行编辑操作时,在第一画面和第二画面同步显示编辑操作的编辑过程,如缩放过程、移动过程、旋转过程等,使得用户可以从两个界面获得编辑过程的信息,以看到当前编辑对象实时的三维信息,从而便于实现准确的编辑操作。
93.图7示出了用户进行缩放操作的情况,用户控制虚拟对象130沿z轴进行缩放时,在第一画面110内可以显示缩放过程,但是很难通过第一画面110清楚地看到缩放效果,在第二画面120内同步显示缩放过程,用户可以很清楚地看到沿z轴缩放的大小,由此便于实现准确的缩放操作,以精确缩放到用户想要的尺寸。
94.图8示出了用户进行移动操作的情况,用户控制虚拟对象130沿x-z平面中的某个方向进行移动时,在第一画面110内可以显示移动过程,但是很难通过第一画面110清楚地看到移动后处于z轴的什么位置,在第二画面120内同步显示缩放过程,用户可以很清楚地看到移动后处于z轴的什么位置,由此便于实现准确的移动操作,以精确移动到用户想要的位置。
95.在实际应用中,图形用户界面中包括第一交互控件,通过终端设备触发第二交互控件后,可生成第一画面对应的游戏场景信息,游戏场景信息包括所述第一画面中的虚拟对象的组件信息,例如虚拟对象地尺寸信息、颜色信息、在游戏场景中的位置信息等。该游戏场景信息可保存在预设存储位置,该预设存储位置可以是地图文件中,该地图文件不仅可保存游戏场景信息,该可保存其他的地图信息(包括但不限于截图、地图名、日志等信息)。地图文件保存游戏场景信息后会被上传到服务器。服务器审核通过后可将游戏场景信息生成的游戏场景发布至于预设地图池中,从而于服务器连接的终端设备可是从服务器上下载了相应的游戏场景信息,并通过游戏程序根据游戏场景信息生成对应的游戏场景,然后在该游戏场景中进行游戏体验。该方式可将游戏编辑器中的游戏场景信息进行发布,并被其他玩家体验,从而实现快速的ugc(user generation content,用户生成内容)功能。
96.本公开的示例性实施方式还提供一种虚拟对象的显示装置,可以通过终端设备提供图形用户界面,图形用户界面包括第一画面,第一画面显示虚拟对象在第一视野平面中的投影;虚拟对象具有至少一个参考轴。参考图9所示,虚拟对象的显示装置900可以包括以下程序模块:
97.不可见方向轴确定模块910,被配置为在参考轴中确定相对于第一视野平面的不可见方向轴;
98.第二视野平面确定模块920,被配置为根据不可见方向轴确定第二视野平面,不可见方向轴与第二视野平面的夹角小于或等于第一预设角度;
99.显示处理模块930,被配置为在图形用户界面中提供第二画面,在第二画面中显示
虚拟对象在第二视野平面中的投影。
100.在一种实施方式中,上述在参考轴中确定相对于第一视野平面的不可见方向轴,包括:
101.获取参考轴在第一视野平面中的投影,得到参考轴对应的第一投影轴;
102.根据不同的第一投影轴间的夹角,从参考轴中确定不可见方向轴。
103.在一种实施方式中,上述根据不同的第一投影轴间的夹角,从参考轴中确定不可见方向轴,包括:
104.若两个第一投影轴间的夹角小于第二预设角度,则从两个第一投影轴对应的两个参考轴中确定不可见方向轴。
105.在一种实施方式中,不可见方向轴确定模块910,还被配置为:
106.根据虚拟对象在参考轴上的尺寸确定第二预设角度。
107.在一种实施方式中,上述在参考轴中确定相对于第一视野平面的不可见方向轴,包括:
108.获取参考轴与第一视野平面的夹角,将与第一视野平面的夹角大于第四预设角度的参考轴确定为不可见方向轴。
109.在一种实施方式中,上述在参考轴中确定相对于第一视野平面的不可见方向轴,包括:
110.获取参考轴在第一视野平面中的投影长度,将投影长度小于预设长度的参考轴确定为不可见方向轴。
111.在一种实施方式中,上述根据不可见方向轴确定第二视野平面,包括:
112.将不可见方向轴与任一其他参考轴形成参考平面,将与参考平面平行的平面作为第二视野平面。
113.在一种实施方式中,第二视野平面确定模块920,还被配置为:在根据不可见方向轴确定第二视野平面时,确定第二视野平面和虚拟对象的距离与第一视野平面和虚拟对象的距离相同。
114.在一种实施方式中,虚拟对象为游戏编辑场景中的当前编辑对象;显示处理模块930,还被配置为:
115.响应于在第一画面或第二画面内对当前编辑对象的编辑操作,在第一画面和第二画面同步显示编辑操作的编辑过程。
116.在一种实施方式中,游戏编辑场景中设置第一虚拟摄像机和第二虚拟摄像机;第一视野平面为第一虚拟摄像机的成像平面,第一画面显示第一虚拟摄像机拍摄游戏编辑场景所形成的画面;第二视野平面为第二虚拟摄像机的成像平面,第二画面显示第二虚拟摄像机拍摄游戏编辑场景所形成的画面。
117.在一种实施方式中,第二视野平面确定模块920,还被配置为:
118.在根据不可见方向轴确定第二视野平面之后,根据第二视野平面以及虚拟对象的位置,确定第二虚拟摄像机的目标位姿,并将第二虚拟摄像机调整到目标位姿。
119.在一种实施方式中,图形用户界面中包括第一交互控件;虚拟对象的显示装置900还包括交互控制模块,被配置为:
120.响应针对第一交互控件的触发操作,控制生成第一画面对应的游戏场景信息;其
中,游戏场景信息包括第一画面中的虚拟对象的组件信息;
121.控制将游戏场景信息传送至服务器;其中,服务器配置为与终端设备通信连接,终端设备配置有游戏程序,终端设备配置为从服务器获取游戏场景信息,并通过游戏程序根据游戏场景信息生成对应的游戏场景。
122.上述装置中各部分的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
123.本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种可选的实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
124.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
125.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
126.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
127.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
128.本公开的示例性实施方式还提供一种电子设备。该电子设备可以包括处理器与存储器。存储器存储有处理器的可执行指令,如可以是程序代码。处理器通过执行该可执行指令来执行本示例性实施方式中的方法。此外,该电子设备还可以包括显示器,以用于显示图形用户界面。
129.下面参考图10,以通用计算设备的形式对电子设备进行示例性说明。应当理解,图
10显示的电子设备1000仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来限制。
130.如图10所示,电子设备1000可以包括:处理器1010、存储器1020、总线1030、i/o(输入/输出)接口1040、网络适配器1050、显示器1060。
131.存储器1020可以包括易失性存储器,例如ram 1021、缓存单元1022,还可以包括非易失性存储器,例如rom 1023。存储器1020还可以包括一个或多个程序模块1024,这样的程序模块1024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。例如,程序模块1024可以包括上述装置中的各模块。
132.总线1030用于实现电子设备1000的不同组件之间的连接,可以包括数据总线、地址总线和控制总线。
133.电子设备1000可以通过i/o接口1040与一个或多个外部设备1100(例如键盘、鼠标、外置控制器等)进行通信。
134.电子设备1000可以通过网络适配器1050与一个或者多个网络通信,例如网络适配器1050可以提供如3g/4g/5g等移动通信j9九游会真人的解决方案,或者提供如无线局域网、蓝牙、近场通信等无线通信j9九游会真人的解决方案。网络适配器1050可以通过总线1030与电子设备1000的其它模块通信。
135.电子设备1000可以通过显示器1060显示图形用户界面,如显示游戏编辑场景等。
136.尽管图10中未示出,还可以在电子设备1000中设置其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
137.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
138.本领域技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
139.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。