动画生成方法和装置的制造方法

文档序号:10613725阅读:230来源:国知局
动画生成方法和装置的制造方法【专利摘要】本发明涉及一种动画生成方法和装置,所述方法包括:获取动画生成指令,根据所述动画生成指令获取用于虚拟目标的第一骨骼数据和用于所述虚拟目标的第一装扮数据,并获取动作标识;获取与所述动作标识对应的动作数据、用于附加元素的第二骨骼数据和相应的第二装扮数据;将所述第一骨骼数据和所述第二骨骼数据融合得到融合骨骼数据;根据所述动作数据控制所述融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、所述第一装扮数据和所述第二装扮数据渲染动画。本发明提供的动画生成方法和装置,减少了对存储资源的消耗。【专利说明】动画生成方法和装置
技术领域
[0001]本发明涉及动画
技术领域
,特别是涉及一种动画生成方法和装置。【
背景技术
】[0002]动画是能够将可视元素动态展示的可视数据。传统的一种动画生成方式,可以存储每一帧动画图像,每帧动画图像中包含虚拟目标,不同帧的动画图像之间虚拟目标的状态呈现出差异,按时间顺序渲染每一帧动画图像就可以生成动画,但这种动画生成方式所需的存储资源很大。[0003]目前也可以仅存储动画的关键帧,生成动画时通过插值方式计算出关键帧之间的过渡帧,从而按帧渲染形成动画,这样可以减少对存储资源的消耗。然而,按帧存储动画图像本身是非常消耗存储资源的,即使仅存储关键帧对存储资源的消耗也是比较大的,需要改进。【
发明内容】[0004]基于此,有必要针对传动的动画生成方式对存储资源消耗大的问题,提供一种动画生成方法和装置。[0005]—种动画生成方法,包括:[0006]获取动画生成指令,根据所述动画生成指令获取用于虚拟目标的第一骨骼数据和用于所述虚拟目标的第一装扮数据,并获取动作标识;[0007]获取与所述动作标识对应的动作数据、用于附加元素的第二骨骼数据和相应的第二装扮数据;[0008]将所述第一骨骼数据和所述第二骨骼数据融合得到融合骨骼数据;[0009]根据所述动作数据控制所述融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、所述第一装扮数据和所述第二装扮数据渲染动画。[0010]一种动画生成装置,包括:[0011]数据获取模块,用于获取动画生成指令,根据所述动画生成指令获取用于虚拟目标的第一骨骼数据和用于所述虚拟目标的第一装扮数据,并获取动作标识;获取与所述动作标识对应的动作数据、用于附加元素的第二骨骼数据和相应的第二装扮数据;[0012]骨骼融合模块,用于将所述第一骨骼数据和所述第二骨骼数据融合得到融合骨骼数据;[0013]动画生成模块,用于根据所述动作数据控制所述融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、所述第一装扮数据和所述第二装扮数据渲染动画。[0014]上述动画生成方法和装置,将动画中虚拟目标对应的数据和附加元素对应的数据分离,在获取到动画生成指令需要生成动画时,得到生成动画所需的第一骨骼数据、第一装扮数据、动作数据、第二骨骼数据和相应的第二装扮数据,将用于虚拟目标的第一骨骼数据和用于附加元素的第二骨骼数据融合得到融合骨骼数据,根据动作数据控制融合骨骼数据变化进而渲染出动画。通过不同的动作标识可区分不同动画中不同的动作,通过将虚拟目标与各种动作的动作数据以及附加元素的组合可以实现丰富的动画,不需要单独存储每个动画的完整数据,减少了对存储资源的消耗。【附图说明】[0015]图1为一个实施例中社交消息系统的应用环境图;[0016]图2为一个实施例中终端的内部结构示意图;[0017]图3为一个实施例中动画生成方法的流程示意图;[0018]图4为一个实施例中虚拟人物角色的骨架结构示意图;[0019]图5为一个实施例中将道具剑的骨骼融合到虚拟人物角色的骨架结构中的示意图;[0020]图6为一个实施例中获取动画生成指令,根据动画生成指令获取用于虚拟目标的第一骨骼数据和用于虚拟目标的第一装扮数据,并获取动作标识的步骤的流程示意图;[0021]图7为一个实施例中在会话窗口中展示可选动作选项的界面示意图;[0022]图8为一个实施例中获取动作选择指令的步骤的流程示意图;[0023]图9为一个实施例中根据动作数据控制融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、第一装扮数据和第二装扮数据渲染动画的步骤的流程示意图;[0024]图10为一个实施例中展示初始状态的虚拟人物角色的示意图;[0025]图11为一个实施例中在会话页面中渲染动画的示意图;[0026]图12为一个实施例中动画生成装置的结构框图;[0027]图13为一个实施例中数据获取模块的结构框图;[0028]图14为一个实施例中动作选择指令处理模块的结构框图;[0029]图15为一个实施例中动画生成模块的结构框图。【具体实施方式】[0030]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0031]图1为一个实施例中社交消息系统的应用环境图。如图1所示,该系统包括终端110和服务器120,终端110比如终端110(1)和终端110(2)。终端110上可运行有即时通信应用,终端110(1)和终端110(2)可通过即时通信应用并经由服务器120进行消息交互。终端110(I)和终端110(2)之间可通过服务器120传递动画消息,并可根据动画消息展示相应的动画。服务器120可以是独立的物理服务器,也可以是服务器集群。[0032]图2为一个实施例中终端110的内部结构示意图。如图2所示,该终端包括通过系统总线连接的处理器、非易失性存储介质、内存储器、网络接口、显示屏和输入装置。其中,终端的非易失性存储介质存储有操作系统,还包括一种动画生成装置,该动画生成装置用于实现一种动画生成方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存储器为非易失性存储介质中动画生成装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种动画生成方法。网络接口用于接入互联网与应用服务器进行通信。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、平板电脑或穿戴式设备等。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。[0033]如图3所示,在一个实施例中,提供了一种动画生成方法,本实施例以该方法应用于上述图1和图2中的终端110(1)来举例说明。该方法具体包括如下步骤:[0034]步骤302,获取动画生成指令,根据动画生成指令获取用于虚拟目标的第一骨骼数据和用于虚拟目标的第一装扮数据,并获取动作标识。[0035]其中,动画生成指令是触发生成动画的一系列处理进而渲染出动画的指令,可以是一个指令或者若干指令的组合。动画生成指令可在检测到用户的触发操作时触发,也可以在终端检测到预先设定的条件成立时自动触发。触发操作可以是按钮的点击操作、物理案件的按压操作、滑动触摸操作或者多点触控操作。预先设定的条件比如达到预设时间点或者进入指定界面。[0036]骨骼数据的骨骼是指骨骼动画中的骨骼,骨骼动画中的模型具有互相连接的“骨骼”组成的骨架结构,通过改变骨骼的朝向和位置可以为模型生成动画,本实施例中模型是虚拟目标。虚拟目标是指动画中可做出各种动作的对象,比如虚拟人物角色、虚拟动物形象、虚拟植物形象或者虚拟交通工具形象等。虚拟目标可以是二维或者三维的虚拟目标。用于虚拟目标的第一骨骼数据可以是各虚拟目标公用的骨骼数据,比如所有动画中的虚拟人物角色都使用相同的第一骨骼数据;第一骨骼数据也可以是由动画生成指令所指定。[0037]骨骼数据是描述骨骼以及骨骼之间关系的数据,骨骼数据具体可以包括骨骼状态和骨骼之间的层级关系。骨骼状态比如骨骼位置、骨骼朝向以及骨骼长度。骨骼之间的层级关系可以表示骨骼之间是否相互影响以及影响的程度如何,包括骨骼之间的父子节点关系。骨骼数据中的骨骼可以用坐标表示。[0038]参照图4,以虚拟人物角色为例,用于虚拟人物角色的第一骨骼数据中的骨骼可以包括头、头饰、头发前片、头发后片、头发左片、头发右片、眼睛、嘴巴、背部装饰、左上臂、左下臂、右上臂、右下臂、腰带、上装道具、裤子左片、裤子右片、裙子以及尾巴等。其中头饰、头发前片、头发后片、头发左片、头发右片、眼睛以及嘴巴是头这一父节点的子节点。[0039]装扮数据是用来根据骨骼数据渲染出可视的视觉元素的数据。在一个实施例中,装扮数据包括装扮图片、顶点网格以及映射数据,其中映射数据用于将装扮图片映射到顶点网格,并且将顶点网格中的顶点映射到骨骼数据中的相应骨骼。装扮图片可镶嵌在装扮数据所包括的卡槽(slot)中,装扮图片是纹理图片,可以PNG(PortableNetworkGraphicFormat,便携网络图形格式)格式保存。顶点网格是一系列顶点组成的区域。映射数据将装扮图片映射到顶点网格上,并且为顶点网格中的顶点绑定骨骼和赋予权重,骨骼运动会带动对应的顶点运动,顶点运动会改变装扮图片。[0040]动作标识用来唯一标识出相应的动作,该动作是指虚拟目标以及附加元素所进行的动作。动画生成指令可指定动作标识,终端可根据动画生成指令确定动作标识。[0041]步骤304,获取与动作标识对应的动作数据、用于附加元素的第二骨骼数据和相应的第二装扮数据。[0042]其中,附加元素是动画中相对于虚拟目标所附加的元素,比如附加的人物角色道具、附加的虚拟人物形象、附加的动物形象、附加的虚拟植物形象或者附加的虚拟交通工具形象等。其中附加的人物角色道具比如人物角色使用的武器、持有的防具或者持有的其它物品。动作数据是控制虚拟目标和附加元素运动的依据,具体可以包括按时间顺序记录的各动画帧中骨骼的位置、方向以及长度等信息。[0043]具体地,终端可获取与动作标识对应的动作数据,与动作标识对应的第二骨骼数据以及与动作标识对应的第二装扮数据,该第二骨骼数据与第二装扮数据对应,该第二骨骼数据与第二装扮数据对用于附加元素。终端可从网络即时执行步骤304。[0044]步骤306,将第一骨骼数据和第二骨骼数据融合得到融合骨骼数据。[0045]具体地,终端可根据虚拟目标的各个骨骼的位置、朝向等骨骼数据,结合附加元素的各个骨骼的位置、朝向以及对虚拟目标的骨骼的影响等骨骼数据,将附加元素的骨骼融合到虚拟目标的骨骼体系中,得到融合骨骼数据。具体终端可通过Sava引擎的骨骼动态合成技术将第一骨骼数据和第二骨骼数据融合得到融合骨骼数据。为了确保虚拟目标能流畅运动,附加元素顶点网格中的顶点不需要过多分配权重。第二骨骼数据、动作数据和第二装扮数据可生成单独的仅包括附加元素的动画。[0046]在一个实施例中,第一骨骼数据包括骨骼状态和骨骼之间的层级关系;步骤306包括:根据第二骨骼数据,将第二骨骼数据中的骨骼附加到第一骨骼数据中的骨骼,并调整附加的骨骼相对于第一骨骼数据中相应骨骼的层级关系,得到融合骨骼数据。[0047]其中,第二骨骼数据可指定第二骨骼数据中的骨骼附加到第一骨骼数据中骨骼体系的位置,并指定相对于第一骨骼中相关骨骼的层级关系,从而依据第二骨骼数据将第二数据中的骨骼附加到第一骨骼数据中的骨骼,并调整相应骨骼的层级关系,得到融合骨骼数据。在其它实施例中,终端也可以将第一骨骼数据中的骨骼附加到第二骨骼数据中的骨骼,并调整附加的骨骼相对于第二骨骼数据中相应骨骼的层级关系,得到融合骨骼数据。[0048]举例说明,参照图5,若附加元素为道具剑,那么可根据用于道具剑的第二骨骼数据,将道具剑的骨骼融合到如图4所示的虚拟人物角色的左下臂末端处,并调整层级关系,将道具剑的骨骼作为左下臂的子节点。[0049]步骤308,根据动作数据控制融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、第一装扮数据和第二装扮数据渲染动画。[0050]具体地,动作数据记录了如何控制虚拟目标的骨骼以及附加元素的骨骼进行变化的数据,具体可按照时间顺序依次记录各动画帧中虚拟目标的骨骼和附加元素的骨骼的变化信息,终端则根据动作数据中记录的变化信息控制融合骨骼数据随时间变化而变化。终端根据随时间变化的融合骨骼数据,对第一装扮数据和第二装扮数据做相应变化,进而利用变化的第一装扮数据和变化的第二装扮数据渲染动画。[0051]上述动画生成方法,将动画中虚拟目标对应的数据和附加元素对应的数据分离,在获取到动画生成指令需要生成动画时,得到生成动画所需的第一骨骼数据、第一装扮数据、动作数据、第二骨骼数据和相应的第二装扮数据,将用于虚拟目标的第一骨骼数据和用于附加元素的第二骨骼数据融合得到融合骨骼数据,根据动作数据控制融合骨骼数据变化进而渲染出动画。通过不同的动作标识可区分不同动画中不同的动作,通过将虚拟目标与各种动作的动作数据以及附加元素的组合可以实现丰富的动画,不需要单独存储每个动画的完整数据,减少了对存储资源的消耗。[0052]如图6所示,在一个实施例中,步骤302具体包括以下步骤:[0053]步骤602,获取动画生成指令。[0054]具体地,终端可在检测到用户的触发操作时触发动画生成指令,也可以在终端检测到预先设定的条件成立时自动触发动画生成指令。触发操作可以是按钮的点击操作、物理案件的按压操作、滑动触摸操作或者多点触控操作。预先设定的条件比如达到预设时间点或者进入指定界面。[0055]步骤604,根据动画生成指令确定用户标识。[0056]其中,用户标识是指可唯一标识出相应用户的字符或字符串,用户可以是本终端所登录的用户也可以是本终端可与之通信的联系人。终端可检测当前会话的参与者的数量是否小于等于2,若是则可以直接根据动画生成指令将当前的会话对象的用户标识确定为用户标识;若否则可以根据动画生成指令展示用户标识列表,进而检测对用户标识列表的选择指令,根据选择指令确定用户标识。[0057]步骤606,获取与用户标识对应的用于虚拟目标的第一装扮数据。[0058]具体地,终端可将确定的用户标识发送到服务器,接收服务器反馈的第一装扮数据,该第一装扮数据与用户标识对应,且用于虚拟目标。在一个实施例中,终端可判断本地是否缓存有与用户标识对应的用于虚拟目标的第一装扮数据,若是则直接读取缓存的第一装扮数据;若否,则可以将确定的用户标识发送到服务器,并接收服务器反馈的与用户标识对应的用于虚拟目标的第一装扮数据。[0059]步骤608,获取用于虚拟目标的第一骨骼数据。[0060]具体地,在一个实施例中,步骤608包括:根据动画生成指令获取虚拟目标所公用的第一骨骼数据。其中,第一骨骼数据可以被不同动画中的虚拟目标所公用,比如包括虚拟人物角色的动画中均可以采用如图4所示的骨架结构。第一骨骼数据也可以被不同类型的虚拟目标所公用,比如虚拟人物角色、虚拟动物形象、虚拟植物形象以及虚拟交通工具形象等都可以公用如图4所示的骨架结构。采用公用的第一骨骼数据,不仅可以规范设计,便于组装,还可以进一步减少对存储资源的消耗,[0061]在一个实施例中,步骤608包括:获取与用户标识对应的用于虚拟目标的第一骨骼数据。具体地,终端可在获取到用户标识后,获取与用户标识对应的第一骨骼数据,该第一骨骼数据用于虚拟目标。本实施例中,不同的用户可以配置不同的第一骨骼数据,便于用户自定义虚拟目标。[0062]步骤610,获取动作选择指令。[0063]具体地,终端可展示可选动作选项,并获取与可选动作选项对应的动作选择指令。其中,动作选项是用于触发相应动作的动画的选项,动作选项可以通过描述动作的文字和/或动作示意图来表示。可选动作选项是当前登录的用户具有使用权限的动作选项。动作选项可以被开放权限给所有用户,此时该动作选项对于所有用户来说都是可选动作选项。[0064]在一个实施例中,终端可获取当前登录的用户标识,从本地或者从服务器查询与该用户标识对应的可选动作选项,并展示查询到的可选动作选项。可选动作选项可以列表形式、阵列形式或者多页切换展示等形式进行展示。[0065]在一个实施例中,终端可在即时通信应用的当前会话窗口中展示可选动作选项,具体可通过当前会话窗口中的工具栏中专用的触发入口触发。举例说明,参照图7,终端可在当前会话窗口中以阵列形式展示多个可选动作选项,如可选动作选项701,并可进行多页切换,每个可选动作选项可展示描述相应动作的文字以及示意图。[0066]动作选择指令是对可选动作选项进行选定的指令,具体可通过触控方式、物理按键方式或者声控方式等多种方式触发。动作选择指令具体可以与展示的多个可选动作选项中的一个对应,表示对这一个可选动作选项的选定。比如用户可以点触如图7中的可选动作选项701获得与该可选动作选项701对应的动作选择指令。[0067]步骤612,根据动作选择指令确定动作标识。[0068]具体地,终端在获取到动作选择指令后,获取该动作选择指令对应的可选动作选项的标识,从而根据该可选动作选项的标识确定动作标识。该可选动作选项的标识可直接作为动作标识。[0069]本实施例中,根据动画生成指令确定了用户标识,从而获得与用户标识对应的第一装扮数据,后续在生成动画时便可以根据第一骨骼数据和第一装扮数据生成不同形象的虚拟目标,可以针对不同用户生成差异化的动画。与用户标识对应的第一装扮数据可由相应的用户自定义设置。通过触发动作选择指令,可灵活地选择动作标识,进而可以生成呈现不同动作的动画。[0070]如图8所示,在一个实施例中,步骤610具体包括如下步骤:[°071]步骤802,展示锁定动作选项。[0072]其中,锁定动作选项是当前登录的用户还未开通使用权限的动作选项。终端可提供商城入口,检测到对商城入口的触发操作后进入商城页面,从而在商城页面中展示锁定动作选项。锁定动作选项可与当前的可选动作选项同时展示或者同页面展示。锁定动作选项可以列表形式、阵列形式或者多页切换展示等形式进行展示。锁定动作选项可在相应的动作选项中添加锁定标记来表示其为锁定动作选项。触发操作比如单击操作、双击操作、滑动操作或者长按操作等。[0073]步骤804,获取与锁定动作选项对应的选定指令。[0074]具体地,选定指令是对锁定动作选项进行选定的指令,具体可通过触控方式、物理按键方式或者声控方式等多种方式触发。选定指令具体可以与展示的多个锁定动作选项中的一个对应,表示对这一个锁定动作选项的选定。[0075]步骤806,根据选定指令发送支付请求至服务器。[0076]具体地,终端可获取选定指令对应的锁定动作选项所对应的支付金额,并获取支付方标识,生成携带有支付金额和支付方标识的支付请求,并将支付请求发送至服务器,使得服务器从支付方标识对应的资金账户中减去支付金额,并在商城运营商的标识对应的资金账户中增加支付金额。[0077]在一个实施例中,终端可根据选定指令将相应锁定动作选项的标识发送到第一服务器,使得第一服务器根据相应锁定动作选项的标识获取支付金额和收款方标识从而生成相应的订单数据,订单数据包括支付金额和收款方标识。终端接收第一服务器反馈的订单数据,根据订单数据生成携带有支付金额、支付方标识和收款方标识的支付请求,并将支付请求发送至第一服务器或者第二服务器,使得第一服务器或者第二服务器从支付方标识对应的资金账户中减去支付金额,并在收款方标识对应的资金账户中增加支付金额。第一服务器和第二服务器可由不同的运营主体维护。[0078]步骤808,接收服务器反馈的支付结果。[0079]具体地,终端接收服务器在完成支付后反馈的支付结果,该支付结果包括表示支付成功或者支付失败的信息。[0080]步骤810,根据支付结果将与选定指令对应的锁定动作选项变更为可选动作选项。[0081]具体地,终端可识别支付结果,若支付结果表示支付成功,则将选定的锁定动作选项变更为可选动作选项,还可以去除锁定动作选项中的锁定标记。若支付结果表示支付失败,则可以提示用户重新发起支付或者退出商城页面。[0082]步骤812,展示可选动作选项。[0083]步骤814,获取针对展示的可选动作选项的动作选择指令。[0084]本实施例中,动作选项包括锁定动作选项和可选动作选项,可以将锁定动作选项变更为可选动作选项,这样用户可以自主选择合适的可选动作选项,丰富可用的动画,提高了操作便利性。[0085]在一个实施例中,与动作标识对应的动作数据、用于附加元素的第二骨骼数据和相应的第二装扮数据可通过网络即时获取。用于虚拟目标的第一装扮数据可通过网络即时获取。第一骨骼数据可在首次获取时从网络获取并缓存,后续获取时可直接获取缓存的第一骨骼数据。本实施例中,不仅可以减少对终端本地存储资源的消耗,而且通过网络仅需获取动作数据、用于附加元素的第二骨骼数据和第二装扮数据,对网络资源消耗小,而且可以及时响应。[0086]在一个实施例中,第一装扮数据包括第一装扮图片、第一顶点网格以及第一映射数据,其中第一映射数据用于将第一装扮图片映射到第一顶点网格,并且将第一顶点网格中的顶点映射到第一骨骼数据中的相应骨骼。第二装扮数据包括第二装扮图片、第二顶点网格以及第二映射数据,其中第二映射数据用于将第二装扮图片映射到第二顶点网格,并且将第二顶点网格中的顶点映射到第二骨骼数据中的相应骨骼。[0087]如图9所示,在一个实施例中,步骤308包括如下步骤:[0088]步骤902,根据动作数据控制融合骨骼数据随时间变化。[0089]具体地,动作数据记录了如何控制虚拟目标的骨骼以及附加元素的骨骼进行变化的数据,具体可按照时间顺序依次记录各动画帧中虚拟目标的骨骼和附加元素的骨骼的变化信息,终端则根据动作数据中记录的变化信息控制融合骨骼数据随时间变化而变化。[0090]步骤904,根据第一映射数据和第二映射数据,控制第一顶点网格和第二顶点网格跟随融合骨骼数据的变化而变化。[0091]具体地,顶点是顶点网格的组成单元,依附于骨骼。顶点网格中的顶点可构成三角形,在三角形中可添加装扮图片。顶点网格具体可包括各顶点的位置以及顶点之间的关系。映射数据可以将装扮图片的各个位置映射到顶点网格中的顶点,并且将顶点网格中的顶点与融合骨骼数据中的骨骼绑定。其中,顶点网格包括第一顶点网格和第二顶点网格,映射数据包括第一映射数据和第二映射数据。[0092]步骤906,根据第一映射数据和第一顶点网格的变化渲染第一装扮图片,并根据第二映射数据和第二顶点网格的变化渲染第二装扮图片,生成动画。[0093]具体地,融合骨骼数据的变化通过映射数据导致顶点网格变化,从而导致装扮图片的变化。装扮图片包括第一装扮图片和第二装扮图片。终端还可以在渲染装扮图片前对装扮图片进行图像处理,比如改变颜色、亮度或者对比度等。终端可逐帧绘制第一装扮图片和第二装扮图片,形成动画。[0094]本实施例中,根据动作数据控制融合骨骼数据随时间变化,控制相应的顶点网格跟随融合骨骼数据的变化而变化,进而通过顶点网格的变化绘制出装扮图片,使得终端可以通过装扮图片的复用完成动画中的每一帧,不需要预先存储每一个动画帧,极大地减少了对存储资源的消耗。[0095]在一个实施例中,动作数据从包括虚拟目标和附加元素的完整动画建模数据中分离出;第一装扮数据、第二骨骼数据和第二装扮数据从完整动画建模数据中导出。[0096]具体地,可通过第三方建模软件建立包括虚拟目标和附加元素在内完整的动画建模数据,该完整建模数据中的骨骼数据包括第一骨骼数据和第二骨骼数据,该完整建模数据中包括与虚拟目标和附加元素匹配的动作数据,还包括第一装扮数据和第二装扮数据。[0097]进一步地,可通过自定义工具自动从完整动画建模数据中分离出动作数据,将用于虚拟目标的第一骨骼数据和第一装扮数据导出,并将用于附加元素的第二骨骼数据和相应的第二装扮数据导出。用于附加元素的骨骼数据和相应的第二装扮数据导出后,可重新建立相应的第二映射数据。[0098]本实施例中,动作数据、用于附加元素的第二骨骼数据和相应的第二装扮数据依据完整动画建模数据得到,可避免分别为虚拟目标和附加元素建立不同的动画建模数据导致的操作繁琐问题和难同步动作数据的问题。[0099]在一个实施例中,终端可在确定即时通信应用中当前会话窗口中的动画展示区域后,根据随时间变化的融合骨骼数据、第一装扮数据和第二装扮数据在该动画展示区域中渲染动画。[0100]其中,会话窗口可以是双人会话窗口或者群组会话窗口等,动画展示区域可以位于当前会话窗口中的固定位置处,也可以是当前登录的用户所指定的位置,还可以是是当前会话窗口中未展示消息的空白处。固定位置比如当前会话窗口的底部中间位置或者当前会话窗口整体的中央位置。终端在生成动画时,在当前会话窗口中的动画展示区域处,根据跟随融合骨骼数据变化而变化的装扮图片进行动画渲染。[0101]在一个实施例中,该动画生成方法还包括:向会话对象对应的终端发送动画消息,使得会话对象对应的终端根据动画消息获取融合骨骼数据、动作数据、第一装扮数据和第二装扮数据,并根据动作数据控制融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、第一装扮数据和第二装扮数据渲染动画。[0102]其中,动画消息是控制会话对象对应的终端展示动画的消息。会话对象可以是个人用户或者群组成员。会话对象对应的终端可以在其上运行的即时通信应用的当前会话窗口中的动画展示区域中渲染动画。会话对象对应的终端可以执行与本实施例中举例说明上述动画生成方法的终端相同的各种步骤。[0103]本实施例中,通过向会话对象对应的终端发送动画消息,使得会话对象可以与本终端同步展示动画,方便通过动画消息传递信息,提供了比文字消息更多的沟通途径。而且当用户可以自主选择动作选项时,将使得通过动画消息传递的信息更加灵活、丰富和高效。[0104]下面用一个具体应用场景来说明上述动画生成方法的原理。如图10所示,用户通过终端与会话对象进行会话。在该会话窗口中可触发即时消息的发送和展示。终端在该会话窗口中展示工具栏1001,检测对该工具栏1001的触发操作,根据该触发操作展示可选动作选项,并展示虚拟人物角色1002和1003。当用户选择“射箭”这一可选动作选项1004后,终端可即时通过网络获取可选动作选项1004对应的用于触发“射箭”这一动作的动作数据,以及该可选动作选项1004对应的附加道具“苹果”1101和附加道具“弓箭”1102各自的第二骨骼数据和相应的第二装扮数据。将虚拟人物角色1002的第一骨骼数据和附加道具1101的第二骨骼数据融合得到相应的融合骨骼数据,将虚拟人物角色1003的第一骨骼数据和附加道具1102的第二骨骼数据融合得到相应的融合骨骼数据,从而根据动作数据、得到的融合骨骼数据以及相应的第二装扮数据进行动画渲染,动画其中一帧的效果如图11所示。[0105]如图12所示,在一个实施例中,提供了一种动画生成装置1200,包括数据获取模块1201、骨骼融合模块1202和动画生成模块1203。[0106]数据获取模块1201,用于获取动画生成指令,根据动画生成指令获取用于虚拟目标的第一骨骼数据和用于虚拟目标的第一装扮数据,并获取动作标识;获取与动作标识对应的动作数据、用于附加元素的第二骨骼数据和相应的第二装扮数据。[0107]骨骼融合模块1202,用于将第一骨骼数据和第二骨骼数据融合得到融合骨骼数据。[0108]动画生成模块1203,用于根据动作数据控制融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、第一装扮数据和第二装扮数据渲染动画。[0109]上述动画生成装置1200,将动画中虚拟目标对应的数据和附加元素对应的数据分离,在获取到动画生成指令需要生成动画时,得到生成动画所需的第一骨骼数据、第一装扮数据、动作数据、第二骨骼数据和相应的第二装扮数据,将用于虚拟目标的第一骨骼数据和用于附加元素的第二骨骼数据融合得到融合骨骼数据,根据动作数据控制融合骨骼数据变化进而渲染出动画。通过不同的动作标识可区分不同动画中不同的动作,通过将虚拟目标与各种动作的动作数据以及附加元素的组合可以实现丰富的动画,不需要单独存储每个动画的完整数据,减少了对存储资源的消耗。[0110]如图13所示,在一个实施例中,数据获取模块1201包括:动画生成指令处理模块1201a和动作选择指令处理模块1201b。[0111]动画生成指令处理模块1201a,用于获取动画生成指令;根据动画生成指令确定用户标识;获取与用户标识对应的用于虚拟目标的第一装扮数据;获取用于虚拟目标的第一骨骼数据。[0112]动作选择指令处理模块1201b,用于获取动作选择指令;根据动作选择指令确定动作标识。[0113]在一个实施例中,动画生成指令处理模块1201a还用于根据动画生成指令获取虚拟目标所公用的第一骨骼数据;或者,获取与用户标识对应的用于虚拟目标的第一骨骼数据。[0?Μ]如图14所示,在一个实施例中,动作选择指令处理模块120Ib包括:动作选项处理模块1201bl和支付处理模块1201b2。[0115]动作选项处理模块1201bl,用于展示锁定动作选项;获取与锁定动作选项对应的选定指令。[0116]支付处理模块1201b2,用于根据选定指令发送支付请求至服务器;接收服务器反馈的支付结果。[0117]动作选项处理模块1201bl还用于根据支付结果将与选定指令对应的锁定动作选项变更为可选动作选项;展示可选动作选项;获取针对展示的可选动作选项的动作选择指令。[0118]在一个实施例中,第一骨骼数据包括骨骼状态和骨骼之间的层级关系;骨骼融合模块1202还用于根据第二骨骼数据,将第二骨骼数据中的骨骼附加到第一骨骼数据中的骨骼,并调整附加的骨骼相对于第一骨骼数据中相应骨骼的层级关系,得到融合骨骼数据。[0119]在一个实施例中,第一装扮数据包括第一装扮图片、第一顶点网格以及第一映射数据,其中第一映射数据用于将第一装扮图片映射到第一顶点网格,并且将第一顶点网格中的顶点映射到第一骨骼数据中的相应骨骼;第二装扮数据包括第二装扮图片、第二顶点网格以及第二映射数据,其中第二映射数据用于将第二装扮图片映射到第二顶点网格,并且将第二顶点网格中的顶点映射到第二骨骼数据中的相应骨骼。[0120]如图15所示,在一个实施例中,动画生成模块1203包括:融合骨骼数据变化控制模块1203a、顶点网格变化控制模块1203b和图片渲染模块1203c。[0121]融合骨骼数据变化控制模块1203a,用于根据动作数据控制融合骨骼数据随时间变化。[0122]顶点网格变化控制模块1203b,用于根据第一映射数据和第二映射数据,控制第一顶点网格和第二顶点网格跟随融合骨骼数据的变化而变化。[0123]图片渲染模块1203c,用于根据第一映射数据和第一顶点网格的变化渲染第一装扮图片,并根据第二映射数据和第二顶点网格的变化渲染第二装扮图片,生成动画。[0124]在一个实施例中,动作数据从包括虚拟目标和附加元素的完整动画建模数据中分离出;第一装扮数据、第二骨骼数据和第二装扮数据从完整动画建模数据中导出。[0125]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等非易失性存储介质,或随机存储记忆体(RandomAccessMemory,RAM)等。[0126]以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。[0127]以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。【主权项】1.一种动画生成方法,包括:获取动画生成指令,根据所述动画生成指令获取用于虚拟目标的第一骨骼数据和用于所述虚拟目标的第一装扮数据,并获取动作标识;获取与所述动作标识对应的动作数据、用于附加元素的第二骨骼数据和相应的第二装扮数据;将所述第一骨骼数据和所述第二骨骼数据融合得到融合骨骼数据;根据所述动作数据控制所述融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、所述第一装扮数据和所述第二装扮数据渲染动画。2.根据权利要求1所述的方法,其特征在于,所述获取动画生成指令,根据所述动画生成指令获取用于虚拟目标的第一骨骼数据和用于所述虚拟目标的第一装扮数据,并获取动作标识包括:获取动画生成指令;根据所述动画生成指令确定用户标识;获取与所述用户标识对应的用于虚拟目标的第一装扮数据;获取用于所述虚拟目标的第一骨骼数据;获取动作选择指令;根据所述动作选择指令确定动作标识。3.根据权利要求2所述的方法,其特征在于,所述获取用于所述虚拟目标的第一骨骼数据包括:根据所述动画生成指令获取虚拟目标所公用的第一骨骼数据;或者,获取与所述用户标识对应的用于所述虚拟目标的第一骨骼数据。4.根据权利要求2所述的方法,其特征在于,所述获取动作选择指令包括:展示锁定动作选项;获取与所述锁定动作选项对应的选定指令;根据所述选定指令发送支付请求至服务器;接收所述服务器反馈的支付结果;根据所述支付结果将与所述选定指令对应的锁定动作选项变更为可选动作选项;展示所述可选动作选项;获取针对展示的可选动作选项的动作选择指令。5.根据权利要求1所述的方法,其特征在于,所述第一骨骼数据包括骨骼状态和骨骼之间的层级关系;所述将所述第一骨骼数据和所述第二骨骼数据融合得到融合骨骼数据包括:根据所述第二骨骼数据,将所述第二骨骼数据中的骨骼附加到所述第一骨骼数据中的骨骼,并调整附加的骨骼相对于所述第一骨骼数据中相应骨骼的层级关系,得到融合骨骼数据。6.根据权利要求1所述的方法,其特征在于,所述第一装扮数据包括第一装扮图片、第一顶点网格以及第一映射数据,其中所述第一映射数据用于将所述第一装扮图片映射到所述第一顶点网格,并且将所述第一顶点网格中的顶点映射到所述第一骨骼数据中的相应骨骼;所述第二装扮数据包括第二装扮图片、第二顶点网格以及第二映射数据,其中所述第二映射数据用于将所述第二装扮图片映射到所述第二顶点网格,并且将所述第二顶点网格中的顶点映射到所述第二骨骼数据中的相应骨骼。7.根据权利要求6所述的方法,其特征在于,所述根据所述动作数据控制所述融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、所述第一装扮数据和所述第二装扮数据渲染动画包括:根据所述动作数据控制所述融合骨骼数据随时间变化;根据所述第一映射数据和所述第二映射数据,控制所述第一顶点网格和所述第二顶点网格跟随所述融合骨骼数据的变化而变化;根据所述第一映射数据和所述第一顶点网格的变化渲染所述第一装扮图片,并根据所述第二映射数据和所述第二顶点网格的变化渲染所述第二装扮图片,生成动画。8.根据权利要求1所述的方法,其特征在于,所述动作数据从包括所述虚拟目标和所述附加元素的完整动画建模数据中分离出;所述第一装扮数据、所述第二骨骼数据和所述第二装扮数据从所述完整动画建模数据中导出。9.一种动画生成装置,其特征在于,包括:数据获取模块,用于获取动画生成指令,根据所述动画生成指令获取用于虚拟目标的第一骨骼数据和用于所述虚拟目标的第一装扮数据,并获取动作标识;获取与所述动作标识对应的动作数据、用于附加元素的第二骨骼数据和相应的第二装扮数据;骨骼融合模块,用于将所述第一骨骼数据和所述第二骨骼数据融合得到融合骨骼数据;动画生成模块,用于根据所述动作数据控制所述融合骨骼数据随时间变化,并根据随时间变化的融合骨骼数据、所述第一装扮数据和所述第二装扮数据渲染动画。10.根据权利要求9所述的装置,其特征在于,所述数据获取模块包括:动画生成指令处理模块,用于获取动画生成指令;根据所述动画生成指令确定用户标识;获取与所述用户标识对应的用于虚拟目标的第一装扮数据;获取用于所述虚拟目标的第一骨骼数据;动作选择指令处理模块,用于获取动作选择指令;根据所述动作选择指令确定动作标识。11.根据权利要求10所述的装置,其特征在于,所述动画生成指令处理模块还用于根据所述动画生成指令获取虚拟目标所公用的第一骨骼数据;或者,获取与所述用户标识对应的用于所述虚拟目标的第一骨骼数据。12.根据权利要求10所述的装置,其特征在于,所述动作选择指令处理模块包括:动作选项处理模块,用于展示锁定动作选项;获取与所述锁定动作选项对应的选定指令;支付处理模块,用于根据所述选定指令发送支付请求至服务器;接收所述服务器反馈的支付结果;所述动作选项处理模块还用于根据所述支付结果将与所述选定指令对应的锁定动作选项变更为可选动作选项;展示所述可选动作选项;获取针对展示的可选动作选项的动作选择指令。13.根据权利要求9所述的装置,其特征在于,所述第一骨骼数据包括骨骼状态和骨骼之间的层级关系;所述骨骼融合模块还用于根据所述第二骨骼数据,将所述第二骨骼数据中的骨骼附加到所述第一骨骼数据中的骨骼,并调整附加的骨骼相对于所述第一骨骼数据中相应骨骼的层级关系,得到融合骨骼数据。14.根据权利要求9所述的装置,其特征在于,所述第一装扮数据包括第一装扮图片、第一顶点网格以及第一映射数据,其中所述第一映射数据用于将所述第一装扮图片映射到所述第一顶点网格,并且将所述第一顶点网格中的顶点映射到所述第一骨骼数据中的相应骨骼;所述第二装扮数据包括第二装扮图片、第二顶点网格以及第二映射数据,其中所述第二映射数据用于将所述第二装扮图片映射到所述第二顶点网格,并且将所述第二顶点网格中的顶点映射到所述第二骨骼数据中的相应骨骼。15.根据权利要求14所述的装置,其特征在于,所述动画生成模块包括:融合骨骼数据变化控制模块,用于根据所述动作数据控制所述融合骨骼数据随时间变化;顶点网格变化控制模块,用于根据所述第一映射数据和所述第二映射数据,控制所述第一顶点网格和所述第二顶点网格跟随所述融合骨骼数据的变化而变化;图片渲染模块,用于根据所述第一映射数据和所述第一顶点网格的变化渲染所述第一装扮图片,并根据所述第二映射数据和所述第二顶点网格的变化渲染所述第二装扮图片,生成动画。16.根据权利要求9所述的装置,其特征在于,所述动作数据从包括所述虚拟目标和所述附加元素的完整动画建模数据中分离出;所述第一装扮数据、所述第二骨骼数据和所述第二装扮数据从所述完整动画建模数据中导出。【文档编号】G06T13/40GK105976417SQ201610369510【公开日】2016年9月28日【申请日】2016年5月27日【发明人】罗君,毛开宇,韩美云,陈绮琳【申请人】腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1