一种基于3D引擎的运行时编辑方法及系统与流程

文档序号:26104048发布日期:2021-07-30 18:16阅读:126来源:国知局
一种基于3D引擎的运行时编辑方法及系统与流程

本申请涉及互联网技术领域,尤其涉及基于3d引擎的运行时编辑方法及系统。



背景技术:

近年来,随着虚拟现实(virtualreality,vr),增强现实(augmentedreality,ar),混合现实(mixedreality,mr)和xr(xreality,x表示一个未知变量)等技术的迅速发展,可以实现虚拟现实(vr)、增强现实(ar)、混合现实(mr)、xr等不同场景。目前,现有的基于3d引擎而开发的编辑器软件无法实现直接对场景、关卡、材质等进行实时编辑,保存;往往需要开发者手动来编写专门的代码来完成此功能,无法满足自动化功能。

因此,期望提供一种基于3d引擎的运行时编辑方法及系统,通过反射和序列化的技术,能够实时将基于mono开发的组件对象中的属性、字段、方法暴露出来并保存,从而方便对象属性、场景等资源编辑和自动化保存加载。



技术实现要素:

根据本申请的一些实施例的第一方面,提供了一种基于3d引擎的运行时编辑方法,应用于终端(例如,电子设备等)中,所述方法可以包括:利用反射技术,暴露基于mono开发的组件对象中各种类型的变量;根据变量类型,自动创建对应类型的ui输出值;调整ui中的值,实时自动将ui输出值应用到变量中;完成对象状态的编辑,所述对象状态的编辑包括通用的属性编辑;利用序列化技术,将对象状态的信息转换为可存储文件并存储。

在一些实施例中,所述利用序列化技术包括:根据自定义序列化工具,自动反射自定义类的变量;选择自定义类的变量,创建自定义的持久化类。

在一些实施例中,所述序列化技术包括protobuffer序列化技术。

在一些实施例中,所述利用protobuffer序列化技术包括将对象状态的信息数据存储为至少一个二进制文件,输出到磁盘文件进行存储。

在一些实施例中,所述将对象状态的信息转换为可存储文件并存储还包括:读取存储的文件并反序列化对象状态,恢复原有数据值。

在一些实施例中,所述对象状态的信息包括组件的属性信息、材质的颜色信息、物体的位置信息、场景信息。

在一些实施例中,所述利用反射技术包括利用c#的反射原理,暴露变量并封装成通用接口。

在一些实施例中,所述对象包括场景、材质、组件。

在一些实施例中,所述暴露对象中各种类型的变量包括将3d引擎对象中的属性、字段、方法暴露出来。

根据本申请的一些实施例的第二方面,提供了一个系统,所述系统包括:一个存储器,被配置为存储数据及指令;一个与存储器建立通信的处理器,其中,当执行存储器中的指令时,所述处理器被配置为:利用反射技术,暴露基于mono开发的组件对象中各种类型的变量;根据变量类型,自动创建对应类型的ui输出值;调整ui中的值,实时自动将ui输出值应用到变量中;完成对象状态的编辑,所述对象状态的编辑包括通用的属性编辑;利用序列化技术,将对象状态的信息转换为可存储文件并存储。

因此,根据本申请的一些实施例的基于3d引擎的运行时编辑方法及系统,通过反射和序列化的技术,能够实时将基于mono开发的组件对象中的属性、字段、方法暴露出来并保存,从而方便对象属性、场景等资源编辑和自动化保存加载。

附图说明

为更好地理解并阐述本申请的一些实施例,以下将结合附图参考实施例的描述,在这些附图中,同样的数字编号在附图中指示相应的部分。

图1是根据本申请的一些实施例提供的基于3d引擎的运行时编辑系统的示例性示意图。

图2是根据本申请的一些实施例提供的基于3d引擎的运行时编辑方法的示例性流程图。

具体实施方式

以下参考附图的描述为便于综合理解由权利要求及其等效内容所定义的本申请的各种实施例。这些实施例包括各种特定细节以便于理解,但这些仅被视为示例性的。因此,本领域技术人员可以理解对在此描述的各种实施例进行各种变化和修改而不会脱离本申请的范围和精神。另外,为简要并清楚地描述本申请,本申请将省略对公知功能和结构的描述。

在以下说明书和权利要求书中使用的术语和短语不限于字面含义,而是仅为能够清楚和一致地理解本申请。因此,对于本领域技术人员,可以理解,提供对本申请各种实施例的描述仅仅是为说明的目的,而不是限制所附权利要求及其等效定义的本申请。

下面将结合本申请一些实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一”、“一个”、“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个相绑定的列出项目的任何或所有可能组合。表达“第一”、“第二”、“所述第一”和“所述第二”是用于修饰相应元件而不考虑顺序或者重要性,仅仅被用于区分一种元件与另一元件,而不限制相应元件。

根据本申请一些实施例的终端可以是电子设备,该电子设备可以包括个人电脑(pc,例如平板电脑、台式电脑、笔记本、上网本、掌上电脑pda)、客户端设备、虚拟现实设备(vr)、增强现实设备(ar)、混合现实设备(mr)、xr设备、渲染机、智能手机、移动电话、电子书阅读器、便携式多媒体播放器(pmp)、音频/视频播放器(mp3/mp4)、摄像机和可穿戴设备等中的一种或几种的组合。根据本申请的一些实施例,所述可穿戴设备可以包括附件类型(例如手表、戒指、手环、眼镜、或头戴式装置(hmd))、集成类型(例如电子服装)、装饰类型(例如皮肤垫、纹身或内置电子装置)等,或几种的组合。在本申请的一些实施例中,所述电子设备可以是灵活的,不限于上述设备,或者可以是上述各种设备中的一种或几种的组合。在本申请中,术语“用户”可以指示使用电子设备的人或使用电子设备的设备(例如人工智能电子设备)。

本申请实施例提供了一种基于3d引擎的运行时编辑方法及系统。为了便于理解本申请实施例,以下将参考附图对本申请实施例进行详细描述。

图1是根据本申请的一些实施例提供的基于3d引擎的运行时编辑系统的示例性示意图。如图1所述,基于3d引擎的运行时编辑系统100可以包括网络110、控制端120、用户端130和服务器140等。具体的,控制端120与用户端130在通过网络建立通信,例如,控制端120与用户端130可以在同一个局域网(比如,同一个路由器的网络环境等)中通信。进一步,控制端120可以通过有线(例如,网线等)或无线(例如,云端服务器等)等方式与网络110连接,用户端130可以通过有线或无线(例如,wifi等)等方式与网络110建立通信连接。在一些实施例中,用户端130可以向控制端120、服务器140发送对象状态信息等。进一步地,控制端120、服务器140可以向用户端130反馈ui输出值等信息。根据反馈的信息,用户端130可以调整ui中的值,实时自动将ui输出值应用到变量中。作为示例,服务器140可以获取用户端130的位置信息等,所述位置信息可以包括但不限于用户位置信息,物体位置信息等。

根据本申请的一些实施例,控制端120、用户端130可以为相同或不同的终端设备等。所述终端设备可以包括但不限于智能终端,移动终端,计算机,渲染机等。在vr场景中,控制端120可以包括计算机等,用户端130可以包括头显设备和手柄设备等。在一些实施例中,控制端120和用户端130可以集成在一个设备中,例如,vr一体机、智能终端(例如,平板、手机)等。在一些实施例中,服务器140是计算机的一种,具有比普通计算机运行更快、负载更高等优势,而相对应的价格更高昂。在网络环境中,服务器可以为其它客户机(例如,pc机、智能手机、atm等终端,以及交通系统等大型设备)提供计算或者应用服务。服务器具有高速的cpu运算能力、长时间的可靠运行、强大的i/o外部数据吞吐能力以及更好的扩展性。所述服务器可以提供的服务包括但不限于承担响应服务请求、承担服务、保障服务的能力等。所述服务器作为电子设备,具有极其复杂的内部结构,包括与普通计算机相近的内部结构等,作为示例,所述服务器的内部结构可以包括中央处理器(centralprocessingunit,cpu)、硬盘、内存,系统、系统总线等。

在本申请的一些实施例中,基于3d引擎的运行时编辑系统100可以省略一个或多个元件,或者可以进一步包括一个或多个其它元件。作为示例,基于3d引擎的运行时编辑系统100可以包括多个用户端130,如多个vr设备等。又例如,基于3d引擎的运行时编辑系统100可以包括多个控制端120。再例如,基于3d引擎的运行时编辑系统100可以包括多个服务器140等。在一些实施例中,基于3d引擎的运行时编辑系统100可以包括但不限于基于3d引擎的运行时编辑器的系统。网络110可以为任意类型的通信网络,所述通信网络可以包括计算机网络(例如,局域网(lan,localareanetwork)或广域网(wan,wideareanetwork))、互联网和/或电话网络等,或几种的组合。在一些实施例中,网络110可以为其他类型的无线通信网络。所述无线通信可以包括微波通信和/或卫星通信等。所述无线通信可以包括蜂窝通信,例如,全球移动通信(gsm,globalsystemformobilecommunications)、码分多址(cdma,codedivisionmultipleaccess)、第三代移动通信(3g,the3rdgenerationtelecommunication)、第四代移动通信(4g)、第五代移动通信(5g)、第六代移动通信(6g)、长期演进技术(lte,longtermevolution)、长期演进技术升级版(lte-a,lte-advanced)、宽带码分多址(wcdma,widebandcodedivisionmultipleaccess)、通用移动通信系统(umts,universalmobiletelecommunicationssystem)、无线宽带(wibro,wirelessbroadband)等,或几种的组合。在一些实施例中,用户端130可以为其他具备同等功能模块的电子设备,该电子设备可以包括虚拟现实设备(vr)、渲染机、个人电脑(pc,例如平板电脑、台式电脑、笔记本、上网本、掌上电脑pda)、智能手机、移动电话、电子书阅读器、便携式多媒体播放器(pmp)、音频/视频播放器(mp3/mp4)、摄像机和可穿戴设备等中的一种或几种的组合。

在一些实施例中,所述wifi可以为其他类型的无线通信技术。根据本申请的一些实施例,所述无线通信可以包括无线局域网(wifi,wirelessfidelity)、蓝牙、低功耗蓝牙(ble,bluetoothlowenergy)、紫蜂协议(zigbee)、近场通讯(nfc,nearfieldcommunication)、磁安全传输、射频和体域网(ban,bodyareanetwork)等,或几种的组合。根据本申请的一些实施例,所述有线通信可以包括全球导航卫星系统(glonass/gnss,globalnavigationsatellitesystem)、全球定位系统(gps,globalpositionsystem)、北斗导航卫星系统或伽利略(欧洲全球卫星导航系统)等。所述有线通信可以包括通用串行总线(usb,universalserialbus)、高清多媒体接口(hdmi,high-definitionmultimediainterface)、推荐标准232(rs-232,recommendstandard232)、和/或简易老式电话服务(pots,plainoldtelephoneservice)等,或几种的组合。

需要说明的是,以上对于基于3d引擎的运行时编辑系统100的描述,仅为描述方便,并不能把本申请限制在所举实施例的范围之内。可以理解,对于本领域技术人员,基于本系统的原理,可能在不背离该原理的前提下,对各个元件进行任意组合,或者构成子系统与其他元件连接,对实施上述方法和系统的应用领域进行形式和细节上的各种修正和改变。例如,控制端120和用户端130可以集成在一个设备中等。诸如此类的变形,均在本申请的保护范围之内。

图2是根据本申请的一些实施例提供的基于3d引擎的运行时编辑方法的示例性流程图。如图2所述,流程200可以通过基于3d引擎的运行时编辑系统100实现。在一些实施例中,所述基于3d引擎的运行时编辑方法200可以自动启动或通过指令启动。所述指令可以包括系统指令、设备指令、用户指令、动作指令等,或几种的组合。

在201,利用反射技术,暴露基于mono开发的组件对象中各种类型的变量。操作201可以通过基于3d引擎的运行时编辑系统100的控制端120、用户端130、服务器140实现。在一些实施例中,控制端120和/或服务器140可以利用反射技术,暴露基于mono开发的组件对象中各种类型的变量。在一些实施例中用户端130可以获取对象中各种类型的变量。作为示例,控制端120和/或服务器140可以利用c#的反射原理,暴露变量并封装成通用接口。所述对象可以包括但不限于场景、材质、组件、物件等中的一种或几种的组合。作为示例,c#可以完整地支持面向对象,通过mono的桥接,使得高效的c++图形引擎与带gc的内存安全语言进行结合,在c#中,万物皆类,基于3d引擎内使用c#不但能调用3d引擎引擎本身的功能,还能调用.net平台提供的大部分功能。

根据本申请的一些实施例,控制端120和/或服务器140可以将基于mono开发的组件对象中的属性、字段、方法暴露出来,并封装成通用接口。所述基于mono开发的组件对象可以包括但不限于unity对象等,所述unity对象中的属性、字段、方法可以暴露出来,并封装成通用接口。所述对象中的属性、字段、方法可以包括但不限于场景、材质、组件、物件等的属性、字段、方法。

在202,根据变量类型,自动创建对应类型的ui输出值。操作202可以通过基于3d引擎的运行时编辑系统100的控制端120、服务器140实现。在一些实施例中,控制端120和/或服务器140可以根据变量类型,自动创建对应类型的ui输出值。作为示例,所述自动创建对应类型的ui输出值,可以用于用户端130的ui显示。在一些实施例中,所述显示在用户端130的ui可以在特定场景中实现,所述场景可以包括但不限于vr,ar,mr,xr任一场景或组合的场景。

在203,调整ui中的值,实时自动将ui输出值应用到变量中。操作203可以通过基于3d引擎的运行时编辑系统100的控制端120、服务器140实现。在一些实施例中,控制端120和/或服务器140可以调整ui中的值,实时自动将ui输出值应用到变量中。作为示例,控制端120和/或服务器140可以通过调整ui中的值,实时自动将ui输出值应用到用户端130的变量中。用户端130可以实时自动更新变量的ui输出值。

在204,完成对象状态的编辑,所述对象状态的编辑包括通用的属性编辑。操作204可以通过基于3d引擎的运行时编辑系统100的服务器140和/或控制端120实现。在一些实施例中,服务器140和/或控制端120可以根据ui输出值等完成对象状态的编辑,所述对象状态的编辑可以包括通用的属性编辑。作为示例,用户端130可以根据服务器140和/或控制端120的编辑,实时自动更新对象状态及通用的属性。

在205,利用序列化技术,将对象状态的信息转换为可存储文件并存储。操作205可以通过基于3d引擎的运行时编辑系统100的服务器140、控制端120、用户端130实现。在一些实施例中,服务器140和/或控制端120可以根据利用序列化技术,将对象状态的信息转换为可存储文件并存储。作为示例,用户端130可以存储所述对象状态信息转换的可存储文件等。

根据本申请的一些实施例,所述利用序列化技术可以进一步包括根据自定义序列化工具,自动反射自定义类的变量;并通过选择自定义类的变量,创建自定义的持久化类。所述序列化技术可以包括protobuffer序列化技术。所述利用protobuffer序列化技术可以包括将对象状态的信息数据存储为至少一个二进制文件,输出到磁盘文件进行存储。

根据本申请的一些实施例,所述将对象状态的信息转换为可存储文件并存储进一步包括读取存储的文件并反序列化对象状态,恢复原有数据值。作为示例,通过读取用户端存储的二进制文件,并反序列化对象状态,可以恢复原有对象状态的数据值。根据本申请的一些实施例,所述对象状态的信息可以包括但不限于组件的属性信息、材质的颜色信息、物体的位置信息、场景信息等中的一种或几种的组合。

根据本申请的一些实施例,本申请可以搭建一个场景并保存场景物体,用于实现恢复保存后的场景等。作为示例,本申请可以对一栋建筑(如房屋等)的具体细节进行搭建构造,所述具体细节可以包括但不限于墙壁的布置,桌椅的颜色调节等;保存所述搭建的建筑及其具体细节至一个文件,通过打开所述文件以恢复所述搭建的建筑及其具体细节。需要注意的是,本申请基于3d引擎的运行时编辑系统可以搭建多种场景及其具体细节,所述场景可以包括但不限于建筑物、自然物、天体物等中的一种或几种的组合;所述具体细节可以包括但不限于人物、动物、植物、物体等中的一种或几种的组合的各种细节。

需要说明的是,以上对于流程200的描述,仅为描述方便,并不能把本申请限制在所举实施例的范围之内。可以理解,对于本领域技术人员,基于本系统的原理,可能在不背离该原理的前提下,对各个操作进行任意组合,或者构成子流程与其它操作组合,对实施上述流程和操作的功能进行形式和细节上的各种修正和改变。例如,流程200可以进一步包括读取存储的文件并反序列化对象状态,恢复原有数据值等操作。诸如此类的变形,均在本申请的保护范围之内。

综上所述,根据本申请实施例的基于3d引擎的运行时编辑系统可以包括运行基于3d引擎的运行时编辑器的系统。根据本申请实施例的基于3d引擎的运行时编辑方法及系统,通过反射和序列化的技术,能够实时将基于mono开发的组件对象中的属性、字段、方法暴露出来并保存,从而方便对象属性、场景等资源编辑和自动化保存加载。

需要注意的是,上述的实施例仅仅是用作示例,本申请不限于这样的示例,而是可以进行各种变化。

需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,所述的程序可存储于一计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(read-onlymemory,rom)或随机存储器(randomaccessmemory,ram)等。

以上所揭露的仅为本申请一些优选的实施例,不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。

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