CN114130017A - 基于游戏引擎的界面部署方法、装置、设备及存储介质 - Google Patents

基于游戏引擎的界面部署方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114130017A
CN114130017A CN202111490297.0A CN202111490297A CN114130017A CN 114130017 A CN114130017 A CN 114130017A CN 202111490297 A CN202111490297 A CN 202111490297A CN 114130017 A CN114130017 A CN 114130017A
Authority
CN
China
Prior art keywords
component
interface
target
virtual scene
target function
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
Application number
CN202111490297.0A
Other languages
English (en)
Inventor
谢元新
朱超颖
吴彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202111490297.0A priority Critical patent/CN114130017A/zh
Publication of CN114130017A publication Critical patent/CN114130017A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/63Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • A63F2300/308Details of the user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请提供了一种基于游戏引擎的界面部署方法、装置、设备、存储介质及计算机程序产品;方法包括:在游戏引擎的编辑界面中,接收到针对虚拟场景的界面的部署指令,呈现包括目标功能组件的至少一个供选择的功能组件;该功能组件用于当部署于虚拟场景的界面时,能够基于虚拟场景的界面触发相应的业务功能;响应于针对目标功能组件的选择操作,呈现对应目标功能组件的组件配置界面;基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数;当接收到针对虚拟场景的界面的部署完成指令时,通过游戏引擎,基于组件配置参数,输出承载有目标功能组件的虚拟场景的界面;通过本申请,能够提高虚拟场景的界面的部署效率。

Description

基于游戏引擎的界面部署方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于游戏引擎的界面部署方法、装置、设备、存储介质及计算机程序产品。
背景技术
相关技术中,通常是由美术人员根据策划需求设计完成界面后,直接交由程序人员对设计的界面进行逻辑开发,从而实现虚拟场景的界面开发。而策划人员无法介入到开发流程中,更无法根据需求调整、修改UI界面的配置和部署,当需要对虚拟场景的界面进行修改时,仍需要程序人员重新进行逻辑开发,影响界面部署效率。
发明内容
本申请实施例提供一种基于游戏引擎的界面部署方法、装置、设备、存储介质及计算机程序产品,能够提高虚拟场景的界面的部署效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种基于游戏引擎的界面部署方法,包括:
在游戏引擎的编辑界面中,接收到针对虚拟场景的界面的部署指令,呈现包括目标功能组件的至少一个供选择的功能组件;
其中,所述功能组件,用于当部署于所述虚拟场景的界面时,能够基于所述虚拟场景的界面触发相应的业务功能;
响应于针对所述目标功能组件的选择操作,呈现对应所述目标功能组件的组件配置界面;
基于所述组件配置界面,接收到输入的针对所述目标功能组件的组件配置参数;
当接收到针对所述虚拟场景的界面的部署完成指令时,通过游戏引擎,基于所述组件配置参数,输出承载有所述目标功能组件的虚拟场景的界面。
本申请实施例还提供一种基于游戏引擎的界面部署装置,包括:
第一呈现模块,用于在游戏引擎的编辑界面中,接收到针对虚拟场景的界面的部署指令,呈现包括目标功能组件的至少一个供选择的功能组件;
其中,所述功能组件,用于当部署于所述虚拟场景的界面时,能够基于所述虚拟场景的界面触发相应的业务功能;
第二呈现模块,用于响应于针对所述目标功能组件的选择操作,呈现对应所述目标功能组件的组件配置界面;
接收模块,用于基于所述组件配置界面,接收到输入的针对所述目标功能组件的组件配置参数;
输出模块,用于当接收到针对所述虚拟场景的界面的部署完成指令时,通过游戏引擎,基于所述组件配置参数,输出承载有所述目标功能组件的虚拟场景的界面。
上述方案中,所述第一呈现模块,还用于接收到针对虚拟场景的界面的部署指令,呈现用于部署所述功能组件的添加功能项;
响应于针对所述添加功能项的触发操作,呈现对应所述功能组件的下拉选择功能框;
响应于针对所述下拉选择功能框的触发操作,呈现包括目标功能组件的至少一个供选择的功能组件。
上述方案中,所述第一呈现模块,还用于当所述功能组件的数量为多个、且所述功能组件的数量达到目标数量时,呈现对应所述功能组件的滚动条;
所述第一呈现模块,还用于呈现供选择的至少一个功能组件,并
当呈现的功能组件不包括所述目标功能组件时,响应于针对所述滚动条的滑动操作,同步调整所呈现的功能组件,直至呈现所述目标功能组件。
上述方案中,所述第一呈现模块,还用于呈现对应所述至少一个供选择的功能组件的搜索功能项;
所述第二呈现模块,还用于基于所述搜索功能项,接收到输入的所述目标功能组件的标识信息;
基于所述标识信息,在所述搜索功能项的关联区域呈现所述目标功能组件;
响应于针对所述目标功能组件的触发操作,呈现对应所述目标功能组件的组件配置界面。
上述方案中,所述接收模块,还用于对所述组件配置参数进行序列化处理,得到对应的序列化配置参数;
所述输出模块,还用于对所述序列化配置参数进行反序列化处理,得到所述组件配置参数;
获取所述目标功能组件对应的可执行代码,并将所述组件配置参数和所述可执行代码进行融合,得到融合后的可执行代码;
运行所述融合后的可执行代码,以输出承载有所述目标功能组件的虚拟场景的界面。
上述方案中,所述接收模块,还用于将所述组件配置参数进行字符转换,得到对应的参数字符串;
获取所述目标功能组件对应的数据结构,并
按照所述数据结构,基于所述参数字符串生成所述序列化配置参数。
上述方案中,所述装置还包括:
创建模块,用于创建所述虚拟场景的界面对应的界面部件;
在所述界面部件上,创建至少一种业务类型对应的基类功能组件;
在各所述基类功能组件上,创建具有相应业务类型的业务功能的子类功能组件,作为所述功能组件。
上述方案中,所述接收模块,还用于通过所述基类功能组件,将所述组件配置参数传输至所述界面部件,并存储于所述界面部件;
所述输出模块,还用于通过所述界面部件,将所述组件配置参数传输至所述目标功能组件,以使所述目标功能组件将所述组件配置参数,融合至所述目标功能组件对应的可执行代码中,得到融合后的可执行代码;
通过所述界面部件,驱动所述目标功能组件运行所述融合后的可执行代码,以输出承载有所述目标功能组件的虚拟场景的界面。
上述方案中,所述输出模块,还用于确定所述目标功能组件所归属的目标基类功能组件;
通过所述界面部件,调用所述目标基类功能组件对应的接口,驱动所述目标功能组件运行所述融合后的可执行代码。
上述方案中,所述创建模块,还用于针对各所述功能组件,创建对应所述功能组件的至少一个参数配置项;
所述第二呈现模块,还用于响应于针对所述目标功能组件的选择操作,获取所述目标功能组件对应的至少一个目标参数配置项;
呈现对应所述目标功能组件的组件配置界面,并在所述组件配置界面中,呈现所述至少一个目标参数配置项。
上述方案中,所述第一呈现模块,还用于在所述游戏引擎的编辑界面中,呈现界面预览区域;
所述输出模块,还用于通过所述界面预览区域,输出承载有所述目标功能组件的虚拟场景的界面。
上述方案中,所述第一呈现模块,还用于呈现对应所述目标功能组件的删除功能项;
所述输出模块,还用于响应于针对所述删除功能项的触发操作,删除所述虚拟场景界面中部署的所述目标功能组件;
当再次接收到针对所述虚拟场景的界面的部署完成指令时,输出未承载有所述目标功能组件的虚拟场景的界面。
本申请实施例还提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的基于游戏引擎的界面部署方法。
本申请实施例还提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时,实现本申请实施例提供的基于游戏引擎的界面部署方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时,实现本申请实施例提供的基于游戏引擎的界面部署方法。
本申请实施例具有以下有益效果:
在游戏引擎的编辑界面中,当接收到针对虚拟场景的界面的部署指令时,呈现包括目标功能组件的至少一个供选择的功能组件;当接收到针对目标功能组件的选择操作时,呈现对应目标功能组件的组件配置界面;基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数;当接收到针对虚拟场景的界面的部署完成指令时,通过游戏引擎,基于组件配置参数,输出承载有目标功能组件的虚拟场景的界面;
这里,该功能组件用于当部署于虚拟场景的界面时,能够基于虚拟场景的界面触发相应的业务功能。策划人员可以根据业务功能需求选择对应的功能组件,并通过组件配置界面进行参数配置,以得到需要的虚拟场景界面。如此,策划人员可以参与到界面开发流程中,根据需求部署、调整虚拟场景的界面,无需程序人员重新进行逻辑开发,提高了虚拟场景的界面的部署效率。
附图说明
图1是本申请实施例提供的基于游戏引擎的界面部署系统100的架构示意图;
图2是本申请实施例提供的实施基于游戏引擎的界面部署方法的电子设备500的结构示意图;
图3是本申请实施例提供的基于游戏引擎的界面部署方法的流程示意图;
图4是本申请实施例提供的功能组件的显示示意图;
图5是本申请实施例提供的功能组件的显示示意图;
图6是本申请实施例提供的组件配置界面的显示示意图;
图7是本申请实施例提供的序列化组件配置参数的数据流向示意图;
图8是本申请实施例提供的反序列化组件配置参数的数据流向示意图;
图9是本申请实施例提供的虚拟场景的界面的显示示意图;
图10是本申请实施例提供的功能组件的创建流程图;
图11是本申请实施例提供界面的部署流程示意图;
图12是相关技术中提供的界面的逻辑示意图;
图13是本申请实施例提供的基类功能组件的逻辑示意图;
图14是本申请实施例提供的子类功能组件的逻辑示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)客户端,终端中运行的用于提供各种服务的应用程序,例如虚拟场景客户端(如游戏客户端)。
2)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
3)虚拟场景,利用设备输出的区别于现实世界的场景,通过裸眼或设备的辅助能够形成对虚拟场景的视觉感知,例如通过显示屏幕输出的二维影像,通过立体投影、虚拟现实和增强现实技术等立体显示技术来输出的三维影像;此外,还可以通过各种可能的硬件形成听觉感知、触觉感知、嗅觉感知和运动感知等各种模拟现实世界的感知。
4)LiteWidgetComponent:即基类功能组件,为轻量化、高复用、用于承担逻辑功能的UI组件,具备对应的业务类型。
5)Component:即子类功能组件,具备对应的业务功能;
6)LiteUserWidget:即界面部件,用于基于LiteWidgetComponent的接口驱动Component运行。
7)序列化和反序列化:是指将对象转换成字节流,从而存储对象或将对象传输到内存、数据库或文件等的过程,主要用途是保存对象的状态,以便能够在需要时重新创建对象。反向过程称为“反序列化”,通俗来说就是保存和读取的过程分别为序列化和反序列化。
8)游戏引擎,是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如Linux、Mac OS X、微软Windows。游戏引擎包含以下系统:渲染引擎(即渲染器,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
本申请实施例提供一种基于游戏引擎的界面部署方法、装置、设备、存储介质及计算机程序产品,能够提高虚拟场景的界面的部署效率。
下面说明本申请实施例提供的基于游戏引擎的界面部署方法的实施场景。参见图1,图1是本申请实施例提供的基于游戏引擎的界面部署系统100的架构示意图,为实现支撑一个示例性应用,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
终端400,用于在游戏引擎的编辑界面中,接收到针对虚拟场景的界面的部署指令,发送包括目标功能组件的至少一个供选择的功能组件的组件获取请求至服务器200;
服务器200,用于接收并响应于组件获取请求,返回包括目标功能组件的至少一个供选择的功能组件至终端400;
终端400,用于接收并呈现包括目标功能组件的至少一个供选择的功能组件;响应于针对目标功能组件的选择操作,呈现对应目标功能组件的组件配置界面;基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数;当接收到针对虚拟场景的界面的部署完成指令时,通过游戏引擎,基于组件配置参数,输出承载有目标功能组件的虚拟场景的界面。其中,该功能组件,用于当部署于虚拟场景的界面时,能够基于虚拟场景的界面触发相应的业务功能。
在一些实施例中,本申请实施例提供的基于游戏引擎的界面部署方法可以由各种电子设备实施,例如,可以由终端单独实施,也可以由服务器单独实施,也可以由终端和服务器协同实施。例如终端独自执行下文所述的基于游戏引擎的界面部署方法,或者,终端和服务器协同执行下文所述的基于游戏引擎的界面部署方法。
在一些实施例中,本申请实施例提供的实施基于游戏引擎的界面部署的电子设备可以是各种类型的终端设备或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例对此不做限制。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的基于游戏引擎的界面部署方法,举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Applic ation),即需要在操作系统中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
在一些实施例中,多个服务器可组成为一区块链,而服务器为区块链上的节点,区块链中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,本申请实施例提供的基于游戏引擎的界面部署方法所相关的数据(例如至少一个功能组件)可保存于区块链上。
下面说明本申请实施例提供的实施基于游戏引擎的界面部署方法的电子设备。参见图2,图2是本申请实施例提供的实施基于游戏引擎的界面部署方法的电子设备500的结构示意图。以电子设备500为图1所示的终端为例,本申请实施例提供的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的基于游戏引擎的界面部署装置可以采用软件方式实现,图2示出了存储在存储器550中的基于游戏引擎的界面部署装置555,其可以是程序和插件等形式的软件,包括以下软件模块:第一呈现模块5551、第二呈现模块5552、接收模块5553和输出模块5554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的基于游戏引擎的界面部署装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的基于游戏引擎的界面部署装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的基于游戏引擎的界面部署方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Devic e)、复杂可编程逻辑器件(CPLD,Complex ProgrammableLogic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面说明本申请实施例提供的基于游戏引擎的界面部署方法。在一些实施例中,本申请实施例提供的基于游戏引擎的界面部署方法可以由各种电子设备实施,例如,可以由终端单独实施,也可以由服务器单独实施,也可以由终端和服务器协同实施。以终端实施为例,参见图3,图3是本申请实施例提供的基于游戏引擎的界面部署方法的流程示意图,本申请实施例提供的基于游戏引擎的界面部署方法包括:
步骤101:终端在游戏引擎的编辑界面中,接收到针对虚拟场景的界面的部署指令,呈现包括目标功能组件的至少一个供选择的功能组件。
其中,功能组件,用于当部署于虚拟场景的界面时,能够基于虚拟场景的界面触发相应的业务功能。该游戏引擎可以是虚幻引擎。
这里,终端设置有游戏引擎,该游戏引擎可以用于供用户(比如游戏策划人员)进行虚拟场景的界面的部署。在实际应用中,终端运行游戏引擎并呈现游戏引擎的编辑界面,用户可以基于该编辑界面对虚拟场景的界面进行部署。当终端基于编辑界面接收到针对虚拟场景的界面的部署指令时,响应于部署指令,呈现包括目标功能组件的至少一个供选择的功能组件。该功能组件可以是预先开发的,每个功能组件具备相应的业务功能,比如动画播放功能组件可以用于动画播放、声音播放功能组件可以用于声音播放、虚拟对象的生命值显示组件可以实时显示虚拟对象的生命值等等。当该功能组件部署于虚拟场景的界面时,(比如用户)能够基于虚拟场景的界面触发相应的业务功能。
在一些实施例中,终端可通过如下方式呈现包括目标功能组件的至少一个供选择的功能组件:接收到针对虚拟场景的界面的部署指令,呈现用于部署功能组件的添加功能项;响应于针对添加功能项的触发操作,呈现对应功能组件的下拉选择功能框;响应于针对下拉选择功能框的触发操作,呈现包括目标功能组件的至少一个供选择的功能组件。
作为示例,参见图4,图4是本申请实施例提供的功能组件的显示示意图。这里,接收到针对虚拟场景的界面的部署指令,呈现用于部署功能组件的添加功能项“+”,如图4中A图所示;响应于针对添加功能项的触发操作,呈现对应功能组件的下拉选择功能框,如图4中B图所示;响应于针对下拉选择功能框的触发操作,呈现包括目标功能组件的至少一个供选择的功能组件,比如AnimLiteWidgetComponent、CustomLiteWidgetComponent等,如图4中C图所示。
在一些实施例中,当功能组件的数量为多个、且功能组件的数量达到目标数量时,终端可呈现对应功能组件的滚动条;相应的,终端可通过如下方式:呈现供选择的至少一个功能组件,并当呈现的功能组件不包括目标功能组件时,响应于针对滚动条的滑动操作,同步调整所呈现的功能组件,直至呈现目标功能组件。
这里,功能组件可以呈现于组件显示区域中,由于组件显示区域所能显示的功能组件有限,因此,当功能组件的数量为多个、且功能组件的数量达到目标数量(该目标数量可以是组件显示区域所能显示的功能组件的数量最大值)时,终端可呈现对应功能组件的滚动条。用户可以通过触发针对滚动条的滑动操作,调整所显示的功能组件,从而查看到当前未显示的功能组件。
作为示例,参见图5,图5是本申请实施例提供的功能组件的显示示意图。这里,终端呈现供选择的至少一个功能组件,并呈现对应功能组件的滚动条,如图5中A图所示;当呈现的功能组件不包括目标功能组件“AnimLiteWidgetComponent”时,若用户需要查看到目标功能组件“AnimLiteWidgetComponent”时,可通过触发针对滚动条的滑动操作,此时终端响应于针对滚动条的滑动操作,同步调整所呈现的功能组件,直至呈现目标功能组件“AnimLiteWidgetComponent”,如图5中B图所示。
步骤102:响应于针对目标功能组件的选择操作,呈现对应目标功能组件的组件配置界面。
这里,当用户需要在虚拟场景的界面中部署目标功能组件时,可以触发针对目标功能组件的选择操作。终端响应于针对目标功能组件的选择操作,可以呈现对应目标功能组件的组件配置界面。该组件配置界面中可以包含目标功能组件对应的参数配置项,比如当目标功能组件为动画播放功能组件时,该参数配置项可以为播放速度、播放模式(比如循环播放、播放结束暂停等)、播放内容等等。从而基于组件配置参数,供用户设置目标功能组件的组件配置参数。
在一些实施例中,终端可针对各功能组件,创建对应功能组件的至少一个参数配置项;相应的,终端可通过如下方式呈现对应目标功能组件的组件配置界面:响应于针对目标功能组件的选择操作,获取目标功能组件对应的至少一个目标参数配置项;呈现对应目标功能组件的组件配置界面,并在组件配置界面中,呈现至少一个目标参数配置项。
这里,在提供给用户(比如虚拟场景的策划人员)使用功能组件进行界面部署之前,可以针对各功能组件,创建对应功能组件的至少一个参数配置项。比如当目标功能组件为动画播放功能组件时,该参数配置项可以为播放速度、播放模式(比如循环播放、播放结束暂停等)、播放内容等等。从而当基于组件配置参数,设置目标功能组件的组件配置参数时,可以通过调整或者输入对应参数配置项的参数值,实现针对目标功能组件的组件参数配置,得到目标功能组件的组件配置参数。
基于此,当终端接收到针对目标功能组件的选择操作时,响应于针对目标功能组件的选择操作,获取目标功能组件对应的至少一个目标参数配置项,从而在呈现对应目标功能组件的组件配置界面时,在组件配置界面中呈现该至少一个目标参数配置项。
在一些实施例中,终端可呈现对应至少一个供选择的功能组件的搜索功能项;相应的,终端可通过如下方式呈现对应目标功能组件的组件配置界面:基于搜索功能项,接收到输入的目标功能组件的标识信息;基于标识信息,在搜索功能项的关联区域呈现目标功能组件;响应于针对目标功能组件的触发操作,呈现对应目标功能组件的组件配置界面。
这里,终端在呈现至少一个供选择的功能组件时,还可以呈现对应至少一个供选择的功能组件的搜索功能项,该搜索功能项,用于供基于搜索功能项输入想要选择的目标功能组件,从而提高虚拟场景的界面部署效率。
作为示例,参见图6,图6是本申请实施例提供的组件配置界面的显示示意图。这里,终端在现至少一个供选择的功能组件时,还可以呈现对应至少一个供选择的功能组件的搜索功能项,如图6中A图所示;基于搜索功能项,接收到输入的目标功能组件的标识信息“AnimLiteWidgetComponent”,并基于该标识信息,在搜索功能项的关联区域呈现目标功能组件,如图6中B图所示;响应于针对目标功能组件的触发操作,呈现对应目标功能组件的组件配置界面,该组件配置界面中包括目标功能组件对应的参数配置项,比如目标功能组件为动画播放组件,参数配置项包括动画设置(Animations Settings)、动画内容(AnimationWBP)、动画数值(Animations Valiable),如图6中C图所示。
步骤103:基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数。
这里,终端呈现目标功能组件的组件配置界面后,用户可基于该组件配置界面对目标功能组件的组件参数进行配置。终端基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数。
步骤104:当接收到针对虚拟场景的界面的部署完成指令时,通过游戏引擎,基于组件配置参数,输出承载有目标功能组件的虚拟场景的界面。
这里,当终端基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数后,即用户针对目标功能组件配置相应的组件配置参数后,若确定针对虚拟场景的界面的部署完成时,则可以触发针对虚拟场景的界面的部署完成指令。终端当接收到针对虚拟场景的界面的部署完成指令时,通过游戏引擎,基于组件配置参数,输出承载有目标功能组件的虚拟场景的界面。如此,能够基于该承载有目标功能组件的虚拟场景的界面,触发目标功能组件对应的业务功能。
在实际实施时,上述部署完成指令即为针对虚拟场景的界面包含的目标功能组件的逻辑程序的运行指令,当接收到针对虚拟场景的界面的部署完成指令时,则运行该目标功能组件的逻辑程序所对应的可执行代码,输出承载有目标功能组件的虚拟场景的界面。
在实际实施时,用户可以在触发针对虚拟场景的界面的部署完成指令之前,可以多次部署所需要的功能组件,每次均可以基于上述步骤101-步骤103在虚拟场景的界面中部署功能组件,该每次部署的功能组件可以和之前部署的功能组件相同,也可以不同。如此,可以在部署虚拟场景的界面时,根据需要部署各种功能组件,并通过运行所部署的虚拟场景的界面,查看到虚拟场景的界面的部署效果。
在一些实施例中,当基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数之后,终端可对组件配置参数进行序列化处理,得到对应的序列化配置参数;相应的,终端可通过如下方式输出承载有目标功能组件的虚拟场景的界面:对序列化配置参数进行反序列化处理,得到组件配置参数;获取目标功能组件对应的可执行代码,并将组件配置参数和可执行代码进行融合,得到融合后的可执行代码;运行融合后的可执行代码,以输出承载有目标功能组件的虚拟场景的界面。
这里,当基于组件配置界面接收到输入的针对目标功能组件的组件配置参数之后,可以触发针对组件配置参数的存储指令。当终端接收到针对组件配置参数的存储指令时,对组件配置参数进行序列化处理,该序列化处理的过程即为对组件配置参数进行存储的过程,具体是将组件配置参数转换为字符串(或字节流)并存储于相应的存储位置,比如可以存储于数据库中,也可存储于内存中,得到序列化配置参数。
基于此,当终端输出承载有目标功能组件的虚拟场景的界面时,可以先对序列化配置参数进行反序列化处理,得到组件配置参数,即从存储位置中读取到组件配置参数。同时,还可以获取目标功能组件对应的可执行代码,并将反序列化得到的组件配置参数和可执行代码进行融合,得到融合后的可执行代码。在实际实施时,该可执行代码为目标功能组件对应的业务功能的运行逻辑,并不包含目标功能组件的具体组件参数,因此,此时可以将组件配置参数设置(输入)到可执行代码的对应部分,以得到目标功能组件对应的、融合有组件配置参数的可执行代码。然后运行融合后的可执行代码,以输出承载有目标功能组件的虚拟场景的界面。
在一些实施例中,终端可通过如下方式对组件配置参数进行序列化处理,得到序列化配置参数:将组件配置参数进行字符转换,得到对应的参数字符串;获取目标功能组件对应的数据结构,并按照数据结构,基于参数字符串生成序列化配置参数。
这里,终端在对组件配置参数进行序列化处理时,首先将组件配置参数进行字符转换,得到对应的参数字符串,该参数字符串可以为二进制字符串。然后获取目标功能组件对应的数据结构,该数据结构用于指示参数字符串的存储时的数据结构。从而可以按照该数据结构,基于参数字符串生成序列化配置参数以存储。在实际应用中,数据结构可以包含目标功能组件的种类标识(即所对应的业务类型的标识)结构和配置信息结构,如此,可以将目标功能组件的种类标识添加至种类标识结构,将组件配置参数对应的参数字符串添加至配置信息结构中,得到序列化配置参数,在实际实施时,参数字符串可以为Key-Value形式。
在一些实施例中,终端可通过如下方式创建功能组件:创建虚拟场景的界面对应的界面部件;在界面部件上,创建至少一种业务类型对应的基类功能组件;在各基类功能组件上,创建具有相应业务类型的业务功能的子类功能组件,作为功能组件。
这里,上述用于部署虚拟场景的界面的各个功能组件可以是预先开发设置的,比如可以是虚拟场景的界面的程序开发人员预先开发的功能组件。在实际实施时,首先基于游戏引擎,创建虚拟场景的界面对应的界面部件,具体是创建LiteUserWidget;然后,在界面部件上创建至少一种业务类型对应的基类功能组件,具体是创建对应各种业务类型(比如动画播放、声音播放等)对应的LiteWidgetComponent,通过基类功能组件负责定义基本的接口,比如Construct、Desturct、Tick;最后,在各基类功能组件上,创建具有相应业务类型的业务功能的子类功能组件,作为上述功能组件,具体是创建子类Component,通过子类Component负责实现各自的业务功能。
在一些实施例中,当基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数之后,终端可通过基类功能组件,将组件配置参数传输至界面部件,并存储于界面部件;相应的,终端可通过如下方式输出承载有目标功能组件的虚拟场景的界面:通过界面部件,将组件配置参数传输至目标功能组件,以使目标功能组件将组件配置参数,融合至目标功能组件对应的可执行代码中,得到融合后的可执行代码;通过界面部件,驱动目标功能组件运行融合后的可执行代码,以输出承载有目标功能组件的虚拟场景的界面。
这里,当基于组件配置界面接收到输入的针对目标功能组件的组件配置参数之后,可以触发针对组件配置参数的存储指令。当终端接收到针对组件配置参数的存储指令时,对组件配置参数进行存储。在本申请实施例中,终端可通过基类功能组件,将组件配置参数传输至界面部件,并存储于界面部件。
在实际实施时,对组件配置参数进行序列化处理。具体地,将组件配置参数转换为字符串(或字节流)并通过调用数据导出接口(即ExportText接口)将组件配置参数传输至界面部件进行存储,得到序列化配置参数,可以记做ComponentSetting。参见图7,图7是本申请实施例提供的序列化组件配置参数的数据流向示意图。这里,通过基类功能组件LiteWidgetComponent(比如图7所示的LiteWidgetComponent1),调用ExportText接口将组件配置参数传输至界面部件LiteUserWidget,并存储于界面部件LiteUserWidget中。如此,界面部件LiteUserWidget中可以存储多个功能组件对应的序列化配置参数。
基于此,当终端输出承载有目标功能组件的虚拟场景的界面时,可以先对序列化配置参数进行反序列化处理,得到组件配置参数,即从存储位置中读取到组件配置参数。由于在序列化时序列化配置参数中存储有目标功能组件的种类标识,因此可以基于该种类标识,通过界面部件将组件配置参数设置到目标功能组件的可执行代码中。
在实际实施时,通过界面部件将组件配置参数设置到目标功能组件的可执行代码中的过程如下:通过界面部件调用数据导入接口(即ImportText接口)将组件配置参数传入目标功能组件。参见图8,图8是本申请实施例提供的反序列化组件配置参数的数据流向示意图。这里,通过界面部件LiteUserWidget,调用ImportText接口将组件配置参数传入目标功能组件LiteWidgetComponent(比如图8所示的LiteWidgetComponent1)。
继续地,目标功能组件接收到界面部件传入的组件配置参数后,将组件配置参数和目标功能组件对应的可执行代码进行融合,得到融合后的可执行代码。在实际实施时,该可执行代码为目标功能组件对应的业务功能的运行逻辑,并不包含目标功能组件的具体组件参数,因此,此时可以将组件配置参数设置(输入)到可执行代码的对应部分,以得到目标功能组件对应的、融合有组件配置参数的可执行代码。
然后运行融合后的可执行代码,以输出承载有目标功能组件的虚拟场景的界面。具体地,通过界面部件驱动目标功能组件运行融合后的可执行代码,以输出承载有目标功能组件的虚拟场景的界面。
在一些实施例中,终端可通过如下方式驱动目标功能组件运行融合后的可执行代码:确定目标功能组件所归属的目标基类功能组件;通过界面部件,调用目标基类功能组件对应的接口,驱动目标功能组件运行融合后的可执行代码。
这里,终端可首先确定目标功能组件所归属的目标基类功能组件。然后通过界面部件,调用目标基类功能组件对应的接口,驱动目标功能组件运行融合后的可执行代码。在实际实施时,通过界面部件LiteUserWidget的Construct、Destruct、Tick等方法中,调用目标基类功能组件对应的接口,驱动目标功能组件运行融合后的可执行代码。
在一些实施例中,终端可在游戏引擎的编辑界面中,呈现界面预览区域;相应的,终端可通过如下方式输出承载有目标功能组件的虚拟场景的界面:通过界面预览区域,输出承载有目标功能组件的虚拟场景的界面。
这里,终端还可以在游戏引擎的编辑界面中,呈现界面预览区域;如此,当输出承载有目标功能组件的虚拟场景的界面时,则可以通过界面预览区域,输出承载有目标功能组件的虚拟场景的界面。
在一些实施例中,终端可呈现对应目标功能组件的删除功能项;相应的,终端响应于针对删除功能项的触发操作,删除虚拟场景界面中部署的目标功能组件;当再次接收到针对虚拟场景的界面的部署完成指令时,输出未承载有目标功能组件的虚拟场景的界面。
这里,终端还可以呈现对应目标功能组件的删除功能项。可基于该删除功能项删除虚拟场景界面中部署的目标功能组件。在实际应用中,终端响应于针对删除功能项的触发操作,删除虚拟场景界面中部署的目标功能组件;当再次接收到针对虚拟场景的界面的部署完成指令时,输出未承载有目标功能组件的虚拟场景的界面。
作为示例,参见图9,图9是本申请实施例提供的虚拟场景的界面的显示示意图。这里,通过界面预览区域,输出承载有目标功能组件“动画播放组件”的虚拟场景的界面,同时在编辑界面中显示有对应目标功能组件的删除功能项“-”,如图9中A图所示;响应于针对删除功能项的触发操作,删除虚拟场景界面中部署的目标功能组件,当再次接收到针对虚拟场景的界面的部署完成指令时,通过界面预览区域,输出未承载有目标功能组件“动画播放组件”的虚拟场景的界面,如图9中B图所示。
应用本申请上述实施例,在游戏引擎的编辑界面中,当接收到针对虚拟场景的界面的部署指令时,呈现包括目标功能组件的至少一个供选择的功能组件;当接收到针对目标功能组件的选择操作时,呈现对应目标功能组件的组件配置界面;基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数;当接收到针对虚拟场景的界面的部署完成指令时,通过游戏引擎,基于组件配置参数,输出承载有目标功能组件的虚拟场景的界面;
这里,该功能组件用于当部署于虚拟场景的界面时,能够基于虚拟场景的界面触发相应的业务功能。策划人员可以根据业务功能需求选择对应的功能组件,并通过组件配置界面进行参数配置,以得到需要的虚拟场景界面。如此,策划人员可以参与到界面开发流程中,根据需求部署虚拟场景的界面,无需程序人员重新进行逻辑开发,提高了虚拟场景的界面的部署效率。
下面说明本申请实施例在一个实际的应用场景中的示例性应用。以虚拟场景的界面为游戏界面、游戏引擎为虚幻引擎为例,对本申请实施例提供的基于游戏引擎的界面部署方法进行说明。
首先对本申请实施例涉及的名词进行解释,包括:
1)虚幻引擎4(Unreal Engine 4,UE4),游戏开发工具,可用来开发手游、端游、游戏机端游戏。
2)虚幻动态图形UI设计器(Unreal Motion Graphics UI Designer,UMG):UE4引擎中的UI系统,是一款视觉UI创作工具,可用于创作想要呈现给用户的UI元素,比如游戏内的HUD、菜单或与界面相关的其他图形。
3)UMG编辑器:UE4引擎中专门用来编辑UI的编辑器工具。
4)编辑器工具:游戏开发制作工程中开发者用来处理资源、调整配置、调整效果的工具。
5)UserWidget:UE4引擎中UI界面的基础类,所有UI界面都是一个UserWidget,上述LiteUserWidget可继承于UserWidget。
相关技术中,虚拟场景的UI界面通常是美术人员使用UE4的UMG编辑器来设计UserWidget,程序人员利用UE4提供的蓝图功能来对UserWidget进行逻辑开发;或者在C++层面用代码来继承UserWidget,比如参见图12,图12是相关技术中提供的界面的逻辑示意图,这里,首先创建一个MyUserWidget,在Native PreConstruct接口、Native Construct接口、以及Native Tick接口中定义并实现自己的逻辑,从而实现UI界面的开发。
但是,1)策划人员无法介入开发流程,更无法调整、修改UI界面的配置和部署,比如UserWidget是否拥有某项功能、是否能同时具有多项功能、各项功能的配置参数是否能调整等,策划人员均无法修改;2)复用性低,由于逻辑和UserWidget是绑定的,只能实现逻辑和UserWidget的同时复用,即把做好的UserWidget当成一个UI元素在别的UserWidget中复用,无法把某一部分的逻辑单独复用给其他UserWidget;3)UserWidget的继承只支持单继承,无法同时继承A UserWidget和B UserWidget的功能,当继承A UserWidget的功能时,B UserWidget的功能逻辑则需要重复开发,使得一份逻辑往往需要程序人员重复开发多次,造成代码冗余或者代码耦合。
基于此,本申请实施例提供了一种利用组件式思想进行针对性解决的方案,能够兼容UE4原有开发方式。在本申请实施例中,一个LiteUserWidget可以驱动多个LiteWidgetComponent以实现相应Component的业务功能,程序人员可以通过LiteWidgetComponent开发对应各种业务功能的Component供策划人员使用,策划人员通过自由组合Component达到复用和设计的目的。
接下来从产品侧对本申请实施例提供的基于游戏引擎的界面部署方法进行说明。对于虚拟场景的UI界面的策划人员而言,可以对一个LiteUserWidget进行组件式的拼装、组合、调整。在实际应用中,参见图4和图9,策划人员可以在Components里选择添加或删除当前部署的UI界面中的Component;当在当前部署的UI界面中添加了目标Component之后,会显示对应目标Component的组件配置界面,参见图6中C图所示,组件配置界面中包含多个配置项,方便策划人员对目标Component进行参数配置。
本申请实施例提供的编辑器工具类,包括:
1)LiteUserWidgetDetails:用于定制修改LiteUserWidget的Details界面,把各个Component的Details界面(即上述组件配置界面)显示到LiteUserWidget的Details界面上,供策划人员在界面部署时对选择的Component进行参数配置;同时将策划人员对Component的配置参数序列化保存,用于运行时传入Component的业务逻辑,以使策划人员看到对应的UI界面。
2)XXXLiteWidgetComponentDetails(即上述组件配置界面):用于根据各个Component的业务逻辑的需要,定制修改相应Component的Details界面;也可不修改,保持默认。
本申请实施例提供的运行时的类,包括:
1)LiteUserWidget:继承自UserWidget的类,负责驱动具备业务功能的Component。在创建初始化时,将编辑器下保存的组件配置参数反序列化到对应的Component中。
其中,序列化和反序列化的流程包括:
在LiteUserWidgetDetails中,在配置完成Component的参数后进行保存,这时会触发序列化机制。具体地,为每个Component分配一个ComponentSetting的数据结构,内部包含Component的种类标识(即Component Type)和配置信息结构。Component的各种类型不同的参数统一转化成字符串,通过Property的ExportText接口导出字符串至LiteUserWidget,形成Key-Value形式,配置信息结构即是多个Key-Value的组合。
比如某个Component的ComponentSetting如下所示:
“Component Type”:“AnimationWidgetComponent”;
“Config”:“AnimWidget”:“LeftBanner”;“AnimType”:“FlyFromLeft”;“FlyingSpeed”:“5”。
如此,LiteUserWidget会记录多个Component的ComponentSetting。参见图7,在序列化时数据流向是:通过ExportText接口将Component的组件配置参数导出至LiteUserWidget。
其中,LiteUserWidget驱动Component的流程包括:
LiteUserWidget拥有UE4系统提供的Initialize、Construct、Destruct等接口。Component的接口执行的时机与UE4系统提供的一致,LiteUserWidget能够在接口中驱动相对应的Component的具体接口。
这里,LiteUserWidget在初始化(即initialize)时,先根据其存储的ComponentSetting,生成对应的Component,并将ComponentSetting中的组件配置参数设置到对应的Component的业务逻辑中。具体可通过Property的ImportText接口,将字符串反序列化为属性,从而将ComponentSetting中的组件配置参数设置到对应的Component的业务逻辑中。参见图8,在反序列化时数据流向是:通过ImportText接口将LiteUserWidget的组件配置参数导入Component的业务逻辑中。最后调用各个Component的initialize接口,以驱动各个Component。
如此,LiteUserWidget在Construct、Destruct、Tick等方法中,调用各个LiteWidgetComponent的对应的接口,即可达到驱动各个Component的目的。
2)LiteWidgetComponent:对应各种业务类型的基类功能组件,负责定义基本的接口,比如Construct、Desturct、Tick。如图13所示,图13是本申请实施例提供的基类功能组件的逻辑示意图。这里,创建LiteWidgetComponent,然后分别定义PreConstruct接口、Construct接口、Desturct接口以及Tick接口,实现对应各种业务类型的基类功能组件。
3)XXXLiteWidgetComponent(即上述Component):对应各种业务功能的Component子类,负责实现各自的业务逻辑,提供相应的业务功能,供策划人员在部署界面时选择使用。
如图14所示,图14是本申请实施例提供的子类功能组件的逻辑示意图。这里,程序开发播放动画类型的Component(即AnimLiteWidgetComponent),并定义相应的接口,包括Initialize接口、NativeConstruct接口和NativeDestruct接口,持有这个Component的UserWidget可以拥有播放动画的功能。Component具有的接口和UserWidget类似,调用时机也一样,因此开发逻辑和引擎原生的方案相同,之前用引擎原生方案开发的功能也能很快移植到Component上。
参见图10,图10是本申请实施例提供的功能组件的创建流程图,对应于程序人员,包括:201:创建XXXLiteWidgetComponent(即上述Component);202:在XXXLiteWidgetComponent上,开发业务逻辑(即业务功能);203:创建XXXLiteWidgetComponentDetails;204:根据策划人员需要修改XXXLiteWidgetComponentDetails,定制Component的Details页面(上述组件配置界面)。如此,则可以交付策划使用。
参见图11,图11是本申请实施例提供界面的部署流程示意图,对应于策划人员,包括:301:在编辑器下选择需要的Component,并在Component的Details界面进行参数配置;302:保存时序列化配置完成的组件配置参数;303:运行时,在初始化Component的过程中,反序列化组件配置参数,将组件配置参数输入到Component的业务逻辑中;304:根据参数运行业务逻辑,输出对应的UI界面效果。
这里,本申请实施例中是LiteUserWidget来进行组件配置参数的序列化和反序列化,也可以利用UE4提供的序列化方式来进行。LiteUserWidget增加、减少Component的界面是在Details界面下实现的,采用的是UE原本的增加组件的方式,也可以自定义成更易用、更符合策划人员使用风格的Details界面。
应用本申请上述实施例,1)对程序人员来说,开发Component和原来开发UserWidget几乎一样,开发成本并没有上升;Component的内部结构、LiteUserWidget的驱动逻辑也不复杂,对性能开销的增加可以忽略;Component可以复用于多个LiteUserWidget界面,代码耦合问题得到了解决。2)对策划人员来说,在开发迭代过程中拥有了更高的参与度和自由度,既可以在开发UI界面时,自由地组合选择Component来给UserWidget调整功能,也可以通过Component组件对应的Details页面配置每个Component的参数,非常方便迭代。
可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面继续说明本申请实施例提供的基于游戏引擎的界面部署装置555的实施为软件模块的示例性结构。在一些实施例中,如图2所示,存储在存储器550的基于游戏引擎的界面部署装置555中的软件模块可以包括:
第一呈现模块5551,用于在游戏引擎的编辑界面中,接收到针对虚拟场景的界面的部署指令,呈现包括目标功能组件的至少一个供选择的功能组件;
其中,所述功能组件,用于当部署于所述虚拟场景的界面时,能够基于所述虚拟场景的界面触发相应的业务功能;
第二呈现模块5552,用于响应于针对所述目标功能组件的选择操作,呈现对应所述目标功能组件的组件配置界面;
接收模块5553,用于基于所述组件配置界面,接收到输入的针对所述目标功能组件的组件配置参数;
输出模块5554,用于当接收到针对所述虚拟场景的界面的部署完成指令时,通过游戏引擎,基于所述组件配置参数,输出承载有所述目标功能组件的虚拟场景的界面。
在一些实施例中,所述第一呈现模块5551,还用于接收到针对虚拟场景的界面的部署指令,呈现用于部署所述功能组件的添加功能项;响应于针对所述添加功能项的触发操作,呈现对应所述功能组件的下拉选择功能框;响应于针对所述下拉选择功能框的触发操作,呈现包括目标功能组件的至少一个供选择的功能组件。
在一些实施例中,所述第一呈现模块5551,还用于当所述功能组件的数量为多个、且所述功能组件的数量达到目标数量时,呈现对应所述功能组件的滚动条;所述第一呈现模块5551,还用于呈现供选择的至少一个功能组件,并当呈现的功能组件不包括所述目标功能组件时,响应于针对所述滚动条的滑动操作,同步调整所呈现的功能组件,直至呈现所述目标功能组件。
在一些实施例中,所述第一呈现模块5551,还用于呈现对应所述至少一个供选择的功能组件的搜索功能项;所述第二呈现模块5552,还用于基于所述搜索功能项,接收到输入的所述目标功能组件的标识信息;基于所述标识信息,在所述搜索功能项的关联区域呈现所述目标功能组件;响应于针对所述目标功能组件的触发操作,呈现对应所述目标功能组件的组件配置界面。
在一些实施例中,所述接收模块5553,还用于对所述组件配置参数进行序列化处理,得到对应的序列化配置参数;所述输出模块5554,还用于对所述序列化配置参数进行反序列化处理,得到所述组件配置参数;获取所述目标功能组件对应的可执行代码,并将所述组件配置参数和所述可执行代码进行融合,得到融合后的可执行代码;运行所述融合后的可执行代码,以输出承载有所述目标功能组件的虚拟场景的界面。
在一些实施例中,所述接收模块5553,还用于将所述组件配置参数进行字符转换,得到对应的参数字符串;获取所述目标功能组件对应的数据结构,并按照所述数据结构,基于所述参数字符串生成所述序列化配置参数。
在一些实施例中,所述装置还包括:创建模块,用于创建所述虚拟场景的界面对应的界面部件;在所述界面部件上,创建至少一种业务类型对应的基类功能组件;在各所述基类功能组件上,创建具有相应业务类型的业务功能的子类功能组件,作为所述功能组件。
在一些实施例中,所述接收模块5553,还用于通过所述基类功能组件,将所述组件配置参数传输至所述界面部件,并存储于所述界面部件;所述输出模块5554,还用于通过所述界面部件,将所述组件配置参数传输至所述目标功能组件,以使所述目标功能组件将所述组件配置参数,融合至所述目标功能组件对应的可执行代码中,得到融合后的可执行代码;通过所述界面部件,驱动所述目标功能组件运行所述融合后的可执行代码,以输出承载有所述目标功能组件的虚拟场景的界面。
在一些实施例中,所述输出模块5554,还用于确定所述目标功能组件所归属的目标基类功能组件;通过所述界面部件,调用所述目标基类功能组件对应的接口,驱动所述目标功能组件运行所述融合后的可执行代码。
在一些实施例中,所述创建模块,还用于针对各所述功能组件,创建对应所述功能组件的至少一个参数配置项;所述第二呈现模块5552,还用于响应于针对所述目标功能组件的选择操作,获取所述目标功能组件对应的至少一个目标参数配置项;呈现对应所述目标功能组件的组件配置界面,并在所述组件配置界面中,呈现所述至少一个目标参数配置项。
在一些实施例中,所述第一呈现模块5551,还用于在所述游戏引擎的编辑界面中,呈现界面预览区域;所述输出模块5554,还用于通过所述界面预览区域,输出承载有所述目标功能组件的虚拟场景的界面。
在一些实施例中,所述第一呈现模块5551,还用于呈现对应所述目标功能组件的删除功能项;所述输出模块5554,还用于响应于针对所述删除功能项的触发操作,删除所述虚拟场景界面中部署的所述目标功能组件;当再次接收到针对所述虚拟场景的界面的部署完成指令时,输出未承载有所述目标功能组件的虚拟场景的界面。
应用本申请上述实施例,在游戏引擎的编辑界面中,当接收到针对虚拟场景的界面的部署指令时,呈现包括目标功能组件的至少一个供选择的功能组件;当接收到针对目标功能组件的选择操作时,呈现对应目标功能组件的组件配置界面;基于组件配置界面,接收到输入的针对目标功能组件的组件配置参数;当接收到针对虚拟场景的界面的部署完成指令时,通过游戏引擎,基于组件配置参数,输出承载有目标功能组件的虚拟场景的界面;
这里,该功能组件用于当部署于虚拟场景的界面时,能够基于虚拟场景的界面触发相应的业务功能。策划人员可以根据业务功能需求选择对应的功能组件,并通过组件配置界面进行参数配置,以得到需要的虚拟场景界面。如此,策划人员可以参与到界面开发流程中,根据需求部署虚拟场景的界面,无需程序人员重新进行逻辑开发,提高了虚拟场景的界面的部署效率。
本申请实施例还提供一种电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的基于游戏引擎的界面部署方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的基于游戏引擎的界面部署方法。
本申请实施例还提供一种计算机可读存储介质,存储有可执行指令,当可执行指令被处理器执行时,实现本申请实施例提供的基于游戏引擎的界面部署方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (16)

1.一种基于游戏引擎的界面部署方法,其特征在于,所述方法包括:
在游戏引擎的编辑界面中,接收到针对虚拟场景的界面的部署指令,呈现包括目标功能组件的至少一个供选择的功能组件;
其中,所述功能组件,用于当部署于所述虚拟场景的界面时,能够基于所述虚拟场景的界面触发相应的业务功能;
响应于针对所述目标功能组件的选择操作,呈现对应所述目标功能组件的组件配置界面;
基于所述组件配置界面,接收到输入的针对所述目标功能组件的组件配置参数;
当接收到针对所述虚拟场景的界面的部署完成指令时,通过游戏引擎,基于所述组件配置参数,输出承载有所述目标功能组件的虚拟场景的界面。
2.如权利要求1所述的方法,其特征在于,所述接收到针对虚拟场景的界面的部署指令,呈现包括目标功能组件的至少一个供选择的功能组件,包括:
接收到针对虚拟场景的界面的部署指令,呈现用于部署所述功能组件的添加功能项;
响应于针对所述添加功能项的触发操作,呈现对应所述功能组件的下拉选择功能框;
响应于针对所述下拉选择功能框的触发操作,呈现包括目标功能组件的至少一个供选择的功能组件。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述功能组件的数量为多个、且所述功能组件的数量达到目标数量时,呈现对应所述功能组件的滚动条;
所述呈现包括目标功能组件的至少一个供选择的功能组件,包括:
呈现供选择的至少一个功能组件,并
当呈现的功能组件不包括所述目标功能组件时,响应于针对所述滚动条的滑动操作,同步调整所呈现的功能组件,直至呈现所述目标功能组件。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
呈现对应所述至少一个供选择的功能组件的搜索功能项;
所述响应于针对所述目标功能组件的选择操作,呈现对应所述目标功能组件的组件配置界面,包括:
基于所述搜索功能项,接收到输入的所述目标功能组件的标识信息;
基于所述标识信息,在所述搜索功能项的关联区域呈现所述目标功能组件;
响应于针对所述目标功能组件的触发操作,呈现对应所述目标功能组件的组件配置界面。
5.如权利要求1所述的方法,其特征在于,所述基于所述组件配置界面,接收到输入的针对所述目标功能组件的组件配置参数之后,所述方法还包括:
对所述组件配置参数进行序列化处理,得到对应的序列化配置参数;
所述基于所述组件配置参数,输出承载有所述目标功能组件的虚拟场景的界面,包括:
对所述序列化配置参数进行反序列化处理,得到所述组件配置参数;
获取所述目标功能组件对应的可执行代码,并将所述组件配置参数和所述可执行代码进行融合,得到融合后的可执行代码;
运行所述融合后的可执行代码,以输出承载有所述目标功能组件的虚拟场景的界面。
6.如权利要求5所述的方法,其特征在于,所述对所述组件配置参数进行序列化处理,得到序列化配置参数,包括:
将所述组件配置参数进行字符转换,得到对应的参数字符串;
获取所述目标功能组件对应的数据结构,并
按照所述数据结构,基于所述参数字符串生成所述序列化配置参数。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
创建所述虚拟场景的界面对应的界面部件;
在所述界面部件上,创建至少一种业务类型对应的基类功能组件;
在各所述基类功能组件上,创建具有相应业务类型的业务功能的子类功能组件,作为所述功能组件。
8.如权利要求7所述的方法,其特征在于,所述基于所述组件配置界面,接收到输入的针对所述目标功能组件的组件配置参数之后,所述方法还包括:
通过所述基类功能组件,将所述组件配置参数传输至所述界面部件,并存储于所述界面部件;
所述基于所述组件配置参数,输出承载有所述目标功能组件的虚拟场景的界面,包括:
通过所述界面部件,将所述组件配置参数传输至所述目标功能组件,以使所述目标功能组件将所述组件配置参数,融合至所述目标功能组件对应的可执行代码中,得到融合后的可执行代码;
通过所述界面部件,驱动所述目标功能组件运行所述融合后的可执行代码,以输出承载有所述目标功能组件的虚拟场景的界面。
9.如权利要求8所述的方法,其特征在于,所述通过所述界面部件,驱动所述目标功能组件运行所述融合后的可执行代码,包括:
确定所述目标功能组件所归属的目标基类功能组件;
通过所述界面部件,调用所述目标基类功能组件对应的接口,驱动所述目标功能组件运行所述融合后的可执行代码。
10.如权利要求1所述的方法,其特征在于,所述在游戏引擎的编辑界面中,接收到针对虚拟场景的界面的部署指令之前,所述方法还包括:
针对各所述功能组件,创建对应所述功能组件的至少一个参数配置项;
所述响应于针对所述目标功能组件的选择操作,呈现对应所述目标功能组件的组件配置界面,包括:
响应于针对所述目标功能组件的选择操作,获取所述目标功能组件对应的至少一个目标参数配置项;
呈现对应所述目标功能组件的组件配置界面,并在所述组件配置界面中,呈现所述至少一个目标参数配置项。
11.如权利要求1所述的方法,其特征在于,所述方法还包括:
在所述游戏引擎的编辑界面中,呈现界面预览区域;
所述输出承载有所述目标功能组件的虚拟场景的界面,包括:
通过所述界面预览区域,输出承载有所述目标功能组件的虚拟场景的界面。
12.如权利要求1所述的方法,其特征在于,所述方法还包括:
呈现对应所述目标功能组件的删除功能项;
所述方法还包括:
响应于针对所述删除功能项的触发操作,删除所述虚拟场景界面中部署的所述目标功能组件;
当再次接收到针对所述虚拟场景的界面的部署完成指令时,输出未承载有所述目标功能组件的虚拟场景的界面。
13.一种基于游戏引擎的界面部署装置,其特征在于,所述装置包括:
第一呈现模块,用于在游戏引擎的编辑界面中,接收到针对虚拟场景的界面的部署指令,呈现包括目标功能组件的至少一个供选择的功能组件;
其中,所述功能组件,用于当部署于所述虚拟场景的界面时,能够基于所述虚拟场景的界面触发相应的业务功能;
第二呈现模块,用于响应于针对所述目标功能组件的选择操作,呈现对应所述目标功能组件的组件配置界面;
接收模块,用于基于所述组件配置界面,接收到输入的针对所述目标功能组件的组件配置参数;
输出模块,用于当接收到针对所述虚拟场景的界面的部署完成指令时,通过游戏引擎,基于所述组件配置参数,输出承载有所述目标功能组件的虚拟场景的界面。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的基于游戏引擎的界面部署方法。
15.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时,实现权利要求1至12任一项所述的基于游戏引擎的界面部署方法。
16.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时,实现权利要求1至12任一项所述的基于游戏引擎的界面部署方法。
CN202111490297.0A 2021-12-08 2021-12-08 基于游戏引擎的界面部署方法、装置、设备及存储介质 Pending CN114130017A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111490297.0A CN114130017A (zh) 2021-12-08 2021-12-08 基于游戏引擎的界面部署方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111490297.0A CN114130017A (zh) 2021-12-08 2021-12-08 基于游戏引擎的界面部署方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114130017A true CN114130017A (zh) 2022-03-04

Family

ID=80384814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111490297.0A Pending CN114130017A (zh) 2021-12-08 2021-12-08 基于游戏引擎的界面部署方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114130017A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115794095A (zh) * 2023-01-10 2023-03-14 北京爱特拉斯信息科技有限公司 基于JavaScript的虚幻引擎UI开发方法及系统
WO2024032104A1 (zh) * 2022-08-12 2024-02-15 腾讯科技(深圳)有限公司 虚拟场景中的数据处理方法、装置、设备、存储介质及程序产品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024032104A1 (zh) * 2022-08-12 2024-02-15 腾讯科技(深圳)有限公司 虚拟场景中的数据处理方法、装置、设备、存储介质及程序产品
CN115794095A (zh) * 2023-01-10 2023-03-14 北京爱特拉斯信息科技有限公司 基于JavaScript的虚幻引擎UI开发方法及系统

Similar Documents

Publication Publication Date Title
Bierbaum et al. VR Juggler: A virtual platform for virtual reality application development
Vanderdonckt A MDA-compliant environment for developing user interfaces of information systems
Tecchia et al. A Flexible Framework for Wide‐Spectrum VR Development
US7320120B2 (en) Pluggable notations and semantics for visual modeling elements
US20020129340A1 (en) Reconfigurable isomorphic software representations
CN114130017A (zh) 基于游戏引擎的界面部署方法、装置、设备及存储介质
WO2010128875A1 (en) Systems and methods for generating multimedia applications
WO2003081436A1 (fr) Navigateur et programme a contenu multimedia
CN114064024A (zh) 微应用的开发方法、装置、设备、存储介质及程序产品
Schiller et al. Live programming of mobile apps in App Inventor
Ingalls et al. A world of active objects for work and play: the first ten years of lively
KR20050056270A (ko) 소프트웨어 애플리케이션을 생성하는 방법
US8448190B2 (en) Methods, systems, and computer readable media for high reliability downloading of background assets using a manifest in a virtual world application
CN117234513B (zh) 页面的数据文件生成方法、装置、电子设备、介质及产品
CN113485708A (zh) 基于Sketch的跨平台界面开发方法和系统、计算机设备和介质
Davison Pro Java 6 3D Game Development: Java 3D, JOGL, JInput and JOAL APIs
Savidis et al. Inclusive development: Software engineering requirements for universally accessible interactions
CN113010168A (zh) 一种基于场景树的用户界面生成方法
CN114721647B (zh) 一种基于无代码应用开发的面向对象编程方法
CN116962807A (zh) 视频渲染方法、装置、设备及存储介质
Lettner et al. Enabling a/b testing of native mobile applications by remote user interface exchange
Salmela et al. Smart virtual prototypes: distributed 3D product simulations for Web based environments
Odom HoloLens Beginner's Guide
JPH03168877A (ja) 動画生成方式
CN115309376B (zh) 一种应用创建方法、装置、电子设备及存储介质

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