一种数据传输的方法、装置、终端设备及存储介质与流程

文档序号:17247865发布日期:2019-03-30 08:54阅读:140来源:国知局
一种数据传输的方法、装置、终端设备及存储介质与流程

本申请属于数据传输的技术领域,特别是涉及一种数据传输的方法、一种数据传输的装置、一种终端设备及一种计算机可读存储介质。



背景技术:

光学动作捕捉是一种通过计算机视觉原理,由多个高速摄像机从不同角度对目标特征点进行跟踪,从而完成对目标物的动作捕捉的技术。

现有的光学动作捕捉主要采用标记点式光学动作捕捉系统来实现。该系统由光学标记点(markers)、动作捕捉相机、信号传输设备以及数据处理中心等部分组成。当运动物体粘贴上markers并运动时,多个动作捕捉相机从不同角度探测marker点(多个marker点组成一个刚体),并将探测到的marker点的空间位置信息通过信号传输设备实时传输至数据处理中心。数据处理中心根据特定的算法计算出marker点的空间坐标,从而获得运动物体的运动轨迹等数据。数据处理中心在获取运动物体的运动数据之后,便可将运动数据传输至客户端中,以驱动其中的模型运动,从而实现虚拟与现实的交互。

目前,数据处理中心在将运动数据传输至客户端时,主要通过两种方式来实现。一种是将所有运动数据标准化,基于行业标准来进行运动数据的传输;另一种则是将所有运动数据打包后再传输。前者每次只能获取到一个刚体的数据,如果需要支持多人的多个刚体的数据,则无疑会增加网络访问的次数,影响数据传输的效率,进而影响虚拟显示交互的实时性。后一种方式虽然可以通过一次性传输完全部的运动数据,但由于数据处理中心与客户端所使用的ik(inversekinematics,反向运动学)系统不同,客户端在对数据包进行解析并驱动模型运动时,驱动效果较差。



技术实现要素:

有鉴于此,本申请实施例提供了一种数据传输的方法、装置、终端设备及存储介质,以解决现有技术中运动数据的传输效率较低及模型驱动效果较差的问题。

本申请实施例的第一方面提供了一种数据传输的方法,包括:

建立客户端与服务器之间的通信连接,所述服务器用于生成待传输的骨骼数据,所述骨骼数据包括骨骼名称列表和与所述骨骼名称列表对应的动作数据列表;

接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表;

依据所述骨骼名称列表和所述动作数据列表,生成目标骨骼数据。

可选地,所述客户端下配置有通信插件,所述建立客户端与服务器之间的通信连接的步骤,包括:

基于所述通信插件,接收代码调用指令,通过所述指令调用所述服务器的应用程序编程接口,以建立所述客户端与所述服务器之间的通信连接;

或者,

接收通过所述客户端的用户界面配置的属性信息,根据所述属性信息建立所述客户端与所述服务器之间的通信连接,所述属性信息包括所述服务器的ip地址。

可选地,所述待传输的骨骼数据由所述服务器在获取初始骨骼数据并将所述初始骨骼数据拆分为骨骼名称和动作数据后,通过将所述骨骼名称存储至骨骼名称列表、将所述动作数据存储至动作数据列表,并建立所述骨骼名称列表和所述动作数据列表之间的对应关系的方式生成。

可选地,所述接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表的步骤,包括:

在初始接收数据时,接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表;

或者,

当所述骨骼名称列表发生变更时,接收所述服务器分别传输的变更后的骨骼名称列表和所述动作数据列表;当所述骨骼名称列表未发生变更时,则接收所述服务器传输的所述动作数据列表;

其中,所述动作数据列表中包括位置数据和角度数据。

可选地,所述客户端中存储有初始骨骼名称列表,所述依据所述骨骼名称列表和所述动作数据列表,生成目标骨骼数据的步骤,包括:

根据所述骨骼名称列表,初始化所述初始骨骼名称列表;

根据所述骨骼名称列表的索引值、所述动作数据列表的索引值,以及初始化后的所述初始骨骼名称列表的索引值,生成目标骨骼数据;

采用所述目标骨骼数据驱动预设动作模型中相应的骨骼进行运动。

可选地,所述根据所述骨骼名称列表,初始化所述初始骨骼名称列表的步骤,包括:

根据所述初始骨骼名称列表的索引值和所述索引值对应的骨骼名称确定所述初始骨骼名称列表的第一索引关系;

根据所述骨骼名称列表的索引值和与所述索引值对应的骨骼名称,确定所述骨骼名称列表的第二索引关系;

判断所述第一索引关系与所述第二索引关系是否相同;

若判断结果为否,则将所述初始骨骼名称列表的所述第一索引关系调整为与所述第二索引关系相同。

可选地,还包括:

当接收到多个预设动作模型的骨骼数据时,在所述客户端中分别采用多个不同的存储对象存储所述骨骼数据,所述多个不同的存储对象分别与所述服务器中的多个线程一一对应。

本申请实施例的第二方面提供了一种数据传输的装置,包括:

通信模块,用于建立客户端与服务器之间的通信连接,所述服务器用于生成待传输的骨骼数据,所述骨骼数据包括骨骼名称列表和与所述骨骼名称列表对应的动作数据列表;

接收模块,用于接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表;

生成模块,用于依据所述骨骼名称列表和所述动作数据列表,生成目标骨骼数据。

可选地,所述客户端下配置有通信插件,所述通信模块包括:

接口调用子模块,用于基于所述通信插件,接收代码调用指令,通过所述指令调用所述服务器的应用程序编程接口,以建立所述客户端与所述服务器之间的通信连接;

或者,

属性信息配置子模块,用于接收通过所述客户端的用户界面配置的属性信息,根据所述属性信息建立所述客户端与所述服务器之间的通信连接,所述属性信息可以包括所述服务器的ip地址。

可选地,所述待传输的骨骼数据由所述服务器在获取初始骨骼数据并将所述初始骨骼数据拆分为骨骼名称和动作数据后,通过将所述骨骼名称存储至骨骼名称列表、将所述动作数据存储至动作数据列表,并建立所述骨骼名称列表和所述动作数据列表之间的对应关系的方式生成。

可选地,所述接收模块包括:

第一接收子模块,用于在初始接收数据时,接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表;

或者,

第二接收子模块,用于当所述骨骼名称列表发生变更时,接收所述服务器分别传输的变更后的骨骼名称列表和所述动作数据列表;当所述骨骼名称列表未发生变更时,则接收所述服务器传输的所述动作数据列表;

其中,所述动作数据列表中包括位置数据和角度数据。

可选地,所述客户端中存储有初始骨骼名称列表,所述生成模块包括:

初始化子模块,用于根据所述骨骼名称列表,初始化所述初始骨骼名称列表;

生成子模块,用于根据所述骨骼名称列表的索引值、所述动作数据列表的索引值,以及初始化后的所述初始骨骼名称列表的索引值,生成目标骨骼数据;

驱动子模块,用于采用所述目标骨骼数据驱动预设动作模型中相应的骨骼进行运动。

可选地,所述初始化子模块包括:

第一索引关系确定单元,用于根据所述初始骨骼名称列表的索引值和所述索引值对应的骨骼名称确定所述初始骨骼名称列表的第一索引关系;

第二索引关系确定单元,用于根据所述骨骼名称列表的索引值和与所述索引值对应的骨骼名称,确定所述骨骼名称列表的第二索引关系;

索引关系判断单元,用于判断所述第一索引关系与所述第二索引关系是否相同;

索引关系调整单元,用于若判断结果为否,则将所述初始骨骼名称列表的所述第一索引关系调整为与所述第二索引关系相同。

可选地,所述装置还包括:

存储模块,用于当接收到多个预设动作模型的骨骼数据时,在所述客户端中分别采用多个不同的存储对象存储所述骨骼数据,所述多个不同的存储对象分别与所述服务器中的多个线程一一对应。

本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据传输的方法的步骤。

本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据传输的方法的步骤。

与背景技术相比,本申请实施例包括以下优点:

本申请实施例,通过建立客户端与服务器之间的通信连接,从而可以接收由服务器分别传输的骨骼名称列表和动作数据列表,使得客户端可以依据上述骨骼名称列表和动作数据列表生成目标骨骼数据并驱动模型运动。由于模型的骨骼名称并非经常会改变,本实施例通过将骨骼数据拆分为骨骼名称和动作数据并分开传输,使得服务器仅仅可以在第一次传输时向终端同时传输骨骼名称列表和动作数据列表,而在后续传输时,只需要传输动作数据列表即可,降低了网络的负担,提高了数据传输的效率;另一方面,由于客户端和服务器中使用了相同的模型,采用生成的目标骨骼数据驱动模型运动时,也保证了模型的驱动效果。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个实施例的一种数据传输的方法的步骤流程示意图;

图2是本申请一个实施例的另一种数据传输的方法的步骤流程示意图;

图3是本申请一个实施例的一种数据传输的装置的示意图;

图4是本申请一个实施例的一种终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

下面通过具体实施例来说明本申请的技术方案。

参照图1,示出了本申请一个实施例的一种数据传输的方法的步骤流程示意图,具体可以包括如下步骤:

s101、建立客户端与服务器之间的通信连接;

需要说明的是,本方法可以应用于客户端中,上述客户端可以运行于手机、平板电脑、台式电脑等终端中,本实施例对此不作限定。该客户端可以通过与光学动作捕捉系统的服务器之间建立通信连接,从而获取到该服务器生成的骨骼数据,以驱动模型运动。

通常,光学动作捕捉系统主要通过两个软件来实现相应的功能,即光学动作定位系统软件和骨骼解算软件。其中光学动作定位系统软件主要负责对运动物体或人物进行动作定位,输出刚体数据;骨骼解算软件则可以根据刚体数据进行骨骼解析,输出骨骼数据。为了能够采用上述骨骼数据驱动模型运动,不同的开发者可以基于u3d(unity3d)平台进行特定应用开发,通过将骨骼数据导入到u3d平台,实现相应的应用功能。

u3d平台主要专注于3d游戏的开发领域,是一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。u3d平台集3d模型渲染、音效、粒子系统、碰撞检测等等功能,提供了软件编程接口供第三方开发者使用,以便使用软件所提供的功能。

一般地,将骨骼数据导入u3d平台下的特定应用时,需要通过特定的通信插件来实现。

在具体实现中,可以基于通信插件,接收代码调用指令,通过该指令调用服务器的应用程序编程接口来建立客户端与服务器之间的通信连接。这种方式具有极大的灵活性和弹性,可以方便用户进行扩展及实施一些自定义的行为。

或者,也可以由客户端提供一用户界面,接收通过客户端的用户界面配置的属性信息来建立该客户端与服务器之间的通信连接。上述属性信息可以包括服务器的ip地址,跟踪玩家的id号等等。

具体地,可以在客户端的u3d编辑器界面上通过预留的接口来设置上述属性信息,设置完成后直接运行便可以建立该客户端与服务器之间的通信连接。这种建立客户端与服务器之间的通信连接的方式使用简单,易于操作。

当建立起客户端与服务器之间的通信连接后,服务器便可以将生成的待传输骨骼数据传输给该客户端。

在本申请实施例中,待传输的骨骼数据可以包括骨骼名称列表和与上述骨骼名称列表对应的动作数据列表。

在本申请实施例中,待传输的骨骼数据可以是由服务器在获取初始骨骼数据并将初始骨骼数据拆分为骨骼名称和动作数据后生成的。当服务器将初始骨骼数据拆分为骨骼名称和动作数据后,可以将上述骨骼名称存储至骨骼名称列表,将上述动作数据存储至动作数据列表,并建立骨骼名称列表和动作数据列表之间的对应关系。通过这种方式,可以最终生成待传输的骨骼数据。

s102、接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表;

在本申请实施例中,服务器在向客户端传输骨骼数据时,可以将骨骼名称和动作数据分开传输。

在具体实现中,可以在客户端和服务器中使用相同的模型。由于模型中的骨骼名称并非经常会改变,所以只需要在终端与服务器第一次连接时,或者由服务器主动通知客户端需要对骨骼名称列表进行更新时才向客户端传输骨骼名称列表,而不需要每一次传输时都向客户端传输骨骼名称列表,从而可以降低网络负担。

s103、依据所述骨骼名称列表和所述动作数据列表,生成目标骨骼数据。

在本申请实施例中,客户端在接收到服务器分别传输的骨骼名称列表和动作数据列表后,可以对上述骨骼名称列表和动作数据列表进行解析,生成目标骨骼数据,从而可以采用目标骨骼数据驱动模型运动。

在本申请实施例中,通过建立客户端与服务器之间的通信连接,从而可以接收由服务器分别传输的骨骼名称列表和动作数据列表,使得客户端可以依据上述骨骼名称列表和动作数据列表生成目标骨骼数据并驱动模型运动。由于模型的骨骼名称并非经常会改变,本实施例通过将骨骼数据拆分为骨骼名称和动作数据并分开传输,使得服务器仅仅可以在第一次传输时向终端同时传输骨骼名称列表和动作数据列表,而在后续传输时,只需要传输动作数据列表即可,降低了网络的负担,提高了数据传输的效率;另一方面,由于客户端和服务器中使用了相同的模型,采用生成的目标骨骼数据驱动模型运动时,也保证了模型的驱动效果。

参照图2,示出了本申请一个实施例的另一种数据传输的方法的步骤流程示意图,具体可以包括如下步骤:

s201、建立客户端与服务器之间的通信连接;

需要说明的是,本方法可以应用于安装在手机、平板电脑等终端上的客户端中,本实施例对终端的具体类型不作限定。

在本申请实施例中,可以通过配置在客户端中的通信插件来建立客户端与服务器之间的通信连接。上述客户端可以是基于u3d平台开发的客户端软件,上述服务器则可以是包括有光学动作定位系统软件和骨骼解算软件能够输出刚体数据并对刚体数据进行骨骼解析从而输出骨骼数据的服务器。

在具体实现中,可以基于上述通信插件,接收代码调用指令,通过该指令调用服务器的应用程序编程接口的方式来建立客户端与服务器之间的通信连接,也可以接收通过客户端的用户界面配置的服务器的ip地址等属性信息来建立客户端与服务器之间的通信连接,本实施例对此不作限定。

在建立客户端与服务器之间的通信连接后,服务器可以向该客户端传输待传输的骨骼数据。待传输的骨骼数据可以是由服务器生成的。

在具体实现中,服务器可以获取初始骨骼数据,初始骨骼数据可以是经由骨骼解算软件解算获得的骨骼数据。然后,服务器可以将上述初始骨骼数据拆分为骨骼名称和动作数据,并分别将骨骼名称存储至骨骼名称列表,将动作数据存储至动作数据列表,并在骨骼名称列表和动作数据列表间建立对应关系。

s202、接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表;

在本申请实施例中,可以在客户端和服务器中使用相同的模型,然后,服务器在向客户端传输骨骼数据时,可以将骨骼名称和动作数据分开传输。

在具体实现中,可以首先判断当前是否为第一次传输。若当前为第一次传输,则可以由服务器同时将骨骼名称列表和动作数据列表传输给客户端,客户端可以接收服务器分别传输的上述骨骼名称列表和动作数据列表;若当前为非第一次传输,则可以确定骨骼名称列表中的骨骼名称是否发生变更。

当骨骼名称列表中的骨骼名称发生变更时,则可以由服务器同时将变更后的骨骼名称列表和动作数据列表传输给客户端,客户端可以接收服务器分别传输的变更后的骨骼名称列表和动作数据列表;当骨骼名称列表中的骨骼名称未发生变更时,则服务器无需再次传输骨骼名称列表,而只需要传输动作数据列表即可。此时,客户端可以接收到服务器传输的动作数据列表。

在本申请实施例中,由于客户端和服务器中使用的模型相同且骨骼名称也相同,因此,在服务器向客户端传输动作数据时,还可以对传输的动作数据进行优化。即在每一次传输时,只传输动作数据列表中包括的位置数据和角度数据,而无需将骨骼的父骨骼名称、id等数据传输给客户端,从而在对传输的动作数据进行打包时,可以减少数据包的大小、降低网络负担,提高数据传输的实时性。

在本申请实施例中,当需要在客户端中同时驱动多个模型时,服务器也可以向客户端传输多个预设动作模型的骨骼数据。当客户端接收到多个预设动作模型的骨骼数据后,可以在该客户端中分别采用多个不同的存储对象存储接收到的骨骼数据,上述多个不同的存储对象可以分别与服务器中的多个线程一一对应。

在具体实现中,当需要在客户端中同时驱动多个模型时,可以将每个模型的骨骼数据由一个独立的线程来处理,即服务器通过不同的线程来传输不同模型的数据包,该数据包中也包括骨骼名称列表和动作数据列表。

同时,在客户端中,也可以通过不同的对象来存储不同模型的数据包,并预先建立对象与线程之间的对应关系。当客户端接收到某个线程传来的数据包时,可以通过对应关系知道该数据包中的数据究竟是属于哪个模型的数据包。通过这种方式对网络传输进行优化,可以提高多个模型之间的并行计算能力。

s203、根据所述骨骼名称列表,初始化所述初始骨骼名称列表;

在本申请实施例中,客户端在接收到服务器分别传输的骨骼名称列表和动作数据列表后,可以对上述骨骼名称列表和动作数据列表进行解析,生成目标骨骼数据,从而可以采用目标骨骼数据驱动模型运动。

在对上述骨骼名称列表和动作数据列表进行解析时,可以首先对初始骨骼名称列表进行初始化。

需要说明的是,初始骨骼名称列表可以是预先存储在客户端中的骨骼名称列表。

客户端中存储的初始骨骼列表具有第一索引关系,经服务器传输获得的骨骼列表具有第二索引关系,上述第一索引关系和第二索引关系中均可以包括索引值和与该索引值对应的骨骼名称。

例如,索引值为1时,对应的骨骼名称可以为a;索引值为2时,对应的骨骼名称可以为b;而索引值为3时,对应的骨骼名称可以为c。

在具体实现中,可以根据初始骨骼名称列表的索引值和该索引值对应的骨骼名称确定初始骨骼名称列表的第一索引关系,根据骨骼名称列表的索引值和与该索引值对应的骨骼名称,确定骨骼名称列表的第二索引关系。

当然,上述说明仅为一种示例,本领域技术人员可以根据实际需要采用其他方式确定索引值及骨骼名称之间的对应关系,本实施例对此不作限定。

在本申请实施例中,由于客户端中存储的初始骨骼列表的第一索引关系和经服务器传输获得的骨骼列表的第二索引关系可能不同,所以基于第二索引关系,对上述第一索引关系进行初始化处理,将初始骨骼名称列表的索引关系调整为与服务器传输的骨骼名称列表的索引关系一致。

因此,在确定第一索引关系和第二索引关系后,可以判断该第一索引关系与第二索引关系是否相同,若判断结果为否,则可以将初始骨骼名称列表的第一索引关系调整为与第二索引关系相同,从而完成对初始骨骼名称列表的初始化。

具体地,在对初始骨骼列表的第一索引关系作初始化处理时,可以以第二索引关系中索引值及骨骼名称为基准,对初始骨骼名称列表中的索引值和骨骼名称进行重新排序,使得初始骨骼名称列表的第一索引关系与第二索引关系相同。

s204、根据所述骨骼名称列表的索引值、所述动作数据列表的索引值,以及初始化后的所述初始骨骼名称列表的索引值,生成目标骨骼数据;

在本申请实施例中,在依据第二索引关系对初始骨骼列表进行初始化处理并将初始骨骼列表中的第一索引关系调整为与第二索引关系相同后,可以根据上述骨骼名称列表的索引值、动作数据列表的索引值,以及初始化后的初始骨骼名称列表的索引值,生成目标骨骼数据,并依据上述目标骨骼数据执行步骤s205,从而驱动客户端中预设动作模型的运动。

s205、采用所述目标骨骼数据驱动预设动作模型中相应的骨骼进行运动。

在具体实现中,在将初始骨骼数据列表的第一索引关系调整为与第二索引关系相同后,可以根据上述第二索引关系以及骨骼名称列表和动作数据列表之间的对应关系,确定任一骨骼名称对应的动作数据。

然后,按照该动作数据的指示,驱动客户端中预设模型的各个骨骼进行运动。

在本申请实施例中,通过设置骨骼名称列表与动作数据列表之间的对应关系,并在客户端接收到服务器传输的上述骨骼名称列表和动作数据列表后,通过初始化操作,使得客户端中初始骨骼名称列表的索引值与服务器传输的骨骼名称列表的索引值相同,保证了模型驱动的准确性;同时,本实施例通过在客户端中设置不同的对象来存储不同模型的数据包,并预先建立对象与服务器线程之间的对应关系,使得客户端在接收到某个线程传来的数据包时,可以通过对应关系知道该数据包中的数据究竟是属于哪个模型的数据包。通过这种方式对网络传输进行优化,可以提高多个模型之间的并行计算能力,进一步增强了数据传输的效率。

需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

参照图3,示出了本申请一个实施例的一种数据传输的装置的示意图,具体可以包括如下模块:

通信模块301,用于建立客户端与服务器之间的通信连接,所述服务器用于生成待传输的骨骼数据,所述骨骼数据可以包括骨骼名称列表和与所述骨骼名称列表对应的动作数据列表;

接收模块302,用于接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表;

生成模块303,用于依据所述骨骼名称列表和所述动作数据列表,生成目标骨骼数据。

在本申请实施例中,所述客户端下配置有通信插件,所述通信模块301具体可以包括如下子模块:

接口调用子模块,用于基于所述通信插件,接收代码调用指令,通过所述指令调用所述服务器的应用程序编程接口,以建立所述客户端与所述服务器之间的通信连接;

或者,

属性信息配置子模块,用于接收通过所述客户端的用户界面配置的属性信息,根据所述属性信息建立所述客户端与所述服务器之间的通信连接,所述属性信息可以包括所述服务器的ip地址。

在本申请实施例中,所述待传输的骨骼数据可以由所述服务器在获取初始骨骼数据并将所述初始骨骼数据拆分为骨骼名称和动作数据后,通过将所述骨骼名称存储至骨骼名称列表、将所述动作数据存储至动作数据列表,并建立所述骨骼名称列表和所述动作数据列表之间的对应关系的方式生成。

在本申请实施例中,所述接收模块302具体可以包括如下子模块:

第一接收子模块,用于在初始接收数据时,接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表;

或者,

第二接收子模块,用于当所述骨骼名称列表发生变更时,接收所述服务器分别传输的变更后的骨骼名称列表和所述动作数据列表;当所述骨骼名称列表未发生变更时,则接收所述服务器传输的所述动作数据列表;

其中,所述动作数据列表中可以包括位置数据和角度数据。

在本申请实施例中,所述客户端中可以存储有初始骨骼名称列表,所述生成模块303具体可以包括如下子模块:

初始化子模块,用于根据所述骨骼名称列表,初始化所述初始骨骼名称列表;

生成子模块,用于根据所述骨骼名称列表的索引值、所述动作数据列表的索引值,以及初始化后的所述初始骨骼名称列表的索引值,生成目标骨骼数据;

驱动子模块,用于采用所述目标骨骼数据驱动预设动作模型中相应的骨骼进行运动。

在本申请实施例中,所述初始化子模块具体可以包括如下单元:

第一索引关系确定单元,用于根据所述初始骨骼名称列表的索引值和所述索引值对应的骨骼名称确定所述初始骨骼名称列表的第一索引关系;

第二索引关系确定单元,用于根据所述骨骼名称列表的索引值和与所述索引值对应的骨骼名称,确定所述骨骼名称列表的第二索引关系;

索引关系判断单元,用于判断所述第一索引关系与所述第二索引关系是否相同;

索引关系调整单元,用于若判断结果为否,则将所述初始骨骼名称列表的所述第一索引关系调整为与所述第二索引关系相同。

在本申请实施例中,所述装置还可以包括如下模块:

存储模块,用于当接收到多个预设动作模型的骨骼数据时,在所述客户端中分别采用多个不同的存储对象存储所述骨骼数据,所述多个不同的存储对象分别与所述服务器中的多个线程一一对应。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。

参照图4,示出了本申请一个实施例的一种终端设备的示意图。如图4所示,本实施例的终端设备400包括:处理器410、存储器420以及存储在所述存储器420中并可在所述处理器410上运行的计算机程序421。所述处理器410执行所述计算机程序421时实现上述数据传输的方法各个实施例中的步骤,例如图1所示的步骤s101至s103。或者,所述处理器410执行所述计算机程序421时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至303的功能。

示例性的,所述计算机程序421可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器420中,并由所述处理器410执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序421在所述终端设备400中的执行过程。例如,所述计算机程序421可以被分割成通信模块、接收模块和生成模块,各模块具体功能如下:

通信模块,用于建立客户端与服务器之间的通信连接,所述服务器可以用于生成待传输的骨骼数据,所述骨骼数据可以包括骨骼名称列表和与所述骨骼名称列表对应的动作数据列表;

接收模块,用于接收所述服务器分别传输的所述骨骼名称列表和所述动作数据列表;

生成模块,用于依据所述骨骼名称列表和所述动作数据列表,生成目标骨骼数据。

所述终端设备400可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备400可包括,但不仅限于,处理器410、存储器420。本领域技术人员可以理解,图4仅仅是终端设备400的一种示例,并不构成对终端设备400的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备400还可以包括输入输出设备、网络接入设备、总线等。

所述处理器410可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器420可以是所述终端设备400的内部存储单元,例如终端设备400的硬盘或内存。所述存储器420也可以是所述终端设备400的外部存储设备,例如所述终端设备400上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等等。进一步地,所述存储器420还可以既包括所述终端设备400的内部存储单元也包括外部存储设备。所述存储器420用于存储所述计算机程序421以及所述终端设备400所需的其他程序和数据。所述存储器420还可以用于暂时地存储已经输出或者将要输出的数据。

本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明。实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置/终端设备的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其他的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一方面,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件完成,所述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

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