查看: 3186|回复: 0
打印 上一主题 下一主题

用Maya的hairSystem做头发建模

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2012-2-11 10:01:02 |只看该作者 |倒序浏览
  maya软件里人物头发的几种一般做法有以下四种,中1,2是传统做法,网上教程已经很多了,方法3需要根据需要看插件的help文件,本教程只讨论第4种做法,即使用maya默认渲染器和pe进行渲染制作三维人物头发的方法和步骤。
  1.面片+贴图.
  2.长发用pfx先用curves 编制发型,再将stroke粘贴到引导曲线上生成头发;短发用fur.
  3.插件.
  4.maya 6以后增加的hairSystem渲染器.
  









  下面先总结一下使用maya hairSystem制作发毛的一般流程,也就是maya help里面建议的一般流程:
  1.制作一个具有良好uv分布的面片以生成毛发。
  2.在该面片上生成hairSystem。
  3.编辑hairSystem的start curves,rest curves,使hair定型。
  4.制作constraint,进行动力学解算。
  5.动画。
  理论上这个流程是可行的,但实际制作是却非常麻烦,主要原因是第3步,用正常的方法编辑start curves生成需要的发型是比较困难的。
  下面我介绍一种用nurbs面片生成头发的引导曲线制作发型的方法,然后再用一个具体例子说明hairSystem在制作,运动,渲染时一些要注意的地方。
  1.用任意方法制作一块nurbs面片,注意uv的起始位置在头发的根部(画黄线的地方)
  2.选取多个isoparm,然后duplicat surface curves
  3.不要删除历史,选择这些curves,然后Hair-Make select curves dynmic
  





  4.选择生成的follicle,在属性里把point lock改成Base(默认是锁定2端) 。
  5.现在你移动时间轴,可以看到这些curve可以运动了。
  





  6.选中生成hairSystem,然后Hair-Assign paint effect ***sh to hair.这样做的结果是我们得到一个pfxhair作为renderHairs,但同时会生成一个连接到pfxhair上的***sh,这个我们不需要的***sh会影响pfx的形态(具体可参看maya help 里的assign paint effect ***sh to hair);在hypergraph或outliner中把它删掉。
  





  7.调节hairSystem的参数,可以看到现在已经生成正常的毛发了。从nurbs面片上复制出的曲线成为该hairSystem的start curves(你可以用set rest postion to start postion生成rest curves),调节nurbs surface,可以看到毛发形态也发生改变,这对调节发型来说非常方便。
  





  好,下面我用一个具体例子说明使用hairSystem的流程。
  1.打开你的角色模型,用nurbs面片制作你想要得发型(这应该不成问题吧?)我的这发型是临时做的,真要做的时候你们千万表这么随意阿~ >_<
  需要注意的地方:
  (1):沿头发生长发方向的面片段数不能太少,而且要分布均匀(注意画黄线的地方),这是会影响生成头发的动力**算的!
  (2):注意画红线的地方,头发分开处要留有间距。因为发束是有厚度的,如果面片太接近2边发束会叠在一起!
  (3):非常重要的一点!要作动画的角色,千万不能用这么少的面片,多的面片使发型更具可变性。另外,要做多层毛发,也就是在面片之下还有面片,这才能保证角色头发剧烈运动的时候仍然能保持层次感。下面举例时我会具体说明这个问题。
  





  2.好,按照刚才的做法。duplicate curves,我建议这里复制的曲线是宜多不宜少(多的可以删,少了你还要做曲线生成新的hairSystem再合并)
  





  3.生成hairSystem,选中一部分follicle把它的simulation method变成passive以节约运算时间。
  





  4.调节hairSystem的参数,渲染看看效果。hairSystem参数很多,你可以慢慢调直到满意为止。这是我临时调的,用比较浅的发色大家可以清楚地看到头发生长脉络,你们仔细调的话效果可以比这个好得多。
  





  下面我们看hairSystem进行动力学解算时的一些问题。
  1.由于我们没有按一般做法提供头发生长的面片,所以我们把hairSystemFollicles绑在头骨上。需要注意的是:很多人可能会把一开始那些nurbs面片也绑在头骨上,而因为留有历史纪录的start curve在hairSystemFollicles里,这可能会造成double transform.如果你真要这么做的话可以unparent那些start curve
  





  2.按照一般做法,我们用圆球constraint来模拟头发跟身体的碰撞。但这是不够的。在人物进行运动的时候我们希望在一定限度上保持人物的发型。所以我在给hairSystem使用transform constraint,把 改成u parameter,再调节u parameter,这样就从根部锁定了发型,通过constraint的stiffness可以调节锁定的强度。
  





  3.根据发型特征和人物运动特性继续添加constraint。我这里用了8个。你可能需要更多。
  





  4.让我们看看现在头发的运动结果: (如果只能看到静止的gif请把它存到硬盘上再观看就正常了)
  










  需要注意的地方:
  (1):大家可以看到这个头发弹性很大,这是让他运动比较明显,实际上这么大弹性的头发是很危险的。你需要调节hairSystem的damp,stiff等选项,降低头发的弹性。
  (2):可以用灯光,镜头焦距,运动模糊等掩盖传帮的地方。
  5.下面我们看看运动时的渲染效果:
  (1):注意黄线的地方,由于头发只有一层,所以运动起来这些地方就空了!这就是为什么我在前面强调要做多层面片原因:
  (2):红框处,头发密度不够,虽然可以调节multi streaks等进行掩盖,但最好的方法还是多做一层头发或多做几条引导曲线。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-4-29 19:25 , Processed in 0.087180 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部