在《四月第四周——人物模型》这一篇里我提到的关于人物衣服的制作,之前在maya的学习里面没有接触过这一部分,这里也涉及到maya的“动力学”模块,是一个新的学习领域,因此我在这两周也抽时间进行了集中的入门学习,主要学了有关ncloth这一部分。我将从床单(桌布)、窗帘、衣服三种模型的制作这三方面讲解我的学习过程。窗帘、桌布也被我应用到了老房子的场景模型中。
入门
-
床单
先从最简单的布料开始,主要的研究对象由以前的建模、动画、渲染变成了动力学fx模块,maya的学习又开辟了一个新领域。
布料主要使用的是菜单栏里的ncloth和nconstraint。
在ncloth里,主要使用的功能是“创建ncloth”,可以把一个平面模型转化为可以解算的布料。“创建被动碰撞对象”是配合布料发生碰撞作用的物体,比如桌面、地面等。
首先制作一个有褶皱的床单,先创建一个平面作为地面,和一个立方体作为床。
创建一个平面作为被单,注意这个平面的宽度和高度细分数一定要比较大,这样才会使布料的解算效果更好更逼真,但同时也会使计算时间延长,占用更多内存。
要使上面的床单落在床上并产生自然地褶皱效果,可以先适当的对上面的这个平面进行旋转和缩放。下落的初始状态越不规则产生的效果越自然。
调整好初始位置,对这个平面“创建ncloth”,相应的给床和地面“创建被动碰撞对象”。左边的属性状态栏变为如下,在这里可以相应改变布料的运动属性,包括阻力摩擦力风力大小等。
点击动画播放按钮或者fx里的“启动交互式播放”,开始对布料的运动进行解算。注意还要把下方的动画播放范围增大,避免布料还没解算完就已经播放结束,达不到想要的效果。
物体的下落过程会产生褶皱,并且运动到后期会从被动碰撞对象上滑落下来 。
如果觉得这样的效果不好,可以在属性栏增大摩擦力,或者直接在被动碰撞物体上创建一个阻挡布料滑落的东西,来使褶皱更加自然。
当效果调整好之后,选中布料,点击“按类型删除全部”——“历史”,就把当前的布料形状保留下来了。
删除掉不需要的物体,然后导出这个布料曲面,就可以放在需要的其他模型场景里了。
桌布的制作过程同理,之后把一个圆柱作为桌面,当做被动碰撞对象即可。
-
窗帘
窗帘是垂直悬挂的,先做出这样一个平面。
直接对这个平面创建ncloth,这个平面会垂直下落,显然不是想要的效果。所以先对这个窗帘的最上面的边的几个顶点进行约束。约束的目的是让这几个点像钉子一样拉住这个平面。创建约束使用的是nconstraint里面的变换约束。选中前两个点,进行约束。
同理两个为一组多创建几个约束。
这时再点击播放,会发现这几个被约束的点像钉子一样拉住了平面。
这时候可以开始做窗帘的褶皱了。点击播放按钮,先选中除了第一组之外的后面几组,在播放的同时向前移动。
同理依次选中后面的,再次向前移动。
最终导出,实现了窗帘的效果。
进阶
-
衣服
学习了布料的制作,可以选择在maya里制作衣服,主要思路是:
- 导入人体的一个基础模型;
- 使用cv曲线(教程上说是使用cv曲线,但我发现cv曲线不能画出直线效果,它的平滑算法只能在三个点之前生成曲线,所以我使用的是bizer曲线工具。)画出想要的衣服的轮廓形状,这个曲线一定是封闭的。如果画的不封闭,可以在“曲线”——“开放/闭合”那里自动封闭曲线。
- 创建曲线之后,在“曲面”里选择封闭填充,生成一个面。复制这个面,两个面分别在人体一前一后。
- 对这两个面进行合并,然后选择轮廓边,进行接缝处理。
- 对这个面片构建ncloth,然后选中人体作为被动碰撞对象。点击播放,等面片撞击到人体并且效果理想时,清除历史,保留当前的衣服状态。
cv曲线
bizer曲线
后来查找了网络发现有一个专门制作衣服的软件Marvelous Designer 7,制作起来更加方便,效果也更好。之后如果有需要再去学习一下这个软件的使用。因为我们对衣服的设计感要求不是非常的严格,这里就使用maya的布料工具进行衣服的创建即可。