一种骨骼动画的制作方法、设备及存储介质与流程

文档序号:29444165发布日期:2022-03-30 10:42阅读:145来源:国知局
一种骨骼动画的制作方法、设备及存储介质与流程

1.本技术涉及游戏开发技术领域,尤其涉及一种骨骼动画的制作方法、设备及存储介质。


背景技术:

2.骨骼动画是模型动画中的一种。在骨骼动画中,模型具有互相连接的骨骼组成的骨骼结构,通过改变骨骼的朝向和位置可为模型生成动画。
3.在mmorpg(multiplayer online role-playing game,一般指大型多人在线角色扮演游戏)中,对骨骼动画中角色所穿戴的衣物的模拟效果提出了更高的要求。目前通常可采用spromg-max骨骼链解算插件、ezcloth等基于骨骼的布料解算插件来对模拟碰撞效果,但是这些方式的模拟效果并不理想,经常出现布料失真的问题。


技术实现要素:

4.本技术的多个方面提供一种骨骼动画的制作方法、设备及存储介质,用以提高骨骼动画中动力学模拟的真实性。
5.本技术实施例提供一种骨骼动画的制作方法,包括:
6.在目标模型中创建骨骼并进行蒙皮;
7.基于所述目标模型包含的每个骨骼上的代表点,组建网格模型;
8.将所述目标模型包含的每个骨骼分别附着在所述网格模型中与其最近的面片上;
9.对所述目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型;
10.基于所述待解算模型进行动力学模拟解算,以获得解算后模型;
11.利用所述解算后模型驱动所述网格模型,以将动力学模拟效果经所述解算后模型和所述网格模型传递至所述目标模型中的骨骼并通过所述骨骼驱动所述目标模型;
12.对被驱动的所述目标模型进行烘焙,以生成所述目标模型对应的骨骼动画。
13.本技术实施例还提供一种计算设备,包括存储器和处理器;
14.所述存储器用于存储一条或多条计算机指令;
15.所述处理器与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于:
16.在目标模型中创建骨骼并进行蒙皮;
17.基于所述目标模型包含的每个骨骼上的代表点,组建网格模型;
18.将所述目标模型包含的每个骨骼分别附着在所述网格模型中与其最近的面片上;
19.对所述目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型;
20.基于所述待解算模型进行动力学模拟解算,以获得解算后模型;
21.利用所述解算后模型驱动所述网格模型,以将动力学模拟效果经所述解算后模型和所述网格模型传递至所述目标模型中的骨骼并通过所述骨骼驱动所述目标模型;
22.对被驱动的所述目标模型进行烘焙,以生成所述目标模型对应的骨骼动画。
23.本技术实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的骨骼动画的制作方法。
24.在本技术实施例中,可基于目标模型包含的每个骨骼上的代表点,组建网格模型,并将目标模型包含的每个骨骼分别附着在网格模型中与其最近的面片上;对目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型;在此基础上,可基于待解算模型进行动力学模拟解算,以获得解算后模型,并利用解算后模型驱动网格模型。这样,可构建起解算后模型-网格模型(面片)-骨骼-目标模型之间的联动关系,从而只需对待解算模型进行动力学模拟解算,即可通过网格模型中的面片控制骨骼模拟真实动力学,并以骨骼驱动目标模型。这可有效提高骨骼动画中动力学模拟的真实性,在游戏中将真实布料模拟效果在角色布料上体现出来。
附图说明
25.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
26.图1为本技术一示例性实施例提供的一种骨骼动画的制作方法的流程示意图;
27.图2为本技术一示例性实施例中为目标模型所组建的网格模型的示意图;
28.图3为本技术一示例性实施例提供的一种对网络模型进行优化的效果示意图;
29.图4本技术一示例性实施例提供的一种附着点模型的示意图;
30.图5为本技术一示例性实施例提供的一种平滑处理效果示意图;
31.图6为本技术又一示例性实施例提供的一种计算设备的结构示意图。
具体实施方式
32.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
33.目前,骨骼动画中对布料的模拟效果不够理想,经常出现布料失真的问题。为此,本技术的一些实施例中:可基于目标模型包含的每个骨骼上的代表点,组建网格模型,并将目标模型包含的每个骨骼分别附着在网格模型中与其最近的面片上;对目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型;在此基础上,可基于待解算模型进行动力学模拟解算,以获得解算后模型,并利用解算后模型驱动网格模型。这样,可构建起解算后模型-网格模型(面片)-骨骼-目标模型之间的联动关系,从而只需对待解算模型进行动力学模拟解算,即可通过网格模型中的面片控制骨骼模拟真实动力学,并以骨骼驱动目标模型。这可有效提高骨骼动画中动力学模拟的真实性,在游戏中将真实布料模拟效果在角色布料上体现出来。
34.以下结合附图,详细说明本技术各实施例提供的技术方案。
35.图1为本技术一示例性实施例提供的一种骨骼动画的制作方法的流程示意图,该
方法可由数据处理装置执行,该数据处理装置可实现为软件和/或硬件的结合,该数据处理装置可集成在计算设备中。参考图1,该方法可包括:
36.步骤100、在目标模型中创建骨骼并进行蒙皮;
37.步骤101、基于目标模型包含的每个骨骼上的代表点,组建网格模型;
38.步骤102、将目标模型包含的每个骨骼分别附着在网格模型中与其最近的面片上;
39.步骤103、对目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型;
40.步骤104、基于待解算模型进行动力学模拟解算,以获得解算后模型;
41.步骤105、利用解算后模型驱动网格模型,以将动力学模拟效果经解算后模型和网格模型传递至目标模型中的骨骼并通过骨骼驱动目标模型;
42.步骤106、对被驱动的目标模型进行烘焙,以生成目标模型对应的骨骼动画。
43.本实施例提供的骨骼动画制作方案可应用于各种存在动力学模拟需求的游戏开发场景张,例如,mmorpg(multiplayer online role-playing game,一般指大型多人在线角色扮演游戏)开发场景等,本实施例对应用场景不做限定。
44.参考图1,在步骤100中,可在目标模型中创建骨骼并进行蒙皮。这里,可将具有动力学模拟需求的模型定义为目标模型,例如,目标模型可以是游戏中的人物、npc等,本实施例对目标模型的类型、属性等均不做限定。本实施例中,可根据目标模型所需的动力学模拟精度和/或布线密度等来确定其所需的骨骼数量,例如,目标模型对动力学模拟精度要求较高,我们可以为其创建更多的骨骼;目标模型对布线密度要求较高,我们可以为其创建更多的骨骼。通过创建骨骼,目标模型中将包含多条骨骼链,每条骨骼链可对应一个根骨骼,这些均是骨骼动画中的基本概念,在此不做详述。在创建出骨骼的基础上,还可对骨骼进行蒙皮,针对不同的应用场景,蒙皮中可包含服装、配饰等可能与碰撞体发生动力学碰撞而产生形变的内容。本实施例提供的骨骼动画制作方案可真实地模拟蒙皮中的动力学形变。
45.图2为本技术一示例性实施例中为目标模型所组建的网格模型的示意图,参考图2,其中白色正方体即表征一条骨骼链,一条骨骼链中包含的骨骼之间存在父子关系。在此基础上,步骤101中,可基于目标模型包含的每个骨骼上的代表点,组建网格模型。这样,网格模型可用于承载骨骼之间的位置关系。参考图2,其中黑色多边形组建起的即为目标模型对应的网格模型。在一种可选的实现方案中,可以目标模型包含的每个骨骼的轴心作为多边形顶点,以顶点之间连线作为多边形的边,以组建网格模型。在该实现方式中,将骨骼的轴心作为代表点,将轴心之间的联系作为多边形的边,从而组建起网格模型。其中,可参考图2中所示,将相邻的轴心进行连线,以产生多边形的边。当然,还可采用其它实现方式来组件网格模型,例如,可采用骨骼的几何中心作为代表点等,本实施例并不限于此。这样,在步骤101中,可产生一个有目标模型中骨骼的坐标定义的网格模型。
46.参考图1,在步骤102中,可将目标模型包含的每个骨骼分别附着在网格模型中与其最近的面片上。网格模型中包含若干面片,本实施例中,可将目标模型中的骨骼附着在网格模型中对应的面片上,以建立网格模型和目标模型中的骨骼之间的联动关系。
47.参考图1,在步骤103中,可对目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型。在步骤103中,可复制一份目标模板,这里可描述为目标模板的副本;若目标模板的副本中存在不需要进行动力学解算的部分,则可将不需要进行动力学解
算的部分删除,并对需要进行动力学解算的部分进行重新拓扑,以产生待结算模型。其中,不需要进行动力学解算的部分可理解为蒙皮不会受到动力学影响的部分,例如,贴身的部分
‑‑‑‑
上衣的上背部等。不需要进行动力学解算的部分的骨骼动画可跟随身体来烘焙即可,而不需要通过动力学解算的形式,以节省处理资源。这里的重新拓扑操作,可根据目标模板的动力学精度需求,将经过上述删除处理后的目标模型拓扑为与目标模型的材质相适配的拓扑结构,以产生待解算模型。举例来说,可将目标模板的副本中褶皱轻盈部分的面片的密度加大,还可将需要保持刚性部分(例如质量偏大需要保持结构的部分)的面片的密度减少。通过重新拓扑可将高分辨率的目标模型转换成可以用于动画的较小模型,也即是,本实施例中的待解算模型是可以用于动画的模型。
48.在此基础上,步骤104中,可基于待解算模型进行动力学模拟解算,以获得解算后模型。可选地,可将拓扑好的待解算模型以obj格式导出到任意digital content creating数据内容创作软件或者专业动力学模拟软件(比如marvelous designer)中使用任意动力学模拟系统进行解算即可,也可在当前联动制作的3dsmax软件中使用当前软件的动力学模拟系统与布料模拟解算插件(dynamo、cloth堆栈器)直接进行解算制作,从而产生解算后模型。解算后模型中携带有动力学模拟效果。另外,在此步骤中,可对解算后模型进行可视化展示,并加入人工审核逻辑,在人工审核通过的情况下,输出解算后模型。
49.之后,在步骤105中,可利用解算后模型驱动网格模型,以将动力学模拟效果经解算后模型和网格模型传递至目标模型中的骨骼并通过骨骼驱动目标模型。这里,可建立起解算后模型-网络模型-骨骼-目标模型的联动关系,从而可按联动链路将解算后模型中携带的动力学模拟效果传递至目标模型。本实施例中,可将网格模型添加蒙皮包裹修改器,拾取解算后模型作为包裹目标,这样,通过包裹命令可实现解算后模型驱动网格模型。
50.值得说明的是,本实施例中,最终构建出的是解算后模型-网络模型-骨骼-目标模型的联动关系,但是在此联动关系中还可加入更多的中间环节以更加精准地传递动力学模拟效果,这部分内容将在后文中进行详述。另外,本实施例中,可在步骤104之前,即建立起待结算模型-网格模型-骨骼-目标模型之间的联动关系,在此联动关系的基础上,可执行步骤104,并使用步骤104中产生的解算后模型替换联动关系中的待结算模型即可。当然,也可在执行完步骤104之后,再构建联动关系,最终都可达到解算后模型驱动网格模型并联动至目标模型的目标,本实施例对此不做限定。
51.参考图1,在步骤106中,可对被驱动的目标模型进行烘焙,以生成目标模型对应的骨骼动画。也即是,将动力学解算效果在目标模型上烘焙为骨骼动画。其中,烘焙操作可以是:将被驱动的目标模型蒙皮骨骼其动画塌缩到目标模型蒙皮骨骼本身。这个步骤中,可对骨骼动画进行可视化,并可加入人工修正逻辑,在人工修正完成后,再输出骨骼动画。
52.据此,本实施例中,可基于目标模型包含的每个骨骼上的代表点,组建网格模型,并将目标模型包含的每个骨骼分别附着在网格模型中与其最近的面片上;对目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型;在此基础上,可基于待解算模型进行动力学模拟解算,以获得解算后模型,并利用解算后模型驱动网格模型。这样,可构建起解算后模型-网格模型(面片)-骨骼-目标模型之间的联动关系,从而只需对待解算模型进行动力学模拟解算,即可通过网格模型中的面片控制骨骼模拟真实动力学,并以骨骼驱动目标模型。这可有效提高骨骼动画中动力学模拟的真实性,在游戏中将真实布料模拟
效果在角色布料上体现出来。
53.在上述或下述实施例中,在构建前述联动关系的过程中,可加入更多的中间环节以更加精准地传递动力学模拟效果。本实施例中,将对联动关系构建过程进行示例性详述。
54.在一种优化方面,本实施例中,可在确定目标模型的款式为闭合款式还是非闭合款式,其中,非闭合款式可以是指目标模型的蒙皮中存在可展开的部分,非闭合款式可包括但不限于开襟上衣、风衣等。闭合款式可以是指目标模型的蒙皮中不存在可展开的部分,闭合款式可包括但不限于裙子、蓬松且未开襟的上衣等。当然,这些仅是示例性的,本实施例并不限于此。
55.若确定目标模型的款式为闭合款式,则将网格模型中存在的相邻边进行缝合,以始网格模型的侧面为全封闭多边形;若确定目标模型的款式为非闭合款式,则不需要进行缝合。在此基础上,可对网格模型(或缝合后的网络模型)中的外边沿法线方向向外执行挤出操作,以使网格模型中的外边转换为内边。图3为本技术一示例性实施例提供的一种对网络模型进行优化的效果示意图。参考图3,其中的深色部分即为对网格模型的外边进行挤出后产生的挤出部分。经过基础操作,可将网格模型中的外边转换为内边,以更加便于目标模型中的骨骼进行附着,例如,在后续其它优化方面中,便于为网格模型的外边挤出用于承载附着点的面片。
56.在另一种优化方面,本实施例中,可对联动关系中的网格模型进行优化:分别对网格模型中的各条内边执行挤出操作,以将网格模型中的各个顶点转化为面片并将经过内边挤出后的网格模型定义为附着点模型。承接上一种优化方面,经过对网格模型的外边执行挤出操作后,在当前优化方面下,网格模型的外边将作为内边也被执行挤出操作而正常获得面片,以支持相关骨骼的附着匹配。其中,挤出方向可以是内边的法线方向,挤出的幅度可以是当前内边边长的10%等,当然,这仅是示例性的本实施例并不限于此。这里对内边执行挤出操作的目标的是将网络模型中的各个顶点转化为面片,从而是的目标模型中的骨骼可附着在网格模型中更精准的位置上。这样,可将网格模型优化为附着点模型,应当理解的是,这里优化后的附着点模型可直接替换上述或下述实施例中的网格模型,以优化本案中的联动关系,替换后的方案不再详述。
57.在此基础上,在对目标模型中的骨骼执行附着处理的过程中:可在附着点模型中与目标模型中的各个骨骼最近的面片上分别创建并关联附着点;将目标模型中的各个骨骼分别约束在与其最近的附着点上。这样,可保证目标模型中的每个骨骼都附着到附着点模型中的一个面片上,而不会附着到某个顶点上,从而避免因附着到顶点上而导致骨骼只能依附其中一个面运动,而另一个面并不会对其产生影响,避免附着点的旋转只能受其中一个面所影响,从而更好的匹配附着。
58.图4本技术一示例性实施例提供的一种附着点模型的示意图,其中,图4中左边的图示意了原本的网格模型,右边的图则示出了对网格模型中的内边进行挤出后而获得的附着点模型,可清楚的看到,原本的网格模型中的顶点被转换为面片。
59.其中,在将目标模型中的各个骨骼分别约束在其最近的附着点上的过程中,可包括但不限于将骨骼的位移、旋转等约束到最近的附着点上,这样,通过约束操作,可使骨骼的位移、旋转受到附着点所在面片的驱动。
60.在又一种优化方面,本实施例中,还可在联动关系中的解算后模型与网格模型(也
可以是上一优化方面中产生的附着点模型)之间增加细分模型:对网格模型的副本执行细分操作,以将网格模型中的布线密度调整至与目标模型中的布线密度相适配;将经过细分操作后的网格模型的副本,输出为细分模型;利用解算后模型包裹细分模型;利用细分模型包裹附着点模型,以使解算后模型驱动网格模型。
61.在该优化方面,可对网格模型的副本执行多次细分,直至网格模型中的布线密度与目标模型中的布线密度相似,其中,细分越高,细分模型表面越光滑。这里,在在联动关系中的解算后模型与网格模型之间增加细分模型,可实现支持在联动关系的基础上对目标模型的骨骼动画进行圆滑、修复布料曲线、将解算部分与未解算部分的衔接处渐变过渡等修复处理,使得骨骼动画更加真实。
62.在此基础上,本实施例中,可对细分模型添加蒙皮包括修改器,拾取解算后模型作为包裹目标;对网格模型(也可以是上一优化方面中产生的附着点模型)添加蒙皮包裹修改器,拾取细分模型作为包裹目标。从而可建立起解算后模型-细分模型-网格模型-骨骼-目标模型的联动关系。
63.据此,本实施例中,至少可从以上几个优化方面,对联动关系进行优化,从而可更好地支持骨骼附着、便于骨骼动画修复等,进而提高骨骼动画中动力学模拟的真实性。
64.在上述或下述实施例中,还可在动力学模拟效果的传递过程中,对部分传递环节进行优化。
65.在一种优化方面,本实施例中,可基于前述实施例中提及的细分模型,对目标模型中的解算部分和非解算部分的衔接区域进行平滑处理。在该优化方面下:可在目标模型中存在不需要进行动力学解算的部分时,则创建目标模型的副本;将目标模型的副本中需要参与动力学解算的解算骨骼删除,以产生修复模型;在细分模型中选择已解算部分和未解算部分的衔接区域,衔接区域包括细分模型中根骨骼附近的面片和不需要进行动力学解算的面片附近的点;采用面包裹的方式,利用修复模型包裹细分模型,以在细分模型中对衔接区域进行平滑处理。
66.在该优化方面下,可设置细分模型的蒙皮包裹修改器,将其与解算后模型之间的包裹模式设置为顶点对应目标顶点的包裹模式,适当增加点影响数量与包裹球半径来使包裹后的效果更圆滑些。在构建修复模型的过程中,可将目标模型副本的蒙皮列表中参与动力学解算的解算骨骼全部删除,权重给予给解算根骨骼的父级骨骼,例如,裙子的解算根骨骼的父级骨骼一般是腰部骨骼,风衣则是胸部骨骼;删除目标模型副本中的手臂等多余部分,从而产生修复模型。还可在细分模型上创建一个编辑点控制器,开启软选,选中根骨骼附近的面片与未参与解算面片附近的点,再创建一个蒙皮包裹,包裹模式为面包裹,拾取修复模型为包裹目标。在此基础上,修复模型可在软选范围中进行渐变遮罩处理(例如,修复模型可使用遮罩遮住衔接区域并减少边缘所选的权重比使其边缘羽化),从而将细分模型中对应于目标模型的解算部分和未解算部分的衔接区域平滑过渡。另外,在该环节中,可将细分模型进行可视化展示,可人工检查解算部分和未解算部分的衔接区域当前是否平滑,并可以继续调整软选范围使其过度自然。
67.图5为本技术一示例性实施例提供的一种平滑处理效果示意图。参考图5,左边的图中示出了解算部分和未解算部分的衔接区域分界明显,右边的图中则示出了经过当前优化方面的优化处理后细分模型中对应于目标模型的解算部分和未解算部分的衔接区域已
经平滑过渡,衔接不突兀。
68.值得说明的是,该优化方面下可仅需在目标模型中包含不需要进行动力学解算的部分的情况下,才执行上述的平滑处理方案;而在目标模型的款式为裙子、马褂等整体都需要动力学解算处理的情况下则无需此优化环节。
69.在另一个优化方面,本实施例中,可在解算后模型传递的动力学模拟效果中存在穿插卡帧问题的情况下,调整网格模型中面片的动画,以修复穿插跳帧问题。实际应用中,可在网格模型(也可以是前文提及的附着点模型)上创建编辑多边形修改器,利用编辑多边形修改器去调整面片的动画,以避免骨骼动画中出现穿插跳帧等问题。
70.在又一个优化方面,本实施例中,还可在解算后模型传递的动力学效果中存在生硬问题的情况下,在网格模型中调整相关部分的网格密度,以修复生硬问题。实际应用中,可在网格模型(也可以是前文中提及的附着点模型)上创建松弛修改器,利用松弛修改器修复面片网格密度不均匀导致的过度生硬问题,以避免骨骼动画中出现生硬问题。
71.在又一个优化方面,本实施例中,还可在对被驱动的目标模型进行烘焙的过程中:获取解算后目标模型的骨骼之间因距离变动产生的缩放系数;打断目标模型中包含的骨骼之间的父子关系;在目标模型中包含的根骨骼位置创建新骨骼;将新骨骼对应的骨骼链下的骨骼作为新骨骼的子级骨骼;将缩放系数烘焙回目标模型中相应的子级骨骼上。
72.在该优化方面下,因在3dsmax等数据内容制作软件中骨骼链的骨骼之间产生的距离偏移会以骨骼x轴向缩放的形式计算(布料在动力学解算过程中因褶皱或者挤压产生的堆叠会映射到骨骼之间的偏移上,会被3dsmax等数据内容制作软件以缩放的形式计算),但解算后模型所输出的fbx格式文件中则会将这部分x轴向的骨骼缩放转换成x轴向的位移,缩放本身会丢失,故当缩放系数过大时烘焙到目标模型后后会发生穿帮扭曲问题。为此,本实施例中,可在当前优化方面下,将x轴向缩放系数保存下来,在目标模型包含的每条骨骼链中的根骨骼位置创建一个新的bone骨骼,并打断每根骨骼之间的父子关系,将整条骨骼链中所有骨骼作为新创建bone骨骼的子级,再将之前x轴向的缩放系数烘焙回每根骨骼。这里通过将每根骨骼之间的父子关系打断,可避免因fbx中父级缩放会影响所有子级,而导致缩放系数烘焙错误,从而可实现重新获得在3dsmax等数据内容制作软件内预览时的效果,不再会发生穿帮扭曲。
73.据此,本实施例中,可在动力学模拟效果的传递过程中,对以上几个传递环节进行优化,以提高骨骼动画中动力学模拟的真实性。
74.在上述或下述实施例中,可将前述的联动关系构建方案进行插件化,也即是,将前述构建联动关系的各个步骤集成在插件中,并通过插件对外提供联动关系构建服务,这可使联动关系的构建过程流程化,自动化。
75.在此基础上,本实施例中,可接收针对目标模型的骨骼动画制作请求,骨骼动画制作请求中指定有目标模型中的骨骼;调用联动插件,利用联动插件自动执行以下操作:基于目标模型包含的每个骨骼上的代表点,组建网格模型;将目标模型包含的每个骨骼分别附着在网格模型中与其最近的面片上;对目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型;利用待解算模型驱动网格模型,以使待解算模型、网格模型、目标模型中的骨骼和目标模型联动。也即是,利用联动插件自动构建出待解算模型、网格模型、目标模型中的骨骼和目标模型之间的联动关系。
76.在此基础上,可执行后续处理步骤:对待解算模型进行动力学模型解算,以获得解算后模型;使用解算后模型替换联动关系中的待解算模型;通过对被驱动的目标模型进行烘焙的操作,生成目标模型对应的骨骼动画,以响应骨骼动画制作请求。
77.据此,本实施例中,可将联动关系的构建过程插件化,在此基础上,只需预先为目标模型创建骨骼并进行蒙皮,指定需要进行动力学解算的骨骼链中的根骨骼,再通过点击“执行按钮”等方式运行联动插件,联动插件可自动构建出前述的联动关系,方便快捷。
78.需要说明的是,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
79.图6为本技术又一示例性实施例提供的一种计算设备的结构示意图。如图6所示,该计算设备包括:存储器60、处理器61以及通信组件62。
80.处理器61,与存储器60耦合,用于执行存储器60中的计算机程序,以用于:
81.在目标模型中创建骨骼并进行蒙皮;
82.基于目标模型包含的每个骨骼上的代表点,组建网格模型;
83.将目标模型包含的每个骨骼分别附着在网格模型中与其最近的面片上;
84.对目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型;
85.基于待解算模型进行动力学模拟解算,以获得解算后模型;
86.利用解算后模型驱动网格模型,以将动力学模拟效果经解算后模型和网格模型传递至目标模型中的骨骼并通过骨骼驱动目标模型;
87.对被驱动的目标模型进行烘焙,以生成目标模型对应的骨骼动画。
88.在一可选实施例中,处理器61在基于目标模型包含的每个骨骼上的代表点,组建网格模型时,用于:
89.以目标模型包含的每个骨骼的轴心作为多边形顶点,以顶点之间连线作为多边形的边,以组建网格模型。
90.在一可选实施例中,处理器61在将目标模型包含的每个骨骼分别附着在网格模型中与其最近的面片上时,用于:
91.分别对网格模型中的各条内边执行挤出操作,以将网格模型中的各个顶点转化为面片并将经过内边挤出后的网格模型定义为附着点模型;
92.在附着点模型中与目标模型中的各个骨骼最近的面片上分别创建并关联附着点;
93.将目标模型中的各个骨骼分别约束在与其最近的附着点上。
94.在一可选实施例中,处理器61在利用解算后模型驱动网格模型时,用于:
95.对网格模型的副本执行细分操作,以将网格模型中的布线密度调整至与目标模型中的布线密度相适配;
96.将经过细分操作后的网格模型的副本,输出为细分模型;
97.利用解算后模型包裹细分模型;
98.利用细分模型包裹附着点模型,以使解算后模型驱动网格模型。
99.在一可选实施例中,处理器61在利用解算后模型包裹细分模型之后,还用于:
100.若目标模型中存在不需要进行动力学解算的部分,则创建目标模型的副本;
101.将目标模型的副本中需要参与动力学解算的解算骨骼删除,以产生修复模型;
102.在细分模型中选择已解算部分和未解算部分的衔接区域,衔接区域包括细分模型中根骨骼附近的面片和不需要进行动力学解算的面片附近的点;
103.采用面包裹的方式,利用修复模型包裹细分模型,以在细分模型中对衔接区域进行平滑处理。
104.在一可选实施例中,处理器61还用于:
105.若确定目标模型的款式为非闭合款式,则对网格模型中的外边沿法线方向向外执行挤出操作,以使网格模型中的外边转换为内边;
106.若确定目标模型的款式为闭合款式,则将网格模型中存在的相邻边进行缝合,以始网格模型的侧面为全封闭多边形;对缝合后的网格模型中的外边沿法线方向向外执行挤出操作,以使缝合后的网格模型中的外边转换为内边。
107.在一可选实施例中,处理器61在对目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型时,用于:
108.若目标模型中存在不需要进行动力学解算的部分,则在将目标模型中不需要进行动力学解算的部分删除后,根据动力学精度需求,将经过删除处理后的目标模型拓扑为与目标模型的材质相适配的拓扑结构,以产生待解算模型。
109.在一可选实施例中,处理器61在经过删除处理后的目标模型拓扑为与目标模型的材质相适配的拓扑结构时,用于:
110.将褶皱轻盈部分的面片的密度加大;和/或
111.将需要保持刚性部分的面片的密度减少。
112.在一可选实施例中,处理器61还用于:
113.接收针对目标模型的骨骼动画制作请求,骨骼动画制作请求中指定有目标模型中的骨骼;
114.调用联动插件,利用联动插件自动执行以下操作:基于目标模型包含的每个骨骼上的代表点,组建网格模型;将目标模型包含的每个骨骼分别附着在网格模型中与其最近的面片上;对目标模型中需要进行动力学解算的部分进行重新拓扑,以获得待解算模型;利用待解算模型驱动网格模型,以使待解算模型网格模型目标模型中的骨骼和目标模型联动。
115.在一可选实施例中,处理器61还用于:
116.若解算后模型传递的动力学模拟效果中存在穿插卡帧问题,则调整网格模型中面片的动画,以修复穿插跳帧问题。
117.在一可选实施例中,处理器61还用于:
118.若解算后模型传递的动力学效果中存在生硬问题,在网格模型中调整相关部分的网格密度,以修复生硬问题。
119.在一可选实施例中,处理器61在对被驱动的目标模型进行烘焙时,用于:
120.获取解算后目标模型的骨骼之间因距离变动产生的缩放系数;
121.打断目标模型中包含的骨骼之间的父子关系;
122.在目标模型中包含的根骨骼位置创建新骨骼;
123.将新骨骼对应的骨骼链下的骨骼作为新骨骼的子级骨骼;
124.将缩放系数烘焙回目标模型中相应的子级骨骼上。
125.进一步,如图6所示,该计算设备还包括:通信组件62、电源组件63等其它组件。图6中仅示意性给出部分组件,并不意味着计算设备只包括图6所示组件。
126.值得说明的是,上述关于计算设备各实施例中的技术细节,可参考前述的方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
127.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。
128.上述图6中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
129.上述图6中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
130.上述图6中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
131.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
132.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
133.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
134.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
135.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
136.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
137.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
138.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
139.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1