完成了表情制作和骨骼绑定,接下来是制作布料的动力学特效。
教程思路
1.制作布料的初始形态。
2.Hair系统模拟布料。
3.nCloth系统。
4.约束的使用。
5.单位比例的设置。
6.布料碰撞层的使用。
7.骨骼蒙皮(smoothBind)和布料(nCloth)的关系。
8.布料吸附(InputMeshAttract)和布料刚性(Rigidity)的区别。
9.Maya2011新增加的约束功能PointOnPoly。
10.布料问题的解决。
11.创建布料缓存。
12.绑定动力学系统到角色骨骼。
1.制作布料的初始形态
制作服装上的蝴蝶结装饰时,我使用的是布料系统解算完成。首先,赋予模型nCloth属性,通过约束动画,将布料解算到一定程度后复制当前的模型,最后再删除原模型和布料系统。
#p#e#
2.Hair系统模拟布料
并不是所有的布料都用到nCloth系统,因为那样解算既慢又容易出错;碰撞效果并不明显的头戴、耳边挂饰、胸前蝴蝶结、鞋子后的蝴蝶结,我采用的是Hair系统+线性IK控制骨骼的方式。操作方法可参考:头发,尾巴的动力学制作--骨骼与动力学曲线的结合技术。
3.nCloth系统
选择角色身上的其他服装模型,转为动力学布料:nMesh->Create nCloth,选择预设的silk(丝绸);选择角色身体,执行nMesh->CreatePassiveCollider。
内核系统下的PassiveCollider被动碰撞体和刚体系统的被动刚体差不多,但它可以将已绑定的几何体作为被动刚体,范围相对较广。
4.约束的使用
选择裙子上部的点,执行nConstraint->Transform,创建一个变形约束,固定裙子上部。当裙子衣服的表面没有什么大的变化,使用Transform比Point toSurface执行效率高。
布料的约束是很灵活的,既可以用来固定布料,还可以用来模拟布料的碰撞和撕裂效果。裙子,袖口以及肩膀两侧的飘带,除了使用约束来固定一端,我还选择布料模型所有点以及角色身体,执行nConstraint->SlideOnSurface,通过约束来模拟碰撞。场景中,会出现布料点到被动物体之间的最近连线,表示约束的计算距离。
#p#e#
使用约束模拟布料碰撞,可以关闭布料节点的Collide功能,模拟速度很快;不过缺点是没有反弹,摩擦,粘性,推进力等参数可调节,适用于较为光滑的布料效果。
当完成了约束设置,为了不影响画面,我们可以去掉布料约束节点下的DisplayConnections的勾选,隐藏场景中的约束。
5.单位比例的设置
因为模型的场景比例是“模型:实物=1:10”,因此将内核系统节点的SpaceScale设置为0.1。而Substeps和MaxCollisionIterations可在稍后的模拟中适当提升数值。
6.布料碰撞层的使用
裙子上的饰物除了本身的运动,还会和裙子之间产生影响,这就为绑定增加一些难题。首先分析效果,排除一些可以忽略的因素。腰间挂带、裙子、裙子上的挂带都会受到风力的影响,彼此之间也会相互碰撞;从运动效果上,可以制作如下:腰间挂带、裙子、裙子上的挂带的碰撞层(CollisionLayer)数值为1,纽扣碰撞层为0,角色身体为0(因为角色身体直接是被动碰撞物体,因此不用刻意设置)。碰撞层的优先级从高到低的顺序,是根据碰撞层数值的从小到大排列的,如碰撞层为1会推开碰撞层为2的布料物体,而不会受到碰撞层为2的布料物体的反作用力影响;默认的nucleus内核节点下的CollisionLayerRange 设置为4,表示布料之间的碰撞层的差值小于4才可发生碰撞作用。
#p#e#
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被约束在布料物体上。
#p#e#
10.布料问题的解决
相对于头发,布料解算时出现的穿插现象是比较麻烦的,很难从根本上解决,只能根据需要适时提高解算精度或隐藏在镜头画面以外。执行解算前,模型之间的间隔一定要大于布料之间的碰撞厚度;如果出现一些模型穿透跳跃,可以启用布料节点下的TrappedCheck,检测碰撞异常并自动修复,但这会增加计算时间;使用滑动约束(slideOnSurface)模拟布料碰撞;对布料的smooth圆滑操作,应该是在布料创建了缓存后再进行;使用Maya2011新增加的碰撞强度(CollideStrength)贴图,对容易发生穿插的区域设置碰撞强度;结合布料多个属性,进行权重贴图绘制,如InputMeshAttract,Rigidity,StretchResistance等。
11.创建布料缓存
布料缓存单个文件最大不能超过2G,因此通常都会选择Onefile per frame的文件形式。
12.绑定动力学系统到角色骨骼
将所有动力学系统附加到骨骼系统中,使它们能跟随角色发生运动,操作如下:
毛发系统的毛囊节点,动力学曲线的输出曲线,柔体系统的原始几何体,布料系统的约束节点,将这些关键元素作为运动骨骼的子级即可(使用约束的方法也可以)。
【总结】
进行布料模拟,可以使用动力学曲线,柔体,nCloth来完成。
nCloth系统与模型的单位比例有很大的关系,因此在布料绑定前,一定要将模型缩放至合适的比例大小再进行。
nCloth系统的约束是布料效果的一个重要功能,它的作用往往要高于布料属性设置,所以要善于利用。
下一篇将介绍【Maya】原创卡通角色制作流程5—场景渲染合成篇 ,敬请期待……
上一篇 Maya教程:制作玻璃材质
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答今天,我来和大家聊聊,迪士尼动画《海洋奇缘》系列是怎么用Maya软件为他们最新的续集打造获奖动画的。
有哪些听起来高大上、实际上转行同学也能胜任的岗位?试试虚拟现实工程师!
增强现实(AR)和虚拟现实(VR)是当前备受瞩目的创新技术,对相关的增强现实开发、虚拟现实开发、数字孪生开发工程师的人才需求,......
在这个短视频盛行的时代,越来越多的人想要尝试自己进行短视频剪辑,却常常因为缺乏专业知识而无从下手。别担心,今天就为大家带来短视......
今天,我们聊聊皮克斯的《头脑特工队》系列
中国首个AIGC导演共创计划今日正式上线:同学,做导演不要?
中国首个AIGC导演共创计划定于12月6日正式上线。该计划由快手自研视频生成大模型产品“可灵AI”,联合李少红、贾樟柯、叶锦添......
近日,中央广播电视总台《2025年春节联欢晚会》发布官方吉祥物形象“巳(sì)升升”,祝福全球华人在新的一年如意康宁、好事连连。