CN116185197A - 用于编辑虚拟对象的方法、装置、设备和存储介质 - Google Patents
用于编辑虚拟对象的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116185197A CN116185197A CN202310187030.7A CN202310187030A CN116185197A CN 116185197 A CN116185197 A CN 116185197A CN 202310187030 A CN202310187030 A CN 202310187030A CN 116185197 A CN116185197 A CN 116185197A
- Authority
- CN
- China
- Prior art keywords
- virtual
- target
- event
- physical
- virtual object
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
根据本公开的实施例,提供了用于编辑虚拟对象的方法、装置、设备和存储介质。在一种方法中,向用于编辑虚拟对象的编辑器,添加描述虚拟对象的元数据。基于元数据,呈现虚拟对象的多个虚拟部分的层级结构。响应于对多个虚拟部分中的目标虚拟部分的选择,添加针对目标虚拟部分的事件,以使得目标虚拟部分在虚拟对象被载入虚拟场景后,能够利用物理空间中的目标对象而被操纵。由此,可以方便地通过层级结构对虚拟对象的各虚拟部分进行灵活配置,以使得配置后的虚拟对象根据目标对象而被操纵。
Description
技术领域
本公开的示例实施例总体涉及计算机领域,特别地涉及用于编辑虚拟对象方法、装置、设备和计算机可读存储介质。
背景技术
近年来,扩展现实(eXtended Reality,简称XR)得到广泛研究和应用。XR通过利用硬件设备和多种技术手段的结合,为用户提供与虚拟场景进行交互的感官体验。在XR中,用户可以通过真实世界中的真实对象与虚拟场景进行交互。为此,需要在虚拟场景中呈现视觉上与该真实对象类似的虚拟对象,从而利用真实对象操纵虚拟对象。
发明内容
在本公开的第一方面,提供了一种编辑虚拟对象的方法。该方法包括:向用于编辑虚拟对象的编辑器,添加描述虚拟对象的元数据;基于元数据,呈现虚拟对象的多个虚拟部分的层级结构;以及响应于对多个虚拟部分中的目标虚拟部分的选择,添加针对目标虚拟部分的事件,以使得目标虚拟部分在虚拟对象被载入虚拟场景后,能够利用物理空间中的目标对象而被操纵。
在本公开的第二方面,提供了一种用于编辑虚拟对象的装置。该装置包括:元数据添加模块,被配置为向用于编辑虚拟对象的编辑器,添加描述虚拟对象的元数据;层级结构呈现模块,被配置为基于元数据,呈现虚拟对象的多个虚拟部分的层级结构;以及事件添加模块,被配置为响应于对多个虚拟部分中的目标虚拟部分的选择,添加针对目标虚拟部分的事件,以使得目标虚拟部分在虚拟对象被载入虚拟场景后,能够利用物理空间中的目标对象而被操纵。
P22121791201CN
在本公开的第三方面,提供了一种电子设备。该设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。指令在由至少一个处理单元执行时使设备执行第一方面的方法。
在本公开的第四方面,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序可由处理器执行以实现第一方面的方法。
应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本公开的实施例能够在其中实现的示例环境的示意图;
图2示出了根据本公开的一些实施例的编辑器的一个示例用户界面的示意图;
图3示出了根据本公开的一些实施例的添加事件的一个示例用户界面的示意图;
图4示出了根据本公开的一些实施例的图形引擎的一个示例架构的示意图;
图5示出了根据本公开的一些实施例的虚拟场景的一个示例的示意图;
图6示出了根据本公开的一些实施例的编辑虚拟对象的方法的流程图;
图7示出了根据本公开的一些实施例的用于编辑虚拟对象的装置的框图;以及
图8示出了能够实施本公开的多个实施例的设备的框图。
P22121791201CN
具体实施方式
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹出窗口的方式,弹出窗口中可以以文字的方式呈现提示信息。此外,弹出窗口中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
在此使用的术语“响应于”表示相应的事件发生或者条件得以满足的状态。将会理解,响应于该事件或者条件而被执行的后续动作的执行时机,与该事件发生或者条件成立的时间,二者之间未必是强关联的。例如,在某些情况下,后续动作可在事件发生或者条件成立时立即被执行;而在另一些情况下,后续动作可在事件发生或者条件成立后经过一段时间才被执行。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反,提供P22121791201CN
这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
需要注意的是,本文中所提供的任何节/子节的标题并不是限制性的。本文通篇描述了各种实施例,并且任何类型的实施例都可以包括在任何节/子节下。此外,在任一节/子节中描述的实施例可以以任何方式与同一节/子节和/或不同节/子节中描述的任何其他实施例相结合。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“一些实施例”应当理解为“至少一些实施例”。下文还可能包括其他明确的和隐含的定义。术语“第一”、“第二”等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如前文所简要提及的,XR技术得到广泛应用。用户使用XR设备的热情和好奇心,离不开的是其中的内容和生态,而这些内容和生态的基础是交互。当前已经很成熟的XR交互方案是在虚拟场景中添加能跟踪物理手柄的虚拟手柄。一种实现方案是基于代码开发的方案。具体地,为了在虚拟场景中绘制出视觉上与物理手柄的物理位置一样的虚拟手柄,首先需要图形技术研发人员将物理手柄的物理坐标和虚拟场景的坐标对齐,然后获取物理手柄的位姿数据,而后进行坐标转换后设置给虚拟手柄。最终通过调用图形应用程序编程接口(Application Programming Interface,API)将解析模型的顶点数据映射到显示器的对应像素上,从而实现在虚拟场景中添加能跟踪物理手柄的虚拟对象。整个过程比较冗长,且消耗研发人力。
另一种实现方案是基于创作平台的方案。具体地,模型设计师将物理手柄的虚拟手柄导入第三方内容创作平台进行配置,以生成对应的场景资产包。然后将场景资产包导入XR设备,实现利用物理手柄P22121791201CN
操纵虚拟手柄。这样做的前提是,物理手柄的厂家需要提前为第三方内容创作平台开发插件,模型设计师下载并安装到平台的插件库中才能进行一系列配置。这样的插件是不通用的,不仅增加了厂家的研发工作量,也增加了模型设计师的工作困难度。
为此,本公开的实施例提出了一种用于编辑虚拟对象的方案。根据本公开的各种实施例,向用于编辑虚拟对象的编辑器,添加描述虚拟对象的元数据。基于元数据,呈现虚拟对象的多个虚拟部分的层级结构。响应于对多个虚拟部分中的目标虚拟部分的选择,添加针对目标虚拟部分的事件,以使得目标虚拟部分在虚拟对象被载入虚拟场景后,能够利用物理空间中的目标对象而被操纵。由此,可以直观地通过层级结构对虚拟对象的各虚拟部分进行灵活配置,以使得配置后的虚拟对象能够根据目标对象而操纵。以此方式,能够快速且便捷地为虚拟场景添加可跟踪目标对象的虚拟对象。
下面参考附图来描述本公开的示例实施例。
图1示出了本公开的实施例能够在其中实现的示例环境100的示意图。在环境100中,电子设备110可用于运行编辑虚拟对象160的编辑器101。用户120或开发者可以经由电子设备110和/或电子设备110的附接设备来与编辑器101进行交互。编辑器101可以导入虚拟对象160的相关数据,并对虚拟对象160的虚拟部分进行编辑。虚拟对象160可以基于对应的物理对象140的样式而被绘制。
在一些实施例中,编辑器101是基于图形引擎开发的场景编辑工具。附加地或备选地,图形引擎是基于实体-组件-系统(Entity-Component-System,简称ECS)的架构而设计的。在ECS架构中,实体(Entity)是由一个或多个组件(Component)构成的基本单元。组件是数据的集合,组件上的数据可以描述实体的某一特征。例如,跟踪组件包含位置、姿态等参数。如果实体被添加了跟踪组件,在被载入虚拟场景后就拥有了跟踪对应的物理对象的能力。但这仅是示例性的,也可以以其他适当方式实现编辑器。
在一些实施例中,用户120穿戴XR设备130。XR设备130可用P22121791201CN
于运行绘制虚拟场景150的图形引擎102。XR设备130可以与电子设备110进行通信,以接收包括虚拟对象160的资产数据。通过图形引擎102,XR设备130可以在虚拟场景150中呈现虚拟对象160。
在一些实施例中,XR设备130可以与物理对象140进行通信,以接收物理对象140的状态数据。通过图形引擎102,XR设备130可以在虚拟场景150中添加对应于物理对象140的虚拟对象160,也即,虚拟对象160可以是物理空间中的物理对象140在虚拟场景中的表示。应当理解,尽管在图1中示出的物理对象140为手柄的样式,但是物理对象140也可以为其它样式,例如手环或戒指等。在一些实施例中,可以更改虚拟对象160的呈现样式。例如,从手柄的呈现样式更改为流星锤、光剑,等等。
XR设备130可以是头戴或可穿戴的显示设备,例如头戴式显示器、智能眼镜等。XR设备130支持虚拟现实(Virtual Reality,简称VR)、增强现实(Augmented Reality,简称AR)、混合现实(Mix Reality,简称MR)等技术。
电子设备110可以是任意类型的具有计算能力的设备,包括终端设备或服务端设备。终端设备可以是任意类型的移动终端、固定终端或便携式终端,包括移动手机、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、媒体计算机、多媒体平板、或者前述各项的任意组合,包括这些设备的配件和外设或者其任意组合。服务端设备可以是由云操作系统来控制及协调的服务器。在一些实施例中,电子设备110可以用独立的服务器或者多个服务器组成的服务器集群实现。
在图1的示例环境中,将电子设备110与XR设备130单独示出,但这仅是示例性的,而无意限制本公开的范围。在一些实施例中,电子设备110可以实现为XR设备130的一部分,也即,在此情况下,XR设备130可以实现电子设备110的所有功能。在另一些实施例中,电子设备110以及图形引擎102可以由云资源来实现。在此情况下,云资源用于实现图像或数据处理的功能,XR设备130用于实现呈现P22121791201CN
虚拟场景和虚拟对象的功能。
应当理解,上述关于电子设备110的描述仅仅是示例性而非限制性的,电子设备110可以实现为多种形式、结构或类别的设备,本公开的实施例对此没有限制。应当理解,仅出于示例性的目的描述环境100的结构和功能,而不暗示对于本公开的范围的任何限制。
图2示出了根据本公开的一些实施例的编辑器的示例用户界面200的示意图。用户界面200可以实现在电子设备110处。以下参考图1描述用户界面200。
电子设备110向编辑器101添加描述虚拟对象160的元数据。元数据可以包括虚拟对象160的模型资源,例如模型设计师设计的或者从其他渠道获取的虚拟对象160的模型资源。模型资源可以是任何适当格式的文件,诸如OBJ格式的文件。
在图2的示例中,电子设备110基于虚拟对象160的元数据,呈现虚拟对象160的多个虚拟部分的层级结构210。例如,上述的元数据被导入编辑器101后,可以被自动解析为虚拟对象160的多个虚拟部分的层级结构,而后可以呈现该层级结构。层级结构可以由多个节点构成。应当理解,虚拟部分可以是虚拟对象160的任何粒度的组成部分,例如可以指代整个虚拟对象、虚拟对象的构件、构件中的子构件等等。
在一些实施例中,层级结构210可以被呈现为按照层级缩进的树状结构。树状结构中的每个节点对应于或用于表示一个虚拟部分。在图2的示例中,虚拟对象160的多个虚拟部分包括部分0、部分1、部分21、部分31、…、部分32,等等。部分0(亦即,虚拟对象160)对应于树状结构的根节点。其他部分对应于树状结构的其他节点。在另一些实施例中,层级结构210也可以被呈现为金字塔结构。应当理解,本公开对层级结构210的呈现样式不做限制。
在一些实施例中,层级结构210可以包括多种界面元素,例如虚拟部分名称栏212、图标213、复选框214,等等。附加地或备选地在一些实施例中,根据节点的类型,电子设备110可以在虚拟部分名称P22121791201CN
栏212之前设置不同样式的图标213。例如,立方体样式的图标可以表示普通节点,这样的节点主要用于标识对应的虚拟部分在虚拟场景中的位置。又例如,球体样式的图标可以表示特殊节点,其包含的组件具备渲染功能。附加地或备选地,根据节点的上下级关系,这些图标213还可以具有不同的缩进量。附加地或备选地,电子设备110可以在虚拟部分名称栏212之后设置复选框,以实现添加、删除、编辑等功能。以此方式,便于用户(诸如,开发者)快速查看层级关系、查看及编辑各节点的类型。
电子设备110接收对虚拟部分的选择。在用户界面200中以醒目(例如高亮)的样式呈现所选择的虚拟部分的名称和/或呈现其在虚拟对象160上的对应部分。
附加地或备选地,如果接收到对多个虚拟部分中的一个或多个虚拟部分(也称为目标虚拟部分)的选择,电子设备110添加针对目标虚拟部分的事件(下文也称为“目标事件”)。该事件的添加使得在虚拟对象被载入虚拟场景后,目标虚拟部分能够利用物理空间中的目标对象而被操纵。例如,对于基于ECS架构的图形引擎开发的编辑器101,电子设备110可以向层级结构210中的实体(也即,虚拟部分)添加组件,并对组件进行配置。利用物理空间中的对象而被操纵的虚拟对象与其他虚拟对象的区别在于:前者需要实现和物理手柄的匹配和跟踪,而后者仅需要进行呈现。由此,为了实现匹配和跟踪的功能,可以为虚拟对象添加组件。以此方式,能够以直观且便捷的方式为目标虚拟部分添加事件。
在一些实施例中,为了更灵活地配置目标事件,电子设备110可以在编辑器中呈现与目标事件相关联的参数。进一步的,电子设备110可以接收针对参数的输入,并且生成目标事件。以下参考图3描述细节。
图3示出了根据本公开的一些实施例的添加事件的示例用户界面300的示意图。用户界面300可以实现在电子设备110处。以下参考图1描述用户界面300。
P22121791201CN
在图3的示例中,电子设备110接收对目标虚拟部分的选择,在用户界面300中呈现针对目标虚拟部分的组件的参数面板310。参数面板310包括组件名称栏311、参数名称栏312以及对应的属性值313。对这些参数进行配置后即可生成对应的事件。例如,电子设备110通过层级结构210向虚拟对象160对应的根节点(也即,部分0)添加跟踪组件。进一步的,电子设备110接收对跟踪组件的参数配置后,可以生成用于跟踪物理对象140的事件。下文以物理手柄为例,向其对应的虚拟手柄添加跟踪组件,从而对各参数及其对应的属性值进行介绍。
在一些实施例中,与事件相关联的参数指示目标对象。在图3的示例中,参数名称栏312包括参数1、参数2、参数3以及参数4。参数1可以是目标对象的标识,例如类型、名称、编号,等等,其用于指示目标虚拟部分将根据物理空间中的哪个对象而被操纵。例如,参数1可以显示为设备类型,其对应的属性值1可以包括左手柄、右手柄、XR头盔、左手、右手,等等。又例如,参数1还可以显示为目标对象的一部分的类型,其对应的属性值1可以包括X键、Y键、摇杆,等等。
附加地或备选地,与事件相关联的参数可以指示操纵目标虚拟部分要利用的目标对象的状态。例如,参数2可以显示为跟踪目标对象的状态,其对应的属性值2可以包括跟踪位置和姿态、仅跟踪位置、仅跟踪姿态。
附加地或备选地,与事件相关联的参数可以指示利用目标对象操纵目标虚拟部分的时机。例如,参数3可以显示为跟踪数据更新的时机,其对应的属性值3可以包括逻辑更新时和渲染前都更新跟踪数据、仅逻辑更新时更新跟踪数据、仅渲染前更新跟踪数据。用户120可以根据逻辑的需要和延迟的可接受度选择参数3对应的属性值。如果某个逻辑中需要使用这个跟踪数据,需要在逻辑更新时更新跟踪数据。如果这个跟踪组件所在的层级结构需要绘制一个模型,希望跟踪延迟尽量的少,则需要在渲染前更新跟踪数据。
P22121791201CN
附加地或备选地,与事件相关联的参数可以指示在虚拟对象被载入虚拟场景后目标对象的连接性。在编辑状态,可以不用设置该参数。在运行状态(在虚拟对象被载入虚拟场景后),可以根据目标对象的连接性设置或自动获取该参数。例如,参数4可以显示为设备状态,其对应的属性值1可以包括失去连接、连接中、已连接。
由此,基于设备类型、跟踪目标对象的状态、跟踪数据更新的时机,电子设备110可以添加针对物理手柄或按键的跟踪事件。应当理解,以上仅为示例性描述。电子设备110可以根据目标对象和事件呈现其他参数,本公开对参数的数量和属性值不做限制。
在一些实施例中,虚拟对象160对应于物理空间中的物理对象140,并且目标对象包括物理对象的至少一部分。例如,物理对象140为右手柄,虚拟对象160为在虚拟场景中表示右手柄的虚拟右手柄。相应地,目标对象可以为右手柄的一部分,例如右手柄上的按键。
在一些实施例中,电子设备110可以运行编辑器开发工具。在编辑器开发工具中,电子设备110可以接收针对组件的设计指令,以新建组件或编辑组件。例如,电子设备110可以新建一个用于跟踪的组件,并编写组件的参数及其属性值的UI反射代码。在图2的示例中,这样的组件可以在编辑器101中被添加到层级结构210的节点,从而实现对该组件的呈现和配置。附加地或备选地,在图3的示例中,在组件的参数面板310中呈现属性值的用户界面(UI)样式,是根据属性的数据类型,由编辑器开发工具的UI反射系统自动进行匹配的,从而实现统一、通用、规范的效果。UI样式例如包括数字滑动条、下拉框、勾选框、UI间距、大小,等等。
在一些实施例中,电子设备110可以生成用于呈现虚拟对象160的目标数据。这样的目标数据可以指示目标事件。进一步的,电子设备110可以将目标数据存储在与虚拟场景的呈现相关联的预定存储位置。例如,在编辑器101中,电子设备110接收对跟踪组件的参数配置,并保存为虚拟场景资产文件包。这样的虚拟场景资产文件包可以包括虚拟对象160的模型数据以及跟踪组件的数据。将其放入XR设P22121791201CN
备130指定的存储目录下(例如图形引擎102读取虚拟场景的目录),即可在虚拟场景150中呈现虚拟对象160及其跟踪效果。以此方式,可以快速为虚拟场景添加可执行特定事件(例如跟踪事件)的虚拟对象。
以上描述了向目标虚拟部分添加事件。下面来描述在虚拟对象160被载入虚拟场景150后,如何利用物理空间中的目标对象来操纵目标虚拟部分。图形引擎102可以操纵目标虚拟部分。以上文提及的ECS架构作为图形引擎102的示例架构来进行描述,但这仅是示例性的,其他适当的架构也是可以的。在ECS架构中,系统(System)是处理拥有一个或多个组件的实体的工具。系统可以根据组件的数据处理实体的逻辑状态。以下通过图4详细描述。
图4示出了根据本公开的一些实施例的图形引擎的示例架构400的示意图。架构400可以实现在XR设备130处。以下参考图1描述架构400。
架构400总体上包括实体410、组件420以及系统430。常规的,为了绘制虚拟场景,XR应用会集成图形引擎和3D编辑器。图形引擎的架构例如为基于ECS的架构。3D编辑器用于生产和提供图形引擎运行时的资源数据。为了快速为虚拟场景添加能够利用目标对象进行操纵的虚拟对象,架构400在图形引擎和3D编辑器的框架下进行功能扩展。
继续以为物理手柄为例。在ECS架构之内,扩展架构440包括跟踪组件422和跟踪系统432。图形引擎102通过读取虚拟场景资产文件包,加载在编辑器101中为目标虚拟部分添加和编辑的跟踪组件422。跟踪系统432用于对跟踪数据进行处理以实现跟踪物理手柄的功能。在ECS架构之外,扩展架构440还包括跟踪数据获取及转换单元450和渲染缓冲申请及绘制单元460。跟踪数据获取及转换单元450用于根据跟踪物理手柄的类型和方式获取物理手柄的跟踪数据。渲染缓冲申请及绘制单元460用于根据操纵目标虚拟部分的时机申请渲染和绘制虚拟对象。
P22121791201CN
为了提供物理手柄的跟踪数据,架构400还包括XR设备软件层470、左手柄跟踪数据获取单元480L以及右手柄跟踪数据获取单元480R。物理手柄例如包括左手柄、右手柄以及对应的惯性测量单元(Inertial Measurement Unit,IMU)。IMU用于测量物理手柄的位姿数据。左手柄跟踪数据获取单元480L向XR设备软件层470提供左手柄的位姿数据。右手柄跟踪数据获取单元480R向XR设备软件层470提供右手柄的位姿数据。XR设备软件层470将左手柄/右手柄的位姿数据透传至扩展架构440。
图5示出了根据本公开的一些实施例的示例虚拟场景500的示意图。虚拟场景500可以实现在XR设备130处。以下参考图1和图4描述示例500。
虚拟场景500包括对应左手柄的左虚拟手柄160L以及对应右手柄的右虚拟手柄160R。以右手柄及右虚拟手柄160R为例。在编辑器101中,电子设备110向右虚拟手柄160R对应的根节点添加跟踪组件,接收对跟踪组件的各个参数的配置并保存为虚拟场景资产文件包。图形引擎102读取虚拟场景资产文件包,并在虚拟场景500中呈现右虚拟手柄160R和跟踪效果。具体地,参考图4的示例,跟踪数据获取及转换单元450调用XR设备软件层470的API接口,以获取右手柄的位姿数据。进一步的,跟踪数据获取及转换单元450将右手柄的位姿数据进行坐标转换,例如转换到与物理坐标系匹配的虚拟坐标系中,该虚拟坐标系是图形引擎描述虚拟场景的坐标系。跟踪系统432基于跟踪组件422的参数设置以及转换后的位姿数据,确定右虚拟手柄160R在当前帧的位姿。如果在跟踪组件422的参数设置时选择了仅在渲染前更新位姿数据,则跟踪系统432根据右手柄的位姿数据更新右虚拟手柄160R在每一帧的位姿,再经由渲染缓冲申请及绘制单元460、渲染组件421以及渲染系统431实现利用右手柄的位姿数据持续操纵右虚拟手柄单元160R,以改变其在虚拟场景500中的位姿。
在一些实施例中,图形引擎102可以通过改变目标虚拟部分在虚拟场景中的定向(orientation),来操纵目标虚拟部分。在这种情况下,P22121791201CN
所跟踪的是目标对象的定向。例如,跟踪系统432根据右手柄的定向数据改变右虚拟手柄160R在每一帧的定向,以实现操纵右虚拟手柄160R。附加地或备选地,图形引擎102可以改变目标虚拟部分在虚拟场景中的位置。也即,所跟踪的是目标对象的位置。例如,跟踪系统432根据右手柄的位置数据改变右虚拟手柄160R在每一帧的位置。附加地或备选地,图形引擎102可以改变目标虚拟部分的样式。也即,所跟踪的是目标对象的样式。例如,跟踪系统432读取跟踪组件422中的参数配置数据,根据其指示的呈现样式改变目标虚拟部分的样式。样式可以包括但不限于颜色、纹理、皮肤等。
在一些实施例中,虚拟对象160对应于物理空间中的物理对象140并且目标对象包括物理对象的至少一部分。例如,物理对象140为右手柄,虚拟对象160为对应的右虚拟手柄。目标对象为右手柄上的按键。左手柄和右手柄可以包括不同的物理部分,例如不同功能或数量的按键。电子设备110向编辑器101添加对应左手柄或右手柄的模型资源文件。基于这样的模型资源文件,呈现对应于手柄按键的虚拟按键的层级结构。
综上所述,根据本公开的各个实施例,在编辑器101中为虚拟对象添加具备跟踪能力的组件。在图形引擎102中扩展架构,以提供虚拟对象跟踪目标对象的配置能力。在做相关场景资产生产时可以免去程序开发的人力,使得开发人员可以快速且便捷地为虚拟场景添加可跟踪目标对象的虚拟对象。
示例过程
图6示出了根据本公开的一些实施例的用于编辑虚拟对象的方法600的流程图。方法600可以被实现在电子设备110和/或图形引擎102处。下面参考图1描述方法600。
在框610,电子设备110向用于编辑虚拟对象的编辑器,添加描述虚拟对象的元数据。在框620,基于元数据,呈现虚拟对象的多个虚拟部分的层级结构。在框630,响应于对多个虚拟部分中的目标虚P22121791201CN
拟部分的选择,添加针对目标虚拟部分的事件,以使得目标虚拟部分在虚拟对象被载入虚拟场景后,能够利用物理空间中的目标对象而被操纵。
在一些实施例中,电子设备110响应于对目标虚拟部分的选择,呈现与事件相关联的参数;以及基于针对参数的输入,生成事件。
在一些实施例中,参数指示以下至少一项:目标对象,操纵目标虚拟部分要利用的目标对象的状态,利用目标对象操纵目标虚拟部分的时机,在虚拟对象被载入虚拟场景后目标对象的连接性。
在一些实施例中,方法600还包括:电子设备110生成用于呈现虚拟对象的目标数据,目标数据指示事件;以及将目标数据存储在与虚拟场景的呈现相关联的预定存储位置。
在一些实施例中,方法600还包括:图形引擎102基于事件和物理空间中的物理对象的状态,确定目标对象的状态,目标对象是物理对象的至少一部分;以及基于目标对象的状态,操纵目标虚拟部分。
在一些实施例中,操纵目标虚拟部分包括以下至少一项:改变目标虚拟部分在虚拟场景中的定向,改变目标虚拟部分在虚拟场景中的位置,改变目标虚拟部分的样式。
在一些实施例中,虚拟对象对应于物理空间中的物理对象,并且目标对象包括物理对象的至少一部分。
示例装置和设备
图7示出了根据本公开的某些实施例的用于编辑虚拟对象的装置700的示意性结构框图。装置700可以被实现为或者被包括在电子设备110和/或XR设备130中。装置700中的各个模块/组件可以由硬件、软件、固件或者它们的任意组合来实现。
如图所示,装置700包括元数据添加模块710,被配置为向用于编辑虚拟对象的编辑器,添加描述虚拟对象的元数据。装置700还包括层级结构呈现模块720,被配置为基于元数据,呈现虚拟对象的多个虚拟部分的层级结构。装置700还包括事件添加模块730,被配置P22121791201CN
为响应于对多个虚拟部分中的目标虚拟部分的选择,添加针对目标虚拟部分的事件,以使得目标虚拟部分在虚拟对象被载入虚拟场景后,能够利用物理空间中的目标对象而被操纵。
在一些实施例中,事件添加模块730进一步被配置为:响应于对目标虚拟部分的选择,呈现与事件相关联的参数;以及基于针对参数的输入,生成事件。
在一些实施例中,参数指示以下至少一项:目标对象,操纵目标虚拟部分要利用的目标对象的状态,利用目标对象操纵目标虚拟部分的时机,在虚拟对象被载入虚拟场景后目标对象的连接性。
在一些实施例中,装置700还包括:目标数据生成模块,被配置为生成用于呈现虚拟对象的目标数据,目标数据指示事件;以及目标数据存储模块,被配置为将目标数据存储在与虚拟场景的呈现相关联的预定存储位置。
在一些实施例中,装置700还包括:状态确定模块,被配置为基于事件和物理空间中的物理对象的状态,确定目标对象的状态,目标对象是所述物理对象的至少一部分;以及目标虚拟部分操纵模块,被配置为基于目标对象的状态,操纵目标虚拟部分。
在一些实施例中,目标虚拟部分操纵模块包括以下至少一项:定向改变模块,被配置为改变目标虚拟部分在虚拟场景中的定向,位置改变模块,被配置为改变目标虚拟部分在虚拟场景中的位置,样式改变模块,被配置为改变目标虚拟部分的样式。
在一些实施例中,虚拟对象对应于物理空间中的物理对象,并且目标对象包括物理对象的至少一部分。
图8示出了示出了其中可以实施本公开的一个或多个实施例的电子设备800的框图。应当理解,图8所示出的电子设备800仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。图8所示出的电子设备800可以用于实现图1的电子设备110和/或XR设备130。
如图8所示,电子设备800是通用电子设备的形式。电子设备800P22121791201CN的组件可以包括但不限于一个或多个处理器或处理单元810、存储器820、存储设备830、一个或多个通信单元840、一个或多个输入设备850以及一个或多个输出设备860。处理单元810可以是实际或虚拟处理器并且能够根据存储器820中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高电子设备800的并行处理能力。
电子设备800通常包括多个计算机存储介质。这样的介质可以是电子设备800可访问的任何可以获取的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器820可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备830可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在电子设备800内被访问。
电子设备800可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图8中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器820可以包括计算机程序产品825,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。
通信单元840实现通过通信介质与其他电子设备进行通信。附加地,电子设备800的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,电子设备800可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
输入设备850可以是一个或多个输入设备,例如鼠标、键盘、追P22121791201CN
踪球等。输出设备860可以是一个或多个输出设备,例如显示器、扬声器、打印机等。电子设备800还可以根据需要通过通信单元840与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与电子设备800交互的设备进行通信,或者与使得电子设备800与一个或多个其他电子设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。
这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得P22121791201CN
在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
Claims (10)
1.一种编辑虚拟对象的方法,包括:
向用于编辑虚拟对象的编辑器,添加描述所述虚拟对象的元数据;
基于所述元数据,呈现所述虚拟对象的多个虚拟部分的层级结构;以及
响应于对所述多个虚拟部分中的目标虚拟部分的选择,添加针对所述目标虚拟部分的事件,以使得所述目标虚拟部分在所述虚拟对象被载入虚拟场景后,能够利用物理空间中的目标对象而被操纵。
2.根据权利要求1所述的方法,其中添加所述事件包括:
响应于对所述目标虚拟部分的选择,呈现与所述事件相关联的参数;以及
基于针对所述参数的输入,生成所述事件。
3.根据权利要求2所述的方法,其中所述参数指示以下至少一项:
所述目标对象,
操纵所述目标虚拟部分要利用的所述目标对象的状态,
利用所述目标对象操纵所述目标虚拟部分的时机,
在所述虚拟对象被载入所述虚拟场景后所述目标对象的连接性。
4.根据权利要求1所述的方法,还包括:
生成用于呈现所述虚拟对象的目标数据,所述目标数据指示所述事件;以及
将所述目标数据存储在与所述虚拟场景的呈现相关联的预定存储位置。
5.根据权利要求1所述的方法,还包括:
基于所述事件和所述物理空间中的物理对象的状态,确定所述目标对象的状态,所述目标对象是所述物理对象的至少一部分;以及
基于所述目标对象的状态,操纵所述目标虚拟部分。
6.根据权利要求5所述的方法,其中操纵所述目标虚拟部分包括以下至少一项:
改变所述目标虚拟部分在虚拟场景中的定向,
改变所述目标虚拟部分在虚拟场景中的位置,
改变所述目标虚拟部分的样式。
7.根据权利要求1所述的方法,其中所述虚拟对象对应于所述物理空间中的物理对象,并且所述目标对象包括所述物理对象的至少一部分。
8.一种用于编辑虚拟对象的装置,包括:
元数据添加模块,被配置为向用于编辑虚拟对象的编辑器,添加描述所述虚拟对象的元数据;
层级结构呈现模块,被配置为基于所述元数据,呈现所述虚拟对象的多个虚拟部分的层级结构;以及
事件添加模块,被配置为响应于对所述多个虚拟部分中的目标虚拟部分的选择,添加针对所述目标虚拟部分的事件,以使得所述目标虚拟部分在所述虚拟对象被载入虚拟场景后,能够利用物理空间中的目标对象而被操纵。
9.一种电子设备,包括:
至少一个处理单元;以及
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令在由所述至少一个处理单元执行时使所述电子设备执行根据权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可由处理器执行以实现根据权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310187030.7A CN116185197A (zh) | 2023-02-21 | 2023-02-21 | 用于编辑虚拟对象的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310187030.7A CN116185197A (zh) | 2023-02-21 | 2023-02-21 | 用于编辑虚拟对象的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185197A true CN116185197A (zh) | 2023-05-30 |
Family
ID=86442121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310187030.7A Pending CN116185197A (zh) | 2023-02-21 | 2023-02-21 | 用于编辑虚拟对象的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185197A (zh) |
-
2023
- 2023-02-21 CN CN202310187030.7A patent/CN116185197A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI808393B (zh) | 頁面處理方法、裝置、設備及儲存媒體 | |
US12079626B2 (en) | Methods and systems for creating applications using scene trees | |
US11902377B2 (en) | Methods, systems, and computer program products for implementing cross-platform mixed-reality applications with a scripting framework | |
JP4812337B2 (ja) | フォームタイプを使用してフォームを生成する方法および装置 | |
CN111860167B (zh) | 人脸融合模型获取及人脸融合方法、装置及存储介质 | |
CN109887069B (zh) | 在屏幕上显示3d场景图的方法 | |
US20090240654A1 (en) | File Access Via Conduit Application | |
CN106484394A (zh) | 一种双引擎快速软件开发系统 | |
CN113535165A (zh) | 界面生成方法、装置、电子设备及计算机可读存储介质 | |
US10902548B2 (en) | Frame invalidation control with causality attribution | |
CN111045707B (zh) | 小程序的更新方法、装置、计算机设备和存储介质 | |
US10896373B1 (en) | Determining comprehensibility of a graphical model in a graphical modeling environment | |
CN108351888B (zh) | 生成可推迟数据流 | |
CN116185197A (zh) | 用于编辑虚拟对象的方法、装置、设备和存储介质 | |
CN113419806B (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN112734882B (zh) | 图像处理方法、装置 | |
CN111625379B (zh) | 一种信息处理的方法、装置、电子设备和可读存储介质 | |
CN110930499B (zh) | 一种3d数据处理方法及装置 | |
CN106445487B (zh) | 用于控制交互式组件的处理单元、软件以及方法 | |
CN114332350A (zh) | 一种三维模型的显示方法、系统、电子设备和存储介质 | |
CN115309495A (zh) | 一种虚拟机中数据的遍历方法及相关装置 | |
CN118656067A (zh) | 可视化编程界面的操作方法、装置、设备、介质及产品 | |
US20090064098A1 (en) | Method and system for scenario-based visualization | |
CN117311567A (zh) | 基于导航树的对象数据展示方法、装置、电子设备及介质 | |
US9159160B1 (en) | Texture sharing between application modules |
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 |