本教程是讲述如何用计算机三维动画软件maya等软件综合应用,表现古代仕女的教程。本教程从构思到贴图,再从质感到毛发等,讲述的是制作流程和心得,很值得动画制作爱好者参考学习。
本教程中从构思到贴图,再从质感到毛发等,讲述的是制作流程及心得,头发的制作是本教程中的难点,如果网友想获得漂亮的效果,关键在于后面的合成,希望本教程能给您带来一点启示。
完成图
一、创作思路:
前段时间,看到唐朝的手绘,突然想做个有点唐朝风格的角色,然后就找了相关的一点图片参考,衣服,发式等,做这个作品的时候,发现现实和3d有好大区别,想做的和现实肯定会有区别,头发,衣服等,做这个尝试是为了让自己的在maya的某些技术和模块上能有提高和进步,现在把这个古装美女的创作过程和大家分享。
二、制作过程:
在做古装前,找了许多相关实物进行参考,包括头发,衣服等等,衣服上用参考唐代的一些服装,而在头发设计方便,因为没什么古代的头发实物参考,也就参考一些电视剧的和一些现代元素,设计制作。模型方面,其实网上都有好多相关的制作教程,详细的不多说了,现在说最重要模型的uv划分和贴图上的一点小技巧。
1、衣服
因为衣服是色彩色块比较大的,所以我在找寻一点相关的贴图,并将贴图制作成无缝贴图。最终完成衣服的贴图:因为原始的图层的材质我已经合成了,所以只能发完成后的贴图效果了。
参考图1
参考图2
而衣服的明暗,我通过叠加一个反射贴图,制作出带少许明暗的贴图,制作一点假的皱纹效果,这样可以省下一点雕刻模型的时间。
[page]
2、UV划分及pose
因为衣服的贴图用bodypaint不是太好画,所以我打算用重复贴图的办法贴到模型上,所以我把uv的边界划分到袖子的底下,这样可以避开接缝问题,因为我选的镜头是看不到袖子底下的。
衣服建模图1
对于现代的紧身装束,那就容易绑定,而对于这个古代唐装长袖就比较麻烦了,当时对Zbrush不太熟悉,于是用晶格对其进行大型的修改而没进行蒙皮绑定。
衣服建模图2
而在衣服的材质上,我因为用了层,所以mr是渲染不出来的,所以我使用mr的一个材质mi_shadow_trans做遮罩。
衣服建模图3
单独用mr sss渲染出人的皮肤。
3、眼球材质
眼球材质我使用了sss材质,感觉这样会真实好多。
下面介绍的是角膜的材质:
眼睛建模参数图1
至于高光上的贴图,为了让眼睛更有特色,我改了角膜上的高光遮罩贴图,让颜色偏蓝。
眼睛建模参数图2
眼球的sss材质
|
眼睛建模参数图3
而为了让眼球产生高光,显得眼睛更有神,我用了反光板。
材质参考图
[page]
4、身体皮肤的材质
为了让皮肤白点,所以我改亮了sss subdermal的贴图,让渲染出来人的皮肤更白亮。
超级渲染器
头部贴图参数
Mr sss渲染后的皮肤效果:
上身贴图渲染图
因为我在sss的epidermal加了黑色的毛发贴图,所以会让模型渲染后,不会让头顶太白。产生类似有头发在头皮上的效果。
眉毛和眼睫毛的制作是使用了最基本的锥体,弯曲后制作就可以了,基本就是体力活。
头部建模图
[page]
5、发型的创建
因为Maya hair比较复杂,先来说说它的基本参数。
在三维里,逼真的毛发效果一直以来都是很难解决的问题,一直到maya 7的出现,才把这个问题完满解决。Maya 的毛发系统还能和Maya Fur整合,使用 Maya的动态曲线技术集成,应用逼真的动态特性,并且可以整合 Fur和Hair一起使用,使fur的动态效果更逼真,令人信服。
Maya Hair还可以把毛发从一个模型移植到另一个模型(包括在nurbs和poly间转移),并为属性(例如:光秃和颜色)的纹理映射提供支持。Hair(毛发)也可以直接在用于Maya的mental ray中渲染,得到更逼真的毛发效果。并且Maya 7为毛发动画创作人员提供了十多种毛发预置样式- 包括:辫子、发髻、卷发、"雷管头"和发型。这是一个很有用的毛发创建工具,可以成为那些对该功能不熟悉的新用户的学习工具。
首先,下面我们来介绍Maya Hair system,这个功能是MAYA从6.0开始增加的新模块,用于创建真实的头发效果,现在的MAYA,已经不再需要外加插件来模拟头发。接下来就系统讲解hair的各个部分以及具体的使用方法。
首先打开Hair模块。
打开MAYA,选择模块为动力学--Dynamic。
Hair system详细说明
图1
(1)create hair
打开hair模块的主菜单,找到create hair选项,点击后弹出设置面板如(图2)
图2
output--hair输出方式选项
Maya的hair可以选择以下三种输出方式,分别为Paint Effects 、 NURBS curves 、Paint Effects 和Nurbs curves,下面便通过更详细的分析,来说明这三种不同的输出方式。
Paint Effects 方式(图 3):?在图上我们看到,hair从创建的NURBS球体生成了一簇簇毛发状物体,这就是hair system生成的paint effects 的Hair。而红色的圆圈就是发射毛发的毛囊。需要注意的是,在生成hair的物体中,有分nurbs和poly,nurbs的毛囊分布是很均匀的,而poly上生成的毛囊,是由多边型的uv决定毛囊的分布的,当出现uv重叠的时候,uv重叠的地方就会不能生成hair毛囊,所以均匀分布的uv是poly生成hair的先决条件。
图3
NURBS方式(图 4):我们看到,在球体上生成的为一根一根的NURBS曲线,每一根NURBS曲线都是受hair system控制的动力学曲线,可以结合maya的场控制它的动态,而且曲线是可以用变形器对其进行再一步编辑,例如晶格变形等。
图4
Paint Effect and Nurbs Cures方式(图 5):这是结合前两种生成的,图中的蓝线就是NURBS Cures,这种方式生成的头发,可以用于更为复杂的发型或者其它的特效。
图5
Create Rest Curves(图6):创建静止曲线,这个选项和头发静止受不受场的影响有关联,因为在maya的hair system里,hair的动态受两种曲线影响,一种是start position的曲线,一种是rest position的曲线,这两种曲线在平常是看不到的,要通过显示菜单来分别显示这两种状态。而start position的曲线是储存hair在当前的形态,也就是所谓初始状态,而rest position的曲线是当hair system不受场和重力的影响时,所倾向的形态。如果start position的曲线和rest position的曲线不一至,而又不受场的影响,start position曲线的形态会趋向 rest position的曲线。
图6
生成方式(图7):
Gird:以物体的网格为基础的方式生成头发,与物体的UV有关系。
At Selected Points/Faces:以选择的物体的点和面为基础生成头发,属于比较随意的一种创建方式。
图7
U Count/V Count:在UV方向上生成的毛发数量,数值越高生成的头发越多,其实就是在物体上毛囊的采样数。
图8
当(UV Count值为30时)
图9
(UV Count值为默认的8时)
图10
[page]
Passive Fill:被动填充,主要是创建主动和被动毛囊,并且通过主动曲线来驱动被动曲线的动态,通过插值的方式驱使被动曲线运动,在要求精度不高的情况下,可以通过这样方式来减少毛发动态的运算量。但产生的被动毛囊所生成的头发方受主动曲线驱动。
Randomization:头发生长随机值,这个参数还和uv 有关,如果uv不均匀,就算Randomization为0,头发的生长都不可能是均匀的,值越大产生的毛囊越不均匀,随机值越大,毛囊生长的越是不均匀。
(随机值为0时毛囊的分布)
图11
随机值为2时毛囊的分布)
图12
图13
Edge Bounded:选中该项后毛囊会按着一条边的形式生长。
Equalize:选中该项后,毛囊会按uv空间和世界空间的方式生长。
图14
Dynamic:动力学模式,选中该项后生成的头发会自行进行动力学解算,也就是创建主动毛囊。
Static:静态模式,选中该项后生成的头发不进行任何动力学解算,也就是创建静态毛囊。
Points Per Hair:每条动力学曲线的顶点数,数值越大,在碰撞的精确度上越高,运算量越大,不过其实这个点数目在创建后是可以通过重建而改变的。
(值为3时动力学曲线的cv数目)
图15
(值为10时动力学曲线的cv数目)
图16
Length:长度,指头发的长度。
Place Hair into:这个选项决定了,新生成的头发系统是重新生成一个新的头发系统,还是加入到现有的头发系统里去。
(新创建方式,outliner里看到有两个hair system)
图17
(加入到现有方式,outliner里看到只有1个hair system)
图18
Scale Hair Tool:缩放头发,在生成头发后选中头发,可按住鼠标左键或中键拖动鼠标任意控制头发的长度。
Paint Hair Follicles:笔刷绘制毛囊,这可以说是Maya的独特功能了,可以直接在物体上像画画那样绘制出头发,提供用户更大的创造性和自由度。
图19
而比较特别的是paint mode,其包括Create Follicles、Create Passive Follicles、Delete Follicles、Edit FoLLicle Attributes、Trim Hairs、Extend Hairs的几种方式(图 20)。
图20
[page]
Paint Mode:笔刷模式
Create Follicles:创建毛囊
Create Passive Follicles:创建被动毛囊
Delete Follicles:删除毛囊
Edit Follicle Attributes:编辑毛囊属性
Trim Hairs:修剪头发
Extend Hairs:延长头发
可以通过它来绘制,改变毛囊的属性,比手动改要更方便。而其它的参数上与前面的一样,这里就不重复说明了。
Follicle Attribute:毛囊属性,必须在Paint Mode中选择Edit Follicle Attributes才可以进行编辑毛发属性的选项(图 21)。
图21
Clump Width Mult:调节每个毛囊生成每一束毛发的宽度,通过调节笔刷的压值来进行设置。
Density Mult:毛发的稀疏度,可以控制每个毛囊生出的头发数目。
Curl Mult:卷曲值,可以通过这个调节每根头发的卷曲程度。
Clump Twist Offset:调节毛囊生成的头发的自扭曲值,因为默认生成的头发之间太规则了,在处理真实头发效果时,适当的增大扭曲值为好,注意的是它与卷曲值不同,它是控制每个毛囊生成的所有头发的。
Color Blend:色彩混合,在制大量头发时,可以用它来和头发的原有颜色进行混合。
Braid:辫子,俗话说的马尾,通过它决定那一束头发作为辫子。
Hair Scale:头发缩放长度,与Scale Hair Tool 功能上一样,需要通过调节笔刷压强。
Inclination:倾斜度,调节头发生长的方向。
Roll:滚动控制,可使多个毛囊为单位的头发生长方向呈不规则的变化。
Polar:两极控制,使毛囊所生出的头发规则的朝一个方向发生变化。
Surface Insert:插入表面,使头发生长方向为进入物体内部。
Stiffness:硬度,通过笔刷压强的大小来控制头发的强度,与动力学解算有直接关系。
图22
Display:显示状态,这个菜单显示头发曲线的各种状态,你可用菜单切换到头发曲线显示模式,当你要需要对头发作修改和调整都需要这个参数。
Current Position:当前状态,指的是头发在进行动力学解算的当前状态。
Start Position:起始状态,选择头发后点击, 起始状态的曲线就能够编辑,头发静止时的曲线被显示出来,通过多种的编辑方式,就可以控制头发起始时的形态了。
Rest Position:静止状态,编辑头发静止状态,这个状态可以通过设置得到同样可以从任何一个状态转为rest position。
Current and Start:这个功能十分好用,可以直接改变头发的形态,点击后编辑曲线可实时改变头发的形态,而且结合maya内部的变形器,能更好的改变头发的形状。
图23
Current and Rest:与Current and Start相似,只不够控制的状态不一样。
All Curves:编辑所有曲线,包括Current和Rest曲线。
图24
设置起始状态。
Form Current:来自当前,把当前进行的动力学演算或者手工调整好一个发型,选择这个后为当前头发的形态。
From Rest:来自静止状态,把rest的静止状态传递给start position 的状态。
图25
设置静止状态,在动力学演算后选择该项可将当前头发的状态设为静止后的状态。
图26
From Start:来自起始,与上面讲过的Set Start Position搭配使用。
From Current:当前状态,把当前的状态设置为静止状态。
图27
修改曲线,主要是在头发的编辑曲线下进行各种编辑。
图28
Lock Length:锁定头发曲线的长度,锁定后头发曲线长度不能改变。在锁定后,移动曲线的点,曲线其他部分会连带运动。
图29
[page]
Unlock Length:解除锁定头发曲线长度,解除锁定头发的长度。当这个选项打开后,头发的长度不受限制。可以随意更改。
图30
图31
Straightness:拉直度,调节拉直头发的强度。默认值为1
Preserve Length:保持长度,默认为打开。
图32
Smooth:平滑度,头发的平滑度,用该命令后使头发曲线能更平滑。
图33
Smooth Factor:光滑因数,值越大头曲率就越光滑。
Curl:卷曲,头发自身的卷曲。
图34
Curl Amount:卷曲数量
Curl Frequency:卷曲频率
Bend:弯曲值
图35
Bend Amount:弯曲数量
Twist:弯曲值
Scale Curvature:缩放曲率
图36
Scale Factor:缩放因数
Max Curvature:最大弯曲率
图37
创建约束
图38
[page]
Rubber Band:橡胶带子,使头发绑在一起。
图39
Transform:变形在做发型时常用到。
图40
平移,缩放
图41
Stick:粘贴
也是比较常用到的一个命令
图42
Hair to Hair:头发与头发间的约束。
Hair Brush:头发束,一般并不常用。
Collide Sphere:碰撞球,主要是做减少碰撞运算的虚拟物。
Collide Cube:碰撞立方体,和球体一样,只不过是正方型的碰撞方式。
图43
转换选择
图44
To Follicles:到毛囊,因为毛囊不能很方便的选择,用这个可以快速的选择所有毛囊并修改其属性。
To Start Curves:选择初始曲线,快速选择所有初始曲线。
To Rest Curves:选择静止曲线,快速选择所有静止曲线。
To Current Positions:选择当前曲线,快速进入当前状态并选择所有的毛发。
To Hair Systems:选择头发系统,快速进入头发系统的属性参数面板。
To Hair Constraints:选择头发约束。
To Start Curve End CVs:到初始曲线的端点。
To Rest Curve End CVs:选择静止曲线的端点。
To Start and Rest End CVs:选择初始曲线和静止曲线的端点。
图45
指定到特定的头发系统
图46
将所选的曲线赋予动力学,用hair的动力学系统来驱动。
图47
[page]
创建碰撞
必须要先创建动力学曲线,并给与动力学,然后选择需要做碰撞物体,一并选择曲线,然后执行Make Collide。
图48
球体与曲线发生碰撞。
图49
分配Paint Effects笔刷到头发系统上
图50
在制作头发中,可以把任何pe的效果赋予到hair系统上渲染,可以实现很多特效。
图51
移植头发
图52
Copy Follicles:复制毛囊
Match UV:匹配UV.
Nearest Point:接近的点的复制方式。
Place Hairs into:把头发防在统一个系统里还是另外一个头发系统。
hairSystemShape Maya的头发系统节点属性。
图53
运算模式
Off:关闭
Static:静止,不接受动力学演算
Dynamic Follicles Only:仅仅是主动毛囊进行运算。
All Follicles:全部毛囊
图54
显示质量,这个参数很重要,在头发多的时候为了减轻机子和显卡的负担,建议尽量调小值,
只是显示的精度而已,对头发本身没有任何影响。
图55
Hairs Per Clump:每个毛囊的头发数目
Baldness Map:秃度贴图
Sub Segments:头发片断数,数值越高,头发越平滑
Thinning:稀疏度,控制头发末端的稀疏度
Clump Twist:每块头发的扭曲
Bend Follow:弯曲跟随
Clump Width:每束头发的宽度
Hair Width:每根头发粗细
图56
Clump Width Scale:范围调整,这是个很好用的东西,可以通过调整曲线图形来调整每束头发的宽度。
Selected Position:选择位置
Selected Value:选择数值
Interpolation:插补
图57
None:没有任何调整
Spline:曲线
Linear:直线型
Smooth:光滑
图58
卷曲曲线调整
其他命令同上一样
图59
扁平曲线的调整
它的作用是可以让头发变某处变得扁平。
图60
Dynamics:动力学
Iterations:柔韧性,直接与头发进行动力学演算有莫大的关系,值越大头发越有韧性,值越小头发越缺乏弹性。
图61
[page]
数值为10时
图62
值为1时
Length Flex:长度伸缩,这个参数的意思是头发在动力学演算时是否伸缩,也就是拉长。
一般情况下调整为0。
Stiffness:硬度,值越大,头发受动力学的影响就越小,越不容易变形。
图63
硬度曲线:细致到可以调整头发的某部分硬度
图64
Drag:托拽力,头发在做运动时,可以通过这个来调整,加快和减缓运动的快慢。
Damp:抑制,抑制头发在动力学时可以较好的保持住形态。
Friction:摩擦力,头发与碰撞物体间的摩擦
Mass:质量
Gravity:重力,默认值为标准重力0.980
Start Curve Attract:开始曲线间的吸引,数值大时,曲线的动态愈会趋向start position的曲线。
Dynamics Weight:动力学权重,默认为1。
Start Frame:开始祯
Current Time:当前时间祯
图65
Collisions:碰撞
Collide:是否碰撞,默认为打开,如果关闭,头发不会和物体产生碰撞。
Collide Over Sample:碰撞采样,默认为0,数值越大,碰撞越精确,所需要的运算时间就越长。
Collide Width Offset:碰撞偏移,碰撞后的偏移大小,如果打开自碰撞,这个值还会影响自碰撞。
Self Collide:自碰撞,打开后每根头发都会发生碰撞,但计算起来很慢
Repulsion:排斥,值越大,排斥的越厉害
Static Cling:静电黏着,真实的头发会有些静电反应并粘合在一起
Num Collide Neighbors:头发的邻近碰撞,主要是调节碰撞区域的范围。
Collide Ground:与地面碰撞,打开后头发系统会模拟头发与地面的碰撞。
Ground Height:碰撞地面的高度。
图66
Draw Collide Width:碰撞托拽范围,打开后会有圆圈,表示碰撞范围和Collide Width Offset有关,Collide Width Offset的大小就是自碰撞的半径大小。
图67
(Collide Width Offset为0.4时的显示)
图68
Turbulence:抖动
Intensity:强度,数值大时,头发不规则运动越厉害
Frequency:频率
Speed:速度大小
图69
[page]
Shading:纹理
Hair Color:头发颜色,可以使用贴图。
图70
Hair Color Scale:头发颜色混合比例
Selected position:选择位置
Selected Color:选择颜色
图71
Opacity:透明度
Translucence:半透明
Specular Color:高光颜色
Specular Power:高光强度
Cast Shadows:产生阴影
图72
Color randomization:颜色随机化
Diffuse Rand:漫反射随机化
Specular Rand:高光随机化
Hue Rand:色相随机化
Sat Rand:饱和度随机化
Val Rand:亮度随机化
图73
Displacements:置换
Curl:弯曲
Curl Frequency:弯曲频率
Noise Method:噪波方式
图74
Random:随机
Surface UV:曲面UV
Clump UV:块UV
Noise:噪波
Detail Noise:细节噪波
Noise Frequency:噪波频率
Noise Frequency U:U方向的噪波频率
Noise Frequency V:V方向的噪波频率
Noise Frequency W:W方向的噪波频率
Sub Clump Method:片断块方式
图75
同上…………
Sub Clumping:块片断
Sub Clump Rand:块片断随机
Num U Clumps:U块
Num V Clumps :V块
图76
Displacement Scale:置换范围的控制曲线。
图77
Multi Streaks:头发补充,这个命令可以增加头发数目,但并不会增加太长的渲染时间
Multi Streaks:数值多时,头发的数量也就越多
Multi Streak Spread1:根部头发补充
Multi Streak Spread2:头发梢补充
Light Each Hair:每个头发接受灯光
在明白了maya hair上的各种参数后,我们就开始动手创建头发了。
首先,我们要知道,其实maya的hair曲线可以重建的,而且可以使用动力学和晶格进行编辑,下边我来说一个例子,相信看完后,好多人都知道一些大概的做法了。因为古代的发型,有好多都是假的头发加上的的,一团团的东西,不好做,但maya的变形器比较多,所以动动脑,方法就出来了。
图78
[page]
首先把hair曲线拉直,调整成如下样子。
图79
然后创建晶格变形,让晶格旋转45度,并增加其段数。
图80
接着使用bend弯曲变形器,并调整弯曲的大小。
图81
效果满意后,删除曲线的历史。在曲线横向上再创建一个bend变形,效果如图。
图82
这样就完成了发团的制作。
而我模型上的头发是先在tpose上创建,然后再用根据摆好的pose上用晶格改变基本形态的。
图83
头上的白毛装饰,我在圆柱上创建hair
图84
[page]
然后用curl让其弯曲来制作的。
下边是我hair的调整参数,这个大家可以按照自己的实际来调整。
图85
为了让头发有颜色的变化,我在Hair color放了ramp的贴图。
图86
最后衣服和hair使用默认渲染,而身体用sss渲染,最后用ps合成。
图87
完成图
背景制作用ps的画笔乱画了点颜色。