数码资源网·下载

展开

Maya教程-Maya的Fur系列教程之动力学篇

作者:网友整理
Autodesk mayav1.4

Autodesk mayav1.4 88.36M / 简体中文

点击下载
Maya影视安卓版(影音资源播放平台) v1.4 手机版

Maya影视安卓版(影音资源播放平台) v1.4 手机版 26.48M / 简体中文

点击下载
玛雅maya最新网站地址1.1.71.5.7

玛雅maya最新网站地址1.1.71.5.7 38.95M / 简体中文

点击下载
动力学篇或许是大家最期待以久的篇章了,今天终于来了。相信看过创建篇和渲染篇还有控制篇的朋友们,你们的Fur基础应该是很扎实了。
   不要得意啊,其实那些全都只是基础,真正的应用和高级控制今天才讲到,这篇教程也是我们Fur教程的大结局篇。
金子总是到最后才发光,那Fur呢。如果你前3篇教程还没有看过,极力推荐回去看一下,有必要时可以回去查阅,因为今天我们的学习内容是建立在你前面学习的基础上的。
   学习内容:
   1 创建动力学吸引器
   2 Dynamic chain(动力学链)的结构和组成
   3 弹簧部分试验
   4 力场部分试验
   5 分吹草地***(超实用的动力学草地)
   在本篇学习开始前,我必须说明,由于动力学篇的实例文件较大,所以如果你仅仅是浏览网页而不做练习,那你可能一无所获。
   本篇的教程和教材全都是经过多人测试的。如果你只是看,而不去做,那很多隐含的精彩内容你将无法感受的。
   启动Maya,我们真的开始了。
   1 创建动力学吸引器
   在Fur的吸引器创建中,程序为我们单独列出了一个选项,那就是Dynamic chain(动力学链)。新建文件……用这个脚本创建场景。确定选择Dynamic chain选项,保证Attractor length大于毛发长度(推荐3),执行Create。

由于是Dynamic chain,我们不能对于IK进行位移的调整。
   以上是创建单一的Dynamic chain,下面我们来创建多个Dynamic chain。首先,让我们先删除上面创建的Dynamic chain,如图操作。

   然后,执行select -r nurbsPlane1;HfCreateAttractor;disable -v 0 gridGrp;disable -v 1 followDelayGrp;设置如图。

这是个多么复杂的场景,让我们来隐藏我们现在不想看到的物体吧。

   为NURBS打上关键帧,播放动画;你也可以,当然最好执行这段语言来设置。playblast来观看。

我们发现,其实这个动作并不自然,让我们回去调整FurAttractor的差数吧
   setAttr "FurDescription1.Scraggle" 0.2;
   setAttr "FurDescription1.ScraggleFrequency" 1.5;
   setAttr "FurDescription1.Attraction" 0.65;
   setAttr "FurAttractors1.AttractorsPerHair" 8;
   setAttr "FurAttractors1.Power" 0;
   setAttr "FurAttractors1.StartLength" 0.5;
   setAttr "FurAttractors1.EndLength" 10;
   setAttr "FurAttractors1.ThresholdLength" 0;

   差异还是很大的,我们接下来从理论上来了解Dynamic chain,了理论才能掌握Dynamic chain(动力学链)根本。
   2 Dynamic chain(动力学链)的结构和组成
   看到上面的例子你一定想知道Fur受到吸引器运动的原理,下面我们来看看Fur的Dynamic chain的构成吧:
   新建文档,用这个脚本创建场景
   选择grid类型用8×8 ,选择Dynamic chain ,执行Create >继续执行Window->OutlinerWindow ,让我们来看清Dynamic chain 的结构吧。

好复杂是吧,我们先来对它做个了解。

   在DynamicFurAttractor下面有分别有:
   IK,骨骼,复制曲线,曲线,粒子和弹簧。
   它们的关联关系是:
   弹簧 控制>- 粒子 控制>- 曲线 控制>- 关联的复制曲线 控制>- 骨骼 受控>- IK
   
也就是说,弹簧是控制的根源,由于弹簧的运动带动粒子的运动,影响了曲线的变化,才导致骨骼的运动和变化。
有点复杂,如果你还没有明白,继续往下看吧。
   由上面的理论我们得出结论要想很好的控制Dynamic chain,其关键是选择Dynamic chain中的粒子和弹簧进行编辑。
   的确,如果是个更大的场景有上百个粒子和弹簧,那选择将是一件费力不讨好的工作,并且这样的操作很会引起误选和错误。
   Maya强大的Mel这时该出场了,让我们用Mel来帮忙吧。你可以直接 运行这个脚本(此脚本为本人原创)
   脚本运行后将在Shelf上多了两个按钮,分别标注为 “Sl_P” 和 “Sl_S” ,
   执行“Sl_P”后,将场景内的所有粒子选择,并放在创建标注为“DCPP”的层中,将层模板化;
   执行“Sl_S”后,将只显示出场景内的所有弹簧(原始的场景是看不到弹簧的,只有在运动后才会有弹簧显示出来),方便选择。

执行下面的命令为NURBS打上关键帧
   playbackOptions -min 0 -max 120;
   currentTime 0 ;
   select -r nurbsPlane1 ;
   setKeyframe ".tz";
   setKeyframe ".rx";
   currentTime 20 ;
   move -r 0 0 -2 ;
   rotate -r 20 0 0 ;
   setKeyframe ".tz";
   setKeyframe ".rx";
   currentTime 0 ;
   modelEditor -e -allObjects 1 modelPanel4;
   modelEditor -e -locators 0 modelPanel4;
   modelEditor -e -xray 1 modelPanel4;
   DisplayShaded;
   performPlayblast 3;
   播放playblast。

   对比……
   currentTime 0 ;
   modelEditor -e -allObjects 1 modelPanel4;
   modelEditor -e -nurbsCurves 0 modelPanel4;
   modelEditor -e -joints 0 modelPanel4;
   modelEditor -e -ikHandles 0 modelPanel4;
   modelEditor -e -dynamics 0 modelPanel4;
   modelEditor -e -grid 0 modelPanel4;
   performPlayblast 3;

3 弹簧部分试验
   其实我们上面所作的所有试验,仅仅是告诉大家弹簧和粒子在动力学中的作用,接下来就让我们来点实用的吧,使用这个脚本创建新的场景。最好将这个脚本用中键拖拽到shelf上做个按钮,以便接下来继续使用。选择grid类型用3×12 ,选择Dynamic chain ,执行Create > ,执行Playblast。

   调整:
   第一步>-
   setAttr "FurAttractors1.AttractorsPerHair" 6;
   setAttr "FurAttractors1.Power" 0.5;
   setAttr "FurAttractors1.Influence" 5;
   第二步>-
   用上节所提到的“Sl_P”按钮,选择粒子调整conserve 0.97;
   (请在通道框中调整,如果在属性列表中调整只能对单一的粒子进行调整)
   同样用“Sl_S”按钮,选择弹簧调整参数
   stiffness 40
   (请在通道框中调整,如果在属性列表中调整只能对单一的弹簧进行调整)
   damping 0.35
   第三步>-
   modelEditor -e -allObjects 1 modelPanel4;
   modelEditor -e -nurbsCurves 0 modelPanel4;
   modelEditor -e -joints 0 modelPanel4;
   modelEditor -e -ikHandles 0 modelPanel4;
   modelEditor -e -dynamics 0 modelPanel4;
   DisplayShadedAndTextured;
   执行Playblast。

下面我们来着重介绍一下spring(弹簧)两个重要参数stiffness (硬度): 默认值是20,当数值为0时spring最硬,数值约大,spring越软。推荐调节在10~100之间效果较好。damping (阻尼,衰减): 默认值是0.2,当数值为0时spring最大保持原始状态,数值约大,变化幅度约大。推荐调节在0.1~1之间效果较好。
   常见的毛发类型比较:
   stiffness 100;damping 10,stiffness 35;damping 1,stiffness 35;damping 1。

   毛发2。

毛发3。

   毛发4。

对于弹簧的理解我们先到这里,因为影响毛发运动的不止是弹簧,还有其他的因素,比方说粒子和动力场。
   4 力场部分试验
   新建文件>--用这个脚本创建场景。选择grid类型用4×4,选择Dynamic chain ,执行Create >,场景如图:

   (air)风力场测试
   点击按钮“Sl_P”按钮。
   SelectAllParticles;
   air -pos 0 6 0 -m 3 -att 1 -dx 1 -dy 0 -dz 0 -s 0.5 -iv 0 -iro 1
   -vco 0 -es 0 -mxd 20 -vsh none -vex 0 -vof 0 0 0 -vsw 360 -tsr 0.5 ;
   connectDynamic -f airField1
   curve1Particle curve2Particle curve3Particle curve4Particle curve5Particle
   curve6Particle curve7Particle curve8Particle curve9Particle curve10Particle
   curve11Particle curve12Particle curve13Particle curve14Particle curve15Particle
   curve16Particle;
   setAttr "airField1.visibility" 0;
   modelEditor -e -allObjects 1 modelPanel4;
   modelEditor -e -nurbsCurves 0 modelPanel4;
   modelEditor -e -joints 0 modelPanel4;
   modelEditor -e -ikHandles 0 modelPanel4;
   modelEditor -e -dynamics 0 modelPanel4;
   setAttr "FurDescription1.Scraggle" 0.15;
   setAttr "FurDescription1.LengthNoise" 1;
   setAttr "FurAttractors1.AttractorsPerHair" 4;
   setAttr "FurAttractors1.Influence" 2;
   setAttr "FurAttractors1.InfluenceNoise" 2;
   DisplayShadedAndTextured;
   playbackOptions -min 0 -max 120;
   currentTime 0 ;
   playblast -percent 50 ;
   风吧毛发给吹翻了。

点击按钮“Sl_S”按钮,选择屏幕上显示的所有弹簧,其实应该是只有弹簧显示。
   设置stiffness 100;damping 5;
   setAttr "FurAttractors1.Influence" 0.5;
   expression -s "airField1.magnitude = sin (time/4)" -o airField1 -ae 1 -uc all ;
   modelEditor -e -allObjects 1 modelPanel4;
   modelEditor -e -nurbsCurves 0 modelPanel4;
   modelEditor -e -joints 0 modelPanel4;
   modelEditor -e -ikHandles 0 modelPanel4;
   modelEditor -e -dynamics 0 modelPanel4;
   playbackOptions -min 200 -max 400;
   currentTime 200 ;
   DisplayShadedAndTextured;
   重新播放动画。

   (turbulence)紊乱力场测试
   新建文件>--用这个脚本创建场景。
   选择grid类型用4×4,选择Dynamic chain ,执行Create >
   点击按钮“Sl_P”按钮,执行Fields->Turbulence
   然后执行
   playbackOptions -min 0 -max 120;
   currentTime 0 ;
   setAttr "turbulenceField1.visibility" 0;
   DisplayShadedAndTextured;
   playblast -percent 50 ;

很明显的变化。
   修改参数,点击按钮“Sl_S”按钮,选择屏幕上显示的所有弹簧,修改damping 2;
   setAttr "FurAttractors1.AttractorsPerHair" 4;
   setAttr "FurDescription1.Scraggle" 0.15;
   setAttr "FurDescription1.LengthNoise" 1.5;
   setAttr "FurDescription1.InclinationNoise" 0.2;
   setAttr "turbulenceField1.magnitude" 20;
   setAttr "turbulenceField1.attenuation" 0.2;
   modelEditor -e -allObjects 1 modelPanel4;
   modelEditor -e -nurbsCurves 0 modelPanel4;
   modelEditor -e -joints 0 modelPanel4;
   modelEditor -e -ikHandles 0 modelPanel4;
   modelEditor -e -dynamics 0 modelPanel4;
   DisplayShadedAndTextured;

   (radial)放射力场测试
   保持这个场景,执行下面的脚本
   currentTime 0 ;
   select -r turbulenceField1 ;delete;
   setAttr "FurDescription1.Length" 2.3;
   setAttr "FurDescription1.LengthNoise" 1.5;
   radial -pos 0 4 0 -m 5 -att 5 -typ 0 -mxd 20
   -vsh none -vex 0 -vof 0 0 0 -vsw 360 -tsr 0.5 ;
   setAttr "radialField1.visibility" 0;
   connectDynamic -f radialField1 curve2Particle curve1Particle
   curve3Particle curve4Particle curve5Particle curve6Particle
   curve7Particle curve8Particle curve9Particle curve10Particle
   curve11Particle curve12Particle curve13Particle curve14Particle
   curve15Particle curve16Particle;
   expression -s "radialField1.magnitude = sin(frame*20)+5"
   -o radialField1 -ae 1 -uc all ;DisplayShadedAndTextured;
   playblast -percent 50 ;

   (uniform)统一力场测试
   保持这个场景,执行下面的脚本
   currentTime 0 ;
   select -r uniformField1 ;delete;
   uniform -pos 7 4 0 -m 20 -att 5 -dx 1 -dy 0 -dz 0
   -mxd -1 -vsh none -vex 0 -vof 0 0 0 -vsw 360 -tsr 0.5 ;
   connectDynamic -f uniformField1 curve2Particle curve1Particle
   curve3Particle curve4Particle curve5Particle curve6Particle
   curve7Particle curve8Particle curve9Particle curve10Particle
   curve11Particle curve12Particle curve13Particle curve14Particle
   curve15Particle curve16Particle;
   select -r uniformField1 ;
   setKeyframe "uniformField1.tx";
   currentTime 50 ;
   move -r -14 0 0 ;
   setKeyframe "uniformField1.tx";
   currentTime 100 ;
   move -r 14 0 0 ;
   setKeyframe "uniformField1.tx";
   currentTime 0 ;
   DisplayShadedAndTextured;
   playblast -percent 50 ;

(gravity)重力场测试
   点击按钮“Sl_S”按钮,选择屏幕上显示的所有弹簧,修改 damping 0;修改 damping 0;保持这个场景,执行下面的脚本。
   select -r uniformField1 ;delete;
   playbackOptions -min 0 -max 120;
   currentTime 0 ;
   select -r nurbsPlane1 ;
   setKeyframe "nurbsPlane1.rx";
   setKeyframe "nurbsPlane1.tz";
   currentTime 10 ;
   rotate -r 25 0 0 ;
   move -r 0 0 -6 ;
   setKeyframe "nurbsPlane1.tz";
   setKeyframe "nurbsPlane1.rx";
   gravity -pos 0 4 0 -m 4 -att 0 -dx 0 -dy -1 -dz 0
   -mxd -1 -vsh none -vex 0 -vof 0 0 0 -vsw 360 -tsr 0.5 ;
   connectDynamic -f gravityField1 curve2Particle curve1Particle
   curve3Particle curve4Particle curve5Particle curve6Particle
   curve7Particle curve8Particle curve9Particle curve10Particle
   curve11Particle curve12Particle curve13Particle curve14Particle
   curve15Particle curve16Particle;
   setAttr "FurAttractors1.Influence" 1;
   currentTime 0 ;
   DisplayShadedAndTextured;
   playblast -percent 50 ;

   上述,只是部分的力场测试,大家有兴趣的话可以做更多的比较。上面的脚本,都是经过反复验证的,很好用,并且速度很快,如果你实在看不懂,那就请一句一句的执行,以“;”表示为一句。我的经验和关键参数全都在上面的脚本里了。大家不要问我为什么不用汉字,而用脚本,其实,我是实在找不到比用脚本告诉你更好的方法了,多看看,你也许会悟出点门道,了解Maya的语言,其实就是了解Maya的真正面貌。
   5 分吹草地***(超实用的动力学草地)
   到了精彩的部分了,如果你现在还没用启动Maya,那接下来激动人心的时刻你是感受不到了。
   第一步:用这个脚本创建一个比较复杂的场景
   日出时一个安静的草地被一个意外到来的足球而打破,背景用了夸张的手法,从清晨直到正午,灯光的变化使得整个场景更加生机勃勃。场景中有一个可供渲染的摄像机 Cam_view,和一个长满草的坡地。调皮的足球在你执行脚本的时候已经将Key烘焙好了,所以现在的回放速度应该是十分流畅。材质和灯光都已经设置好了,当然你不满意还可以继续调整。
   第二步:为草地添加动力学吸引器
   选择草地平面 "ground",Fur->Create Attractor,请设置如图,以便使接下来的操作不至于出错。

第三步执行这个脚本为你的草地添加力场。
   如果你的第二步按图执行的话,这一步将不会出错。
   第四步:现在场景有点复杂了,回放速度也慢了很多;很多东西如果你在视图看不到,可以在Outliner里查找,另外场景为你新增加了几个层,方便你的选择。
对于草地的运动当然还可以进一步调整,比如将粒子与草地平面产生碰撞等,产生更精确和细腻的效果。接下来的事情你应该很熟悉了,选渲染设置。设置Production Quality的图像品质,建议用 HD 720 输出模式,锁定等比后你可以自定义图像大小。试试看吧,一个含有动力学草地的短片即将在你的手中诞生。

   小节:
   虽然场景中的几乎所有参数都已经设置好,你还是可以根据你的喜好来调整的。场景中的做法和参数应该是很有价值的,保存场景或是保存创建场景的脚本,你可以仔细研究,算是对我们这个系列教程的总结和实战发挥。
   创建场景的脚本中附加了很多有用的东西,比如,如何让Maya为你立刻创建一个足球,还有一个不错的动态无缝天空,变化的流云,例外场景中的图面气氛也是很优秀的,如果你是初学者,那要好好研究一下了。
   结束:
   当你看到这里时,我想我可以在网上教程中讲到的MayaFur的技术点,都讲完了。
   学习应该是很快乐的,在大家开心的欣赏直观而又思路清晰的教程时,是否可想到在你们的学习之路上,这个教程将会是带动你学习Maya兴趣的重要部分。
   或许教程中的还有很多内容没有讲完整,那是想留更多的空间让你来试验和感受,当你在学习中得到一份收获时,那种喜悦是无法言表的,在大家的学习之路上,这或许只是一滴水,一块石,但愿用我一点点的时间能激起大家学习的千层浪。虽然你在网上可以如此轻松的浏览和学习到Maya的诸多知识,但请不要忘记那些编绘教程的网友,当然也包括我。他们是用自己的知识和时间来换取你的进步。或许我们是同道中人,或许还不是;但是只要你可以保持良好的学习力,相信在CG的天空一定会有你的光辉。
   中国的CG之路还很长,我或许和你一样都在等待,等待一个真正可以一展的时代;在那一刻到来之前我们所有能做的只是准备,再准备。如果你是个热爱学习的人,你是高尚的。因为这世界上所有高尚的东西都是要花时间和精力去学的,包括Maya 。
最后,要建议大家选择一个适合你的主题进行练习,那当然不是长发飘飘或是剧烈运动的毛发;即使如此,Maya的Fur还是能够创造出多种多样优秀的毛发效果。想要熟悉掌握本篇所有的内容,获得更多有关Fur的控制能力:不断练习,也只有不断练习,才是个好办法。

加载全部内容

相关文章
相关专题