CN113034651B - 互动动画的播放方法、装置、设备及存储介质 - Google Patents
互动动画的播放方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113034651B CN113034651B CN202110292800.5A CN202110292800A CN113034651B CN 113034651 B CN113034651 B CN 113034651B CN 202110292800 A CN202110292800 A CN 202110292800A CN 113034651 B CN113034651 B CN 113034651B
- Authority
- CN
- China
- Prior art keywords
- model
- bone
- file
- data
- node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供了一种互动动画的播放方法、装置、设备及存储介质,涉及动画技术领域。所述方法包括:加载参与第一互动动画的第一模型和第二模型;获取与第一互动动画相关的第一节点挂接配置信息;从第二模型的模型文件中提取第一待迁移数据;在第一模型的模型文件中确定第一骨骼挂点,并将第一待迁移数据添加至第一骨骼挂点下,得到第一模型的更新后模型文件;基于第一模型的更新后模型文件和第一互动动画的动画文件,驱动第一模型和第二模型运动,以播放第一互动动画。本申请实施例提供的技术方案,能够提升互动动画中多个模型之间运动的同步性和协调性。
Description
技术领域
本申请实施例涉及动画技术领域,特别涉及一种互动动画的播放方法、装置、设备及存储介质。
背景技术
随着动画技术的发展,经常需要通过驱动建好的角色或物品的模型来播放相应的动画。
在相关技术中,对于包含两个模型的互动动画,需要通过两个动画文件分别驱动这两个模型进行运动,再使用两个动画播放组件来分别播放这两个模型各自对应的动画,即得到两个动画,将两个动画合并才能得到这两个模型的互动动画。
但是,在上述相关技术中,由于采用了两个动画文件和两个动画播放组件,互动动画中容易出现两个模型运动不同步的情况。
发明内容
本申请实施例提供了一种互动动画的播放方法、装置、设备及存储介质,能够提升互动动画中多个模型之间运动的同步性和协调性。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种互动动画的播放方法,所述方法包括:
加载参与第一互动动画的第一模型和第二模型;
获取与所述第一互动动画相关的第一节点挂接配置信息,所述第一节点挂接配置信息用于指示所述第一互动动画中,所述第一模型的第一骨骼挂点以及所述第二模型的第一待挂接骨骼节点;
从所述第二模型的模型文件中提取第一待迁移数据,所述第一待迁移数据包括所述待挂接骨骼节点的骨骼数据;
在所述第一模型的模型文件中确定所述第一骨骼挂点,并将所述待迁移数据添加至所述第一骨骼挂点下,得到所述第一模型的更新后模型文件;
基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第一互动动画。
根据本申请实施例的一个方面,提供了一种互动动画的播放装置,所述装置包括:
模型加载模块,用于加载参与第一互动动画的第一模型和第二模型;
信息获取模块,用于获取与所述第一互动动画相关的第一节点挂接配置信息,所述第一节点挂接配置信息用于指示所述第一模型的第一骨骼挂点以及所述第二模型的第一待挂接骨骼节点;
数据提取模块,用于从所述第二模型的模型文件中提取第一待迁移数据,所述第一待迁移数据包括所述第一待挂接骨骼节点的骨骼数据;
在所述第一模型的模型文件中确定所述第一骨骼挂点,并将所述待迁移数据添加至所述第一骨骼挂点下,得到所述第一模型的更新后模型文件;
基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第一互动动画。
根据本申请实施例的一个方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述互动动画的播放方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述互动动画的播放方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述互动动画的播放方法。
本申请实施例提供的技术方案可以包括如下有益效果:
通过将第二模型文件的第一待挂接骨骼节点挂接到第一模型文件的第一骨骼挂点下,从而使得一个模型文件(即第一模型的更新后模型文件)中就可以包含第一模型和第二模型中所有需要驱动的骨骼的相关数据,基于这一个模型文件驱动第一模型和第二模型,避免了第一互动动画中多个模型运动不同步的情况,从而保证了需要同步运动的骨骼能够被同步驱动,进而提升了第一互动动画中多个模型之间运动的同步性和协调性。
另外,本申请实施例中,通过将两个模型的两个模型文件合并为一个模型文件,相应的,只需设置一个动画文件来驱动两个模型,且只需一个动画播放组件播放第一互动动画,从而降低了播放第一互动动画的运行复杂度并节省了终端的处理开销。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的互动动画的播放的方法的流程图;
图3是本申请一个实施例提供的互动动画的示意图;
图4是本申请一个实施例提供的骨骼节点的层级示意图;
图5是本申请一个实施例提供的骨骼节点的迁移示意图;
图6是本申请另一个实施例提供的互动动画的播放的方法的流程图;
图7是本申请一个实施例提供的模型合并的流程图;
图8是本申请一个实施例提供的互动动画的播放装置的框图;
图9是本申请另一个实施例提供的互动动画的播放装置的框图;
图10是本申请一个实施例提供的终端的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法的例子。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图,该实施环境可以实现为互动动画的播放系统。如图1所示,该系统10可以包括:终端11。
终端11中安装并运行有目标应用程序,如目标应用程序的客户端。可选地,客户端中登录有用户帐号。终端是具备数据计算、处理和存储能力的电子设备。终端可以是智能手机、平板电脑、PC(Personal Computer,个人计算机)、可穿戴设备等等,本申请实施例对此不作限定。该目标应用程序可以是游戏应用程序,如射击类游戏应用程序、多人枪战类生存游戏应用程序、大逃杀生存类游戏应用程序、LBS(Location Based Service,基于位置服务)类游戏应用程序、MOBA(Multiplayer Online Battle Arena,多人在线战术竞技)类游戏应用程序等等,本申请实施例对此不作限定。该目标应用程序还可以是社交应用程序、支付应用程序、视频应用程序、音乐应用程序、购物应用程序、新闻应用程序等任何具有互动动画的播放功能的应用程序。本申请实施例提供的方法,各步骤的执行主体可以是终端11,如运行在该终端11中的客户端。
在一些实施例中,该系统10还包括服务器12,服务器12与终端11建立有通信连接(如网络连接),服务器12用于为目标应用程序提供后台服务。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。
本申请实施例提供的互动动画的播放方法,可以应用于通过显示屏进行动画播放的场景中;也可以应用于AR(Augmented Reality,增强现实)、VR(Virtual Reality,虚拟现实)等的动画播放场景中,本申请实施例对此不作具体限定。
下面,通过几个实施例对本申请技术方案进行介绍说明。
请参考图2,其示出了本申请一个实施例提供的互动动画的播放方法的流程图。在本实施例中,以该方法应用于上文介绍的客户端中来举例说明。该方法可以包括如下几个步骤(201~205):
步骤201,加载参与第一互动动画的第一模型和第二模型。
在一些实施例中,第一互动动画中包括多个模型,如第一互动动画中的第一模型和第二模型,第一模型和第二模型之间存在互动关系。参与第一互动动画的模型可以是二维模型;也可以是三维模型,如由3D(3Dimension,三维)建模软件建模并导入到3D游戏引擎中、之后借助3D图形建模渲染技术得到的模型。可选地,参与第一互动动画的模型可以为用于表示虚拟角色的角色模型、用于表示虚拟物品的物品角色模型等等。其中,虚拟角色可以为虚拟人物角色、虚拟英雄角色、虚拟动物角色、虚拟怪物角色等等,本申请实施例对此不作具体限定。其中,虚拟角色可以是用户所拥有的用户帐号对应的、受用户控制的角色,在游戏应用程序的客户端中也可以称为玩家角色;虚拟角色还可以是不受用户控制的角色,在游戏应用程序的客户端中也可以称为NPC(Non-player Character,非玩家角色)。其中,第一模型和第二模型可以是同一种模型,如同为人物角色模型;第一模型和第二模型也可以是不同种类的模型,如第一模型为人物角色模型,第二模型为物品模型。
在一个示例中,第一互动动画展示的是第一人物角色模型“牵起”第二角色模型的手部,因而该第一互动动画包含了第二人物角色模型的手部与第一人物角色模型的手部之间的互动关系。在另一个示例中,如图3所示,第一互动动画展示的是第三人物角色模型31“拿起”棋子模型32,因而该第一互动动画包含了棋子模型32与第三人物角色模型31的手部33之间的互动关系。
步骤202,获取与第一互动动画相关的第一节点挂接配置信息。
可选地,第一节点挂接配置信息用于指示第一互动动画中,第一模型的第一骨骼挂点以及第二模型的第一待挂接骨骼节点。例如,第一节点挂接配置信息包括了第一骨骼挂点的名称/其他标识信息,以及第一待挂接骨骼节点的名称/其他标识信息。在一些实施例中,第一互动动画属于骨骼动画。骨骼动画是模型动画中的一种,在骨骼动画中,模型包括由互相连接的“骨骼”组成的骨架结构,通过改变骨骼的位置和姿态可以生成骨骼动画。在本申请实施例中,通过分别改变第一模型和第二模型的骨骼的位置和姿态,使得第一模型和第二模型之间产生互动运动,从而得到第一互动动画。
在一些实施例中,第一骨骼挂点表示第一模型中与第二模型之间产生了互动的模型部分对应的骨骼;第一待挂接骨骼节点是指第二模型中与第一骨骼挂点之间产生了互动的模型部分对应的骨骼。在另一些实施例中,第一骨骼挂点为第一模型中的任意一个骨骼节点。
可选地,第二模型的骨架结构中,包括多个层级的骨骼节点。其中,骨骼节点用于表示指定的骨骼或骨骼群组。例如,对于人物角色模型,骨架结构可以包括如图4所示的多个层级的骨骼节点,骨骼节点的层级由高到低分别为:脊椎41、脖子42、左锁骨43、左上臂44、左小臂45、左手46、左手的第一个手指47。
在一些实施例中,第一待挂接骨骼节点为第二模型的根骨骼节点。根骨骼节点是指第二模型的各个骨骼节点中,层级最高的骨骼节点。
需要说明的是,第二模型的根骨骼节点并不是第二模型的根节点。可选地,如图5所示,第二模型的根节点为51,第二模型的根骨骼节点52是第二模型的一个子节点。
在另一些实施例中,第一待挂接骨骼节点为第二模型中需要被驱动的骨骼的骨骼节点;也即,第一待挂接骨骼节点可以是根骨骼节点,也可以是根骨骼节点下的任一层级的子节点。通常情况下,模型的根骨骼节点只有一个,其他骨骼节点可以以根骨骼节点为根节点,进行链状展开或者树状展开,形成包含多个层级的骨骼架构。在一个例子中,人物角色模型的左侧锁骨节点为根骨骼节点,其子节点为左上臂节点,左上臂的子节点为左小臂,左小臂的子节点为左手,左手的子节点为左手的5个手指。
步骤203,从第二模型的模型文件中提取第一待迁移数据,第一待迁移数据包括第一待挂接骨骼节点的骨骼数据。
在一些实施例中,对于参与第一互动动画的第一模型和第二模型,分别对应有各自的模型文件,用于表示第一模型和第二模型的骨架结构,如表示骨架结构中包括的骨骼节点、各个骨骼节点的骨骼数据以及各个骨骼节点之间的层级关系等等。通过从第二模型的模型文件中提取第一待迁移数据,能够将第一待挂接骨骼节点迁移出第二模型的模型文件。
步骤204,在第一模型的模型文件中确定第一骨骼挂点,并将第一待迁移数据添加至第一骨骼挂点下,得到第一模型的更新后模型文件。
在一些实施例中,确定第一骨骼挂点在第一模型文件中所在的位置,将第一待迁移数据添加至第一骨骼挂点下,从而实现对第一待挂接骨骼节点的迁移和挂接。显然,第一模型的更新后模型文件中,包括第一模型的模型文件中原有的第一模型的骨骼数据,以及用于与第一模型产生互动的第二模型的骨骼数据。
在一些实施例中,第一待迁移数据从第二模型的模型文件中被提取出来后,第二模型的模型文件缺失了这部分的数据。在第二模型仅需要与第一模型产生互动的情况下,第一模型和第二模型的模型文件中,整体的骨骼数据的数据量未发生变化,也即,仅发生了数据的迁移,未增加新的数据,从而避免了数据量的增加,进而避免了进一步消耗存储资源。
在另一些实施例中,第一待迁移数据是从第二模型的模型文件中复制得到的,然后将复制得到的第一待迁移数据添加至第一骨骼挂点下,第二模型的模型文件保持完整,未缺失待迁移数据,从而实现对第二模型的备份,在复制得到的第一迁移数据出错、或复制得到的第一迁移数据丢失、或骨骼节点的挂接过程出错等异常情况下,可以从完整的第二模型的模型文件中重新获取第一待迁移数据,减少了因异常情况而导致的第一互动动画无法及时播放的概率。
步骤205,基于第一模型的更新后模型文件和第一互动动画的动画文件,驱动第一模型和第二模型运动,以播放第一互动动画。
在一些实施例中,动画文件用于配置第一模型和第二模型在第一互动动画中的运动信息(也称为骨骼驱动信息),如运动的骨骼的运动轨迹、方向、时长、速度等等。可选地,第一互动动画仅对应于一个动画文件,通过该动画文件同时驱动第二模型挂接在第一模型中的骨骼和第一模型,使得第一模型和第二模型之间发生互动运动,以播放第一互动动画。
可选地,由于通过一个动画文件即可驱动第一模型和第二模型运动,因而,无需采用两个动画播放组件分别播放第一模型和第二模型的动画、再将两个动画合成为第一互动动画;第一互动动画可以仅采用一个动画播放组件进行播放,从而节省了播放第一互动动画所需的处理资源。可选地,动画播放组件可以是Animator,但不限定还可以是其他具有动画播放功能的组件。
可选地,同一骨骼节点在模型文件中的名称与在动画文件中的名称相同。由于需要基于动画文件驱动模型文件(即第一模型的更新后模型文件)中的骨骼节点进行运动,因而,动画文件和模型文件中的骨骼节点需要匹配,从而使得客户端能够根据动画文件中包含的骨骼节点的名称,在模型文件中找到对应的骨骼。
综上所述,本申请实施例提供的技术方案中,通过将第二模型文件的待挂接骨骼节点挂接到第一模型文件的第一骨骼挂点下,从而使得一个模型文件(即第一模型的更新后模型文件)中就可以包含第一模型和第二模型中所有需要驱动的骨骼的相关数据,基于这一个模型文件驱动第一模型和第二模型,避免了第一互动动画中多个模型运动不同步的情况,从而保证了需要同步运动的骨骼能够被同步驱动,进而提升了第一互动动画中多个模型之间运动的同步性和协调性。
另外,本申请实施例中,通过将两个模型的两个模型文件合并为一个模型文件,相应的,只需设置一个动画文件来驱动两个模型,且只需一个动画播放组件播放第一互动动画,从而降低了播放第一互动动画的运行复杂度并节省了终端的处理开销。
请参考图6,其示出了本申请另一个实施例提供的互动动画的播放的方法的流程图。在本实施例中,以该方法应用于上文介绍的客户端中来举例说明。该方法可以包括如下几个步骤(601~610):
步骤601,加载参与第一互动动画的第一模型和第二模型。
该步骤601与上述图2实施例中的步骤201的步骤相同或相近,此处不再赘述。
步骤602,从第一模型的配置表中,读取第一节点配置信息,第一节点配置信息用于指示第一骨骼挂点。
也即,从第一模型的配置表中,能够确定第一模型中的哪个骨骼节点是第一骨骼挂点。
步骤603,从第二模型的配置表中,读取第二节点配置信息,第二节点配置信息用于指示第一待挂接骨骼节点。
也即,从第二模型的配置表中,能够确定第二模型中的哪个骨骼节点是第一待挂接骨骼节点。
步骤604,从第二模型的模型文件中,提取第一待挂接骨骼节点的骨骼数据,以及第一待挂接骨骼节点的子节点的骨骼数据,得到第一待迁移数据。
其中,第一待挂接骨骼节点与其子节点之间的层级关系,在迁移前后保持不变。
在一些实施例中,基于第二节点配置信息确定了第一待挂接骨骼节点之后,从第二模型的模型文件中提取第一待挂接骨骼节点的相关数据,即可得到第一待迁移数据。由于第一待挂接骨骼节点发生运动时,其子节点也会随之一起运动,因而第一迁移数据中除了第一待挂接骨骼节点的骨骼数据,还需要包含第一待挂接骨骼节点的子节点的骨骼数据,从而确保第一待挂接骨骼节点的子节点能够随着第一待挂接骨骼一起运动。
步骤605,在第一模型的模型文件中确定第一骨骼挂点,并将第一待迁移数据添加至第一骨骼挂点下,得到第一模型的更新后模型文件。
在一些实施例中,基于第一节点配置信息,能够确定第一待迁移数据的目标迁移位置(即第一骨骼挂点下),使第一待挂接骨骼节点成为第一骨骼挂点的子节点,从而保证第一待挂接骨骼节点能够随着第一骨骼挂点同步运动。
下面,结合一个示例中介绍上述步骤604和605的内容:
如图5所示,从第二模型的模型文件53中,提取待挂接骨骼节点52的骨骼数据,以及待挂接骨骼节点52的子节点的骨骼数据,得到迁移数据54;之后,将迁移数据54迁移到骨骼挂点55下,得到第一模型的更新后模型文件56。
步骤606,运行预定义程序,对第一待挂接骨骼节点的位置和姿态进行设置。
可选地,第一待挂接骨骼节点的位置和姿态用于定义在播放第一互动动画之前,第一待挂接骨骼节点与第一骨骼挂点之间的相对位置关系。在播放第一互动动画之前,通过预定义程序,设置第二模型的第一待挂接骨骼节点与第一模型的第一骨骼挂点之间初始的相对位置关系,并设置第一待挂接骨骼节点初始的姿态。动画文件能够基于第一待挂接骨骼节点的位置和姿态,驱动第二模型与第一模型进行互动运动。该实施例中,在骨骼数据迁移之后,通过预先设置第一待挂接骨骼节点与第一骨骼挂点之间的相对位置关系,能够使得两者之间的相对位置关系可控,更加自然协调。
步骤607,从第一互动动画的动画文件中,获取骨骼驱动数据,骨骼驱动数据用于确定待驱动的目标骨骼以及相应的驱动方式。
可选地,目标骨骼包括第一模型中待驱动的骨骼以及第二模型中待驱动的骨骼。可选地,目标骨骼可以是第一模型的第一骨骼挂点或第二模型的第一待挂接骨骼节点,也可以是第一模型中的非骨骼挂点。
在一些实施例中,骨骼驱动数据包括:施加在目标骨骼上的虚拟驱动力的大小、方向和作用点。在另一些实施例中,骨骼驱动数据包括:目标骨骼的在各个时间节点或时间段上的运动方向、速度、姿态、所在位置等等。
步骤608,基于骨骼驱动数据,从第一模型的更新后模型文件中,读取目标骨骼的骨骼数据。
在一些实施例中,基于骨骼驱动数据,确定第一模型的更新后模型文件中需要被驱动的目标骨骼。
步骤609,基于目标骨骼的骨骼数据和驱动方式,驱动目标骨骼运动,以播放第一互动动画。
在一些实施例中,按照目标骨骼的驱动方式驱动目标骨骼,使目标骨骼发生运动,从而生成并播放第一互动动画。
步骤610,在第一互动动画播放完成之后,将第一待迁移数据移回第二模型的模型文件中,恢复得到第二模型的模型文件。
在一些实施例中,在第一互动动画播放完成之后的预设时长内,若第一互动动画未被再次播放,可以认为暂时用不到第一模型的更新后模型文件,则将第一待迁移数据移回到第二模型文件中,得到第二模型恢复后的模型文件。预设时长可以为10秒、15秒、30秒、45秒、1分钟、3分钟、10分钟、30分钟等等。可选地,预设时长的具体时长由相关技术人员根据实际情况进行设定,本申请实施例对此不作具体限定。
在该步骤610中,第一互动动画播放完成之后,若第一模型的更新后模型文件中包含的第一迁移数据暂时无需使用,将第一迁移数据移回第二模型的模型文件中,从而恢复第二模型的模型文件,使得第二模型恢复后的模型文件可以被重复使用,如基于第二模型恢复后的模型文件播放其他的第一互动动画。
在一些实施例中,如果某个模型需要播放多个第一互动动画(如两个动画),那么该模型的配置表里可以配置有多个骨骼挂点,不同模型的迁移数据可以添加到该模型的配置表里;该模型的配置表里也可以配置有多个待挂接骨骼节点,用于将该模型的骨骼数据迁移至不同模型分别对应的模型文件中;该模型的配置表里还可以同时配置有骨骼挂点和待挂接骨骼节点。
综上所述,本申请实施例提供的技术方案中,由于第一待挂接骨骼节点与其子节点之间的层级关系,在迁移前后保持不变,避免了第二模型显示异常,进而避免了第一互动动画播放发生异常。
在一些实施例中,上述步骤605之后,还包括如下几个步骤:
1、从第二模型的模型文件中,提取除第一待迁移数据之外的剩余数据;
2、在第一模型的模型文件中,添加剩余数据;其中,剩余数据添加至第一待挂接骨骼节点下;
3、销毁第二模型的模型文件。
在该实施例中,将第二模型的模型文件中,第一待迁移数据海外的剩余数据添加到第一模型的模型文件中,并销毁第二模型的模型文件,使得第一模型文件中同时包含第一模型和第二模型的所有相关数据,从而精简模型文件的数量;另外,将第一模型的模型文件可以被用来重复播放第一互动动画,且由于无需再次进行数据迁移,减少了重复播放第一互动动画时所需的处理资源,并提升了第一互动动画的播放效率。
下面,结合图7对上文实施例中涉及的第一模型和第二模型的合并方法进行总结介绍。如图7所示,该方法可以包括如下几个步骤(701~705):
步骤701,加载参与第一互动动画的第一模型和第二模型;
步骤702,确定第一模型的第一骨骼挂点和第二模型的第一待挂接骨骼节点;
步骤703,将第一待挂接骨骼节点以及相关的骨骼数据挂接到第一骨骼挂点下;
步骤704,对第一待挂接骨骼节点的位置和姿态进行设置;
步骤705,在第一模型的模型文件中,添加第二模型的模型文件中除第一待迁移数据之外的剩余数据,合并完成。
在另一些可能的实现方式中,第一互动动画还包括参与的第三模型,互动动画的播放方法还包括如下几个步骤:
1、加载第三模型;
2、获取与第一互动动画相关的第二节点挂接配置信息,第二节点挂接配置信息用于指示第一互动动画中,第一模型的第二骨骼挂点以及第三模型的第二待挂接骨骼节点;
3、从第三模型的模型文件中提取第二待迁移数据,第二待迁移数据包括第二待挂接骨骼节点的骨骼数据;
4、在第一模型的模型文件中确定第二骨骼挂点,并将第二待迁移数据添加至第二骨骼挂点下,得到第一模型的更新后模型文件;
5、基于第一模型的更新后模型文件和第一互动动画的动画文件,驱动第一模型、第二模型和第三模型运动,以播放第一互动动画。
针对该实现方式的部分解释说明可以参考上述图2实施例和图6实施例的内容,此处不再赘述。
在一些实施例中,参与第一互动动画的模型包括第一模型、第二模型和第三模型,第一模型与第二模型之间、以及第一模型与第三模型之间都存在互动关系。第二模型和第三模型分别对应有各自的待挂接骨骼节点,第二模型的待挂接骨骼节点为第一待挂接骨骼节点,第三模型的待挂接骨骼节点为第二待挂接骨骼节点。第一待挂接骨骼节点和第二待挂接骨骼节点用于挂接到同一个模型(即第一模型)上,如第一待挂接骨骼节点挂接到第一模型的第一骨骼挂点下,第二待挂接骨骼节点挂接到第一模型的第二骨骼挂点下。第一骨骼挂点和第二骨骼挂点可以是同一个骨骼挂点,即,第一待挂接骨骼节点和第二待挂接骨骼节点将会挂接在同一个骨骼挂点下;第一骨骼挂点和第二骨骼挂点也可以是不相同的两个骨骼挂点,即,第一待挂接骨骼节点和第二待挂接骨骼节点将会挂接在不同的骨骼挂点下,本申请实施例对此不作具体限定。当第一待挂接骨骼节点和第二待挂接骨骼节点挂接在同一个骨骼挂点下时,第一待挂接骨骼节点和第二待挂接骨骼节点在第一模型的模型文件中的层级相同,均为该骨骼挂点的下一层级。
在一个具体的实施例中,第一互动动画展示的是第三人物角色模型的左手“拿起”酒杯模型、右手“摇”扇子模型,因而参与该第一互动动画的模型包括第一模型(即第三人物角色模型)、第二模型(即酒杯模型)和第三模型(即扇子模型)。该第一互动动画中存在两种互动关系:第三人物角色模型的左手手部与酒杯模型之间的互动关系、以及第三人物角色模型的与扇子模型之前的互动关系。在一个示例中,第三人物角色模型包括不相同的两个骨骼挂点,分别为第三人物角色模型的左手对应的骨骼挂点1、以及第三人物角色模型的右手对应的骨骼挂点2,酒杯模型的待挂接骨骼节点可以挂接到骨骼挂点1下,扇子模型的待挂接骨骼节点可以挂接到骨骼挂点2下。在另一个示例中,第三人物角色模型中包括骨骼挂点3,酒杯模型的待挂接骨骼节点和扇子模型的待挂接骨骼节点都挂接到骨骼挂点3下。
可选地,当第一互动动画中包括4个、5个或更多模型时,可以将其中的一个模型作为主模型,将其他模型的待挂接骨骼节点都挂接到该一个模型中,以播放第一互动动画。
在上述实现方式中,将第二模型和第三模型的骨骼数据挂接到第一模型的模型文件中,当第一互动动画中包括多于两个模型时,可以选择其中的一个模型,将其余模型的待挂接骨骼节点都挂接到该一个模型中,从而使得包括多个模型的第一互动动画,可以通过一个动画文件和一个动画播放组件进行播放播放,降低了播放第一互动动画的运行复杂度并节省了终端的处理开销。
在另一些可能的实现方式中,第一互动动画还包括参与的第四模型,互动动画的播放方法还包括如下几个步骤:
1、加载第四模型;
2、获取与第一互动动画相关的第三节点挂接配置信息,第三节点挂接配置信息用于指示第一互动动画中,第二模型的第三骨骼挂点以及第四模型的第三待挂接骨骼节点;
3、从第四模型的模型文件中提取第三待迁移数据,第三待迁移数据包括第三待挂接骨骼节点的骨骼数据;
4、在第一模型的更新后模型文件中确定第三骨骼挂点,并将第三待迁移数据添加至第三骨骼挂点下,得到第一模型的二次更新后模型文件;
5、基于第一模型的二次更新后模型文件和第一互动动画的动画文件,驱动第一模型、第二模型和第四模型运动,以播放第一互动动画。。
针对该实现方式的部分解释说明可以参考上述图2实施例和图6实施例的内容,此处不再赘述。
在一些实施例中,参与第一互动动画的模型包括第一模型、第二模型和第四模型,第一模型与第二模型之间、以及第二模型与第四模型之间存在互动关系。第二模型中的第一待挂接骨骼节点挂接到第一模型中的第一骨骼挂点下,第一待迁移数据中包括第三骨骼挂点的骨骼数据,第四模型中的第三待挂接骨骼节点再挂接到第三骨骼挂点下,得到第一模型的二次更新后模型文件,在第一模型的二次更新后模型文件中,部分骨骼节点由高到低的层级关系为:第一骨骼挂点的层级>第一待挂接骨骼节点的层级>第三骨骼挂点的层级>第三待挂接骨骼节点的层级。
可选地,第二模型的第一待挂接骨骼节点与第三骨骼挂点可以是同一个骨骼节点,在这种情况下,第一模型更新后的模型文件中,部分骨骼节点由高到低的层级关系为:第一骨骼挂点的层级>第一待挂接骨骼节点的层级=第三骨骼挂点的层级>第三待挂接骨骼节点的层级。
在上述实现方式中,将第二模型和第四模型的骨骼数据通过链式挂接的方式挂接到第一模型的模型文件中,当第一互动动画中包括多于两个模型时,可以选择其中的一个模型,将其余模型的待挂接骨骼节点通过链式挂接的方式挂接到该一个模型的模型文件中,从而使得包括多个模型的第一互动动画,可以通过一个动画文件和一个动画播放组件进行播放播放,降低了播放第一互动动画的运行复杂度并节省了终端的处理开销。
在另一些可能的实现方式中,互动动画的播放方法还包括如下几个步骤:
1、获取与第二互动动画相关的第四节点挂接配置信息,参与第二互动动画的模型包括第一模型和第二模型,第四节点挂接配置信息用于指示第二互动动画中,第一模型的第四骨骼挂点;
2、在第一模型的模型文件中确定第四骨骼挂点,并将第一待迁移数据迁移至第四骨骼挂点下,得到第一模型的再次更新后模型文件,第四骨骼挂点与第一骨骼挂点为第一模型的两个不相同的骨骼节点;
3、基于第一模型的再次更新后模型文件和第二互动动画的动画文件,驱动第一模型和第二模型运动,以播放第二互动动画。
针对该实现方式的部分解释说明可以参考上述图2实施例和图6实施例的内容,此处不再赘述。
在上述实现方式中,当第一互动动画和第二互动动画中包含的模型相同(如都包含第一模型和第二模型),但第一模型的骨骼挂点不相同时,可以将挂接在第一骨骼挂点下的第一迁移数据直接迁移至第四骨骼故而点下,以播放第二互动动画,避免了重新获取模型文件的过程,简化了处理步骤,节省了终端的处理开销。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图8,其示出了本申请一个实施例提供的互动动画的播放装置的框图。该装置具有实现上述互动动画的播放的方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的终端11,也可以设置在终端11上。该装置800可以包括:模型加载模块810、信息获取模块820、数据提取模块830、数据添加模块840和模型驱动模块850。
所述模型加载模块810,用于加载参与第一互动动画的第一模型和第二模型。
所述信息获取模块820,用于获取与所述第一互动动画相关的第一节点挂接配置信息,所述第一节点挂接配置信息用于指示所述第一模型的第一骨骼挂点以及所述第二模型的第一待挂接骨骼节点。
所述数据提取模块830,用于从所述第二模型的模型文件中提取第一待迁移数据,所述第一待迁移数据包括所述第一待挂接骨骼节点的骨骼数据。
所述数据添加模块840,用于在所述第一模型的模型文件中确定所述第一骨骼挂点,并将所述第一待迁移数据添加至所述第一骨骼挂点下,得到所述第一模型的更新后模型文件。
所述模型驱动模块850,用于基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第一互动动画。
综上所述,本申请实施例提供的技术方案中,通过将第二模型文件的第一待挂接骨骼节点挂接到第一模型文件的第一骨骼挂点下,从而使得一个模型文件(即第一模型的更新后模型文件)中就可以包含第一模型和第二模型中所有需要驱动的骨骼的相关数据,基于这一个模型文件驱动第一模型和第二模型,避免了第一互动动画中多个模型运动不同步的情况,从而保证了需要同步运动的骨骼能够被同步驱动,进而提升了第一互动动画中多个模型之间运动的同步性和协调性。
在示例性实施例中,所述数据提取模块830,用于:
从所述第二模型的模型文件中,提取所述第一待挂接骨骼节点的骨骼数据,以及所述第一待挂接骨骼节点的子节点的骨骼数据,得到所述第一待迁移数据;其中,所述第一待挂接骨骼节点与其子节点之间的层级关系,在迁移前后保持不变。
在示例性实施例中,所述模型驱动模块850,用于:
从所述第一互动动画的动画文件中,获取骨骼驱动数据,所述骨骼驱动数据用于确定待驱动的目标骨骼以及相应的驱动方式;其中,所述目标骨骼包括所述第一模型中待驱动的骨骼以及所述第二模型中待驱动的骨骼;
基于所述骨骼驱动数据,从所述第一模型的更新后模型文件中,读取所述目标骨骼的骨骼数据;
基于所述目标骨骼的骨骼数据和所述驱动方式,驱动所述目标骨骼运动,以播放所述第一互动动画。
在示例性实施例中,如图9所示,所述装置800还包括:程序运行模块860。
所述程序运行模块860,用于运行预定义程序,对所述第一待挂接骨骼节点的位置和姿态进行设置;其中,所述第一待挂接骨骼节点的位置和姿态用于定义在播放所述互动动画之前,所述第一待挂接骨骼节点与所述第一模型的骨骼挂点之间的相对位置关系。
在示例性实施例中,如图9所示,所述装置800还包括:模型销毁模块870。
所述数据提取模块830,还用于从所述第二模型的模型文件中,提取除所述第一待迁移数据之外的剩余数据。
所述数据添加模块840,还用于在所述第一模型的模型文件中,添加所述剩余数据;其中,所述剩余数据添加至所述第一待挂接骨骼节点下。
所述模型销毁模块870,用于销毁所述第二模型的模型文件。
在示例性实施例中,如图9所示,所述装置800还包括:数据移回模块880。
所述数据移回模块880,用于在所述第一互动动画播放完成之后,将所述第一待迁移数据移回所述第二模型的模型文件中,得到所述第二模型恢复后的模型文件;其中,所述第二模型恢复后的模型文件与所述第二模型初始的模型文件相同。
在示例性实施例中,所述信息获取模块820,用于:
从所述第一模型的配置表中,读取第一节点配置信息,所述第一节点配置信息用于指示所述第一骨骼挂点;
从所述第二模型的配置表中,读取第二节点配置信息,所述第二节点配置信息用于指示所述第一待挂接骨骼节点。
在示例性实施例中,所述第一互动动画还包括参与的第三模型。
所述模型加载模块810,还用于加载所述第三模型。
所述信息获取模块820,还用于获取与所述第一互动动画相关的第二节点挂接配置信息,所述第二节点挂接配置信息用于指示所述第一互动动画中,所述第一模型的第二骨骼挂点以及所述第三模型的第二待挂接骨骼节点。
所述数据提取模块830,还用于从所述第三模型的模型文件中提取第二待迁移数据,所述第二待迁移数据包括所述第二待挂接骨骼节点的骨骼数据。
所述数据添加模块840,还用于在所述第一模型的模型文件中确定所述第二骨骼挂点,并将所述第二待迁移数据添加至所述第二骨骼挂点下,得到所述第一模型的更新后模型文件。
所述模型驱动模块850,还用于基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型、所述第二模型和所述第三模型运动,以播放所述第一互动动画。
在示例性实施例中,所述第一互动动画还包括参与的第四模型。
所述模型加载模块810,还用于加载所述第四模型。
所述信息获取模块820,还用于获取与所述第一互动动画相关的第三节点挂接配置信息,所述第三节点挂接配置信息用于指示所述第一互动动画中,所述第二模型的第三骨骼挂点以及所述第四模型的第三待挂接骨骼节点。
所述数据提取模块830,还用于从所述第四模型的模型文件中提取第三待迁移数据,所述第三待迁移数据包括所述第三待挂接骨骼节点的骨骼数据。
所述数据添加模块840,还用于在所述第一模型的更新后模型文件中确定所述第三骨骼挂点,并将所述第三待迁移数据添加至所述第三骨骼挂点下,得到所述第一模型的二次更新后模型文件。
所述模型驱动模块850,还用于基于所述第一模型的二次更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型、所述第二模型和所述第四模型运动,以播放所述第一互动动画。
在示例性实施例中,所述信息获取模块820,还用于获取与第二互动动画相关的第四节点挂接配置信息,参与所述第二互动动画的模型包括所述第一模型和所述第二模型,所述第四节点挂接配置信息用于指示所述第二互动动画中,所述第一模型的第四骨骼挂点。
所述数据添加模块840,还用于在所述第一模型的模型文件中确定所述第四骨骼挂点,并将所述第一待迁移数据迁移至所述第一模型的第四骨骼挂点下,得到所述第一模型的再次更新后模型文件,所述第四骨骼挂点与所述第一骨骼挂点为所述第一模型的两个不相同同的骨骼节点。
所述模型驱动模块850,还用于基于所述第一模型的再次更新后模型文件和所述第二互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第二互动动画。
在示例性实施例中,所述第一待挂接骨骼节点为所述第二模型的根骨骼节点;或,所述第一待挂接骨骼节点为在第一互动动画中所述第二模型需要被驱动的骨骼的骨骼节点。
在示例性实施例中,所述第一互动动画采用一个动画播放组件进行播放。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图10,其示出了本申请一个实施例提供的终端1000的结构框图。该终端1000可以是诸如手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC等电子设备。该终端用于实施上述实施例中提供的互动动画的播放方法。该终端可以是图1所示实施环境中的终端11。具体来讲:
通常,终端1000包括有:处理器1001和存储器1002。
处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一条指令、至少一段程序、代码集或指令集,且经配置以由一个或者一个以上处理器执行,以实现上述互动动画的播放方法。
在一些实施例中,终端1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、显示屏1005、摄像头组件1006、音频电路1007、定位组件1008和电源1009中的至少一种。
本领域技术人员可以理解,图10中示出的结构并不构成对终端1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集在被处理器执行时以实现上述互动动画的播放方法。
可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述互动动画的播放方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种互动动画的播放方法,其特征在于,所述方法包括:
加载参与第一互动动画的第一模型和第二模型;
获取与所述第一互动动画相关的第一节点挂接配置信息,所述第一节点挂接配置信息用于指示所述第一互动动画中,所述第一模型的第一骨骼挂点以及所述第二模型的第一待挂接骨骼节点;
从所述第二模型的模型文件中提取第一待迁移数据,所述第一待迁移数据包括所述第一待挂接骨骼节点的骨骼数据;
在所述第一模型的模型文件中确定所述第一骨骼挂点,并将所述第一待迁移数据添加至所述第一骨骼挂点下,得到所述第一模型的更新后模型文件;
基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第一互动动画。
2.根据权利要求1所述的方法,其特征在于,所述从所述第二模型的模型文件中提取第一待迁移数据,包括:
从所述第二模型的模型文件中,提取所述第一待挂接骨骼节点的骨骼数据,以及所述第一待挂接骨骼节点的子节点的骨骼数据,得到所述第一待迁移数据;
其中,所述第一待挂接骨骼节点与其子节点之间的层级关系,在迁移前后保持不变。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第一互动动画,包括:
从所述第一互动动画的动画文件中,获取骨骼驱动数据,所述骨骼驱动数据用于确定待驱动的目标骨骼以及相应的驱动方式;其中,所述目标骨骼包括所述第一模型中待驱动的骨骼以及所述第二模型中待驱动的骨骼;
基于所述骨骼驱动数据,从所述第一模型的更新后模型文件中,读取所述目标骨骼的骨骼数据;
基于所述目标骨骼的骨骼数据和所述驱动方式,驱动所述目标骨骼运动,以播放所述第一互动动画。
4.根据权利要求1所述的方法,其特征在于,所述在所述第一模型的模型文件中确定所述第一骨骼挂点,并将所述第一待迁移数据添加至所述第一骨骼挂点下,得到所述第一模型的更新后模型文件之后,还包括:
运行预定义程序,对所述第一待挂接骨骼节点的位置和姿态进行设置;
其中,所述第一待挂接骨骼节点的位置和姿态,用于定义在播放所述第一互动动画之前,所述第一待挂接骨骼节点与所述第一骨骼挂点之间的相对位置关系。
5.根据权利要求1所述的方法,其特征在于,所述在所述第一模型的模型文件中确定所述第一骨骼挂点,并将所述第一待迁移数据添加至所述第一骨骼挂点下,得到所述第一模型的更新后模型文件之后,还包括:
从所述第二模型的模型文件中,提取除所述第一待迁移数据之外的剩余数据;
在所述第一模型的模型文件中,添加所述剩余数据;其中,所述剩余数据添加至所述第一待挂接骨骼节点下;
销毁所述第二模型的模型文件。
6.根据权利要求1所述的方法,其特征在于,所述基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第一互动动画之后,还包括:
在所述第一互动动画播放完成之后,将所述第一待迁移数据移回所述第二模型的模型文件中,恢复得到所述第二模型的模型文件。
7.根据权利要求1所述的方法,其特征在于,所述获取与所述第一互动动画相关的第一节点挂接配置信息,包括:
从所述第一模型的配置表中,读取第一节点配置信息,所述第一节点配置信息用于指示所述第一骨骼挂点;
从所述第二模型的配置表中,读取第二节点配置信息,所述第二节点配置信息用于指示所述第一待挂接骨骼节点。
8.根据权利要求1所述的方法,其特征在于,所述第一互动动画还包括参与的第三模型,所述方法还包括:
加载所述第三模型;
获取与所述第一互动动画相关的第二节点挂接配置信息,所述第二节点挂接配置信息用于指示所述第一互动动画中,所述第一模型的第二骨骼挂点以及所述第三模型的第二待挂接骨骼节点;
从所述第三模型的模型文件中提取第二待迁移数据,所述第二待迁移数据包括所述第二待挂接骨骼节点的骨骼数据;
在所述第一模型的模型文件中确定所述第二骨骼挂点,并将所述第二待迁移数据添加至所述第二骨骼挂点下,得到所述第一模型的更新后模型文件;
基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型、所述第二模型和所述第三模型运动,以播放所述第一互动动画。
9.根据权利要求1所述的方法,其特征在于,所述第一互动动画还包括参与的第四模型,所述方法还包括:
加载所述第四模型;
获取与所述第一互动动画相关的第三节点挂接配置信息,所述第三节点挂接配置信息用于指示所述第一互动动画中,所述第二模型的第三骨骼挂点以及所述第四模型的第三待挂接骨骼节点;
从所述第四模型的模型文件中提取第三待迁移数据,所述第三待迁移数据包括所述第三待挂接骨骼节点的骨骼数据;
在所述第一模型的更新后模型文件中确定所述第三骨骼挂点,并将所述第三待迁移数据添加至所述第三骨骼挂点下,得到所述第一模型的二次更新后模型文件;
基于所述第一模型的二次更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型、所述第二模型和所述第四模型运动,以播放所述第一互动动画。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取与第二互动动画相关的第四节点挂接配置信息,参与所述第二互动动画的模型包括所述第一模型和所述第二模型,所述第四节点挂接配置信息用于指示所述第二互动动画中,所述第一模型的第四骨骼挂点;
所述基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第一互动动画之后,还包括:
在所述第一模型的模型文件中确定所述第四骨骼挂点,并将所述第一待迁移数据迁移至所述第四骨骼挂点下,得到所述第一模型的再次更新后模型文件,所述第四骨骼挂点与所述第一骨骼挂点为所述第一模型的两个不相同的骨骼节点;
基于所述第一模型的再次更新后模型文件和所述第二互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第二互动动画。
11.根据权利要求1至10任一项所述的方法,其特征在于,
所述第一待挂接骨骼节点为所述第二模型的根骨骼节点;
或,
所述第一待挂接骨骼节点为在所述第一互动动画中所述第二模型需要被驱动的骨骼节点。
12.根据权利要求1至10任一项所述的方法,其特征在于,所述第一互动动画采用一个动画播放组件进行播放。
13.一种互动动画的播放装置,其特征在于,所述装置包括:
模型加载模块,用于加载参与第一互动动画的第一模型和第二模型;
信息获取模块,用于获取与所述第一互动动画相关的第一节点挂接配置信息,所述第一节点挂接配置信息用于指示所述第一互动动画中,所述第一模型的第一骨骼挂点以及所述第二模型的第一待挂接骨骼节点;
数据提取模块,用于从所述第二模型的模型文件中提取第一待迁移数据,所述第一待迁移数据包括所述第一待挂接骨骼节点的骨骼数据;
数据添加模块,用于在所述第一模型的模型文件中确定所述第一骨骼挂点,并将所述第一待迁移数据添加至所述第一骨骼挂点下,得到所述第一模型的更新后模型文件;
模型驱动模块,用于基于所述第一模型的更新后模型文件和所述第一互动动画的动画文件,驱动所述第一模型和所述第二模型运动,以播放所述第一互动动画。
14.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述权利要求1至12任一项所述的互动动画的播放方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述权利要求1至12任一项所述的互动动画的播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292800.5A CN113034651B (zh) | 2021-03-18 | 2021-03-18 | 互动动画的播放方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292800.5A CN113034651B (zh) | 2021-03-18 | 2021-03-18 | 互动动画的播放方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113034651A CN113034651A (zh) | 2021-06-25 |
CN113034651B true CN113034651B (zh) | 2023-05-23 |
Family
ID=76471484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110292800.5A Active CN113034651B (zh) | 2021-03-18 | 2021-03-18 | 互动动画的播放方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113034651B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113546415B (zh) * | 2021-08-11 | 2024-03-29 | 北京字跳网络技术有限公司 | 剧情动画播放方法、生成方法、终端、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6700586B1 (en) * | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
CN106075909A (zh) * | 2016-07-15 | 2016-11-09 | 珠海金山网络游戏科技有限公司 | 一种游戏换装系统和方法 |
CN109885163A (zh) * | 2019-02-18 | 2019-06-14 | 广州卓远虚拟现实科技有限公司 | 一种虚拟现实多人交互协作方法与系统 |
CN111383309A (zh) * | 2020-03-06 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 一种骨骼动画驱动方法、装置及存储介质 |
CN111462287A (zh) * | 2020-03-31 | 2020-07-28 | 网易(杭州)网络有限公司 | 游戏中骨骼动画的数据处理方法、装置以及电子设备 |
CN112489172A (zh) * | 2020-11-12 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 制作骨骼动画的方法、系统、电子装置和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6697869B1 (en) * | 1998-08-24 | 2004-02-24 | Koninklijke Philips Electronics N.V. | Emulation of streaming over the internet in a broadcast application |
US9811937B2 (en) * | 2015-09-29 | 2017-11-07 | Disney Enterprises, Inc. | Coordinated gesture and locomotion for virtual pedestrians |
WO2018095273A1 (zh) * | 2016-11-24 | 2018-05-31 | 腾讯科技(深圳)有限公司 | 图像合成方法、装置以及匹配实现方法、装置 |
CN110827376A (zh) * | 2018-08-09 | 2020-02-21 | 北京微播视界科技有限公司 | 增强现实多平面模型动画交互方法、装置、设备及存储介质 |
-
2021
- 2021-03-18 CN CN202110292800.5A patent/CN113034651B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6700586B1 (en) * | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
CN106075909A (zh) * | 2016-07-15 | 2016-11-09 | 珠海金山网络游戏科技有限公司 | 一种游戏换装系统和方法 |
CN109885163A (zh) * | 2019-02-18 | 2019-06-14 | 广州卓远虚拟现实科技有限公司 | 一种虚拟现实多人交互协作方法与系统 |
CN111383309A (zh) * | 2020-03-06 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 一种骨骼动画驱动方法、装置及存储介质 |
CN111462287A (zh) * | 2020-03-31 | 2020-07-28 | 网易(杭州)网络有限公司 | 游戏中骨骼动画的数据处理方法、装置以及电子设备 |
CN112489172A (zh) * | 2020-11-12 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 制作骨骼动画的方法、系统、电子装置和存储介质 |
Non-Patent Citations (3)
Title |
---|
Attached skeletalmesh don’t sync with animation in game;rit;《https://forums.unrealengine.com/t/attached-skeletalmesh-dont-sync-with-animation-in-game/312511》;全文 * |
Spine(骨骼动画)Skeleton组件参考;Cocos;《https://www.bookstack.cn/read/cocos-creator-3.0-zh/b668e1a78f0825c4.md》;全文 * |
基于BVH驱动的OGRE骨骼动画;郭力;何明耘;陈雷霆;;计算机应用研究(09);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113034651A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11724191B2 (en) | Network-based video game editing and modification distribution system | |
US20240108981A1 (en) | Dynamic streaming video game client | |
US11110353B2 (en) | Distributed training for machine learning of AI controlled virtual entities on video game clients | |
US11816772B2 (en) | System for customizing in-game character animations by players | |
CN111228813B (zh) | 虚拟对象的控制方法、装置、设备及存储介质 | |
US11335058B2 (en) | Spatial partitioning for graphics rendering | |
CN112927332B (zh) | 骨骼动画更新方法、装置、设备及存储介质 | |
CN111028317B (zh) | 虚拟对象的动画生成方法、装置、设备及存储介质 | |
US11305193B2 (en) | Systems and methods for multi-user editing of virtual content | |
CN111672122B (zh) | 界面显示方法、装置、终端及存储介质 | |
WO2022184128A1 (zh) | 虚拟对象的技能释放方法、装置、设备及存储介质 | |
US20240261674A1 (en) | State stream game engine | |
KR20210143308A (ko) | 게임 애플리케이션 프로그램에서의 프레임 표시 방법 및 장치, 단말기 그리고 저장 매체 | |
CN113633975A (zh) | 虚拟环境画面的显示方法、装置、终端及存储介质 | |
CN113034651B (zh) | 互动动画的播放方法、装置、设备及存储介质 | |
CN111773688A (zh) | 柔性对象的渲染方法和装置、存储介质、电子装置 | |
CN105597314B (zh) | 一种2d游戏的渲染系统及方法、终端设备 | |
CN107172136B (zh) | 体素数据的同步方法和装置 | |
CN110585711A (zh) | 虚拟飞行器的控制方法、装置、终端及存储介质 | |
CN114359469B (zh) | 生成主控对象投影的方法、装置、设备及介质 | |
US20220319088A1 (en) | Facial capture artificial intelligence for training models | |
CN114307150A (zh) | 虚拟对象之间的互动方法、装置、设备、介质及程序产品 | |
US20240399248A1 (en) | System for generating visual content within a game application environment | |
CN116245987A (zh) | 虚拟场景中虚拟角色的显示方法、装置、设备及存储介质 | |
CN113457145B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40047809 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |