以下是头发处理的建议提示。
有助于了解以下选项变量:
createHairMaxDensity
其默认值为 100。若要增大该值,请键入:
optionVar -intValue createHairMaxDensity 150;
这将决定可以在曲面上创建或绘制的最大行/列的头发。根据毛囊在该分辨率栅格中的位置对毛囊进行命名。这一命名的原因在于“绘制头发工具”(Paint Hair Tool)根据该命名查找给定 UV 位置的头发。
如果该变量变大,则在曲面上可绘制的最大毛囊数将变大;但是,绘制也将变得较为缓慢,即便是绘制低密度毛囊。如果更改该变量,则以前创建的头发系统将变得不可绘制(在一个区域进行绘制可能会影响笔刷覆盖范围以外的其他毛囊)。
如果绘制头发较慢,减小变量的值可能会有所帮助,但是您不能创建高密度毛囊。
默认情况下为 100x100 栅格,最多可在每个曲面绘制 10000 个毛囊。
pfxstrokes 命令的基本用途是将“Paint Effects”管信息转储到文件中。这适用于从“Paint Effects”中生成曲线,或发送信息到其他渲染器。“管”(Tubes)处于启用状态时,头发和笔刷的数据格式不同。
“Paint Effects”可以调用 runtime 和 create MEL 脚本。这些被定义为笔刷节点上的字符串属性:paint create 函数和 paint runtime 函数。将字符串设定为函数的名称以进行调用。该 MEL 函数有一组必须传入且返回的指定参数。工作流是复制提供的其中一个模板 MEL 文件、更改函数名和文件名,然后编辑函数的内部。如果在笔刷上已经设定了任何 runtime 或 create 函数,则绘制笔划时调用这些函数。pfxstrokes 命令虚设笔划的重画调用,不绘制任何内容。因此,调用 pfxstrokes 命令时也会对这些脚本进行求值。
毛囊节点可用作多边形上的点约束。一种方法是创建一些头发,然后删除除毛囊以外的所有内容。例如,删除头发系统、pfxHair 和“开始”(Start)位置曲线。然后,可以使一个对象成为毛囊的一个子对象。或者,可以使用毛囊节点的脚本。
下列示例脚本将圆锥体约束到多边形球体的曲面。圆锥体将相对于多边形已定义 UV 点的法线和切线移动。(如果 UV 值设定为已定义多边形 UV 集以外的一个值,则该点将出现在球体的中心。)
// create a cone, poly sphere and a follicle node string $sphere[] = `polySphere`; string $cone[] = `cone`; string $fol = `createNode follicle`; // get the parent transforms of the follicle string $folTform[] = `listTransforms $fol`; // connect the sphere to the follicle connectAttr ($sphere[0] + ".outMesh") ($fol + ".inputMesh"); connectAttr ($sphere[0] + ".worldMatrix[0]") ($fol + ".inputWorldMatrix"); // apply the follicle output positions to its own transform connectAttr ($fol + ".outTranslate") ($folTform[0] + ".translate" ); connectAttr ($fol + ".outRotate") ($folTform[0] + ".rotate" ); // parent the cone under the follicle parent -r $cone[0] $folTform[0]; // the default uv of 0 0 doesn't exist on the poly sphere, so we set it setAttr ($fol + ".parameterV") 0.5; // rotate the cone to point along the normal setAttr ($cone[0] + ".rotateY") -90;
使用“变换”(Transform) nConstraint 和组,或将 dynamicConstraintShape 节点约束到正在移动的对象。这将锁定动力学曲线,以使其跟随对象的扭曲和旋转,好比弹簧上附加了刚度附件。如果动力学曲线附加不稳妥,则将是一个约束错误。相对约束位置在开始帧处确定,因此在开始帧处不施加力。需要通过抓握的手对“开始”(Start)曲线进行建模。
对根部附近手下方的毛囊进行分组、然后使用“变换”(Transform)将绳索的任意一端约束到成组的另一只手,也可以通过这种方式对跳绳进行处理。但是,不可以使用 follicleShape 节点上的“点锁定”(Point Lock)属性的“无附加”(No Attach)选项约束开始点。选定“无附加”(No Attach)后,开始点在重力作用下保持移动,不会因约束而被曲线张力拉动。
当头发曲线成为移动对象的子级并作为线变形器应用时,其有助于形成抖动效果。头发可以用作线变形器,以使所有或部分曲面动态化。