Maya卡通角色4—布料绑定

2015-10-14 16:27:00来源:作者:人点击

完成了表情制作和骨骼绑定,接下来是制作布料的动力学特效。

教程思路

1.制作布料的初始形态。 2.Hair系统模拟布料。 3.nCloth系统。 4.约束的使用。 5.单位比例的设置。6.布料碰撞层的使用。 7.骨骼蒙皮(smoothBind)和布料(nCloth)的关系。 8.布料吸附(InputMeshAttract)和布料刚性(Rigidity)的区别。 9.Maya2011新增加的约束功能PointOnPoly。 10.布料问题的解决。 11.创建布料缓存。 12.绑定动力学系统到角色骨骼。

1.制作布料的初始形态

制作服装上的蝴蝶结装饰时,我使用的是布料系统解算完成。首先,赋予模型nCloth属性,通过约束动画,将布料解算到一定程度后复制当前的模型,最后再删除原模型和布料系统。

2.Hair系统模拟布料

并不是所有的布料都用到nCloth系统,因为那样解算既慢又容易出错;碰撞效果并不明显的头戴、耳边挂饰、胸前蝴蝶结、鞋子后的蝴蝶结,我采用的是Hair系统+线性IK控制骨骼的方式。操作方法可参考:头发,尾巴的动力学制作--骨骼与动力学曲线的结合技术。

3.nCloth系统

选择角色身上的其他服装模型,转为动力学布料:nMesh->Create nCloth,选择预设的silk(丝绸);选择角色身体,执行nMesh->CreatePassiveCollider。内核系统下的PassiveCollider被动碰撞体和刚体系统的被动刚体差不多,但它可以将已绑定的几何体作为被动刚体,范围相对较广。

4.约束的使用

选择裙子上部的点,执行nConstraint->Transform,创建一个变形约束,固定裙子上部。当裙子衣服的表面没有什么大的变化,使用Transform比Point toSurface执行效率高。

布料的约束是很灵活的,既可以用来固定布料,还可以用来模拟布料的碰撞和撕裂效果。裙子,袖口以及肩膀两侧的飘带,除了使用约束来固定一端,我还选择布料模型所有点以及角色身体,执行nConstraint->SlideOnSurface,通过约束来模拟碰撞。场景中,会出现布料点到被动物体之间的最近连线,表示约束的计算距离。

使用约束模拟布料碰撞,可以关闭布料节点的Collide功能,模拟速度很快;不过缺点是没有反弹,摩擦,粘性,推进力等参数可调节,适用于较为光滑的布料效果。

当完成了约束设置,为了不影响画面,我们可以去掉布料约束节点下的DisplayConnections的勾选,隐藏场景中的约束。

5.单位比例的设置

因为模型的场景比例是“模型:实物=1:10”,因此将内核系统节点的SpaceScale设置为0.1。而Substeps和MaxCollisionIterations可在稍后的模拟中适当提升数值。

6.布料碰撞层的使用

裙子上的饰物除了本身的运动,还会和裙子之间产生影响,这就为绑定增加一些难题。首先分析效果,排除一些可以忽略的因素。腰间挂带、裙子、裙子上的挂带都会受到风力的影响,彼此之间也会相互碰撞;从运动效果上,可以制作如下:腰间挂带、裙子、裙子上的挂带的碰撞层(CollisionLayer)数值为1,纽扣碰撞层为0,角色身体为0(因为角色身体直接是被动碰撞物体,因此不用刻意设置)。碰撞层的优先级从高到低的顺序,是根据碰撞层数值的从小到大排列的,如碰撞层为1会推开碰撞层为2的布料物体,而不会受到碰撞层为2的布料物体的反作用力影响;默认的nucleus内核节点下的CollisionLayerRange 设置为4,表示布料之间的碰撞层的差值小于4才可发生碰撞作用。

7.骨骼蒙皮(smoothBind)和布料(nCloth)的关系

布料系统的布料或被动碰撞物体可执行蒙皮操作,尽管它们在动画开始后将不会考虑蒙皮效果,但在第0帧的时候,可以通过蒙皮来进行布料初始形态的设置,这样就可以省下角色从绑定时的姿态运动到所需状态时的解算过程。如果先生成布料,然后对场景中的布料物体执行蒙皮,计算结果将是错误的。这是因为布料系统和柔体的Duplicate,makeCopySoft方式一样,会隐藏原始物体,将复制的物体执行动力学解算(也就是当赋予了模型布料属性,当前的模型并不是原始的模型)。我们可以选择布料物体,执行nMesh->DisplayInputMesh来查看原始物体。当最先创建布料,那么要进行蒙皮时,应该通过此方法,将原始物体和关节进行蒙皮操作。

内核节点默认是从第1帧开始解算,用户可根据需要改变,参数位于内核形节点下的TimeAttributes的StartFrame。

8.布料吸附(InputMeshAttract)和布料刚性(Rigidity)的区别

布料吸附和布料刚性看似效果一样,但布料吸附对蒙皮后的布料具有很重要的意义—保持布料和蒙皮效果的同步,而布料刚性只是保持布料在解算之前的初始形状的级别。当启用了InputMeshAttract(大于0时),不光是第0帧,执行动画时,骨骼蒙皮的效果都会直接作用于布料物体上,而吸附程度取决于InputMeshAttract的数值以及其对应的动力学属性贴图。尽管布料的InputMeshAttract可设置大于1的数值,但是取值不要大于2,因为这会导致解算异常缓慢。一旦开启了InputMeshAttract,需要配合一定的InputAttractDamp数值,因为阻尼是能量吸收的一个重要参数,要避免布料解算时产生的跳跃或穿插现象,需要一定的阻尼。

9.Maya2011新增加的约束功能PointOnPoly

使用物体上的点控制其他物体,可使用布料约束,柔体弹簧,或者一些MEL语句;不过Maya2011给我们提供了很大的便利,它增加了PointOnPoly(多边形点约束)这样一个实用的功能。因此制作衣服纽扣这样的特殊约束动画,除了使用布料约束,新约束也是个不错的方法。角色腰带的小球就是普通的几何体通过PointOnPoly被约束在布料物体上。

10.布料问题的解决

相对于头发,布料解算时出现的穿插现象是比较麻烦的,很难从根本上解决,只能根据需要适时提高解算精度或隐藏在镜头画面以外。执行解算前,模型之间的间隔一定要大于布料之间的碰撞厚度;如果出现一些模型穿透跳跃,可以启用布料节点下的TrappedCheck,检测碰撞异常并自动修复,但这会增加计算时间;使用滑动约束(slideOnSurface)模拟布料碰撞;对布料的smooth圆滑操作,应该是在布料创建了缓存后再进行;使用Maya2011新增加的碰撞强度(CollideStrength)贴图,对容易发生穿插的区域设置碰撞强度;结合布料多个属性,进行权重贴图绘制,如InputMeshAttract,Rigidity,StretchResistance等。

11.创建布料缓存

布料缓存单个文件最大不能超过2G,因此通常都会选择Onefile per frame的文件形式。

12.绑定动力学系统到角色骨骼

将所有动力学系统附加到骨骼系统中,使它们能跟随角色发生运动,操作如下: 毛发系统的毛囊节点,动力学曲线的输出曲线,柔体系统的原始几何体,布料系统的约束节点,将这些关键元素作为运动骨骼的子级即可(使用约束的方法也可以)。

【总结】

进行布料模拟,可以使用动力学曲线,柔体,nCloth来完成。 nCloth系统与模型的单位比例有很大的关系,因此在布料绑定前,一定要将模型缩放至合适的比例大小再进行。 nCloth系统的约束是布料效果的一个重要功能,它的作用往往要高于布料属性设置,所以要善于利用。

下一篇将介绍【Maya】原创卡通角色制作流程5—场景渲染合成篇,敬请期待……

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台