用插件制作布料的教程
作者用一个插件制作布料的教程
一:创建nCloth约束
很多时候,创造理想的布料效果,你需要附加nCloth到其他nCloths对象或被动碰撞对象,并将这些其他的Maya Nucleus对象限制或驱动你的nCloth的动作。例如,您可以使用nCloth约束来创建nCloth服装上的钮扣,以取代碰撞,绑定不同拓扑的nCloth对象在一起,排除和限制nCloth对象和被动碰撞对象。
本课程学习:约束一个nCloth对象、管理nCloth约束成员、调节nCloth约束行为、制作在风中飘扬的旗帜。
课程设置:打开Flag.ma源文件。
可以通过在nCloth的CVs和其他nCloth或碰撞对象之间,创建动态链接来约束nCloth,约束行为依赖于延伸度和可压缩性(stretchiness and compressibility)。
1、回放动画,观察旗帜模拟效果;——旗帜穿过空气下落,为了保持旗帜维持在旗杆上,需要约束在静态的旗杆被动碰撞对象上。注意:可能需要增加帧的时间线的总数。
2、转到第一帧;
3、选择旗帜;
4、按右键,然后选择顶点(Vertex);
5、翻转相机,以便能观察到旗帜的顶点;
6、选择旗帜左边的一排顶点;
7、按SHIFT将旗杆碰撞对象也包含进选区;
8、选择nConstraint > Point to Surface(点约束到表面);则创建出点到表面的约束,呈现出一些绿线(约束链);
9、回放动画,这次左边顶点旗帜被固定在旗杆上了。
10、转到第一帧。
改变nCloth被约束的点
在创建一个动态约束后,通常需要编辑nCloth和碰撞对象的约束。
1、翻转相机,以便能看清约束点;
2、通过单击约束链选择“点到表面的约束”;
3、选择nConstraint > Select Members;则旗帜上的点和旗杆上的面作为这个约束的成员被高亮显示;
4、右击旗帜然后选择顶点;
5、选择所有约束点(左边那一列),除了最上面和最下面两个顶点外;
6、选择nConstraint > Remove Members(移除成员);则这些选择点被从这个约束中移除。
7、回放动画。则这次旗帜只有两个点被约束在旗杆上。
8、返回到第一帧。
制作动态风的nCloth
创建完成nCloth旗帜后,可以动力学动画它(如风吹效果)。
1、选择旗帜;
2、打开属性编辑器,然后选择nClothShape标签;
3、在“Dynamic Properties”栏,减小质量(Mass)并且增大切线拖曳(Tangential Drag);参数设置为:Mass=0.5、Tangential Drag=0.05;——Mass决定旗帜的密度,而Tangential Drag决定偏离表面法线的程度。
4、回放动画,旗帜现在表现出轻薄,但仍然下落。
5、返回第一帧;
6、选择nucleus标签;
7、在重力和风(Gravity and Wind)栏,增加风速;
8、改变风速为Wind Speed=10;
9、回放动画;旗帜现在在空气中呈现出飘扬。
二:创建nCloth衣服
nCloth效果一个常见的应用是创建角色的衣服。且能模拟出厚革或者薄纱的质感。
本课程学习:调节nCloth属性使之更像一件真实的织物、利用nCloth解算缓存、约束一件衣服到一个动画的角色。
课程设置:打开dressStatic.ma源文件。
场景中的衣服现在是一个普通网格,首先需要把它转换成一个nCloth对象;
1、选择衣服;
2、选择nMesh > Create nCloth >参数盒;打开窗口;
3、选择Edit > Reset Settings,将参数复位;
4、单击Create Cloth。——衣服自动转换为nCloth对象,同时,MAYA也创建了一个新的名叫“nucleus1”的解决器,并且把衣服添加给它。
使角色穿上衣服
1、选择角色模型;
2、选择nMesh > Create Passive Collider >参数盒,打开碰撞选项窗口;
3、选择Edit > Reset Settings,将参数复位;
4、单击Make Collide;(文中没说明,估计是选择了nucleus1解决器)
5、回放动画,现在衣服已经维持在模特身上了。
缓存nCloth加快回放
请注意,该nCloth模拟播放是相当缓慢。这是由于对nCloth及其相关碰撞所需的额外计算。但是,可以使用Maya的nCache功能来提速查看。
1、选择nCloth衣服;
2、选择nCache > Create New Cache >参数盒,打开窗口;
3、设置想保存的缓存目录(Cache directory);
4、设置缓存名(Cache name);
5、单击“Create”;
此时,MAYA自动开始计算并保存每一帧的缓存数据。以后,会加快显示速度。但是注意,如果修改了属性值,还是得重新计算缓存。
调整衣服适合角色
你可能注意到回放中,衣服(特别是肩带)与角色模型并没有接触,这是因为衣服和角色的碰撞体积太厚,下面进行调整:
1、选择衣服;
2、打开属性编辑器选择nClothShape1标签;
3、在Collisions栏,设置Collision Flag为“面Face”,设置Self Collision Flag为“Vertex Face”,设置Thickness为“0.066”,设置Self Collide Width Scale为“1.885”;
4、选择角色模型;
5、打开属性编辑器选择nRigidShape1标签;
6、设置Thickness为0.083;
7、回放动画。
注意,此时你看到的效果与刚才是一样的,这是因为事实上是使用了缓存了播放。要看到改变后的效果,必须重新创建一个新的缓存。
创建新的缓存
1、选择衣服;
2、选择nCache > Create New Cache;MAYA自动回放并重新保存缓存;
3、回放动画;现在衣服与模特正确的接触了。
定义nCloth衣服的行为
虽然角色现在穿着大小合适的衣服,但服装本身似乎看起来像是一个非常沉重的材料,好象处在一个非常低重力环境中。下面将衣服调节得像重量轻的丝绸。
1、选择衣服;
2、打开属性编辑器然后选择nucleus1标签;
3、在Scale Attributes栏,设置Space Scale(空间尺度)值为“0.016”;通过减少“空间尺度”属性,MAYA将评估一个大的nCloth模型为一个小得多的对象。这将导致明显增加引力对衣服的影响。
4、选择nClothShape1标签,然后在Dynamic Properties栏,设置质量(Mass)为0.7;
5、设置Stretch Resistance(拉伸阻力)为140;设置Compression Resistance(压缩阻力)为120;
通过降低布的质量,MAYA将它模拟为一个轻如丝绸织物。
增加 拉伸阻力 和 压缩阻力 确保不会成为布拉伸或压缩。
6、选择nCache > Create New Cache;重建缓存。
7、回放动画。这次,衣服表现为更轻的材料,然而,却导致在乳房周围出现松散的挂起现象而没有覆盖住乳房。
绘制nCloth属性
真实的衣服,乳房周围的(如紧身胸衣)区域往往是由一个更坚硬的材料构成,以确保不会呈挂起松散状。为了模拟nCloth衣服,下面将使用绘制顶点工具(Paint)产生紧身胸衣。
1、返回到第一帧;
2、选择衣服打开属性编辑器;
3、选择nClothShape1标签,然后在“Dynamic Properties”栏,设置Input Mesh Attract(输入网格吸引)为1.0;
4、选择nCache > Create New Cache;重建缓存。
5、回放动画;现在衣物维持其原状(不再产生变形效果了),这是因为设置Input Mesh Attract值导致nCloth模仿它的输入网格的形状,而输入网格是原来多边形网格(转换为nCloth之前的)。
6、选择nMesh > Paint Vertex Properties > Input Attract >参数盒,当前工具变成为Paint工具;
7、单击“Reset Tool”按钮复位参数,然后设置:
Radius(U): 3.0
Radius(L): 3.0
Paint Operation: Replace
Value: 0
将光标移动到的衣服,你会发现光标变成一个工匠刷;
8、在一部分衣服上绘制。
请注意,你画的部分变成了黑色。黑色意味着值为0;而白色区域表明值为1,值为1的部分将在变形过程中保持相同输入的网格形状。
9、选择nCache > Create New Cache;重建缓存测试一下。
10、回放动画。发现在喷涂黑色部位能产生完全变形,而白色部位则维持原样。
11、单击“Flood”按钮,将整个衣服变黑(值为0);
12、把value改为1;
13、把衣服乳房上方的区域涂成白色;
14、然后改value值为0.5;
15、把乳房下方区域涂成灰色;
16、选择nCache > Create New Cache;重建缓存;
现在,服装似乎变成是由一个绸布围绕紧身胸衣。至此,衣服制作课程完成,下半部分,将学习衣服与角色的动画。