动态控制表面的制作方法

文档序号:25590215发布日期:2021-06-22 17:06阅读:136来源:国知局
动态控制表面的制作方法



背景技术:

游戏开发可能是需要使用精致并且复杂的工具的困难过程。内容开发应用程序可能具有由开发者使用以开发游戏的数千种功能。尽管许多时候开发者持续使用可用功能的一个小子集。通常,这是由于游戏开发应用程序的巨大和复杂性。开发者在创作内容时可能很难记住所有可用的不同功能。这可能导致不熟悉开发应用程序或未意识到已经添加到开发应用程序的新特征的开发者未充分利用开发应用程序。此外,使用传统的输入设备(诸如,鼠标和键盘)可能难以执行或操纵功能。



技术实现要素:

本公开内容的系统、方法和设备各自具有若干创新方面,其中没有一个方面单独担负本文所公开的所有期望属性。

一个实施方案公开了一种计算机实施的方法,所述方法包括:通过包括配置有计算机可执行指令的至少一个硬件处理器的计算系统,执行内容开发应用程序;查询控制表面的硬件特性,其中所述控制表面包括多个输入控制台,其中所述输入控制台包括至少一个基于硬件的输入部件;向所述内容开发应用程序查询一组可用功能;基于由所述内容开发应用程序接收的用户输入,确定所述内容开发应用程序内的第一开发场景(context);基于所述第一开发场景,从所述一组可用功能中确定要分配给所述多个输入控制台的第一组主要功能;以及基于优先级数据和所述控制表面的配置特性,将所述第一组主要功能分配给各个输入控制台的所述至少一个基于硬件的输入部件。

所述系统的多个实施方案可以包括以下特征中的一个、全部或任何组合。在一些实施方案中,确定所述第一组主要功能还至少部分地基于机器学习模型。在一些实施方案中,所述机器学习模型特定于与所述内容开发应用程序相关联的用户账户。在一些实施方案中,所述机器学习模型特定于所述内容开发应用程序内的开发场景,其中所述内容开发应用程序包括多个开发场景并且每个开发场景与不同类型的内容开发相关联。在一些实施方案中,所述机器学习模型确定与所述第一组主要功能相关联的优先级数据。在一些实施方案中,所述方法包括接收选择第二开发场景的用户输入;基于所述第二开发场景,从所述一组可用功能中确定要分配给所述多个输入控制台的第二组主要功能;以及基于优先级数据和所述控制表面的配置特性,将所述第二组主要功能分配给各个输入控制台的所述至少一个基于硬件的输入部件。在一些实施方案中,所述配置特性限定所述输入控制台的物理布局以及每个输入控制台相对于用户的定向。在一些实施方案中,所述控制表面包括集成控制器,并且所述方法还包括从所述集成控制器接收与所述输入控制台中的至少一个相关联的用户输入。

在另一个实施方案中,一种系统包括:控制表面,所述控制表面包括多个输入控制台,其中所述输入控制台包括至少一个基于硬件的输入部件;至少一个硬件处理器,所述至少一个硬件处理器被配置有计算机可执行指令,所述计算机可执行指令将所述至少一个硬件处理器配置为:执行内容开发应用程序;查询所述控制表面的硬件特性;向所述内容开发应用程序查询一组可用功能;基于由所述内容开发应用程序接收的用户输入,确定所述内容开发应用程序内的第一开发场景;基于所述第一开发场景,从所述一组可用功能中确定要分配给所述多个输入控制台的第一组主要功能;以及基于优先级数据和所述控制表面的配置特性,将所述第一组主要功能分配给各个输入控制台的所述至少一个基于硬件的输入部件。

所述系统的多个实施方案可以包括以下特征中的一个、全部或任何组合。在一些实施方案中,所述计算机可执行指令还将所述至少一个硬件处理器配置为至少部分地基于机器学习模型确定所述第一组主要功能。在一些实施方案中,所述机器学习模型特定于与所述内容开发应用程序相关联的用户账户。在一些实施方案中,所述机器学习模型特定于所述内容开发应用程序内的开发场景,其中所述内容开发应用程序包括多个开发场景并且每个开发场景与不同类型的内容开发相关联。在一些实施方案中,所述机器学习模型被配置为确定与所述第一组主要功能相关联的优先级数据。在一些实施方案中,所述计算机可执行指令还将所述至少一个硬件处理器配置为:接收选择第二开发场景的用户输入;基于所述第二开发场景,从所述一组可用功能中确定要分配给所述多个输入控制台的第二组主要功能;以及基于优先级数据和所述控制表面的配置特性,将所述第二组主要功能分配给各个输入控制台的所述至少一个基于硬件的输入部件。在一些实施方案中,所述配置特性限定所述输入控制台的物理布局以及每个输入控制台相对于用户的定向。在一些实施方案中,所述控制表面包括集成控制器,并且所述计算机可执行指令还将所述至少一个硬件处理器配置为从所述集成控制器接收与所述输入控制台中的至少一个相关联的用户输入。

在另一个实施方案中,一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储计算机可执行指令,当所述计算机可执行指令由一个或多个计算设备执行时,所述计算机可执行指令将所述一个或多个计算设备配置为执行操作,所述操作包括:执行内容开发应用程序;查询控制表面的硬件特性,其中所述控制表面包括多个输入控制台,其中所述输入控制台包括至少一个基于硬件的输入部件;向所述内容开发应用程序查询一组可用功能;基于由所述内容开发应用程序接收的用户输入,确定所述内容开发应用程序内的第一开发场景;基于所述第一开发场景,从所述一组可用功能中确定要分配给所述多个输入控制台的第一组主要功能;以及基于优先级数据和所述控制表面的配置特性,将所述第一组主要功能分配给各个输入控制台的所述至少一个基于硬件的输入部件。

所述系统的多个实施方案可以包括以下特征中的一个、全部或任何组合。在一些实施方案中,确定所述第一组主要功能还至少部分地基于机器学习模型。在一些实施方案中,所述机器学习模型特定于与所述内容开发应用程序相关联的用户账户。在一些实施方案中,所述机器学习模型特定于所述内容开发应用程序内的开发场景,其中所述内容开发应用程序包括多个开发场景并且每个开发场景与不同类型的内容开发相关联。

尽管本文公开了某些实施方案和实施例,但是发明主题超出具体公开的实施方案中的实施例,扩展到其他替代实施方案和/或用途,以及其改型和等同物。

附图说明

在整个附图中,重复使用附图标记来指示引用的元件之间的对应关系。提供附图是为了例示本文所描述的主题的实施方案,而不是限制其范围。

图1例示了可以实施动态控制表面系统的一个或多个实施方案的计算环境的一个实施方案。

图2a-图2e提供了模块化输入控制台126的实施方案。

图3a和图3b提供了例示用于虚拟环境的游戏开发界面的实施方案。

图4例示了多个模块化输入控制台126的一个实施方案。

图5a和图5b例示了具有不同物理布局的模块化输入控制台126的实施方案。

图6例示了用于生成用于动态地配置控制表面的模型的过程的流程图的一个实施方案。

图7例示了用于在内容开发应用程序122的运行时间期间动态地控制控制表面的过程的流程图的一个实施方案。

图8例示了计算设备的一个实施方案。

具体实施方式

概述

使用开发软件工作的困难之一是管理开发环境内可用的控件的数目。另一个问题是使用传统的输入设备,诸如鼠标和键盘或触笔和垫,执行和调整功能。输入设备可能不适合需要进行的输入和调整的类型。

本申请的实施方案通过使用包括定制的模块化输入控制台的动态控制表面提供对这些问题的解决方案。本公开内容的益处之一是通过将直观的控件提供给用户来提高生产率和质量,将直观的控件提供给用户允许用户使用专用的硬件控件来提供用于多个功能的多个输入。另一个益处是提供了专用的硬件控件,所述专用的硬件控件被配置为提供适于内容开发应用程序内的功能的执行的硬件输入。

本公开内容提供了内容开发应用程序内的功能到包括多个不同模块化输入控制台的控制表面的动态映射。系统包括控制台控制器,该控制台控制器被配置为:监测用户对内容开发应用程序的使用,以及基于该内容开发应用程序的现场操作(contextualoperation)动态地控制功能到控制表面的映射。该控制台控制器可以基于应用程序的场景确定待被映射到控制表面的功能以及由该内容开发应用程序的用户优先使用的功能。该控制台控制器还可以使用控制表面的输入控制台的物理布局、定向和硬件功能来确定所选择的功能如何被映射到各个输入控制台。

本公开内容的另一个方面提供了一种用于在应用程序的运行时间期间动态地控制功能到控制表面的分配的模型的生成。该模型可以部分地基于从内容开发应用程序的用户聚集的遥测。该系统可以基于推荐的或限定的工作流提供功能的场景感知分配,使得在给定的场景内,分配给输入控制台的功能可以被配置为提供用于创作和修改内容开发应用程序内的内容的分阶段工作流。该系统可以通过更新映射到输入控制台的功能在一个单独的输入控制台的显示器上的显示来提供对分配给输入控制台的功能的增加的意识。该系统可以为内容开发应用程序提供显示器上的覆盖物(overlay),该覆盖物指示各个输入控制台的功能。

尽管本公开内容集中于动态控制表面在游戏应用程序设计场景内的使用,但是该功能可以应用于游戏开发场景之外的应用程序,诸如电影制作、艺术应用程序或将受益于具有动态可控控制表面的其他软件应用程序。

计算环境的概述

图1例示了用于实施动态控制表面的计算环境100的一个实施方案。环境100包括网络101、用户计算系统102、控制表面和交互式计算系统130。为了简化讨论并且不限制本公开内容,图1仅例示了一个示例性用户计算系统102和一个交互式计算系统130,尽管可以使用多个系统。

用户计算系统102可以经由网络101与交互式计算系统130通信。尽管仅例示了一个网络101,但是可以存在多个不同网络101和/或分布式网络101。网络101可以包括任何类型的通信网络。例如,网络101可以包括广域网(wan)、局域网(lan)、蜂窝网络、自组织(adhoc)网络、卫星网络、有线网络、无线网络等中的一个或多个。在一些实施方案中,网络101可以包括互联网。

a.用户计算系统

图1例示了示例性用户计算系统102。用户计算系统102可以包括用于通过通信网络101建立通信的硬件部件和软件部件。例如,用户系统102可以被配备有便于经由一个或多个网络(例如,互联网或内联网)通信的联网装备和网络软件应用程序(例如,网络浏览器)。用户计算系统102可以具有各种各样的本地计算资源104,诸如中央处理单元(cpu)和架构、存储器(memory)、大容量存储装置(massstorage)、图形处理单元(gpu)、通信网络可用性和带宽等。此外,用户计算系统102可以包括任何类型的计算系统。例如,用户计算系统102可以包括任何类型的计算设备,诸如台式计算机、膝上型计算机、视频游戏平台、电视机顶盒、电视(例如,互联网电视)、网络使能的售货亭(network-enabledkiosk)、汽车控制台设备、计算机化器具、可穿戴设备(例如,具有计算功能的智能手表和眼镜)以及无线移动设备(例如,智能电话、pda、平板计算机等),仅举几个例子。用户计算系统102的特定硬件部件和软件部件通常被称为计算资源104。在一些实施方案中,用户计算系统102可以包括下文关于图8描述的实施方案中的一个或多个。

用户计算系统102被例示为包括控制台控制器120、内容开发应用程序122和数据存储器106。

1.内容开发应用程序

内容开发应用程序122可以指由开发者创建或使用的工具、商业上可得的工具、商业上可得的工具的扩展、专有工具、和/或可以被用来修改或创建游戏应用程序110的源资产(sourceasset)的其他类型的软件应用程序。开发者可以指使用内容开发应用程序的任何用户。内容开发应用程序122可以包括可以被用来修改游戏内的源资产的游戏应用程序110特定的工具。例如,交互式计算系统130可以具有被用来建立游戏应用程序110的特定引擎,诸如游戏引擎112。游戏开发工具122可以包括游戏引擎和用户可以使用以与游戏应用程序110的源资产相互作用的其他工具。在一些实例中,内容开发应用程序122可以是游戏应用程序110本身。例如,用户在玩游戏应用程序110时可能能够为游戏应用程序110生成内容。游戏开发工具122可以指商业游戏开发程序,诸如3dsmax、maya、z-brush、visualstudio、blender以及使用的其他工具。所述工具可以本地地安装在用户计算系统上或可以安装在远程服务器诸如交互式计算系统130上,并且可用于用户计算系统的流式传输或远程访问。通常,游戏开发工具122可以是任何商业上可得的工具、开发者特定的工具、游戏应用程序特定的工具、和/或可以被用来修改或创建游戏应用程序110或其他类型的软件的资产的游戏应用程序。

2.控制表面

控制表面124包括多个模块化输入控制台126,并且可选地包括控制器128。控制表面124是与用户计算系统102通信的多个模块化输入控制台126的组合。每个模块化输入控制台126是可以由用户使用以将输入提供给用户计算系统的输入设备。输入控制台126可以具有各种输入机制,诸如,例如,二维轨迹球、滑块、旋钮、按钮、触摸板、转盘和其他类型的输入设备。模块化输入控制台126的类型的一些实施方案被例示在图2a-图2e中,图2a-图2e将在下文被进一步描述。模块化输入控制台也可以被称为输入控制台。

输入控制台126可以被配置为耦合在一起以形成控制表面。输入控制台126可以具有被配置为与其他输入控制台126和/或用户计算系统102相互作用的配合接口和/或电气接口。输入控制台126可以包括无线通信接口(诸如,wi-fi接口或nfc接口),以用于与其他输入控制台126和/或用户计算系统102无线通信。配合接口可以允许输入控制台126耦合在一起以形成控制表面124。配合接口可以使用用于将输入控制台126耦合在一起的各种机制,诸如磁性接口、互补机械接口以及被配置为允许输入控制台126可交换地耦合在一起的其他类型的接口。配合接口可以被包括在输入控制台126的任何数目的侧面上。输入控制台126可以包括在输入控制台126的一部分上的led显示器,所述led显示器可以提供与输入控制台126相关联的信息,诸如分配给输入控制台126的功能。

输入控制台126可以被配置为使用本领域中已知的输入设备配对过程来以与其他输入设备(诸如,鼠标和键盘)相同的方式直接将输入提供给用户计算系统102。控制台控制器120可以与每个输入控制台126通信并且可以在内容开发应用程序122的运行时间期间动态地控制功能到输入控制台126的分配。在一些实施方案中,由输入控制台126生成的输入可以通过控制台控制器120路由到内容开发应用程序122。

在一些实施方案中,控制表面124可以包括控制器128。控制器128可以被配置为与输入控制台126通信并且与用户计算系统102通信。控制器128可以是控制台控制器120与控制表面124通信并且控制功能到各个输入控制台126的分配所通过的接口。

在一些实施方案中,控制表面124是具有输入控制台126的限定布局的静态控制表面。各个输入控制台126的位置可能相对于其他输入控制台126固定并且可能不能够被修改。在这样的实施方案中,在使用期间控制表面的定向可能仍然是确定功能到各个输入控制台126的分配中的因素。

现在附加地参考图2a-图2e,描述了输入控制台126的多个实施方案。图2a-图2e提供了示例实施方案,而不是可以被用来形成控制表面的潜在输入控制台126的详尽列表。

图2a例示了具有呈紧凑形式并且行程量相同的三个线性滑块的输入控制台126。滑块可以使用电位计来检测由用户提供的输入。滑块可以提供允许用户在两个值(诸如最小值和最大值)之间调整的输入接口。例如,三个滑块可以代表rgb颜色属性值。

图2b例示了具有三个转盘的输入控制台126。三个转盘可以是连续的编码器(endlessencoder)。转盘可以是可按下的,以提供用于分配附加功能的附加按钮。转盘可以被映射以获得用于对像曝光、温度、色彩、阴影/高光、黑/白的值进行调整的功能以及其他类型的功能。

图2c例示了具有可以倾斜以用于多轴控制的压敏中心盘和无限编码器环的输入控制台126的一个实施方案。输入控制台126可以提供二维功能和三维功能(诸如在三维空间内的位置)的控制。

图2d例示了具有三个机械开关的输入控制台126的一个实施方案。开关可以帮助加速重复动作。功能可以被映射到开关的各个方面,诸如开关的短按和长按。

图2e例示了包括两个机械开关和一个显示器的输入控制台126的一个实施方案。显示器可以提供与控制表面的操作相关联的信息。例如,显示器可以指示输入控制台126是否与用户计算系统和控制台控制器120恰当地配对。

3.控制台控制器

控制台控制器120提供用于在内容开发应用程序122的运行时间期间功能到输入控制台126的分配的控制系统。控制台控制器120监测内容开发应用程序122的操作,以基于内容开发应用程序122的操作场景动态地将功能分配给输入控制台126。控制台控制器120可以使用一系列不同的模型和/或算法来将功能分配给输入控制台126。这些模型和算法可以由控制台控制器120使用以分配与传统的输入设备相比为用户提供更有效率并且更直观的工作流的功能。

控制台控制器120可以被配置为与每个内容开发应用程序122相互作用,以使得控制台控制器120可以监测用户对内容开发应用程序122的操作。在一些实施方案中,控制台控制器120可以被集成到内容开发应用程序122中。内容开发应用程序122可以具有各种类型的开发环境。每个开发环境具有提供给用户以控制应用程序的不同的功能和不同的功能。控制台控制器120可以不同地与每个内容开发应用程序122相互作用。例如,控制台控制器120可以使用与内容开发应用程序122相关联的应用程序编程接口(api),以恰当地与内容开发应用程序122相互作用并且监测用户对内容开发应用程序122的操作。控制台控制器120可以监测正在同时执行的多个内容开发应用程序122的执行。控制台控制器120可以被配置为在不同的内容开发应用程序122之间动态地转变,以基于用户正在使用的内容开发应用程序122更新功能到输入控制台126的分配。

控制台控制器120可以被配置为确定在内容开发应用程序122的执行环境内的执行场景。每个内容开发应用程序122具有正在利用该应用程序的不同的功能的不同的虚拟执行环境。例如,内容开发应用程序122的图形创作部分可以包括地形(terrain)生成和角色生成。内容开发应用程序122的每个方面可以被称为开发场景。在每个开发场景内,不同的功能可以被用来执行该开发场景的期望的功能。不同的功能可以取决于在执行环境内正在被创作和/或修改的元件或虚拟实体的类型。当用户正在选择在不同的开发场景之间移动时,用户通常正在使用不同的功能来操作内容开发应用程序122。例如,在地形生成环境内,用户可以建立不同类型的地形,诸如山脉或森林。与创建或修改虚拟树相关联的功能可以与被用来创建或修改岩石的功能不同。例如,修改岩石通常与修改树不同。此外,与创建虚拟对象相关联的功能可以与渲染虚拟对象时使用的功能不同。控制台控制器120可以被配置为识别用户对不同的开发场景的改变,以确定可以被分配给控制表面124的功能。

控制台控制器120可以被配置为确定每个开发场景的主要功能。控制台控制器120可以被配置为识别被用来修改内容开发应用程序122内的元件的主要功能。例如,被用来创建虚拟对象的功能将与渲染虚拟对象时使用的功能不同。尽管一些功能可以在开发场景之间共享,但是在不同的开发场景期间主要使用的功能可以变化。控制台控制器120可以被配置为识别在每个开发场景内使用的功能。这些主要功能可以基于在开发场景内执行期间通常使用的工作流,诸如被用来创建虚拟对象的功能。主要功能是在内容开发应用程序122内对用户可用的全部功能的一个子集。每个开发场景可以具有限定开发场景的一组主要功能的一个不同的功能子集。

控制台控制器120可以被配置为确定在开发场景内由用户在操作期间使用的主要功能的优先级。主要功能的优先级可以被用来确定最有益的和/或用户最常用的命令的列表。在一些实施方案中,控制台控制器120可以基于在内容开发应用程序122的执行期间从用户收集的遥测数据确定主要功能的优先级。从用户接收的遥测数据可以被用来生成当在特定的开发场景内操作内容开发应用程序122时用户最频繁使用的命令(诸如修改或创建虚拟环境内的虚拟实体)的列表。优先级数据可以基于由内容开发应用程序122的开发者生成的主要命令的预定义列表。此列表可以提供初始列表,然后可以基于聚集的遥测数据修改该初始列表。可以基于与特定的用户相关联的数据进一步修改列表,使得用户可以具有与开发场景相关联的个性化的确定优先级的主要功能。

控制台控制器120可以被配置为基于与开发场景相关联的工作流确定主要功能、确定主要功能的优先级以及将主要功能分配给控制表面124。例如,用于创建特定类型的虚拟实体的工作流可以规定(dictate)所选择的主要功能以及所述主要功能在控制表面124上的布置。执行功能的顺序可以在确定功能的分配中提供输入。例如,当创建虚拟树时,创建该树的顺序,诸如创建树干、随后创建树枝、然后创建树叶。工作流信息可以由控制台控制器120使用以确定主要功能在输入控制台126上的布局。在工作流内的功能的顺序可以帮助确定应如何相对于彼此分配主要功能。例如,如果在虚拟资产生成过程期间同时使用两个命令,则在控制表面124上使功能隔开可能是有益的,以使得用户可以使用不同的手访问两个功能,或使功能足够近,以使得可以由一只手使用两个功能。

在一些实施方案中,某些开发场景可以具有主要功能的分级层,所述分级层可以随着用户进展通过工作流的阶段而自动地改变。例如,当正在创建树时,控制表面124可能已经分配了被用来创建该树的树干的主要功能、随后是被用来创建树枝的主要功能以及然后是被用来创建该树的树叶的主要功能。该树的设计的每个方面可以具有映射到不同的输入控制台126的不同的主要功能,使得输入控制台126可以提供用于创建虚拟资产的一般工作流,并且允许用户在特定于正在由用户执行的设计的场景的主要功能的子集之间转变。

控制台控制器120可以被配置为基于输入控制台126的类型和尺寸特性确定主要功能的物理布局。输入控制台126的类型可以确定可以与一个特定的输入控制台126或一组输入控制台126相关联的主要功能的类型。例如,三个滑块,诸如图2a中所例示的,可以被用作用于操纵虚拟实体的颜色的rgb颜色滑块。输入控制台126相对于彼此的物理位置可以在主要功能到输入控制台126的分配中起重要作用。控制台控制器120可以被配置为基于单手布局和双手布局生成主要功能到输入控制台126的映射。控制台控制器120可以创建各种主要功能之间的联系和关系。这些关系可以被用来影响主要功能到输入控制台126的布局和分配。例如,控制表面124的布局可以被用来修改被用来确定主要功能到控制表面124的分配的优先级。

由于控制台控制器120聚集来自内容开发应用程序122的多个用户的遥测数据。控制台控制器120可以更新主要功能到输入控制台126的映射和该映射的优先级。这可以包括改变主要功能的优先级顺序。改变主要功能和输入控制台126之间的优选布局。此外,在实施对内容开发应用程序122的改变时,可以将附加的主要功能添加到系统,使得新功能可以被包括在主要功能的优先级中并且可以被添加到控制表面124。

控制台控制器120可以被配置为基于由用户所做的对控制表面124的物理布局的改变动态地更新主要功能到输入控制台126的分配。在一些实施方案中,控制表面124的结构可以在运行时间期间改变。例如,输入控制台126可以是可以在任何时间被改变的热插拔(hotswappable)部件,或用户可以改变输入控制台126相对于彼此的定位。基于对物理配置的更新,控制台控制器120可以被配置为重新分析布局并且将主要功能重新分配给各个输入控制台126。

控制台控制器120可以被配置为基于在内容开发应用程序122内由用户执行的动作动态地更新主要功能到输入控制台126的分配。例如,用户可以用鼠标和键盘选择尚未被分配给控制表面124的功能。这可以在一个会话期间发生多次。在该情况下,用户可以接收询问用户是否想要将该功能包括在控制表面124上的提示,并且可以推荐哪个输入控制台126可以被用来分配新功能。

控制台控制器120可以被配置为当用户正在使用输入控制台126时,在内容开发应用程序122内,在输入控制台126本身上的显示器上输出分配给输入控制台126的主要功能,或作为用户计算系统上的覆盖物输出分配给输入控制台126的主要功能。这可能是对在内容开发应用程序122内使用的指示的补充。例如,由输入控制台126正在使用的主要功能的名称可以被提供为内容开发应用程序122的用户界面层之上的屏幕上覆盖物,使得用户可以识别输入控制台126和正在被使用的主要功能,而不需要向下看输入控制台126。

b.交互式计算系统

交互式计算系统130可以包括一个或多个内容开发应用程序122、模型生成引擎132、控制台控制器120和账户数据存储器138。交互式计算系统130可以被配置为托管(host)供用户计算系统使用的一个或多个内容开发应用程序122和/或控制台控制器120的执行。内容开发应用程序122和控制台控制器120可以如上文所描述地起作用。在一些实施方案中,交互式计算系统130可以包括可以托管和/或执行内容开发应用程序122的一个或多个实例的一部分的一个或多个计算设备,诸如服务器和数据库。在一些实施方案中,代替或除了控制台控制器120在用户计算系统102上执行,控制台控制器120可以由交互式计算系统130远程地执行。

1.模型生成引擎

模型生成引擎132可以生成用于将主要功能分配给控制表面124的模型。模型生成引擎132的实施方案可以使用一种或多种机器学习算法来生成一个或多个模型或参数功能。

在一些实施方案中,模型可以特定于每个内容开发应用程序122。每个内容开发应用程序122具有不同的主要功能,并且每个内容开发应用程序122具有多个开发场景。每个开发场景可以具有与该开发场景相关联的模型。每个开发场景可以具有数百个可以在内容开发应用程序122的运行期间由用户使用的功能。模型可以被配置为识别用于在一个特定的开发场景内使用的主要功能的子集。模型可以被配置为基于与开发场景的相关性确定主要功能的子集的优先级。在一些实施方案中,模型生成引擎132可以生成模型,以识别开发场景的主要功能并且确定其优先级。该模型的输出然后可以被用来基于控制表面124的特性(诸如输入控制台126的数目和类型以及输入控制台126的物理布局)将主要功能分配给控制表面124。使用数据可以被用在反馈回路中以更新模型。例如,如果许多用户正在使用未分配给控制表面124的相同功能,则可以更新模型以考虑使用数据。

在一些实施方案中,模型可以基于由用户提供的使用数据确定工作流。工作流模型可以提供可以引导用户通过应用程序的执行的一系列工作流。所述一系列工作流可以基于用户如何操纵或创建对象。模型可以是分级的;其中它们提供了用户逐步通过以生成应用程序环境内的特定特征或资产的工作流。例如,可能存在主要功能如何一起工作以便于创建并且防止挫折的自然设计流程。当用户移动通过工作流时,可以在工作流的每个阶段更新分配给输入控制台126的主要功能。

在一些实施方案中,模型可以基于输入控制台126的定向和定位确定主要功能的分配。例如,用户可以重新布置某些命令在输入控制台126上的定位。可以更新物理布局模型,以用模型说明(accountfor)用户偏好。例如,模型可以确定用户更喜欢在另一个主要功能的右侧而不是在另一个主要功能的左侧具有特定的主要功能。

在一些实施方案中,模型可以针对特定的用户被个性化。用户可能能够锁定或解锁功能到特定的输入控制台126的分配。模型可能不能够重新分配用户对功能的分配。此外,当确定要分配给剩余的输入控制台126的功能时,模型可以考虑功能的用户分配。此外,模型可以接收与用户相关联的使用数据。使用数据可以被用来更新特定于用户的模型。例如,用户可以使用未分配给输入控制台126的功能。在这样的情况下,用户可以使用传统的输入设备,诸如鼠标和键盘。使用数据可以指示用户使用鼠标和键盘而不是使用输入控制台126执行功能的频率。模型生成引擎132可以基于使用数据更新模型并且在针对特定的用户将主要功能分配给输入控制台126时确定用户选择的特征的优先级。模型生成引擎132可以连续地使用使用数据以重新确定主要功能的优先级并且更新模型。

在一些实施方案中,可以通过分析从多个用户生成的使用数据来生成模型。使用数据可以对应于任何类型的用户交互信息,诸如会话的长度/频率、所使用的功能、与控制表面124的交互和/或诸如此类。可以识别不同类型的开发场景和主要功能之间的关系,以确定用户更喜欢使用哪些功能。例如,可以发现某些类型的使用数据高度地指示用户效率(例如,在不同的虚拟对象之间转变的频率、使用不同的功能所花费的时间、与其他输入设备相比使用控制表面124所花费的时间和/或诸如此类)。模型生成引擎132可以使用多种不同类型的算法。例如,本文的某些实施方案可以使用逻辑回归算法。然而,其他算法是可能的,诸如线性回归算法、离散选择算法或广义线性算法等。

在一些实施方案中,模型生成引擎132可以在与交互式计算系统130分开的系统上实施。例如,一个或多个模型可以在与交互式计算系统130分开的系统上生成,并且由交互式计算系统130接收以供控制台控制器120使用。

机器学习算法可以被配置为基于由模型生成引擎132接收的新输入而随时间适应性地开发和更新模型。例如,可以定期地在新的用户信息可用时重新生成模型,以在用户信息随时间发展时帮助保持模型中的预测更准确。在生成模型之后,它可以被提供给控制台控制器120。

可以被用来生成和更新参数功能或预测模型的机器学习算法的一些非限制性实施例可以包括有监督的和无监督的机器学习算法,包括回归算法(诸如,例如,普通最小二乘回归)、基于实例的算法(诸如,例如,学习矢量量化)、决策树算法(诸如,例如,分类和回归树)、贝叶斯算法(诸如,例如,朴素贝叶斯)、聚类算法(诸如,例如,k均值聚类)、关联规则学习算法(诸如,例如,apriori算法)、人工神经网络算法(诸如,例如,感知机)、深度学习算法(诸如,例如,深玻耳兹曼机)、降维算法(诸如,例如,主成分分析)、集成算法(诸如,例如,堆栈泛化)和/或其他机器学习算法。

2.账户数据存储器

交互式计算系统130可以包括一个或多个账户数据存储器134,所述一个或多个账户数据存储器被配置为存储与内容开发应用程序122的用户相关联的用户账户信息。用户账户数据可以被配置为存储与用户账户相关联的数据。例如,用户账户数据存储器可以存储与每个内容开发应用程序122的每个用户相关联的模型。

修改游戏应用程序的实施方案

图3a-图3b例示了在用于创建和/或修改游戏应用程序110的虚拟资产的地形创作内容开发应用程序122内使用输入控制台126的实施方案。参考图3a,例示了虚拟地貌(topography)300,该虚拟地貌300包括多个虚拟资产,诸如第一树类型302、山脉304、第二树类型306、灌木308和其他虚拟地形资产。虚拟地形资产由用户使用地形创作内容开发应用程序122生成。控制台控制器120可以被配置为基于在开发环境内由用户选择的地形的类型自动地配置控制表面124。当用户在开发环境内选择要修改的资产时,控制台控制器120自动地将主要功能分配给输入控制台126,以修改和/或创建所选择的类型的虚拟资产。例如,如果用户选择第一树类型302,则控制表面124可以被配置有被用来修改虚拟资产的特性的主要功能。识别的主要功能可以被直接地分配给控制表面124的输入控制台126。例如,可以将三个滑块应用于树干的直径、高度和定向。每个滑块可以允许用户快速地调整相关联的特性。其他主要功能也可以被分配给控制表面124,以用于修改树的其他方面。

当用户选择环境300内的另一个虚拟资产时,控制台控制器120可以动态地改变输入控制台126以匹配所选择的新资产。例如,用户可以选择第二树类型306。该第二树类型可以具有与第一树类型302相同的分配给控制表面124的主要功能。在一些实例中,每种树类型可以具有主要功能到控制表面124的不同映射。相同的原则适用于虚拟环境内的其他开发场景的选择。控制台控制器120可以根据管理内容开发应用程序122内的其他虚拟资产(诸如,山脉304、灌木308和其他虚拟实体)的创建和修改的技术细节(mechanics)之间的类似之处将开发场景分类。

参考图3b,例示了虚拟环境320内的聚光灯322。在此执行环境中,聚光灯被用于渲染。该虚拟环境已经被创建,并且正在配置用于渲染的灯。灯可以具有影响环境的渲染的多个虚拟特性,诸如灯的颜色、强度、角度、半影/本影。与被用来生成或修改虚拟环境内的虚拟模型的主要功能相比,灯的渲染方面可以具有不同的主要功能。在一个实例中,将rgb颜色属性映射到3个相邻的竖直滑块、将强度映射到一个水平滑块、将点(spot)的半影/本影映射到两个旋钮、将视线向量(look-atvector)映射到2d轨迹球并且将两个按钮分配给下一个/前一个选择机制,允许用户将其当前选择更改为场景中的下一个最近的灯。

在一些实例中,用户可能能够使用控制界面来在在编辑模式下开发内容和在玩游戏模式下玩到底(playthrough)或以其他方式体验内容之间容易地切换场景。

模块化输入控制台配置的实施方案

图4、图5a和图5b提供了输入控制台126配置的实施方案。图4例示了使用4个输入控制台126的控制表面124的一个实施方案400。控制台控制器120可以部分地基于与每个输入控制台126相关联的硬件信息(诸如,输入的类型和数目)和位置信息(诸如,定向、每个输入控制台126相对于彼此的位置、输入控制台126的尺寸等)确定主要功能到输入控制台126的分配。在一些实施方案中,输入控制台126的边缘可以包括配合接口,所述配合接口允许输入控制台126以通用方式连接到其他输入控制台126,使得输入控制台126可以几乎以任何定向彼此连接。在一些实施方案中,控制台控制器120可以包括配置器接口,该配置器接口允许用户验证输入控制台126相对于用户的定向。在一些实施方案中,可以基于其他信息(诸如从摄像机获取的视觉数据)自动地确定输入控制台126的定向。用户可以在内容开发应用程序122的运行时间期间修改输入控制台126的配置。

在图5a和图5b中例示了相同部件的不同配置的实施例。控制台控制器120可以被配置为基于控制表面124的第一配置500a自动地将主要功能分配给输入控制台126。当控制表面124处于第二配置500b中时,控制台控制器120可以将不同的主要功能或相同的主要功能分配给不同的输入控制台126。

用于生成控制表面模型的过程

图6例示了用于生成用于动态地配置控制表面124的模型的过程600的流程图的一个实施方案。过程可以全部地或部分地由被配置有计算机可读指令以基于聚集的数据生成模型的中央处理单元(cpu)和/或图形处理单元(gpu)实施。例如,过程可以全部地或部分地由交互式计算系统130、用户计算系统102、控制台控制器120、模型生成引擎132和账户数据存储器138实施。尽管任何数目的系统可以全部地或部分地实施过程,但是为了简化讨论,将关于交互式计算系统130以及其部件描述过程。

在块602处,模型生成引擎132聚集来自多个用户的与控制表面124配置有关的遥测数据。遥测数据可以包括配置数据和使用数据。配置数据(或配置特性)可以包括与用户系统的硬件配置相关联的数据诸如输入控制台126的布局和定向、输入控制台126的类型、每个输入控制台126的数目和大小、其他输入设备(例如,鼠标和键盘、视觉输入设备、音频输入设备、触摸输入设备),以及与用户系统相关联的其他类型的配置数据。使用数据可以包括与用户对控制表面和/或内容开发应用程序的操作相关联的数据,诸如,分配给每个输入控制台126的主要功能、每个输入控制台126的使用频率、未分配给输入控制台126的主要功能的使用、使用的持续时间、用户在内容开发应用程序122内的每种类型的过程上花费的时间的量、开放的内容开发应用程序122的数目、用户如何在内容开发应用程序122之间切换、用户在其之间切换的不同开发场景的数目以及他们在每个开发场景上花费多长时间、使用的命令以及与控制表面和内容开发应用程序的使用特性相关联的其他遥测数据。

在块604处,模型生成引擎132识别在开发场景内正在被使用的功能。可以分析使用数据,以确定正在被使用的主要功能以及在内容开发应用程序122内每个功能正在什么开发场景下被使用。内容开发应用程序122的开发者可以提供关于可用于每个开发场景的功能的输入。可以确定命令正在被使用的顺序以及在每个命令上花费的时间的量。模型生成引擎132可以确定与每个开发场景相关联的功能的子集。在一些实例中,一组功能可以在内容开发应用程序122的所有开发场景中使用。在这样的情况下,可以将通用命令与场景特定的功能单独地分组。

在块606处,模型生成引擎132为内容开发应用程序122的功能确定场景特定的优先级模型。场景特定的优先级模型可以为针对特定的开发场景在开发环境内最频繁使用和/或最有用的功能提供优先级信息。当在开发环境内启用特定的开发场景时,优先级模型可以被用来识别要分配给控制表面124的主要功能。

在块608处,模型生成引擎132生成用于功能到控制表面的分配的模型。该模型可以使用来自优先级模型的输出以确定识别的主要功能到控制表面124上的可用输入控制台126的分配。该模型可以分析控制表面124配置的布局和物理特性,以确定功能到各个输入控制台126的分配。分配可以基于输入控制台126的数目、输入控制台126的类型、输入控制台126的定向和布局以及其他考虑因素。取决于模型的复杂性,块608和块610可以在必要时被组合或分解成一个或多个模型。可以在内容开发应用程序122的运行时间期间使用在块608和块610中生成的模型。

用于动态地更新控制表面的过程

图7例示了用于基于场景动态地更新分配给输入控制台126的控制台控制器120的过程600的流程图的一个实施方案。过程可以全部地或部分地由被配置有计算机可读指令以执行内容开发应用程序122的中央处理单元(cpu)和/或图形处理单元(gpu)实施。例如,过程可以全部地或部分地由交互式计算系统130、用户计算系统102、控制台控制器120、模型生成引擎132和账户数据存储器138实施。尽管任何数目的系统可以全部地或部分地实施过程,但是为了简化讨论,将关于控制台控制器120以及其部件描述过程。

在块702处,控制台控制器120向控制表面查询输入控制台126的布局和物理特性。控制台控制器120可以获取生成输入控制台126的布局和输入控制台126中的每个的能力必需的信息。

在块704处,控制台控制器120向内容开发应用程序122查询在执行环境内可分配给输入控制台126的主要功能。可以根据开发场景将功能分类。

在块706处,控制台控制器120在在开发环境内接收来自用户的输入之后确定内容开发应用程序122的场景。开发场景可以被用来确定用于分配给控制表面124的功能的子集。控制台控制器120可以识别与识别的开发场景相关联的一个或多个模型。

在块708处,控制台控制器120可以基于输入控制台126的数目和类型确定要分配的主要功能。该确定可以基于为开发场景确定的主要功能的优先级。该确定可以基于优先级列表,或它可以基于诸如如图6中所描述地生成的模型的模型。

在块710处,控制台控制器120可以基于输入控制台126的物理布局确定主要功能到输入控制台126的分配。该确定可以部分地基于输入控制台126的数目、类型和布局。该确定可以基于诸如如图6中所描述地生成的模型的模型。

在决策块712处,控制台控制器120确定何时已经选择新的开发场景。如果已经选择了新的开发场景,则控制台控制器120可以返回到块706以重复该过程。在一些实施方案中,输入控制台126的配置可以在开发会话期间改变,在该情况下,可以基于输入控制台126的改变更新物理布局和配置。

计算设备的概述

图8例示了根据本公开内容的计算设备10的一个实施方案。计算设备10的其他变型可以代替本文明确呈现的实施例,诸如移除部件或向计算设备10添加部件。计算设备10可以包括游戏设备、智能电话、平板计算机、个人计算机、膝上型计算机、智能电视、汽车控制台显示器、服务器等。如所示出的,计算设备10包括处理单元20,该处理单元20与计算设备10的其他部件以及计算设备10的外部部件交互。包括与介质12通信的介质读取器22。介质读取器22可以是能够读取光盘(诸如cd-rom或dvd)的光盘读取器,或能够从游戏介质12接收和读取数据的任何其他类型的读取器。所述计算设备中的一个或多个可以被用来实施本文所公开的系统中的一个或多个。

计算设备10可以包括单独的图形处理器24。在一些情况下,图形处理器24可以建立到处理单元20内。在一些这样的情况下,图形处理器24可以与处理单元20共享随机存取存储器(ram)。替代地或附加地,计算设备10可以包括与处理单元20分开的分立图形处理器24。在一些这样的情况下,图形处理器24可以具有与处理单元20分开的ram。计算设备10可能是手持视频游戏设备、专用游戏控制台计算系统、通用膝上型计算机或台式计算机、智能电话、平板计算机、汽车控制台或其他合适的系统。

计算设备10还包括用于使能输入/输出的各种部件,诸如i/o32、用户i/o34、显示i/o36和网络i/o38。i/o32与存储元件40交互,并且通过设备42与可移动存储介质44交互,以为计算设备10提供存储。处理单元20可以通过i/o32通信以存储数据,诸如游戏状态数据和任何共享数据文件。除了存储装置40和可移动存储介质44之外,还示出了计算设备10包括rom(只读存储器)46和ram48。ram48可以被用于频繁存取的数据,诸如当正在玩游戏时或当执行欺诈检测时。

用户i/o34被用来在处理单元20和用户设备(诸如游戏控制器)之间发送和接收命令。在一些实施方案中,用户i/o可以包括触摸屏输入。触摸屏可以是电容性触摸屏、电阻性触摸屏或被配置为通过来自用户的触觉输入来接收用户输入的其他类型的触摸屏技术。显示i/o36提供被用来显示来自正在玩的游戏的图像的输入/输出功能。网络i/o38被用于网络的输入/输出功能。可以在游戏的执行期间,诸如当正在在线玩游戏或正在在线访问游戏时和/或在欺诈检测的应用期间、和/或在欺诈检测模型的生成期间,使用网络i/o38。

通过显示i/o36产生的显示输出信号包括用于在显示设备上显示由计算设备10产生的视觉内容的信号,所述视觉内容诸如是图形、用户界面、视频和/或其他视觉内容。计算设备10可以包括被配置为接收由显示i/o36产生的显示输出信号的一个或多个集成显示器。根据一些实施方案,由显示i/o36产生的显示输出信号也可以被输出到计算设备10外部的一个或多个显示设备,诸如显示器16。

计算设备10还可以包括可以与游戏一起使用的其他特征,诸如时钟50、闪存52和其他部件。音频/视频播放器56也可能被用来播放视频序列,诸如电影。应理解,可以在计算设备10中设置其他部件,并且本领域技术人员将理解计算设备10的其他变型。

程序代码可以被存储在rom46、ram48或存储装置40(其可能包括硬盘、其他磁性存储装置、光学存储装置、其他非易失性存储装置或这些的组合或变型)中。程序代码的一部分可以被存储在可编程的rom(rom、prom、eprom、eeprom等),程序代码的一部分可以被存储在存储装置40中,和/或被存储在可移动介质上,所述可移动介质诸如是游戏介质12(其可以是cd-rom、盒带、存储器芯片等,或可以是根据需要通过网络或其他电子通道获得的)。通常,程序代码可以被发现嵌入在有形的非暂时性信号承载介质中。

随机存取存储器(ram)48(并且可能是其他存储装置)可用于根据需要存储变量以及其他游戏和处理器数据。使用ram并且ram保持在应用程序的执行期间生成的数据,并且ram的部分还可能保留用于帧缓冲区、应用程序状态信息和/或需要或可用于解译用户输入和生成显示输出的其他数据。通常,ram48是易失性存储装置,并且当计算设备10关闭或丢失电力时,ram48内存储的数据可能丢失。

当计算设备10读取介质12并且提供应用程序时,可以从游戏介质12读取信息并且将所述信息存储在存储器设备(诸如ram48)中。此外,来自存储装置40、rom46、经由网络访问的服务器(未示出)或可移动存储介质46的数据可以被读取并且加载到ram48中。尽管数据被描述为在ram48中查找,但是应理解,数据不必须被存储在ram48中,并且可以被存储在处理单元20可访问的其他存储器或可以被分布在几个介质(诸如介质12和存储装置40)之间。

应理解,根据本文所描述的任何具体实施方案不一定可以实现所有的目标或优点。因此,例如,本领域技术人员将认识到,某些实施方案可以被配置为以实现或优化如本文所教导的一个优点或一组优点而不一定实现如本文可能教导或暗示的其他目标或优点的方式操作。

本文所描述的所有过程均可以被嵌入在软件代码模块中并且经由软件代码模块完全自动化,所述软件代码模块由包括一个或多个计算机或处理器的计算系统执行。代码模块可以被存储在任何类型的非暂时性计算机可读介质或其他计算机存储设备中。一些或所有所述方法可以被嵌入在专用的计算机硬件中。

根据本公开内容将明了除本文所描述的那些之外的许多其他变型。例如,根据实施方案,本文所描述的算法中的任何一个的某些动作、事件或功能可以按不同的顺序被执行,可以被添加、合并或完全被省略(例如,对于算法的实行而言,并非所有描述的动作或事件都是必需的)。此外,在某些实施方案中,动作或事件可以被同时执行,例如,通过多线程处理、中断处理或多个处理器或处理器内核被同时执行或在其他并行架构上被同时执行,而不是被顺序地执行。此外,不同的任务或过程可以由可以一起起作用的不同的机器和/或计算系统来执行。

结合本文所公开的实施方案描述的各种例示性逻辑块和模块可以由机器实施或执行,所述机器诸如是处理单元或处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件部件或被设计成执行本文所描述的功能的其任何组合。处理器可以是微处理器,但在替代方案中,处理器可以是控制器、微控制器或状态机、其组合等。处理器可以包括被配置为处理计算机可执行指令的电路。在另一个实施方案中,处理器包括执行逻辑操作而不处理计算机可执行指令的fpga或其他可编程器件。处理器还可以被实施为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器连同dsp内核或任何其他这样的配置。虽然本文主要关于数字技术描述了处理器,但是处理器还可以包括主要是模拟性的部件。例如,本文所描述的信号处理算法中的一些或全部可以被实施在模拟电路或混合模拟和数字电路中。计算环境可以包括任何类型的计算机系统,包括但不限于:基于微处理器的计算机系统、大型计算机(mainframecomputer,主机计算机)、数字信号处理器、便携式计算设备、设备控制器或器具内的计算引擎,仅举几个例子。

除非另外特别说明,否则条件性用语,诸如“能(can)”、“可(could)”、“可能(might)”或“可以(may)”等,应在上下文中如通常所使用的被理解为表达:某些实施方案包括某些特征、要素和/或步骤,而其他实施方案不包括所述某些特征、要素和/或步骤。因此,这样的条件性用语通常并不意在暗示:特征、要素和/或步骤以任何方式是一个或多个实施方案所需要的,或一个或多个实施方案必定包括用于判定--在具有或不具有用户输入或提示的情况下--这些特征、要素和/或步骤是否被包括在任何具体实施方案中或是否要在任何具体实施方案中执行的逻辑。

除非另外特别说明,否则析取性(disjunctive)用语,诸如短语“x、y或z中的至少一个”,应在上下文中如通常所使用的被理解为表示:项、术语等可以是x、y或z,或它们的任何组合(例如,x、y和/或z)。因此,这样的析取性用语通常并不意在并且不应当暗示,某些实施方案需要至少一个x、至少一个y或至少一个z均存在。

在本文所描述的和/或在附图中所描绘的流程图中的任何过程描述、要素或块均应被理解为潜在地表示包括用于实施过程中的特定逻辑功能或要素的一个或多个可执行指令的代码模块、代码段或代码部分。在本文所描述的实施方案的范围内包括替代的实施方式,在所述替代的实施方式中,要素或功能可以被删除、不按照所示出的或讨论的顺序执行,包括大体上同时执行或以颠倒的顺序执行,这取决于所涉及的功能,如本领域技术人员会理解的。

除非另外明确说明,否则冠词,诸如“一个(a)”或“一(an)”,通常应被解释为包括一个或多个所描述的项。相应地,诸如“被配置成……的设备”之类的措辞意在包括一个或多个所叙述的设备。这样的一个或多个所叙述的设备还可以被共同配置为执行所陈述的叙述项(recitation)。例如,“被配置为执行叙述项a、b和c的处理器”可以包括结合被配置为执行叙述项b和c的第二处理器工作的、被配置为执行叙述项a的第一处理器。

应强调,可以对上述实施方案做出许多变型和改型,这些变型和改型的要素应被理解为在其他可接受的实施例之中。所有这样的改型和变型都意在被包括在本文中在本公开内容的范围内。

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