CN117058283A - 模型动画处理方法、装置、电子设备及存储介质 - Google Patents
模型动画处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117058283A CN117058283A CN202310929585.4A CN202310929585A CN117058283A CN 117058283 A CN117058283 A CN 117058283A CN 202310929585 A CN202310929585 A CN 202310929585A CN 117058283 A CN117058283 A CN 117058283A
- Authority
- CN
- China
- Prior art keywords
- model
- additional
- additional model
- chain
- motion
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 238000003672 processing method Methods 0.000 title abstract description 35
- 230000033001 locomotion Effects 0.000 claims abstract description 189
- 238000000034 method Methods 0.000 claims abstract description 71
- 210000000988 bone and bone Anatomy 0.000 claims description 95
- 210000003780 hair follicle Anatomy 0.000 claims description 74
- 239000004744 fabric Substances 0.000 claims description 30
- 238000004364 calculation method Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 210000004209 hair Anatomy 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 238000010276 construction Methods 0.000 claims 2
- 238000001514 detection method Methods 0.000 abstract description 5
- 230000000694 effects Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000012636 effector Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000877 morphologic effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 210000003491 skin Anatomy 0.000 description 2
- 241000270295 Serpentes Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000452 restraining effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供一种模型动画处理方法、装置、电子设备及存储介质,方法包括:确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接;接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定;根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。在本公开中,附加模型跟随基础模型的运动而运动,能够提高附加模型的运动与检测模型的运动的协调性。
Description
技术领域
本公开涉及计算机动画技术领域,尤其涉及一种模型动画处理方法、装置、电子设备及存储介质。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在计算机动画中,通常会在基础模型上附加一些附加模型,例如,以角色模型本体为基础模型,则该角色模型本体上附加的头发类模型、飘带类模型以及布料类模型等模型,为附加模型。
在现有技术中,通常会分别控制附加模型的运动和基础模型的运动,这种情况下,附加模型的运动和基础模型的运动的协调性较差。
发明内容
有鉴于此,本公开的目的在于提出一种模型动画处理方法、装置、电子设备及存储介质,至少在一定程度上解决相关技术中的技术问题之一。
基于上述目的,本公开示例性实施例第一方面提供了一种模型动画处理方法,包括:
确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接;
接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定;
根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。
基于同一发明构思,本公开示例性实施例第二方面提供了一种模型动画处理装置,包括:
模型确定模块,被配置为确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接;
运动数据获取模块,被配置为接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定;
附加模型控制模块,被配置为根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。
基于同一发明构思,本公开示例性实施例第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
基于同一发明构思,本公开示例性实施例第四方面提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如第一方面所述的方法。
从上面所述可以看出,本公开实施例提供的模型动画处理方法、装置、电子设备及存储介质,方法包括:确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接;接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定;根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。在本公开中,附加模型跟随基础模型的运动而运动,能够提高附加模型的运动与检测模型的运动的协调性。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开示例性实施例提供的模型动画处理方法的一种应用场景示意图;
图2为本公开示例性实施例提供的spring magic工具的一种示意图;
图3为本公开示例性实施例提供的模型动画处理方法的另一种应用场景示意图;
图4为本公开示例性实施例提供的模型动画处理方法的一种流程示意图;
图5为本公开示例性实施例提供的模型动画处理方法的另一种流程示意图;
图6为本公开示例性实施例提供的模型动画处理方法的另一种流程示意图;
图7为本公开示例性实施例提供的骨骼链的一种结构示意图;
图8为本公开示例性实施例提供的毛囊系统的一种结构示意图;
图9为本公开示例性实施例提供的模型动画处理方法的另一种流程示意图;
图10为本公开示例性实施例提供的模型动画处理方法的另一种流程示意图;
图11为本公开示例性实施例提供的模型动画处理装置的一种结构示意图;
图12为本公开示例性实施例提供的电子设备的一种结构示意图。
具体实施方式
可以理解的是,在使用本申请各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本申请所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本申请技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本申请的实现方式构成限定,其它满足相关法律法规的方式也可应用于本申请的实现方式中。
可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
为使本公开的目的、技术方案和优点更加清楚明白,下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
如背景技术所述,在计算机动画中,通常会在基础模型上附加一些附加模型,作为一个具体示例,参考图1,以角色模型本体101为基础模型,则该角色模型本体101上附加的头发类模型如发束模型102、飘带类模型如腰带模型103以及布料类模型如裙摆模型104,均为附加模型。
进一步的,头发类模型至少包括发丝模型或发束模型;飘带类模型至少包括条状模型或带状模型,例如挂坠模型、腰带模型或较细长的衣带模型等;布料类模型至少包括片状模型或块状模型,例如裙摆模型、披风模型或者长袍模型等。
需要说明的是,除了头发类模型具有较明确的定义外,在一定的程度上,飘带类模型和布料类模型其实没有非常明确的区分界线,通常情况下,在特定的计算机动画场景中,根据模型的形状和尺寸,飘带类模型和布料类模型通常可以是相对来说的,例如,将较细且较长的模型视为飘带类模型,将较粗且较短的模型视为布料类模型。
在相关技术中,通常采用spring magic进行飘带类模型以及布料类模型的制作。spring magic是一个用于创建骨骼链跟随动画的脚本工具,可以在骨骼链上创建摆动,扭转,伸缩等动画效果。
参考图2,spring magic提供有拆帧以及清理碎帧的功能201,具体的,springmagic采用错帧原理。
然而,本公开的发明人发现,由于在基于spring magic实现的方案中,需要先给飘带类模型或布料类模型的骨骼套上包围盒,再根据设计动作计算出飘带类模型或布料类模型的骨骼的位置信息,最后对飘带类模型或布料类模型的骨骼进行拉伸或者缩短的操作,以实现飘带类模型或布料类模型的运动效果,没有考虑飘带类模型或布料类模型从属的基础模型的运动,飘带类模型或布料类模型的运动与基础模型的运动之间的协调性较差。也就是说,由于相关技术中的飘带类模型或布料类模型的运动没有考虑其从属的基础模型的运动,运动效果不自然。
并且,在spring magic方案中,没法用真实布料解算的方式去做碰撞,碰撞效果不佳,导致解算效果与真实布料解算的区别较大,在显示效果上的动力学效果较差。
为了解决上述问题,本公开提供了一种模型动画处理方案,具体包括:确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接;接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定;根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。在本公开中,附加模型跟随基础模型的运动而运动,能够提高附加模型的运动与检测模型的运动的协调性。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
在一些示例性实施例中,模型动画处理方法可以运行于本地终端设备或者是服务器。当模型动画处理方法运行于服务器时,参考图3,其为本公开实施例提供的模型动画处理方法的另一种应用场景示意图。
该应用场景包括终端设备301和服务器302。其中,终端设备301和服务器302之间可通过有线或无线的通信网络连接。终端设备301包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、个人数字助理(personal digitalassistant,PDA)或其它能够实现上述功能的电子设备等。服务器302可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
服务器302用于向终端设备301的用户提供模型动画处理服务,终端设备301中安装有与服务器302通信的客户端,用户可通过该客户端输入附加模型和与该附加模型对应的基础模型,点击处理按钮后,客户端将附加模型和与该附加模型对应的基础模型发送给服务器302,服务器302确定附加模型和与该附加模型对应的基础模型,其中,该附加模型附加于该基础模型上,该附加模型上包括预先配置的骨骼链,该骨骼链与该基础模型连接;接收该基础模型对应的运动数据,其中,该运动数据基于该基础模型关联的运动动画确定;根据该运动数据和该骨骼链,控制该附加模型跟随该基础模型运动,以生成该附加模型对应的模型动画。服务器302还可以将该附加模型对应的模型动画发送给客户端,客户端向用户展示该附加模型对应的模型动画。
在上述实施例中,以模型动画处理方法运行于服务器为例进行了说明,然而本公开不限于此,在一些示例性实施例中,模型动画处理方法还可以运行于本地终端设备。
本地终端设备可以包括显示屏和处理器。本地终端设备中安装有客户端,用户可通过该客户端输入附加模型和与该附加模型对应的基础模型,点击处理按钮后,客户端将附加模型和与该附加模型对应的基础模型发送给处理器,处理器确定附加模型和与该附加模型对应的基础模型,其中,该附加模型附加于该基础模型上,该附加模型上包括预先配置的骨骼链,该骨骼链与该基础模型连接;接收该基础模型对应的运动数据,其中,该运动数据基于该基础模型关联的运动动画确定;根据该运动数据和该骨骼链,控制该附加模型跟随该基础模型运动,以生成该附加模型对应的模型动画。处理器还可以将该附加模型对应的模型动画发送给客户端,客户端通过显示屏向用户展示该附加模型对应的模型动画。
下面结合图3的应用场景,来描述根据本公开示例性实施方式的模型动画处理方案。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
参考图4,其为本公开实施例提供的模型动画处理方法的一种流程示意图。
模型动画处理方法,包括以下步骤:
步骤S410、确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接。
其中,将附加在其他模型上的模型称为附加模型,将其上被其他模型附加的模型称为基础模型,作为一个示例,以角色模型本体为基础模型,则该角色模型本体上附加的头发类模型、飘带类模型以及布料类模型等模型,为附加模型。
其中,与所述附加模型对应的基础模型为所述附加模型附加在其上的模型。
其中,可以根据用户指令确定模型为附加模型或基础模型,以及确定附加模型和基础模型之间的对应关系;具体的:
在一些示例性实施例中,S410具体包括:
响应于针对场景中模型的类型指定指令,根据所述类型指定指令,确定所述模型的类型,以及,确定所述模型之间的对应关系;其中,所述模型的类型包括所述附加模型和所述基础模型。
其中,所述骨骼链用于控制所述附加模型运动。
其中,所述附加模型上的骨骼链与所述基础模型连接,是得以实现所述附加模型随所述基础模型运动的基础。
在一些示例性实施例中,所述骨骼链包括所述附加模型的至少一个骨骼链。
可选的,所述骨骼链包括所述附加模型的所有骨骼链。
可选的,所述骨骼链包括所述附加模型的预设骨骼链。
在本公开中,可以针对某条骨骼链单独处理,也可以所有骨骼链一起处理。进一步的,如果有多个模型,也可以多个模型一起处理。
步骤S420、接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定。
其中,对于基于基础模型关联的运动动画确定运动数据的方式,本公开不做限定。需要说明的是,相关技术中可以实现上述功能的方式,S420均包括在内。
步骤S430、根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。
其中,根据所述运动数据控制所述骨骼链,以控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。
其中,可以通过烘焙技术生成附加模型对应的模型动画,具体的:
在一些示例性实施例中,S430具体包括:
烘焙所述附加模型的运动过程,得到所述附加模型对应的模型动画。
在一些示例性实施例中,所述烘焙所述附加模型的运动过程,得到所述附加模型对应的模型动画,包括:
将所述附加模型的运动过程中的第一关键帧烘焙到反向运动控制器;
通过所述反向运动控制器约束正向运动控制器,将所述约束过程中的第二关键帧烘焙到所述正向运动控制器,得到所述附加模型对应的模型动画。
在本公开中,附加模型跟随基础模型的运动而运动,能够提高附加模型的运动与检测模型的运动的协调性。由于附加模型的运动考虑了其附加的基础模型的运动,运动效果较自然。
参考图5,其为本公开实施例提供的模型动画处理方法的另一种流程示意图。
模型动画处理方法,包括以下步骤:
步骤S510、确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接。
其中,将附加在其他模型上的模型称为附加模型,将其上被其他模型附加的模型称为基础模型,作为一个示例,以角色模型本体为基础模型,则该角色模型本体上附加的头发类模型、飘带类模型以及布料类模型等模型,为附加模型。
其中,与所述附加模型对应的基础模型为所述附加模型附加在其上的模型。
其中,可以根据用户指令确定模型为附加模型或基础模型,以及确定附加模型和基础模型之间的对应关系;具体的:
在一些示例性实施例中,响应于针对场景中模型的类型指定指令,根据所述类型指定指令,确定所述模型的类型,以及,确定所述模型之间的对应关系;其中,所述模型的类型包括所述附加模型和所述基础模型。
其中,所述骨骼链用于控制所述附加模型运动。
其中,所述附加模型上的骨骼链与所述基础模型连接,是得以实现所述附加模型随所述基础模型运动的基础。
在一些示例性实施例中,所述骨骼链包括所述附加模型的至少一个骨骼链。
可选的,所述骨骼链包括所述附加模型的所有骨骼链。
可选的,所述骨骼链包括所述附加模型的预设骨骼链。
在本公开中,可以针对某条骨骼链单独处理,也可以所有骨骼链一起处理。进一步的,如果有多个模型,也可以多个模型一起处理。
步骤S520、接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定。
其中,对于基于基础模型关联的运动动画确定运动数据的方式,本公开不做限定。相关技术中可以实现上述功能的方式,S520均包括在内。
步骤S530、构建所述骨骼链对应的动力学系统,根据所述运动数据,基于所述动力学系统进行动力学解算,在进行所述动力学解算的过程中,通过所述动力学系统控制所述骨骼链以控制所述附加模型运动,烘焙所述附加模型的运动过程,得到所述附加模型对应的模型动画。
在相关技术中,通常采用spring magic进行飘带类模型以及布料类模型的制作。然而,在spring magic方案中,没法用真实布料解算的方式去做碰撞,碰撞效果不佳,导致解算效果与真实布料解算的区别较大,在显示效果上的动力学效果较差。
为了解决动力学效果较差的问题,本公开通过S530,构建骨骼链对应的动力学系统,在此基础上,基于动力学系统进行动力学解算,在进行动力学解算的过程中,通过动力学系统控制骨骼链以控制附加模型运动,得到附加模型对应的模型动画,其中,在对动力学系统进行动力学解算时,实质上实现了对附加模型的动力学解算,因此,得到的模型动画的动力学效果较好。
在上述实施例中,提供了构建骨骼链对应的动力学系统,以实现较好的动力学效果的方案,以下将具体介绍动力学系统的构建方式,以及基于动力学系统实现的控制附加模型运动的具体方案。具体的,根据不同的附加模型,本公开提供了至少两种方案,具体的:
在一些示例性实施例中,所述构建所述骨骼链对应的动力学系统,包括:
判断所述附加模型为第一类模型还是第二类模型;
响应于所述附加模型为所述第一类模型,构建所述骨骼链对应的第一动力学系统;
或,
响应于所述附加模型为所述第二类模型,构建所述骨骼链对应的第二动力学系统。
其中,需要进行附加模型的类型的区分,具体的:
在一些示例性实施例中,所述判断所述附加模型为第一类模型还是第二类模型,包括:
确定所述附加模型的长宽比,判断所述长宽比是否大于或等于长宽比阈值;
响应于所述长宽比大于或等于长宽比阈值,确定所述附加模型为第一类模型;
或,
响应于所述长宽比小于长宽比阈值,确定所述附加模型为第二类模型。
在一些示例性实施例中,所述附加模型为第一类模型还是第二类模型也可以是由用户指定的。
在一些示例性实施例中,所述第一类模型包括:头发类模型或飘带类模型;
所述第二类模型包括:布料类模型。
参考图6,其为本公开实施例提供的模型动画处理方法的另一种流程示意图。
模型动画处理方法,包括以下步骤:
步骤S610、确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接。
其中,将附加在其他模型上的模型称为附加模型,将其上被其他模型附加的模型称为基础模型,作为一个示例,以角色模型本体为基础模型,则该角色模型本体上附加的头发类模型、飘带类模型以及布料类模型等模型,为附加模型。
其中,与所述附加模型对应的基础模型为所述附加模型附加在其上的模型。
其中,可以根据用户指令确定模型为附加模型或基础模型,以及确定附加模型和基础模型之间的对应关系;具体的:
在一些示例性实施例中,响应于针对场景中模型的类型指定指令,根据所述类型指定指令,确定所述模型的类型,以及,确定所述模型之间的对应关系;其中,所述模型的类型包括所述附加模型和所述基础模型。
其中,所述骨骼链用于控制所述附加模型运动。
其中,所述附加模型上的骨骼链与所述基础模型连接,是得以实现所述附加模型随所述基础模型运动的基础。
在一些示例性实施例中,所述骨骼链包括所述附加模型的至少一个骨骼链。
可选的,所述骨骼链包括所述附加模型的所有骨骼链。
可选的,所述骨骼链包括所述附加模型的预设骨骼链。
在本公开中,可以针对某条骨骼链单独处理,也可以所有骨骼链一起处理。进一步的,如果有多个模型,也可以多个模型一起处理。
步骤S620、接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定。
其中,对于基于基础模型关联的运动动画确定运动数据的方式,本公开不做限定。相关技术中可以实现上述功能的方式,S620均包括在内。
步骤S630、构建所述骨骼链对应的动力学曲线,根据所述运动数据,基于所述动力学曲线进行动力学解算,在进行所述动力学解算的过程中,通过所述动力学曲线控制所述骨骼链以控制所述附加模型运动,烘焙所述附加模型的运动过程,得到所述附加模型对应的模型动画。
在一些示例性实施例中,所述第一动力学系统包括动力学曲线;构建所述骨骼链对应的动力学曲线的方式,包括:
构建所述骨骼链对应的曲线;
将所述曲线转化为所述动力学曲线。
在一些示例性实施例中,所述骨骼链上包括若干骨骼,所述构建所述骨骼链对应的曲线,包括:
基于所述骨骼链上的所述若干骨骼,得到所述曲线上的节点,以构建所述曲线。
在一些示例性实施例中,所述骨骼链上包含若干骨骼,所述若干骨骼在所述骨骼链上以特定顺序排列。
参考图7,作为一个示例,展示了一种蛇模型的骨骼链,其中,骨骼链上包含若干骨骼,若干骨骼在骨骼链上以特定顺序排列。
可选的,基于所述骨骼链上的所有骨骼,构建与所述骨骼链对应的所述曲线。
在上述实施例中,构建的曲线与骨骼链更加贴合,更加准确。
可选的,基于所述骨骼链上的预设骨骼,构建与所述骨骼链对应的所述曲线。
在上述实施例中,构建曲线的成本较低。
作为一个示例,所述曲线包括非均匀有理B样条(Non-Uniform Rational B-Splines,NURBS)曲线。
在一些示例性实施例中,可以通过所述曲线控制所述骨骼链。
作为一个示例,样条线IK(反向运动学)控制柄可以使用NURBS曲线来对骨骼链设定姿势,操纵NURBS曲线时,样条线IK控制柄的样条线IK解算器会相应的旋转骨骼链中的骨骼。
在一些示例性实施例中,所述将所述曲线转化为所述动力学曲线,包括:
构建所述曲线对应的第一毛囊系统;
将所述曲线上的节点的位置与所述第一毛囊系统中的毛囊的位置相对应,得到所述动力学曲线。
参考图8,毛囊系统可以利用世界方位矩阵来模拟发根定位,毛囊系统创建后,毛囊系统中的毛囊可跟着模型表面运动。
在一些示例性实施例中,所述动力学曲线的控制顶点与所述曲线的控制顶点的数量相同。
在上述实施例中,可以通过控制毛囊的位置操纵所述动力学曲线的形态。
在一些示例性实施例中,所述根据所述运动数据,基于所述动力学曲线进行动力学解算,在进行所述动力学解算的过程中,通过所述动力学曲线控制所述骨骼链以控制所述附加模型运动,包括:
根据所述运动数据,对所述第一毛囊系统进行所述动力学解算,得到所述第一毛囊系统中的毛囊的位置信息;
根据所述动力学毛囊曲线中的毛囊的位置信息,控制所述动力学曲线运动;
根据所述动力学曲线的运动,控制所述骨骼链中的骨骼运动,以控制所述附加模型运动。
作为一个示例,控制所述动力学曲线时,样条线IK控制柄的样条线IK解算器会相应的旋转所述骨骼链中的骨骼。
在一些示例性实施例中,移动IK控制柄时,解算器执行适当的计算以便在其IK链中相应移动和旋转所有骨骼。首先,解算器查找IK控制柄的位置(“平移X”(TranslateX)、“平移Y”(TranslateY)和“平移Z”(TranslateZ)属性)和方向(“旋转X”(RotateX)、“旋转Y”(RotateY)和“旋转Z”(RotateZ)属性)。其次,解算器计算如何将末端效应器的位置和方向尽可能地向靠近IK控制柄的位置和方向移动。若要执行该操作,解算器计算如何最好地在IK控制柄的骨骼链中旋转骨骼。最后,解算器旋转骨骼链中的所有骨骼,使末端效应器到达IK控制柄的位置和方向。
参考图9,其为本公开实施例提供的模型动画处理方法的另一种流程示意图。
模型动画处理方法,包括以下步骤:
步骤S910、确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接。
其中,将附加在其他模型上的模型称为附加模型,将其上被其他模型附加的模型称为基础模型,作为一个示例,以角色模型本体为基础模型,则该角色模型本体上附加的头发类模型、飘带类模型以及布料类模型等模型,为附加模型。
其中,与所述附加模型对应的基础模型为所述附加模型附加在其上的模型。
其中,可以根据用户指令确定模型为附加模型或基础模型,以及确定附加模型和基础模型之间的对应关系;具体的:
在一些示例性实施例中,响应于针对场景中模型的类型指定指令,根据所述类型指定指令,确定所述模型的类型,以及,确定所述模型之间的对应关系;其中,所述模型的类型包括所述附加模型和所述基础模型。
其中,所述骨骼链用于控制所述附加模型运动。
其中,所述附加模型上的骨骼链与所述基础模型连接,是得以实现所述附加模型随所述基础模型运动的基础。
在一些示例性实施例中,所述骨骼链包括所述附加模型的至少一个骨骼链。
可选的,所述骨骼链包括所述附加模型的所有骨骼链。
可选的,所述骨骼链包括所述附加模型的预设骨骼链。
在本公开中,可以针对某条骨骼链单独处理,也可以所有骨骼链一起处理。进一步的,如果有多个模型,也可以多个模型一起处理。
步骤S920、接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定。
其中,对于基于基础模型关联的运动动画确定运动数据的方式,本公开不做限定。相关技术中可以实现上述功能的方式,S920均包括在内。
步骤S930、构建所述骨骼链对应的nCloth对象,根据所述运动数据,基于所述nCloth对象进行动力学解算,在进行所述动力学解算的过程中,通过所述nCloth对象控制所述骨骼链以控制所述附加模型运动,烘焙所述附加模型的运动过程,得到所述附加模型对应的模型动画。
其中,nCloth对象使用一系列链接的粒子来模拟各种动力学多边形曲面。例如,可以模拟以下曲面:织物衣服、充气气球、破碎曲面以及可变形对象。
在一些示例性实施例中,所述第二动力学系统包括nCloth对象;所述构建所述骨骼链对应的nCloth对象,包括:
构建所述骨骼链对应的nCloth对象;
构建所述nCloth对象对应的第二毛囊系统;
将所述nCloth对象中的位置与所述第二毛囊系统中的毛囊的位置相对应。
在一些示例性实施例中,所述构建所述nCloth对象对应的第二毛囊系统,包括:
在所述nCloth对象上生成开始位置输出网格;
基于所述开始位置输出网格,将所述第二毛囊系统附加到所述nCloth对象上。
在上述实施例中,所述开始位置通过Nucleus解算器计算得到,所述Nucleus解算器在模拟过程中会持续对毛囊位置进行求值。
在一些示例性实施例中,将毛囊系统分配给与nCloth系统相同的Nucleus解算器,从而允许在对象之间进行双向交互。例如,这些交互可能是毛囊曲线顺着nCloth曲面推动,而nCloth网格面和顶点逆着曲线推动,从而出现双向碰撞。
在一些示例性实施例中,所述根据所述运动数据,基于所述nCloth对象进行动力学解算,在进行所述动力学解算的过程中,通过所述nCloth对象控制所述骨骼链以控制所述附加模型运动,包括:
根据所述运动数据,对所述第二毛囊系统进行动力学解算,得到所述第二毛囊系统中的毛囊的位置信息;
通过所述第二毛囊系统中的毛囊的位置信息,控制所述nCloth对象运动;
根据所述nCloth对象的运动,控制所述骨骼链中的骨骼运动,以控制所述附加模型运动。
在一些示例性实施例中,所述正向运动控制器里面可以叠加一个内置的反向运动控制器。
在上述实施例中,内置的反向运动控制器和前述实施例中的反向运动控制器不是同一反向运动控制器,内置的反向运动控制器的作用在于,用户在使用正向运动控制器的同时,不用切换也可以使用反向运动控制器。
参考图10,其中,上述两种方法都是在资产文件上做好预设(其中,资产包含模型、绑定、动画、材质贴图等有关制作的源文件),包括风场和碰撞,给对应控制器加上属性细节调整。用户例如动画师在每个镜头做解算时可以直接点击按钮一键解算。
具体实施时,IK是一种反向动力学的操作方式,IK链是用IK控制骨骼链,而线性IK用曲线去控制骨骼链。在本公开中将曲线转成可以进行动力学解算的动力学曲线去控制骨骼链,转化原理是建一个带毛囊系统的动力学解算器,然后用毛囊的位置矩阵信息连上曲线的形态节点,即用动力学毛囊带动曲线的形态造型。这样,用动力学系统解算毛囊的时候,曲线也有了动力学的效果,这个骨骼链就是最终的蒙皮skin骨骼。
具体实施时,ncloth是一种布料系统,先创建裙子的布料模型,然后对模型加上ncloth布料系统,这个布料模型就是解算用的载体。这个时候建立三条骨骼链,A骨骼链是蒙皮skin骨骼,B骨骼链是IK控制用,C骨骼链是FK控制用。一般用户例如动画师喜欢一套控制里面可以有IK和FK(正向运动)的切换功能,所以分别加了IK和FK。IK控制的B骨骼链同时也用来承载布料模型解算时候的动态效果,承载方式是创建每个骨骼对应位置的毛囊(毛囊在关键词里有介绍),然后用毛囊对IK控制器的transform组做约束,即用毛囊的位置矩阵去带动IK控制器的组,由于组是父物体,带动组不会影响到组里面的IK控制器,就不会影响到用户例如动画师对IK控制器的正常使用。布料解算时,毛囊带动IK控制,把带动的过程烘焙关键帧到IK控制器,这时候IK控制器就获得了每一帧的运动数值。然后用IK控制器对FK控制器的组做约束,做好约束后烘焙关键帧到FK控制器,这时候FK控制器就也有了解算动画。最终用户例如动画师切换到FK控制器的时候FK控制器就已经有了解算效果,切换到IK控制器的时候,IK控制器也有解算效果,且解算效果的每帧数值直接在控制器上,用户例如动画师可自由的对控制器的动画效果进行二次加工。其中,FK控制器里面可以叠加一个IK控制器,这个IK控制器和上面说的IK控制器不是同一套,所以用户例如动画师在使用FK的同时,不用切换也可以使用IK。
从上面所述可以看出,本公开实施例提供的模型动画处理方法,包括:确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接;接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定;根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。在本公开中,附加模型跟随基础模型的运动而运动,能够提高附加模型的运动与检测模型的运动的协调性。
进一步的,本公开的解算速度很快,自由度很高,而且可以分不同部位批量控制属性参数。用户例如动画艺术家可以直观快速看到解算效果并随时暂停。在资产文件中处理,从原始资产解决了飘带问题,避免在大批量镜头里面单独加飘带效果。可以FK和动力学切换,且切换到动力学的时候也有控制器可以调控动画效果,效果与动力学解算不冲突,相互叠加。动力学属性集中在一个控制器上(重力,开始帧,阻力,硬度,碰撞厚度),方便动画师调节。且可随时烘焙动画,自由度高,可控性好。不仅提升了动画产能和效果,也解决了一部分后期特效环节的产能,斩掉了特效环节常规布料解算的工作量。通过本公开,在提高质量的同时,大大节省了成本。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种模型动画处理装置。
参考图11,模型动画处理装置,包括:
模型确定模块1110,被配置为确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接;
运动数据获取模块1120,被配置为接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定;
附加模型控制模块1130,被配置为根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
构建所述骨骼链对应的动力学系统;
根据所述运动数据,基于所述动力学系统进行动力学解算,在进行所述动力学解算的过程中,通过所述动力学系统控制所述骨骼链以控制所述附加模型运动,烘焙所述附加模型的运动过程,得到所述附加模型对应的模型动画。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
判断所述附加模型为第一类模型还是第二类模型;
响应于所述附加模型为所述第一类模型,构建所述骨骼链对应的第一动力学系统;
或,
响应于所述附加模型为所述第二类模型,构建所述骨骼链对应的第二动力学系统。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
构建所述骨骼链对应的曲线;
将所述曲线转化为所述动力学曲线。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
基于所述骨骼链上的所述若干骨骼,得到所述曲线上的节点,以构建所述曲线。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
构建所述曲线对应的第一毛囊系统;
将所述曲线上的节点的位置与所述第一毛囊系统中的毛囊的位置相对应,得到所述动力学曲线。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
根据所述运动数据,对所述第一毛囊系统进行所述动力学解算,得到所述第一毛囊系统中的毛囊的位置信息;
根据所述动力学毛囊曲线中的毛囊的位置信息,控制所述动力学曲线运动;
根据所述动力学曲线的运动,控制所述骨骼链中的骨骼运动,以控制所述附加模型运动。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
构建所述骨骼链对应的nCloth对象;
构建所述nCloth对象对应的第二毛囊系统;
将所述nCloth对象中的位置与所述第二毛囊系统中的毛囊的位置相对应。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
在所述nCloth对象上生成开始位置输出网格;
基于所述开始位置输出网格,将所述第二毛囊系统附加到所述nCloth对象上。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
根据所述运动数据,对所述第二毛囊系统进行动力学解算,得到所述第二毛囊系统中的毛囊的位置信息;
通过所述第二毛囊系统中的毛囊的位置信息,控制所述nCloth对象运动;
根据所述nCloth对象的运动,控制所述骨骼链中的骨骼运动,以控制所述附加模型运动。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
将所述附加模型的运动过程中的第一关键帧烘焙到反向运动控制器;
通过所述反向运动控制器约束正向运动控制器,将所述约束过程中的第二关键帧烘焙到所述正向运动控制器,得到所述附加模型对应的模型动画。
在一些示例性实施例中,附加模型控制模块1130,被配置为:
确定所述附加模型的长宽比,判断所述长宽比是否大于或等于长宽比阈值;
响应于所述长宽比大于或等于长宽比阈值,确定所述附加模型为第一类模型;
或,
响应于所述长宽比小于长宽比阈值,确定所述附加模型为第二类模型。
在一些示例性实施例中,所述第一类模型包括:头发类模型或飘带类模型;
所述第二类模型包括:布料类模型。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的模型动画处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的模型动画处理方法。
图12示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1210、存储器1220、输入/输出接口1230、通信接口1240和总线1250。其中处理器1210、存储器1220、输入/输出接口1230和通信接口1240通过总线1250实现彼此之间在设备内部的通信连接。
处理器1210可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1220可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1220可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1220中,并由处理器1210来调用执行。
输入/输出接口1230用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1240用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1250包括一通路,在设备的各个组件(例如处理器1210、存储器1220、输入/输出接口1230和通信接口1240)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1210、存储器1220、输入/输出接口1230、通信接口1240以及总线1250,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的模型动画处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的模型动画处理方法。
上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上示例性方法部分中任一实施例所述的模型动画处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例所述的模型动画处理方法相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序指令。在一些实施例中,所述计算机程序指令可以由计算机的一个或多个处理器执行以使得所述计算机和/或所述处理器执行所述的模型动画处理方法。对应于所述的模型动画处理方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使所述计算机和/或所述处理器执行如上任一实施例所述的模型动画处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
本领域技术技术人员知道,本公开的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本公开还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (16)
1.一种模型动画处理方法,其特征在于,所述方法包括:
确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接;
接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定;
根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。
2.根据权利要求1所述的方法,其特征在于,所述根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画,包括:
构建所述骨骼链对应的动力学系统;
根据所述运动数据,基于所述动力学系统进行动力学解算,在进行所述动力学解算的过程中,通过所述动力学系统控制所述骨骼链以控制所述附加模型运动,烘焙所述附加模型的运动过程,得到所述附加模型对应的模型动画。
3.根据权利要求2所述的方法,其特征在于,所述构建所述骨骼链对应的动力学系统,包括:
判断所述附加模型为第一类模型还是第二类模型;
响应于所述附加模型为所述第一类模型,构建所述骨骼链对应的第一动力学系统;
或,
响应于所述附加模型为所述第二类模型,构建所述骨骼链对应的第二动力学系统。
4.根据权利要求3所述的方法,其特征在于,所述第一动力学系统包括动力学曲线;
所述构建所述骨骼链对应的第一动力学系统,包括:
构建所述骨骼链对应的曲线;
将所述曲线转化为所述动力学曲线。
5.根据权利要求4所述的方法,其特征在于,所述骨骼链上包括若干骨骼,
所述构建所述骨骼链对应的曲线,包括:
基于所述骨骼链上的所述若干骨骼,得到所述曲线上的节点,以构建所述曲线。
6.根据权利要求5所述的方法,其特征在于,所述将所述曲线转化为所述动力学曲线,包括:
构建所述曲线对应的第一毛囊系统;
将所述曲线上的节点的位置与所述第一毛囊系统中的毛囊的位置相对应,得到所述动力学曲线。
7.根据权利要求6所述的方法,其特征在于,所述根据所述运动数据,基于所述动力学系统进行动力学解算,在进行所述动力学解算的过程中,通过所述动力学系统控制所述骨骼链以控制所述附加模型运动,包括:
根据所述运动数据,对所述第一毛囊系统进行所述动力学解算,得到所述第一毛囊系统中的毛囊的位置信息;
根据所述动力学毛囊曲线中的毛囊的位置信息,控制所述动力学曲线运动;
根据所述动力学曲线的运动,控制所述骨骼链中的骨骼运动,以控制所述附加模型运动。
8.根据权利要求3所述的方法,其特征在于,所述第二动力学系统包括nCloth对象;
所述构建所述骨骼链对应的第二动力学系统,包括:
构建所述骨骼链对应的nCloth对象;
构建所述nCloth对象对应的第二毛囊系统;
将所述nCloth对象中的位置与所述第二毛囊系统中的毛囊的位置相对应。
9.根据权利要求8所述的方法,其特征在于,所述构建所述nCloth对象对应的第二毛囊系统,包括:
在所述nCloth对象上生成开始位置输出网格;
基于所述开始位置输出网格,将所述第二毛囊系统附加到所述nCloth对象上。
10.根据权利要求8所述的方法,其特征在于,所述根据所述运动数据,基于所述动力学系统进行动力学解算,在进行所述动力学解算的过程中,通过所述动力学系统控制所述骨骼链以控制所述附加模型运动,包括:
根据所述运动数据,对所述第二毛囊系统进行动力学解算,得到所述第二毛囊系统中的毛囊的位置信息;
通过所述第二毛囊系统中的毛囊的位置信息,控制所述nCloth对象运动;
根据所述nCloth对象的运动,控制所述骨骼链中的骨骼运动,以控制所述附加模型运动。
11.根据权利要求2所述的方法,其特征在于,所述烘焙所述附加模型的运动过程,得到所述附加模型对应的模型动画,包括:
将所述附加模型的运动过程中的第一关键帧烘焙到反向运动控制器;
通过所述反向运动控制器约束正向运动控制器,将所述约束过程中的第二关键帧烘焙到所述正向运动控制器,得到所述附加模型对应的模型动画。
12.根据权利要求3所述的方法,其特征在于,所述判断所述附加模型为第一类模型还是第二类模型,包括:
确定所述附加模型的长宽比,判断所述长宽比是否大于或等于长宽比阈值;
响应于所述长宽比大于或等于长宽比阈值,确定所述附加模型为第一类模型;
或,
响应于所述长宽比小于长宽比阈值,确定所述附加模型为第二类模型。
13.根据权利要求3所述的方法,其特征在于,所述第一类模型包括:头发类模型或飘带类模型;
所述第二类模型包括:布料类模型。
14.一种模型动画处理装置,其特征在于,包括:
模型确定模块,被配置为确定附加模型和与所述附加模型对应的基础模型,其中,所述附加模型附加于所述基础模型上,所述附加模型上包括预先配置的骨骼链,所述骨骼链与所述基础模型连接;
运动数据获取模块,被配置为接收所述基础模型对应的运动数据,其中,所述运动数据基于所述基础模型关联的运动动画确定;
附加模型控制模块,被配置为根据所述运动数据和所述骨骼链,控制所述附加模型跟随所述基础模型运动,以生成所述附加模型对应的模型动画。
15.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至13任意一项所述的方法。
16.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至13任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310929585.4A CN117058283A (zh) | 2023-07-26 | 2023-07-26 | 模型动画处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310929585.4A CN117058283A (zh) | 2023-07-26 | 2023-07-26 | 模型动画处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117058283A true CN117058283A (zh) | 2023-11-14 |
Family
ID=88659920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310929585.4A Pending CN117058283A (zh) | 2023-07-26 | 2023-07-26 | 模型动画处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117058283A (zh) |
-
2023
- 2023-07-26 CN CN202310929585.4A patent/CN117058283A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111260764B (zh) | 一种制作动画的方法、装置及存储介质 | |
Kang et al. | Instant 3D design concept generation and visualization by real-time hand gesture recognition | |
WO2021143278A1 (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN110766776A (zh) | 生成表情动画的方法及装置 | |
Lamberti et al. | Virtual character animation based on affordable motion capture and reconfigurable tangible interfaces | |
CN112330779A (zh) | 一种生成角色模型舞蹈动画的方法和系统 | |
CN102629388B (zh) | 机械装备仿真系统生成方法 | |
CN111292402B (zh) | 数据处理的方法、装置、设备及计算机可读存储介质 | |
Ho et al. | Topology aware data‐driven inverse kinematics | |
CN105427364B (zh) | 一种多点触控二维动画的制作方法 | |
Shen et al. | Data‐driven crowd motion control with multi‐touch gestures | |
Huang et al. | Multi‐variate gaussian‐based inverse kinematics | |
Tonneau et al. | Character contact re‐positioning under large environment deformation | |
CN115482557B (zh) | 人体图像生成方法、系统、设备及存储介质 | |
Tisserand et al. | Automatic 3D garment positioning based on surface metric | |
CN117058283A (zh) | 模型动画处理方法、装置、电子设备及存储介质 | |
Victor et al. | Learning‐based pose edition for efficient and interactive design | |
KR100898991B1 (ko) | 3차원 그래픽 시스템의 쉐이더 제공 및 변환 장치 | |
Tan | Animation image art design mode using 3D modeling technology | |
Song et al. | Sparse rig parameter optimization for character animation | |
CN112233208A (zh) | 机器人状态处理方法、装置、计算设备和存储介质 | |
Ismail et al. | An overview on dynamic 3d character motion techniques in virtual environments | |
Cannavò et al. | A sketch-based interface for facial animation in immersive virtual reality | |
Anagnostopoulos et al. | An industrial simulator utilizing a gaming platform | |
Chan et al. | Synthesizing Two‐character Interactions by Merging Captured Interaction Samples with their Spacetime Relationships |
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 |