CN116843810A - 动画数据生成方法、装置、电子设备及存储介质 - Google Patents
动画数据生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116843810A CN116843810A CN202310747264.2A CN202310747264A CN116843810A CN 116843810 A CN116843810 A CN 116843810A CN 202310747264 A CN202310747264 A CN 202310747264A CN 116843810 A CN116843810 A CN 116843810A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- model
- animation
- bone
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000033001 locomotion Effects 0.000 claims abstract description 277
- 210000000988 bone and bone Anatomy 0.000 claims description 302
- 230000000694 effects Effects 0.000 claims description 26
- 238000012937 correction Methods 0.000 claims description 23
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 238000013519 translation Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 2
- 210000004209 hair Anatomy 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 241000195955 Equisetum hyemale Species 0.000 description 2
- 238000007664 blowing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 210000004761 scalp Anatomy 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000010356 wave oscillation Effects 0.000 description 1
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/60—3D [Three Dimensional] animation of natural phenomena, e.g. rain, snow, water or plants
-
- 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
-
- 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
- A63F2300/00—Features 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/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6607—Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
-
- 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
- A63F2300/00—Features 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/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/663—Methods for processing data by generating or executing the game program for rendering three dimensional images for simulating liquid objects, e.g. water, gas, fog, snow, clouds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供一种动画数据生成方法、装置、电子设备及存储介质,涉及游戏开发技术领域。该方法可基于预先设定的对象模型的动画骨骼数据,进行对象模型驱动,生成对象模型的动画数据,并从对象模型的动画数据中抽取出依附于对象模型的目标柔性模型的动画数据,由于模型与模型的骨骼之间具有相互驱动关系,基于所抽取出的目标柔性模型的动画数据以及模型与骨骼之间的驱动关系,可以确定出目标柔性模型的骨骼运动数据。由于对象模型的动画骨骼数据是预先基于所要生成的动画而设定的,对象模型的动画骨骼数据精确性较高,那么,基于对象模型的动画骨骼数据生成的对象模型的动画数据中所包含的目标柔性模型的动画数据精确性也较高。
Description
技术领域
本申请涉及游戏开发技术领域,具体而言,涉及一种动画数据生成方法、装置、电子设备及存储介质。
背景技术
在游戏动画中通常会涉及到虚拟人物的头发或者衣物等柔性物体的摆动动画效果的制作,为人物增加真实性。
现有技术中,对于柔性物体的运动动画的生成通常是采用实时在线的骨骼解算方式实现,根据上一帧的骨骼运动状态来生成下一帧的骨骼运动状态,从而根据骨骼运动状态驱动模型运动以生成动画。
但是,上述方式在运算出的骨骼运动状态发生偏差时,将导致生成的动画效果出现失真问题。
发明内容
本申请的目的在于,提供一种动画数据生成方法、装置、电子设备及存储介质,以便于提升生成的模型动画数据的精确性,从而提高模型动画效果的真实性。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种动画数据生成方法,包括:
根据对象模型的动画骨骼数据进行对象模型骨骼驱动,生成所述对象模型的初始的动画数据,所述对象模型的初始的动画数据中包括:目标柔性模型的初始的动画数据;所述目标柔性模型的初始的动画数据包括:所述目标柔性模型中各顶点的初始位移信息;
根据所述目标柔性模型的初始的动画数据以及所述目标柔性模型的模型顶点与所述目标柔性模型的骨骼顶点之间的对应关系,生成所述目标柔性模型的第一骨骼运动数据;
根据所述目标柔性模型的第一骨骼运动数据以及所述对象模型的动画骨骼数据,生成目标动画数据,所述目标动画数据用于生成动画效果。
第二方面,本申请实施例还提供了一种动画数据生成装置,包括:生成模块;
生成模块,用于根据对象模型的动画骨骼数据进行对象模型骨骼驱动,生成对象模型的初始的动画数据,对象模型的初始的动画数据中包括:目标柔性模型的初始的动画数据;目标柔性模型的初始的动画数据包括:目标柔性模型中各顶点的初始位移信息;
生成模块,用于根据目标柔性模型的初始的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据;
生成模块,用于根据目标柔性模型的第一骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据,目标动画数据用于生成动画效果。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行如第一方面中提供的动画数据生成方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面提供的动画数据生成方法。
本申请的有益效果是:
本申请提供一种动画数据生成方法、装置、电子设备及存储介质,可基于预先设定的对象模型的动画骨骼数据,进行对象模型驱动,生成对象模型的动画数据,并从对象模型的动画数据中抽取出依附于对象模型的目标柔性模型的动画数据,由于模型与模型的骨骼之间具有相互驱动关系,基于所抽取出的目标柔性模型的动画数据以及模型与骨骼之间的驱动关系,可以确定出目标柔性模型的骨骼运动数据。由于对象模型的动画骨骼数据是预先基于所要生成的动画而设定的,对象模型的动画骨骼数据精确性较高,那么,基于对象模型的动画骨骼数据生成的对象模型的动画数据中所包含的目标柔性模型的动画数据精确性也较高,从而基于目标柔性模型的动画数据计算得到的目标柔性模型的骨骼运动数据准确性较高,最终基于骨骼运动数据生成的动画效果较为真实,相比于现有技术中通过上一帧的骨骼运动数据预测下一帧的骨骼运动数据的方式,本方案的稳定性较高,误差率较小。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种动画数据生成方法的流程示意图;
图2为本申请实施例提供的另一种动画数据生成方法的流程示意图;
图3为本申请实施例提供的又一种动画数据生成方法的流程示意图;
图4为本申请实施例提供的另一种动画数据生成方法的流程示意图;
图5为本申请实施例提供的另一种动画数据生成方法的流程示意图;
图6为本申请实施例提供的又一种动画数据生成方法的流程示意图;
图7为本申请实施例提供的另一种动画数据生成方法的流程示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
图1为本申请实施例提供的一种动画数据生成方法的流程示意图;本方法的执行主体可以是处理器、服务器等计算机设备。如图1所示,该方法可包括:
S101、根据对象模型的动画骨骼数据进行对象模型骨骼驱动,生成对象模型的初始的动画数据,对象模型的初始的动画数据中包括:目标柔性模型的初始的动画数据;目标柔性模型的初始的动画数据包括:目标柔性模型中各顶点的初始位移信息。
通常在生成模型的动画时,对于一些需要依附于其他模型而存在的柔性模型而言,其一方面可以受外界因素的影响而产生运动,另一方面,可以在所依附于的模型的运动下产生相应的运动。那么,可基于两方面的运动驱动,生成这类柔性模型的动画数据以提升所生成的动画数据的真实性和精确性。
本实施例中,对象模型可以指虚拟人物模型,柔性模型则可以指依附于人物模型而存在的模型,例如,柔性模型可以指毛发模型、衣物模型等,毛发模型和衣物模型等这类柔性模型一方面可在外界因素例如风等吹动下产生摆动,另一方面,在人物运动的过程中,人物的毛发或所穿着的衣物也会跟随人物的运动产生相应的运动。
可选地,可从预先保存的三维模型数据中获取对象模型的动画骨骼数据,对象模型的动画骨骼数据可以是预先以FBX文件进行存储,FBX文件则是一个以Autodesk Filmbox格式保存的三维模型。
通常,模型均有对应的骨骼,骨骼与模型的整体形状一致,模型均是在骨骼运动驱动下产生相应的运动。动画骨骼数据可以理解为产生某一动画时所具有的骨骼数据,例如:动画骨骼数据A可以驱动模型产生动画a,那么,当动画骨骼数据为A时,模型相应产生的动画动作为a。
本实施例中,在已知对象模型的动画骨骼数据的前提下,按照动画骨骼数据驱动对象模型的骨骼运动,从而生成对象模型的初始的动画数据,而对象模型的初始的动画数据中可以包括对象模型的初始的动画数据以及目标柔性模型的初始的动画数据,这里以目标柔性模型为对象模型的毛发模型为例。
值得注意的是,骨骼数据可以包括骨骼各顶点的参数,各顶点的参数可包括:位移参数和旋转参数。而动画数据则可包括模型中各顶点的位移参数。
在一些实施例中,虽然已知了目标柔性模型的初始的动画数据,但是目标柔性模型的骨骼运动数据并不知晓,也即,知道了目标柔性模型在每一帧下具体什么样的动画状态,但是由当前帧的动画状态变换到下一帧的动画状态时,目标柔性模型的骨骼发生了怎么的运动并不知道,此时,骨骼还不具备物理属性,除了毛发模型与对象模型所连接的毛发根部的骨骼能够随着对象模型的运动产生运动外,毛发模型的马尾部分骨骼整体是没有柔软度的,可看做一个刚性模型,使得产生的运动较为僵硬,缺失了真实性,那么,可基于目标柔性模型的初始的动画数据进行反推,得到目标柔性模型在模型驱动下所具有的骨骼运动数据。
S102、根据目标柔性模型的初始的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据。
目标柔性模型的模型顶点也即指构建目标柔性模型的各顶点,而模型的骨骼同样可称为骨骼模型,也是由一些顶点构成的,目标柔性模型的骨骼顶点则可以指构成骨骼框架的各顶点。
通常,模型与模型对应的骨骼是相互绑定的,骨骼可以理解为模型的基础框架,类似于人类的骨架与人体之间的关系,构成模型的每个顶点均有其与对应的骨骼顶点,且在模型确定的情况下,模型的骨骼也是确定的,且模型顶点与骨骼顶点之间的对应关系也是确定的,每个骨骼顶点的运动可驱动骨骼顶点对应的模型顶点的运动。
可选地,基于所获取到的目标柔性模型的初始的动画数据,可以根据目标柔性模型的骨骼与模型本身之间的匹配对应关系,也即根据目标柔性模型的模型顶点与骨骼顶点之间的对应关系,以目标柔性模型的初始的动画数据所具有的模型运动状态驱动目标柔性模型的骨骼进行运动,以生成目标柔性模型的第一骨骼运动数据。这里是由于骨骼可以驱动模型运动,而反过来,模型与骨骼是匹配的,在模型运动数据已知的前提下也可以反推出骨骼的运动数据。
S103、根据目标柔性模型的第一骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据,目标动画数据用于生成动画效果。
可选地,根据计算得到的目标柔性模型的第一骨骼运动数据以及预先获取的对象模型的动画骨骼数据,则可生成目标动画数据,而目标动画数据则为包含对象模型的动画数据和依附于对象模型的目标柔性模型的动画数据。
在一些实施例中,生成的目标动画数据可以作为输出数据,输出给游戏引擎或者其他一些DCC(Digital Content Creation,数字内容创作)软件,从而在游戏引擎内或者DCC内可根据目标动画数据生成动画效果,而这里的动画效果则包括了对象模型和目标柔性模型的动画效果。
综上,本实施例提供的动画数据生成方法,可基于预先设定的对象模型的动画骨骼数据,进行对象模型驱动,生成对象模型的动画数据,并从对象模型的动画数据中抽取出依附于对象模型的目标柔性模型的动画数据,由于模型与模型的骨骼之间具有相互驱动关系,基于所抽取出的目标柔性模型的动画数据以及模型与骨骼之间的驱动关系,可以确定出目标柔性模型的骨骼运动数据。由于对象模型的动画骨骼数据是预先基于所要生成的动画而设定的,对象模型的动画骨骼数据精确性较高,那么,基于对象模型的动画骨骼数据生成的对象模型的动画数据中所包含的目标柔性模型的动画数据精确性也较高,从而基于目标柔性模型的动画数据计算得到的目标柔性模型的骨骼运动数据准确性较高,最终基于骨骼运动数据生成的动画效果较为真实,相比于现有技术中通过上一帧的骨骼运动数据预测下一帧的骨骼运动数据的方式,本方案的稳定性较高,误差率较小。
图2为本申请实施例提供的另一种动画数据生成方法的流程示意图;可选地,步骤S102中,根据目标柔性模型的初始的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据,可以包括:
S201、根据目标柔性模型的初始的动画数据以及目标柔性模型的预设属性参数,生成目标柔性模型的新的动画数据。
在一些实施例中,基于运动学原理,柔性模型本身会具备一定的自然摆动特性,而这种特性下所具有的骨骼运动数据则可以通过为目标柔性模型添加属性参数实现。
可选地,可为目标柔性模型的不同区域分配不同的解算权重,而解算权重用于指示区域的处理方式,其中,在目标柔性模型与对象模型所连接的部分,也即目标柔性模型的根部(毛发与头皮连接的根部),是在对象模型的运动下带动运动的,自然特性较小可忽略,而对于目标柔性模型的其余部分,也即马尾部分,受运动学的影响,基于自然特性本身具备一定的运动,那么,对于目标柔性模型与对象模型所连接的部分,可以为其赋予第一权重,而不与对象模型直接连接的部分,可以赋予第二权重,第二权重指示区域需要添加属性信息。
在一种可实现的方式中,不同的权重可以采用不同的颜色进行区分,在另一些情况下,也可以用其他标识符代替,例如字符,能够便于计算机准确区分不同区域的处理方式即可。
可选地,为目标柔性模型添加的预设属性参数可以包括但不限于:柔软度、刚度等属性。而根据目标柔性模型的初始的动画数据以及目标柔性模型的预设属性参数,进行物理模拟动态运动数据,从而可得到目标柔性模型的新的动画数据,而新的动画数据与初始的动画数据中模型各顶点的位移信息发生了改变。
S202、并根据目标柔性模型的新的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据。
与步骤S102的处理类似,基于目标柔性模型的新的动画数据,可以模型的动画数据驱动骨骼运动的方式进行反向推算,生成目标柔性模型的第一骨骼运动数据。
图3为本申请实施例提供的又一种动画数据生成方法的流程示意图;可选地,步骤S201中,生成目标柔性模型的第一骨骼运动数据之后,还可以包括:
S301、根据目标柔性模型的第一帧的骨骼数据生成目标柔性模型的骨骼曲线数据;目标柔性模型的第一帧的骨骼数据包括:骨骼的顶点坐标信息。
除了模型驱动骨骼的方式外,自然外力也会对骨骼的运动产生影响。例如,在风吹动下毛发模型会产生一定的自然摆动,本实施例中,通过为目标柔性模型添加噪音信息,以使得目标柔性模型可以产生较为真实的自然摆动,从而提升目标柔性模型动画的真实性。
目标柔性模型的第一帧的骨骼数据可以指目标柔性模型在静止状态下的骨骼数据,其在静止状态下的骨骼数据是准确的,那么,可以以目标柔性模型的第一帧的骨骼数据生成目标柔性模型的骨骼曲线数据。
可选地,可先根据目标柔性模型的第一帧的骨骼数据中各骨骼顶点的坐标,生成第一帧的骨骼形状,从而基于第一帧的骨骼形状,生成与该骨骼形状一致的骨骼曲线数据,也即,生成的骨骼曲线具有与骨骼形状完全相同的形状。从而可用骨骼曲线模拟骨骼本身。
S302、对骨骼曲线数据的不同曲线段添加对应的噪音信息,生成目标柔性模型的第二骨骼运动数据。
在一些实施例中,可以为骨骼曲线数据分配0-1的渐变信息,也即为骨骼曲线的不同曲线段映射对应的数据,而所映射的数据用于指示不同曲线段所要添加的噪音大小,这样,可以实现骨骼曲线的不同曲线段具有不同的摆动幅度,更加接近真实的摆动状态。
可选地,根据骨骼曲线的不同曲线段所映射的数据,可先确定不同曲线段所对应的噪音信息,噪音信息也可以理解为扰动值,从而为骨骼曲线的不同曲线段添加不同的扰动值后,生成目标柔性模型的第二骨骼运动数据。
第二骨骼运动数据也即指添加了波浪摆动的骨骼运动数据。
S303、将第一骨骼运动数据与第二骨骼运动数据进行叠加,生成目标柔性模型的初始的骨骼运动数据。
那么,将上述得到的目标柔性模型的第一骨骼运动数据与目标柔性模型的第二骨骼运动数据进行叠加,则可生成目标柔性模型的初始的骨骼运动数据。
这里之所以为称之为初始的骨骼运动数据,是因为基于上述一系列的计算后得到的骨骼运动数据还是会存在一些误差,后续需要进行误差修正,才能得到最终的骨骼运动数据。
图4为本申请实施例提供的另一种动画数据生成方法的流程示意图;可选地,步骤S103中,根据目标柔性模型的第一骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据,目标动画数据用于生成动画效果,可以包括:
S401、根据目标柔性模型的第一骨骼运动数据中第一帧的骨骼运动数据对目标柔性模型的第一骨骼运动数据进行修正,生成目标柔性模型的修正后的骨骼运动数据。
本实施对于上述计算得到的目标柔性模型的第一骨骼运动数据进行修正,其中,骨骼运动数据包括:平移数据和旋转数据,而旋转数据是存在误差的,平移数据是准确的,所以是针对骨骼运动数据中的旋转数据进行误差修正。
可选地,由于目标柔性模型在静止状态下的骨骼运动数据是准确的,也即第一骨骼运动数据中第一帧的骨骼运动数据是准确的,那么,通过将除第一帧之外的其余帧匹配到第一帧,以对其余帧的骨骼运动数据中的旋转数据进行修正,得到目标柔性模型的修正后的骨骼运动数据。
S402、根据目标柔性模型的修正后的骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据。
那么,与步骤S103类似,目标柔性模型的修正后的骨骼运动数据结合对象模型的动画骨骼数据,则得到目标动画数据。
图5为本申请实施例提供的另一种动画数据生成方法的流程示意图;可选地,步骤S401中,根据目标柔性模型的第一骨骼运动数据中第一帧的骨骼运动数据对目标柔性模型的第一骨骼运动数据进行修正,生成目标柔性模型的修正后的骨骼运动数据,可以包括:
S501、将第一帧的骨骼运动数据中的旋转数据分别与第一骨骼运动数据中除第一帧之外的其他帧的骨骼运动数据中的旋转数据进行比对,生成除第一帧之外的其他帧的修正后的骨骼运动数据,修正后的骨骼运动数据中的旋转数据为修正后的旋转数据。
在一些实施例中,可以分别将第一帧的骨骼运动数据中的旋转数据与除第一帧之外的其他帧的骨骼运动数据中的旋转数据进行比对,也即从第二帧开始,每一帧的骨骼运动数据中的旋转数据均要与第一帧的骨骼运动数据中的旋转数据进行比对,以将其余各帧的旋转数据中各旋转方向与第一帧的旋转方向进行对齐,从而得到每一帧修改后的旋转数据,将每一帧修改后的旋转数据替换修改前的存在误差的旋转数据,则得到其余各帧修正后的骨骼运动数据。
S502、根据第一帧的骨骼运动数据以及除第一帧之外的其他帧的骨骼运动数据,生成目标柔性模型的修正后的骨骼运动数据。
那么,将第一帧的骨骼运动数据保持不变,而其余各帧的骨骼运动数据中的旋转数据采用上述修正后得到的旋转数据,而修正后的骨骼运动数据中,第一帧的骨骼运动数据保持不变,其余各帧的骨骼运动数据中的旋转数据则为上述修正后的旋转数据,可得到目标柔性模型的修正后的骨骼运动数据。
图6为本申请实施例提供的又一种动画数据生成方法的流程示意图;可选地,如图6所示,本申请的方法还可包括:
S601、根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,对目标柔性模型的骨骼运动数据中的旋转数据进行新的修正,得到目标柔性模型的目标旋转数据。
本实施例中,则是提供了针对一些特殊情况下旋转轴偏移问题的修正方案,例如:在步骤S303中所生成的目标柔性模型的初始的骨骼运动数据中旋转数据的指定方向数据未对着切线方向走。
通常,在步骤S303中所生成的目标柔性模型的初始的骨骼运动数据中旋转数据的第一方向数据是准确无误的,而在步骤S502中所生成的目标柔性模型的修正后的骨骼运动数据中的第二方向数据是准确无误的,那么,可基于这两个准确的数据,进行一系列的计算处理,对目标柔性模型的骨骼运动数据中的旋转数据进行新的修正。
其中,第一方向可以垂直于第二方向和骨骼平面,且指向骨骼的第二方向,这里可称第一方向为Y轴方向。第二方向可以为指向骨骼的旋转方向,可称第二方向为X轴方向。
S602、根据目标柔性模型的目标旋转数据以及目标柔性模型的第一骨骼运动数据中的平移数据,生成目标柔性模型的目标骨骼运动数据。
那么,通过修正后得到的目标柔性模型的目标旋转数据结合目标柔性模型的第一骨骼运动数据中的平移数据,则可得到目标柔性模型的目标骨骼运动数据。
其中,第一骨骼运动数据中的平移数据一直保持不变,其可以为步骤S303中叠加了波浪摆动和模型驱动两个骨骼运动数据的场景下所得到的骨骼运动数据中的平移数据。
图7为本申请实施例提供的另一种动画数据生成方法的流程示意图;可选地,步骤S601中,根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,对目标柔性模型的骨骼运动数据中的旋转数据进行新的修正,得到目标柔性模型的目标旋转数据,可以包括:
S701、根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,计算第一方向数据和第二方向数据的叉乘;将叉乘结果作为目标柔性模型的旋转数据中的目标第三方向数据。
这里的第三方向可以则是分别与第一方向和第二方向相互垂直的方向,可以称第三方向为Z轴方向。
可选地,可以将步骤S303中得到的初始的骨骼运动数据中旋转数据的Y轴数据与步骤S502中目标柔性模型的修正后的骨骼运动数据中旋转数据的X轴数据进行叉乘运算,得到的叉乘结果则作为目标Z轴数据。也即对于Z轴数据的修正是基于S303中初始的骨骼运动数据中旋转数据的Y轴数据与步骤S502中目标柔性模型的修正后的骨骼运动数据中旋转数据的X轴数据的叉乘结果修正得到的。
S702、将修正后的骨骼运动数据中的旋转数据的第二方向数据与预设数据相乘,得到的乘积作为目标柔性模型的旋转数据中的目标第二方向数据。
而对于X轴的修正,则可以对S502中修正后的骨骼运动数据中的旋转数据的Y轴数据乘100,得到的乘积结果则作为目标X轴数据。这样可以使得X轴数据永远朝着切线方向走。
S703、将第一骨骼运动数据中的旋转数据的第一方向数据确定为目标柔性模型的旋转数据中的目标第一方向数据。
而对于Y轴的修正,则可以直接沿用步骤S303中得到的初始的骨骼运动数据中旋转数据的Y轴数据。使得Y轴能够沿用初始的骨骼运动数据中旋转数据中Y轴方向走。
S704、根据目标第二方向数据、目标第一方向数据以及目标第三方向数据,生成目标柔性模型的目标旋转数据。
可选地,针对每一帧骨骼运动数据中旋转数据各方向数据的修正,均可按照上述方式,一帧一帧的进行修正,而基于修正得到的各帧旋转数据中目标方向数据则可生成目标柔性模型的目标旋转数据。
那么,根据目标柔性模型的目标旋转数据以及目标柔性模型的平移数据,则可生成目标柔性模型的目标骨骼运动数据,而结合目标柔性模型的目标骨骼运动数据以及对象模型的动画骨骼数据,则可生成目标动画数据,从而可将目标动画数据输出至其他DCC软件里面进行使用,以生成对象模型和目标柔性模型的动画效果。
综上所述,本实施例提供的动画数据生成方法,可基于预先设定的对象模型的动画骨骼数据,进行对象模型驱动,生成对象模型的动画数据,并从对象模型的动画数据中抽取出依附于对象模型的目标柔性模型的动画数据,由于模型与模型的骨骼之间具有相互驱动关系,基于所抽取出的目标柔性模型的动画数据以及模型与骨骼之间的驱动关系,可以确定出目标柔性模型的骨骼运动数据。由于对象模型的动画骨骼数据是预先基于所要生成的动画而设定的,对象模型的动画骨骼数据精确性较高,那么,基于对象模型的动画骨骼数据生成的对象模型的动画数据中所包含的目标柔性模型的动画数据精确性也较高,从而基于目标柔性模型的动画数据计算得到的目标柔性模型的骨骼运动数据准确性较高,最终基于骨骼运动数据生成的动画效果较为真实,相比于现有技术中通过上一帧的骨骼运动数据预测下一帧的骨骼运动数据的方式,本方案的稳定性较高,误差率较小。
下述对用以执行本申请所提供的动画数据生成方法的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
本申请实施例提供了一种动画数据生成装置,该动画数据生成装置实现的功能对应上述方法执行的步骤。该装置可以理解为上述的服务器,或服务器的处理器,也可以理解为独立于上述服务器或处理器之外的在服务器控制下实现本申请功能的组件,该装置可包括:生成模块;
生成模块,用于根据对象模型的动画骨骼数据进行对象模型骨骼驱动,生成对象模型的初始的动画数据,对象模型的初始的动画数据中包括:目标柔性模型的初始的动画数据;目标柔性模型的初始的动画数据包括:目标柔性模型中各顶点的初始位移信息;
生成模块,用于根据目标柔性模型的初始的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据;
生成模块,用于根据目标柔性模型的第一骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据,目标动画数据用于生成动画效果。
可选地,生成模块,具体用于根据目标柔性模型的初始的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据,包括:
根据目标柔性模型的初始的动画数据以及目标柔性模型的预设属性参数,生成目标柔性模型的新的动画数据;
并根据目标柔性模型的新的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据。
可选地,生成模块,还用于根据目标柔性模型的第一帧的骨骼数据生成目标柔性模型的骨骼曲线数据;目标柔性模型的第一帧的骨骼数据包括:骨骼的顶点坐标信息;
对骨骼曲线数据的不同曲线段添加对应的噪音信息,生成目标柔性模型的第二骨骼运动数据;
将第一骨骼运动数据与第二骨骼运动数据进行叠加,生成目标柔性模型的初始的骨骼运动数据。
可选地,生成模块,具体用于根据目标柔性模型的第一骨骼运动数据中第一帧的骨骼运动数据对目标柔性模型的第一骨骼运动数据进行修正,生成目标柔性模型的修正后的骨骼运动数据;
根据目标柔性模型的修正后的骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据。
可选地,生成模块,具体用于将第一帧的骨骼运动数据中的旋转数据分别与第一骨骼运动数据中除第一帧之外的其他帧的骨骼运动数据中的旋转数据进行比对,生成除第一帧之外的其他帧的修正后的骨骼运动数据,修正后的骨骼运动数据中的旋转数据为修正后的旋转数据;
根据第一帧的骨骼运动数据以及除第一帧之外的其他帧的骨骼运动数据,生成目标柔性模型的修正后的骨骼运动数据。
可选地,装置还包括:修正模块;
修正模块,用于根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,对目标柔性模型的骨骼运动数据中的旋转数据进行新的修正,得到目标柔性模型的目标旋转数据;
根据目标柔性模型的目标旋转数据以及目标柔性模型的第一骨骼运动数据中的平移数据,生成目标柔性模型的目标骨骼运动数据。
可选地,修正模块,具体用于根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,计算第一方向数据和第二方向数据的叉乘;将叉乘结果作为目标柔性模型的旋转数据中的目标第三方向数据;
将修正后的骨骼运动数据中的旋转数据的第二方向数据与预设数据相乘,得到的乘积作为目标柔性模型的旋转数据中的目标第二方向数据;
将第一骨骼运动数据中的旋转数据的第一方向数据确定为目标柔性模型的旋转数据中的目标第一方向数据;
根据目标第二方向数据、目标第一方向数据以及目标第三方向数据,生成目标柔性模型的目标旋转数据。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。
图8为本申请实施例提供的一种电子设备的结构示意图,包括:处理器801、存储介质802和总线803,存储介质802存储有处理器801可执行的机器可读指令,当电子设备运行如实施例中的一种动画数据生成方法时,处理器801与存储介质802之间通过总线803通信,处理器801执行机器可读指令,以执行以下步骤:
根据对象模型的动画骨骼数据进行对象模型骨骼驱动,生成对象模型的初始的动画数据,对象模型的初始的动画数据中包括:目标柔性模型的初始的动画数据;目标柔性模型的初始的动画数据包括:目标柔性模型中各顶点的初始位移信息;
根据目标柔性模型的初始的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据;
根据目标柔性模型的第一骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据,目标动画数据用于生成动画效果。
在一个可行的实施方案中,处理器801在执行根据目标柔性模型的初始的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据时,具体用于:根据目标柔性模型的初始的动画数据以及目标柔性模型的预设属性参数,生成目标柔性模型的新的动画数据;
并根据目标柔性模型的新的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据。
在一个可行的实施方案中,处理器801在执行生成目标柔性模型的第一骨骼运动数据之后,还用于:根据目标柔性模型的第一帧的骨骼数据生成目标柔性模型的骨骼曲线数据;目标柔性模型的第一帧的骨骼数据包括:骨骼的顶点坐标信息;
对骨骼曲线数据的不同曲线段添加对应的噪音信息,生成目标柔性模型的第二骨骼运动数据;
将第一骨骼运动数据与第二骨骼运动数据进行叠加,生成目标柔性模型的初始的骨骼运动数据。
在一个可行的实施方案中,处理器801在执行根据目标柔性模型的第一骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据,目标动画数据用于生成动画效果时,具体用于:根据目标柔性模型的第一骨骼运动数据中第一帧的骨骼运动数据对目标柔性模型的第一骨骼运动数据进行修正,生成目标柔性模型的修正后的骨骼运动数据;
根据目标柔性模型的修正后的骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据。
在一个可行的实施方案中,处理器801在执行根据目标柔性模型的第一骨骼运动数据中第一帧的骨骼运动数据对目标柔性模型的第一骨骼运动数据进行修正,生成目标柔性模型的修正后的骨骼运动数据时,具体用于:将第一帧的骨骼运动数据中的旋转数据分别与第一骨骼运动数据中除第一帧之外的其他帧的骨骼运动数据中的旋转数据进行比对,生成除第一帧之外的其他帧的修正后的骨骼运动数据,修正后的骨骼运动数据中的旋转数据为修正后的旋转数据;
根据第一帧的骨骼运动数据以及除第一帧之外的其他帧的骨骼运动数据,生成目标柔性模型的修正后的骨骼运动数据。
在一个可行的实施方案中,处理器801还用于执行:根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,对目标柔性模型的骨骼运动数据中的旋转数据进行新的修正,得到目标柔性模型的目标旋转数据;
根据目标柔性模型的目标旋转数据以及目标柔性模型的第一骨骼运动数据中的平移数据,生成目标柔性模型的目标骨骼运动数据。
在一个可行的实施方案中,处理器801在执行根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,对目标柔性模型的骨骼运动数据中的旋转数据进行新的修正,得到目标柔性模型的目标旋转数据时,具体用于:
根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,计算第一方向数据和第二方向数据的叉乘;将叉乘结果作为目标柔性模型的旋转数据中的目标第三方向数据;
将修正后的骨骼运动数据中的旋转数据的第二方向数据与预设数据相乘,得到的乘积作为目标柔性模型的旋转数据中的目标第二方向数据;
将第一骨骼运动数据中的旋转数据的第一方向数据确定为目标柔性模型的旋转数据中的目标第一方向数据;
根据目标第二方向数据、目标第一方向数据以及目标第三方向数据,生成目标柔性模型的目标旋转数据。
通过上述方式,处理设备可基于预先设定的对象模型的动画骨骼数据,进行对象模型驱动,生成对象模型的动画数据,并从对象模型的动画数据中抽取出依附于对象模型的目标柔性模型的动画数据,由于模型与模型的骨骼之间具有相互驱动关系,基于所抽取出的目标柔性模型的动画数据以及模型与骨骼之间的驱动关系,可以确定出目标柔性模型的骨骼运动数据。由于对象模型的动画骨骼数据是预先基于所要生成的动画而设定的,对象模型的动画骨骼数据精确性较高,那么,基于对象模型的动画骨骼数据生成的对象模型的动画数据中所包含的目标柔性模型的动画数据精确性也较高,从而基于目标柔性模型的动画数据计算得到的目标柔性模型的骨骼运动数据准确性较高,最终基于骨骼运动数据生成的动画效果较为真实,相比于现有技术中通过上一帧的骨骼运动数据预测下一帧的骨骼运动数据的方式,本方案的稳定性较高,误差率较小。
其中,存储介质802存储有程序代码,当程序代码被处理器801执行时,使得处理器801执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的动画数据生成方法中的各种步骤。
处理器801可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储介质802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储介质802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
可选地,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,处理器执行以下步骤:
根据对象模型的动画骨骼数据进行对象模型骨骼驱动,生成对象模型的初始的动画数据,对象模型的初始的动画数据中包括:目标柔性模型的初始的动画数据;目标柔性模型的初始的动画数据包括:目标柔性模型中各顶点的初始位移信息;
根据目标柔性模型的初始的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据;
根据目标柔性模型的第一骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据,目标动画数据用于生成动画效果。
在一个可行的实施方案中,处理器801在执行根据目标柔性模型的初始的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据时,具体用于:根据目标柔性模型的初始的动画数据以及目标柔性模型的预设属性参数,生成目标柔性模型的新的动画数据;
并根据目标柔性模型的新的动画数据以及目标柔性模型的模型顶点与目标柔性模型的骨骼顶点之间的对应关系,生成目标柔性模型的第一骨骼运动数据。
在一个可行的实施方案中,处理器801在执行生成目标柔性模型的第一骨骼运动数据之后,还用于:根据目标柔性模型的第一帧的骨骼数据生成目标柔性模型的骨骼曲线数据;目标柔性模型的第一帧的骨骼数据包括:骨骼的顶点坐标信息;
对骨骼曲线数据的不同曲线段添加对应的噪音信息,生成目标柔性模型的第二骨骼运动数据;
将第一骨骼运动数据与第二骨骼运动数据进行叠加,生成目标柔性模型的初始的骨骼运动数据。
在一个可行的实施方案中,处理器801在执行根据目标柔性模型的第一骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据,目标动画数据用于生成动画效果时,具体用于:根据目标柔性模型的第一骨骼运动数据中第一帧的骨骼运动数据对目标柔性模型的第一骨骼运动数据进行修正,生成目标柔性模型的修正后的骨骼运动数据;
根据目标柔性模型的修正后的骨骼运动数据以及对象模型的动画骨骼数据,生成目标动画数据。
在一个可行的实施方案中,处理器801在执行根据目标柔性模型的第一骨骼运动数据中第一帧的骨骼运动数据对目标柔性模型的第一骨骼运动数据进行修正,生成目标柔性模型的修正后的骨骼运动数据时,具体用于:将第一帧的骨骼运动数据中的旋转数据分别与第一骨骼运动数据中除第一帧之外的其他帧的骨骼运动数据中的旋转数据进行比对,生成除第一帧之外的其他帧的修正后的骨骼运动数据,修正后的骨骼运动数据中的旋转数据为修正后的旋转数据;
根据第一帧的骨骼运动数据以及除第一帧之外的其他帧的骨骼运动数据,生成目标柔性模型的修正后的骨骼运动数据。
在一个可行的实施方案中,处理器801还用于执行:根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,对目标柔性模型的骨骼运动数据中的旋转数据进行新的修正,得到目标柔性模型的目标旋转数据;
根据目标柔性模型的目标旋转数据以及目标柔性模型的第一骨骼运动数据中的平移数据,生成目标柔性模型的目标骨骼运动数据。
在一个可行的实施方案中,处理器801在执行根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,对目标柔性模型的骨骼运动数据中的旋转数据进行新的修正,得到目标柔性模型的目标旋转数据时,具体用于:
根据第一骨骼运动数据中的旋转数据的第一方向数据以及修正后的骨骼运动数据中的旋转数据的第二方向数据,计算第一方向数据和第二方向数据的叉乘;将叉乘结果作为目标柔性模型的旋转数据中的目标第三方向数据;
将修正后的骨骼运动数据中的旋转数据的第二方向数据与预设数据相乘,得到的乘积作为目标柔性模型的旋转数据中的目标第二方向数据;
将第一骨骼运动数据中的旋转数据的第一方向数据确定为目标柔性模型的旋转数据中的目标第一方向数据;
根据目标第二方向数据、目标第一方向数据以及目标第三方向数据,生成目标柔性模型的目标旋转数据。
通过上述方式,处理设备可基于预先设定的对象模型的动画骨骼数据,进行对象模型驱动,生成对象模型的动画数据,并从对象模型的动画数据中抽取出依附于对象模型的目标柔性模型的动画数据,由于模型与模型的骨骼之间具有相互驱动关系,基于所抽取出的目标柔性模型的动画数据以及模型与骨骼之间的驱动关系,可以确定出目标柔性模型的骨骼运动数据。由于对象模型的动画骨骼数据是预先基于所要生成的动画而设定的,对象模型的动画骨骼数据精确性较高,那么,基于对象模型的动画骨骼数据生成的对象模型的动画数据中所包含的目标柔性模型的动画数据精确性也较高,从而基于目标柔性模型的动画数据计算得到的目标柔性模型的骨骼运动数据准确性较高,最终基于骨骼运动数据生成的动画效果较为真实,相比于现有技术中通过上一帧的骨骼运动数据预测下一帧的骨骼运动数据的方式,本方案的稳定性较高,误差率较小。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种动画数据生成方法,其特征在于,包括:
根据对象模型的动画骨骼数据进行对象模型骨骼驱动,生成所述对象模型的初始的动画数据,所述对象模型的初始的动画数据中包括:目标柔性模型的初始的动画数据;所述目标柔性模型的初始的动画数据包括:所述目标柔性模型中各顶点的初始位移信息;
根据所述目标柔性模型的初始的动画数据以及所述目标柔性模型的模型顶点与所述目标柔性模型的骨骼顶点之间的对应关系,生成所述目标柔性模型的第一骨骼运动数据;
根据所述目标柔性模型的第一骨骼运动数据以及所述对象模型的动画骨骼数据,生成目标动画数据,所述目标动画数据用于生成动画效果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标柔性模型的初始的动画数据以及所述目标柔性模型的模型顶点与所述目标柔性模型的骨骼顶点之间的对应关系,生成所述目标柔性模型的第一骨骼运动数据,包括:
根据所述目标柔性模型的初始的动画数据以及所述目标柔性模型的预设属性参数,生成所述目标柔性模型的新的动画数据;
并根据所述目标柔性模型的新的动画数据以及所述目标柔性模型的模型顶点与所述目标柔性模型的骨骼顶点之间的对应关系,生成所述目标柔性模型的第一骨骼运动数据。
3.根据权利要求2所述的方法,其特征在于,所述生成所述目标柔性模型的第一骨骼运动数据之后,还包括:
根据所述目标柔性模型的第一帧的骨骼数据生成所述目标柔性模型的骨骼曲线数据;所述目标柔性模型的第一帧的骨骼数据包括:骨骼的顶点坐标信息;
对所述骨骼曲线数据的不同曲线段添加对应的噪音信息,生成所述目标柔性模型的第二骨骼运动数据;
将所述第一骨骼运动数据与所述第二骨骼运动数据进行叠加,生成所述目标柔性模型的初始的骨骼运动数据。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标柔性模型的第一骨骼运动数据以及所述对象模型的动画骨骼数据,生成目标动画数据,所述目标动画数据用于生成动画效果,包括:
根据所述目标柔性模型的第一骨骼运动数据中第一帧的骨骼运动数据对所述目标柔性模型的第一骨骼运动数据进行修正,生成所述目标柔性模型的修正后的骨骼运动数据;
根据所述目标柔性模型的修正后的骨骼运动数据以及所述对象模型的动画骨骼数据,生成所述目标动画数据。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标柔性模型的第一骨骼运动数据中第一帧的骨骼运动数据对所述目标柔性模型的第一骨骼运动数据进行修正,生成所述目标柔性模型的修正后的骨骼运动数据,包括:
将所述第一帧的骨骼运动数据中的旋转数据分别与所述第一骨骼运动数据中除第一帧之外的其他帧的骨骼运动数据中的旋转数据进行比对,生成除第一帧之外的其他帧的修正后的骨骼运动数据,所述修正后的骨骼运动数据中的旋转数据为修正后的旋转数据;
根据所述第一帧的骨骼运动数据以及所述除第一帧之外的其他帧的骨骼运动数据,生成所述目标柔性模型的修正后的骨骼运动数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述第一骨骼运动数据中的旋转数据的第一方向数据以及所述修正后的骨骼运动数据中的旋转数据的第二方向数据,对所述目标柔性模型的骨骼运动数据中的旋转数据进行新的修正,得到所述目标柔性模型的目标旋转数据;
根据所述目标柔性模型的目标旋转数据以及所述目标柔性模型的第一骨骼运动数据中的平移数据,生成所述目标柔性模型的目标骨骼运动数据。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一骨骼运动数据中的旋转数据的第一方向数据以及所述修正后的骨骼运动数据中的旋转数据的第二方向数据,对所述目标柔性模型的骨骼运动数据中的旋转数据进行新的修正,得到所述目标柔性模型的目标旋转数据,包括:
根据所述第一骨骼运动数据中的旋转数据的第一方向数据以及所述修正后的骨骼运动数据中的旋转数据的第二方向数据,计算所述第一方向数据和所述第二方向数据的叉乘;将所述叉乘结果作为所述目标柔性模型的旋转数据中的目标第三方向数据;
将所述修正后的骨骼运动数据中的旋转数据的第二方向数据与预设数据相乘,得到的乘积作为所述目标柔性模型的旋转数据中的目标第二方向数据;
将所述第一骨骼运动数据中的旋转数据的第一方向数据确定为所述目标柔性模型的旋转数据中的目标第一方向数据;
根据所述目标第二方向数据、目标第一方向数据以及目标第三方向数据,生成所述目标柔性模型的目标旋转数据。
8.一种动画数据生成装置,其特征在于,包括:生成模块;
所述生成模块,用于根据对象模型的动画骨骼数据进行对象模型骨骼驱动,生成所述对象模型的初始的动画数据,所述对象模型的初始的动画数据中包括:目标柔性模型的初始的动画数据;所述目标柔性模型的初始的动画数据包括:所述目标柔性模型中各顶点的初始位移信息;
所述生成模块,用于根据所述目标柔性模型的初始的动画数据以及所述目标柔性模型的模型顶点与所述目标柔性模型的骨骼顶点之间的对应关系,生成所述目标柔性模型的第一骨骼运动数据;
所述生成模块,用于根据所述目标柔性模型的第一骨骼运动数据以及所述对象模型的动画骨骼数据,生成目标动画数据,所述目标动画数据用于生成动画效果。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如权利要求1至7任一所述的动画数据生成方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述的动画数据生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310747264.2A CN116843810A (zh) | 2023-06-21 | 2023-06-21 | 动画数据生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310747264.2A CN116843810A (zh) | 2023-06-21 | 2023-06-21 | 动画数据生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116843810A true CN116843810A (zh) | 2023-10-03 |
Family
ID=88171830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310747264.2A Pending CN116843810A (zh) | 2023-06-21 | 2023-06-21 | 动画数据生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116843810A (zh) |
-
2023
- 2023-06-21 CN CN202310747264.2A patent/CN116843810A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107067451A (zh) | 动画中动态骨骼的实现方法和装置 | |
CN110411464B (zh) | 三维点云地图生成方法、装置、设备及存储介质 | |
KR101525054B1 (ko) | 3차원 메쉬 데이터 간략화 방법 및 장치 | |
CN112184862B (zh) | 虚拟对象的控制方法、装置及电子设备 | |
CN110136232B (zh) | 骨骼蒙皮动画的处理方法、装置、电子设备及存储介质 | |
GB2546817A (en) | Animating a virtual object in a virtual world | |
CN111714880A (zh) | 画面的显示方法和装置、存储介质、电子装置 | |
CN111773719A (zh) | 虚拟对象的渲染方法和装置、存储介质、电子装置 | |
US10410393B2 (en) | Animating a virtual object in a virtual world | |
CN112541969B (zh) | 一种三维人体模型骨骼动态转移绑定方法 | |
CN111951360B (zh) | 动画模型处理方法、装置、电子设备及可读存储介质 | |
CN116843810A (zh) | 动画数据生成方法、装置、电子设备及存储介质 | |
JP3212255B2 (ja) | 画像合成装置及び画像合成方法 | |
CN108090953A (zh) | 感兴趣区域重建方法、系统以及计算机可读存储介质 | |
Chen et al. | Skeleton-driven surface deformation through lattices for real-time character animation | |
Li et al. | Soft articulated characters in projective dynamics | |
CN115222855A (zh) | 动画重定向方法、装置、电子设备及可读存储介质 | |
CN115984433A (zh) | 骨骼动画生成方法、装置、存储介质及电子设备 | |
CN115908650A (zh) | 动画数据的处理方法及装置、存储介质、终端 | |
Madera et al. | A hybrid bounding volume algorithm to detect collisions between deformable objects | |
CN113256770B (zh) | 基于骨骼的动画生成方法、装置以及电子设备 | |
CN117475045A (zh) | 软体飘动效果的生成方法、装置及电子设备 | |
CN114445530A (zh) | 一种修型方法、装置及存储介质 | |
CN116681808A (zh) | 模型动画的生成方法、装置、电子设备以及存储介质 | |
CN116934922A (zh) | 基于Unreal引擎的物理动画生成方法和装置 |
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 |