Maya PaintEffects 制作逼真的头发教程
脚本之家
教程介绍利用Maya PaintEffects 制作头发,教程难度不大,希望对朋友们有所帮助!
作者: Yinako Minako
前言:在 3D 中制作头发效果至今仍是个难点,最常用的方法就是使用面片加上头发的纹理贴图。但这种方法难以控制纹理贴图和摆放面片物体。 Maya 给我们提供了很好的解决方法,这就是 Paint Effects :不用纹理贴图,设置简单,渲染快速,占用更少的内存。
1. 准备
首先要想好一个发型并准备一个多边形的角色头部,然后选择头部,执行 Modify-Make Live , Create-CV curve tool 。如图从头的中后方向前绘制一条曲线,这条曲线决定头发从哪里开始分缝。执行 EditCurves-Rebuild curve , Number of spans =9 , degree =3 ,显示曲线的 CV 点,将曲线命名为 hair_split_curve01 。
复制这条曲线,将第二条曲线命名为 hair_split_curve02 ,并如左下图所示与第一条曲线分开一点。如右下图所示在这两条曲线前端之间横向绘制一条短曲线,命名为 front_hair_split_curve ,不用太精确, spans 为 2 。将这 3 条曲线调整降低到头皮的下方。
2. 头发控制曲线
我们将绘制一系列的曲线粗略的表示头发的生长方向。选择头部, Make Live , CV 曲线工具,从捕捉 hair_split_curve01 前端的第一个点开始,向左绘制大约 4-6 个 CVs 。 CV 点要保证足够的数量来控制一会儿生成的头发的形状(你可以在开始的时候多建几个点,然后再删除掉多余的)。继续捕捉 hair_split_curve01 上其它的点来绘制曲线。
最终根据你的 spans 数(本篇教程为 9 )你会得到 9-11 条 hair_control_curve (头发控制曲线),选择 hair_control_curve ,调整它们的 CV 点以避免不要和头部相交,并作出发型的形状出来(这需要一定的耐心,大约要调 30 分钟左右)。效果如下图所示。将曲线群组并复制到另一边,再做一些形状上的调整。现在根据 front_hair_split_curve 绘制头发帘的控制曲线,绘制 3 条就行(注意这三条曲线的形状与左右的曲线形状要保持连续平滑的过渡)。
3.Paint Effects
下面我们将添加一些头发,执行 Paint Effects-Get Brush 进入 Visor ,打开 brushes/hair/ 文件夹,选择 hairRed1.mel (或其它你喜欢的样式)。选择 hair_control_curve01 , PaintEffects-Curve Utilities-Attach Brush to Curves ,这样会为 hair_split_curve01 创建一个粗糙的毛发效果。在 outliner 中将新建的这个 stroke 命名为 hair_side_stroke01 ,新的笔刷命名为 hair_side_brush 。
在 outliner 中双击 stroke 打开属性面板,在笔刷页中,首先调整 Global Scale 值,这个值的大小取决于你的头部模型的大小,我的角色总共 8cm 高,在这里将值设为 0.150 。如果你的角色高度为 160cm 的话,值应为 3 。打开 Brush Profiles 找到 Brush Width ,这个值控制从曲线长出的头发的宽度,将值设为 0.8 (不要将它设的太低,这样会使你的头发看上去非常薄)。其他的属性保持为默认。
现在在 outliner 中再次选择 hair_side_stroke01 ,并通过 shift 同时选中所有位于头部一侧的 hair_control_curve (左侧或右侧),执行 Paint Effects-Curve Utilities-Set Stroke Control Curves ,打开 hair_side_brush 属性面板, tubes/Behavior/forces 中,将 CurveFollow 设为 1 ,这样可使头发沿 hair_control_curve 生长。进入 hair_side_stroke01 ,将显示质量设为 10 左右(加速显示更新速度)。
4. 调整 Paint Effects
我们还是从头发的一侧开始。在调整时因为视图观察并不准确,所以你将需要大量的渲染测试,我建议你将渲染分辨率调到 320x240 ,并隐藏除了 hair strokes 之外的所有物体来加快渲染速度。
打开 hair_side_brush 设置面板,将 Tubes Per Step 设为 25 左右(控制头发的数量,不用很精确)。 Length Min=7 , Length Max=10 。 Tube Width1=0.3 , Tube Width2=0.1 (控制头发的粗细,如果你将头发设细,还要适当的增加 Tubes Per Step 的值,来保持头发的丰满)。 Segment=64 (控制头发的圆滑度,这个值会影响渲染时间)。
5. 材质
选择 hair_side_brush ,打开 Shading/tube shading ,将 color1 设为你头发根部的颜色, color2 为发梢的颜色。我将其保持为默认值。将 transparency2 设为灰色。 Tip Fade =0.2 (值越高头发越柔和)。
在 texture 中,选中 map color , Texcolorscale=0 (使用纹理贴图的颜色)。 Texture type = File , Map method = tube3D ,将 Tex Color1 和 TexColor2 设为白色。然后选择一张图作为纹理(如下图),图案月不规则越好(制作方法为 hairRed1.mel 笔刷在 2D 画布视图中绘制直线,导入到 Photoshop 中缩放涂抹)。
6. 完成
现在我们将 stroke 效果添加到另一侧和前端的曲线。
选择 hair_split_curve02, PaintEffects-Curve Utilities-Attach Brush to Strokes ,当新的 stroke 选中后, shift 选择所有这一侧的 control_curve , PaintEffects-Curve Utilities- set Stroke Control Curves 。然后选择新的 stroke 并 shift 选择 hair_side_stroke01 , PaintEffects-share One Brush (使两侧的头发共享同一个笔刷)。
选择 front_hair_split_curve , PaintEffects-Curve Utilities-Attach Brush to Strokes ,将新建的 stroke 命名为 hair_front_stoke 。选择 hair_side_stroke01, PaintEffects-Get Setting from selected stroke ,然后选择 hair_front_stroke ,执行 PaintEffects- apply setting to selected strokes 。现在, hair_front_stroke 的笔刷和 hair_side_brush 相同。下图为它们在 hypergraph 视图中的关系。另外你还可以为头发帘赋予一个不同的头发纹理。
7. 优化头发
现在头发的效果还不甚理想,我们将优化头发的两个笔刷使其不仅能够加快渲染速度,还能使头发更有立体感而不用通过提高 tubes per step 的值来增加头发的厚度。
选择 hair_front_brush ,打开属性面板,将 tubesPerStep=10 调低一些,提高宽度值,降低 segments 到 24 。打开 Behavior|forces 面板, curveAttract = -0.041 (使头发与控制曲线的位置有一些偏离,而不是很多头发紧紧粘在一根控制曲线上)。选择 hair_side_brush ,将 curveAttract 设为 -0.050 。现在你的头发看起来更自然了。另外在 stroke 调整 seed 值,在 brush/tubes/creation 调整 tube Rand 值,为头发增添更多的随机变化。
因为我们会理发,所以头发的分布并不均匀(比如前面薄后面厚)。所以我们需要一个 pressure curve 告诉 Paintfx 我们需要在哪里增加头发。选择 hair_side_stroke01 , PaintEffects-CurveUtilities-makePressureCurves/ 选项盒, control points=10 , offset scale=0.05 。如果 Pressure curve 离的太远或太近,你需要设置一个不同的 offset Scale 。要删除它,打开 stroke 的 pressure Mapping 面板,右键点击 pressureMin3 ,删除表达式,然后删除 pressure curve 本身。
如果你得到了一条位于 hair_side_stroke01 附近的合适的 pressure curve ,那么打开 pressreMapping 面板, pressureMapping1=tubes Per Step , pressure min1=0.1 , pressureMax1=1 。关闭其它的 pressureMapping 。现在你需要调整 pressureCurve 的 CVs ,提高中间的点增加 hair_side_stroke01 侧头发的厚度,降级两端的点减少头发前后的厚度(如果变化不明显则需调整 pressureMin1 )。
调整满意后,对 hair_side_stroke02 作同样的处理。渲染效果如下图所示。
以上就是Maya PaintEffects 制作逼真的头发教程,希望能对大家有所帮助!