本教程中从构思到贴图,再从质感到毛发等,讲述的是制作流程及心得,头发的制作是本教程中的难点,如果网友想获得漂亮的效果,关键在于后面的合成,希望本教程能给您带来一点启示。
完成图
一、创作思路:
前段时间,看到唐朝的手绘,突然想做个有点唐朝风格的角色,然后就找了相关的一点图片参考,衣服,发式等,做这个作品的时候,发现现实和3d有好大区别,想做的和现实肯定会有区别,头发,衣服等,做这个尝试是为了让自己的在maya的某些技术和模块上能有提高和进步,现在把这个古装美女的创作过程和大家分享。
二、制作过程:
在做古装前,找了许多相关实物进行参考,包括头发,衣服等等,衣服上用参考唐代的一些服装,而在头发设计方便,因为没什么古代的头发实物参考,也就参考一些电视剧的和一些现代元素,设计制作。模型方面,其实网上都有好多相关的制作教程,详细的不多说了,现在说最重要模型的uv划分和贴图上的一点小技巧。
1、衣服
因为衣服是色彩色块比较大的,所以我在找寻一点相关的贴图,并将贴图制作成无缝贴图。最终完成衣服的贴图:因为原始的图层的材质我已经合成了,所以只能发完成后的贴图效果了。
参考图1
参考图2 而衣服的明暗,我通过叠加一个反射贴图,制作出带少许明暗的贴图,制作一点假的皱纹效果,这样可以省下一点雕刻模型的时间。
2、uv划分及pose
因为衣服的贴图用bodypaint不是太好画,所以我打算用重复贴图的办法贴到模型上,所以我把uv的边界划分到袖子的底下,这样可以避开接缝问题,因为我选的镜头是看不到袖子底下的。
衣服建模图1 对于现代的紧身装束,那就容易绑定,而对于这个古代唐装长袖就比较麻烦了,当时对zbrush不太熟悉,于是用晶格对其进行大型的修改而没进行蒙皮绑定。
衣服建模图2 而在衣服的材质上,我因为用了层,所以mr是渲染不出来的,所以我使用mr的一个材质mi_shadow_trans做遮罩。
衣服建模图3 单独用mr sss渲染出人的皮肤。
3、眼球材质
眼球材质我使用了sss材质,感觉这样会真实好多。
下面介绍的是角膜的材质:
眼睛建模参数图1 至于高光上的贴图,为了让眼睛更有特色,我改了角膜上的高光遮罩贴图,让颜色偏蓝。
眼睛建模参数图2 眼球的sss材质
|
眼睛建模参数图3 而为了让眼球产生高光,显得眼睛更有神,我用了反光板。
材质参考图 4、身体皮肤的材质
为了让皮肤白点,所以我改亮了sss subdermal的贴图,让渲染出来人的皮肤更白亮。
超级渲染器
头部贴图参数 mr sss渲染后的皮肤效果:
上身贴图渲染图 因为我在sss的epidermal加了黑色的毛发贴图,所以会让模型渲染后,不会让头顶太白。产生类似有头发在头皮上的效果。
眉毛和眼睫毛的制作是使用了最基本的锥体,弯曲后制作就可以了,基本就是体力活。
头部建模图 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 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
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 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 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 创建碰撞
必须要先创建动力学曲线,并给与动力学,然后选择需要做碰撞物体,一并选择曲线,然后执行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 数值为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 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:亮度随机化
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 首先把hair曲线拉直,调整成如下样子。
图79 然后创建晶格变形,让晶格旋转45度,并增加其段数。
图80 接着使用bend弯曲变形器,并调整弯曲的大小。
图81 效果满意后,删除曲线的历史。在曲线横向上再创建一个bend变形,效果如图。
图82 这样就完成了发团的制作。
而我模型上的头发是先在tpose上创建,然后再用根据摆好的pose上用晶格改变基本形态的。
图83 头上的白毛装饰,我在圆柱上创建hair
图84 然后用curl让其弯曲来制作的。
下边是我hair的调整参数,这个大家可以按照自己的实际来调整。
图85 为了让头发有颜色的变化,我在hair color放了ramp的贴图。
图86 最后衣服和hair使用默认渲染,而身体用sss渲染,最后用ps合成。
图87
完成图 背景制作用ps的画笔乱画了点颜色。
好消息:纳金网开设网站专题,整合提供各种maya软件、maya教程、maya模型等,有需要的朋友可自行免费下载!
|