有关使用 nHair 的高级提示

以下是头发处理的建议提示。

最大头发密度选项变量

有助于了解以下选项变量:

createHairMaxDensity

其默认值为 100。若要增大该值,请键入:

optionVar -intValue createHairMaxDensity 150;

这将决定可以在曲面上创建或绘制的最大行/列的头发。根据毛囊在该分辨率栅格中的位置对毛囊进行命名。这一命名的原因在于“绘制头发工具”(Paint Hair Tool)根据该命名查找给定 UV 位置的头发。

如果该变量变大,则在曲面上可绘制的最大毛囊数将变大;但是,绘制也将变得较为缓慢,即便是绘制低密度毛囊。如果更改该变量,则以前创建的头发系统将变得不可绘制(在一个区域进行绘制可能会影响笔刷覆盖范围以外的其他毛囊)。

如果绘制头发较慢,减小变量的值可能会有所帮助,但是您不能创建高密度毛囊。

默认情况下为 100x100 栅格,最多可在每个曲面绘制 10000 个毛囊。

使用 pfxstrokes 命令

pfxstrokes 命令的基本用途是将“Paint Effects”管信息转储到文件中。这适用于从“Paint Effects”中生成曲线,或发送信息到其他渲染器。“管”(Tubes)处于启用状态时,头发和笔刷的数据格式不同。

“Paint Effects”可以调用 runtimecreate 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)后,开始点在重力作用下保持移动,不会因约束而被曲线张力拉动。

头发作为线变形器

当头发曲线成为移动对象的子级并作为线变形器应用时,其有助于形成抖动效果。头发可以用作线变形器,以使所有或部分曲面动态化。