MH Groom Builder
MH Groom Builder 是一个集中式的工作空间,可对插值的毛发进行造型,它还结合了关键Groom制作流程,包括发束生成、导线插值、发簇化。 只要提供了蒙皮几何体、密度遮罩和导线曲线,此节点就能自动生成插值毛发。 通过使用遮罩和特性,Groom的所有阶段都可实现完全可自定义,从而让你能够精确地控制毛发的形状和密度。 Groom Builder 将Houdini的许多标准Groom制作工具整合为了一个节点,供为插值毛发设计造型所用。 你只需启用几个特性就能轻松实现发簇化。
Groom编译器遮罩(Groom Builder Masking) 让你可使用各种映射方法灵活地控制毛发的密度。 你可以使用 密度特性(Density Attribute)、 密度纹理(Density Texture)和 遮罩纹理(Mask Texture) 等参数调节整个表面的毛发比例,从而精确控制分布和造型。
发束管理(Strings Management) 可控制插值毛发在Groom编译器中的生成方法。
生成新发束(Generate New Strands) 能以程序化的方式为表面填充插值毛发,并可通过指定的遮罩或纹理输入使用 Groom编译器遮罩 功能加以控制。
使用发束输入(Use Strand Input) 会使用被输入到Groom编译器中的所有发束。
生成发束(Generate Strands) 可控制 毛发在表面的散布方式。 密度(Density) 参数可决定发束的数量。使用相邻的下拉菜单的特性或纹理即可将其重载。 发根散布种子(Root Scatter Seed) 可在保持密度的同时调整随机分布,而 发根松弛迭代次数(Root Relax Iterations) 则能提高发束放置的均匀度,但会增加计算量。额外散布迭代次数(Extra Scatter Iterations) 可进一步完善散布的结果。 重新采样新曲线(Resample New Curves) 可根据CV数调整曲线的分辨率,而 为输出发束添加输入导线(Add Input Guides to Output Strands) 可在最终的发束输出中包含原始导线。
插值选项(Interpolation Options) 下的 相邻数量(Number of Neighbors) 决定了毛发插值所使用的导线数量。
分隔(Parting) 可启用或禁用Groom中的分隔线。 启用后,你可以使用分隔线影响毛发的方向和流向。
颜色(Color) 选项卡可控制发束的外观颜色。复制工作空间颜色(Copy Workspace Color) 可导入Groom工作空间的颜色设置,而 颜色梯度(Color Ramp) 可定义发束颜色从发根到发梢的渐变。
宽度(Width) 可控制发束的粗细。你可以使用 设置宽度(Set Width) 来调整宽度,而其下方的 宽度(Width) 字段可定义曲线的整体宽度。 你可以使用 宽度轮廓(Width Profile) 调整每根发束从发根到发梢的宽度。
限制零宽度(Clamp Zero Widths) 会强制设定最小值,以防止发束宽度为零。 启用后,请用 宽度最小值(Width Minimum Value) 可设置允许的最小曲线宽度。其默认值为0.000005。 这能帮你避免因零宽度几何体而造成的渲染或模拟问题。
增益(Gain)为调整现有曲线宽度提供了一个乘数。 启用 使用增益(Use Gain) 后,增益(Gain) 的值可缩放当前宽度,值为1则宽度保持不变,低于1则减少宽度,高于1则增加宽度。
随机化(Randomize) 选项则可以为曲线宽度引入变化。 启用 使用随机化(Use Randomize) 后,指定比例(Fraction) 的曲线就会受到影响。 随机种子(Random Seed) 可控制随机选择。随机最小值(Random Min) 和 随机最大值(Random Max) 可定义曲线宽度的乘算范围。随机形状(Random Shape) 会从发根到发梢逐发束地混合这种变化。
发簇化(Clumping) 选项卡会根据导线的输入来控制发束聚集成簇的方式。 启用 导线发簇化(Guide Clumping) 即可让发束直接按输入的导线构成发簇。 发簇化细分(Clumping Subdivisions) 设置决定了发簇化的细化程度,选项分别为无次级发簇化(No Subclumping)、一级(Primary)、二级(Secondary)或三级(Tertiary)发簇化。
在 导线发簇化 子分段中,启用发簇化细分开关则激活发簇化。 混合(Blend) 参数可调整发簇化效果的整体强度。使用相邻的下拉菜单特性即可将其重载。
一级(Primary) 发簇化细分能实现程序化的一级发簇化,并构成一级的发束组群,由此衍生出二级和三级的发簇。 其下的 混合(Blend) 参数可控制发簇化的整体影响。使用下拉菜单的特性即可将其重载。
如需详细了解导线处理的卷曲度(Frizz)和长度(Length),请参阅相关Houdini文档。 如需详细了解 扩散(Spread) 和 无序延伸(Scraggle) 功能,请参阅 MH扩散 和 MH无序延伸 小节。
二级(Secondary) 发簇化细分可实现程序化的二级发簇化,并在一级发簇的基础上添加更精细的发簇效果。 其下的 混合(Blend) 参数可调整发簇化效果的整体强度。使用下拉菜单的特性即可将其重载。
三级(Tertiary) 发簇化细分可实现程序化的三级发簇化,并在二级发簇的基础上添加最为精细的发簇效果。 其下的 混合(Blend) 参数可控制发簇化效果的强度。使用下拉菜单的特性即可将其重载。
发束造型(Strand Styling) 选项卡提供了额外的控制功能,供你塑造和细化发束的效果。 碎发(Flyaways)、卷曲(Frizz)和长度(Length)等参数引用了Houdini的导线处理工具,而环绕扩散(Around Spread)、抬升扩散(Lift Spread)和无序延伸噪点(Scraggle Noise)则引用了相应的MH Groom工具。
这些设置让你能够以导线驱动式的造型方法或程序式的造型方法,精细地调整发束的行为和外观。
碰撞(Collisions) 选项卡提供了相关控制选项,让你可以使用 蒙皮VDB解决发束与蒙皮几何体之间的交集问题。
传递特性(Transfer Attributes)功能让你可以指定点、顶点、图元和细节特性,以此将蒙皮和导线的特性复制到发束的输出中,并可选择添加紧密度(Tightness)特性以强化你对模拟或着色的控制。
导线输出管理(Guides Output Management) 可控制导线数据的传递。 你可以使用自定义或默认的群组名称保存输入导线,且可以将发簇相关的导线(一级、二级和三级)作为单独的群组包含在内。 输出中同样可以保留来自原导线的分隔线。
可视化(Visualize) 选项卡为发簇的可视化提供了调试和显示的选项。调试显示选项(Debug Display Options) 让你可以选择要显示的内容,即 无(None)、一级(Primary)、二级(Secondary) 或 三级(Tertiary) 发簇。
发束或导线(Strands or Guides) 可指定是对发束、导线还是两者均应用发簇可视化。
统计数据(Stats) 让Groom相关的数据可见。 启用 显示Groom数据(Show Groom Data) 后,可显示从内部发束和导线流中提取的拓扑信息,从而方便你进行调试和分析。
MH Groom Clump Builder
MH Groom Clump Builder 负责曲线的成簇和造型设计,同时还支持发束的生成和管理。 可使用基于导线的分组,或通过一级、二级和三级发簇对导线曲线进行发簇化。可用的造型选项包括紧密度、卷曲和扭转等。 你可以使用输入来管理或创建发束。
该节点与 MH Groom Builder的功能一致,但不包括毛发插值的设置。详情请参阅 Groom编译器文档 中的 发簇化 小节。
MH Groom Multi Clump
MH Groom Multi Clump节点 是 MH Groom编译器 所使用的发簇化系统,且完全支持一级、二级和三级发簇化。 它可以将导线曲线聚合成发簇,并充当标准 发簇SOP 的封装器。 你可以用此节点创建多种发簇形状,比如各种紧密度、卷曲和扭转的变体,并将这些变体分布到发簇中,以简化为发簇图案添加自然变化的过程。
MH Groom Clump Tighter
MH Groom Clump Tighter 使用应用于导线或蒙皮的 遮罩特性(Mask Attribute) 收紧发簇,从而局部控制发簇定义。
MH Groom Scraggle
MH Groom Scraggle 会采用与Houdini的Attribute Noise节点类似的方法,为曲线应用基于3D噪点的变形处理。
它提供了一种简化的方法,可为Groom添加自然的变化和不规则性。
MH Groom Spread
MH Groom Spread 节点通过在横向和纵向上展开曲线来调整曲线的形状。 环绕扩散(Around Spread) 可使曲线绕发根旋转轴横向移动。
而 抬升扩散(Lift Spread) 则将曲线向上或向下移动,使之与蒙皮相切。 该功能以 弯曲导线处理(Bend Guide Process) 方法为基础。
MH Groom Width
宽度(Width) 可控制发束的粗细。你可以使用 设置宽度(Set Width) 来调整宽度,而其下方的 宽度(Width) 字段可定义曲线的整体宽度。 你可以使用 宽度轮廓(Width Profile) 调整每根发束从发根到发梢的宽度。
限制零宽度(Clamp Zero Widths) 会强制设定最小值,以防止发束宽度为零。 启用后,请用 宽度最小值(Width Minimum Value) 可设置允许的最小曲线宽度。其默认值为0.000005。 这能帮你避免因零宽度几何体而造成的渲染或模拟问题。
增益(Gain) 为调整现有曲线宽度提供了一个乘数。 启用 使用增益(Use Gain) 后,增益(Gain) 的值可缩放当前宽度,值为1则宽度保持不变,低于1则减少宽度,高于1则增加宽度。
随机化(Randomize) 选项则可以为曲线宽度引入变化。 启用 使用随机化(Use Randomize) 后,指定 比例(Fraction) 的曲线就会受到影响。 随机种子(Random Seed) 可控制随机选择。随机最小值(Random Min) 和 随机最大值(Random Max) 可定义曲线宽度的乘算范围。
MH Groom Framing
MH Groom Framing 可计算和操控曲线的方向、比例和 curveu 特性。 该节点在 MH Groom Braid 工具中充当编译模块。
启用 添加方向特性(Add Orientation Attributes) 即可为曲线添加方向特性。
启用 添加比例特性(Add Scale Attribute) 即可为曲线添加比例特性。 本工具默认添加 pscale 特性。 例如,如果你使用输出曲线在MH Groom Guide to Tube节点中创建管状体,那么你就可以看到比例特性的效果。 曲线的 pscale 特性将定义管状体的宽度比例(Width Scale)。
添加曲线U特性(Add Curve U Attribute) 会为每条曲线创建一个范围在0到1之间的 curveu 点特性,同时存储沿曲线从发根到发梢各个点的单位曲线参数值。 发根 = 0,发梢 = 1。
MH Groom Braid
MH Groom Braid 用于创建有发辫的Groom。 该节点可以完全控制发辫的形状、频率、发束属性和随机性,从而实现各式各样的发辫样式。
发束数量(Num Strands) 参数可定义发辫中使用的发束数量。 轮廓(Profile) 可控制发辫的整体形状,并且可设定发辫的比例。使用 轮廓特性(Profile Attribute) 即可将其重载(默认为 pscale)。 宽度(Width) 和 高度(Height) 可定义发辫的物理尺寸,而 轮廓比例(Profile Scale)、宽度比例(Height Scale) 和 高度比例(Height Scale) 可控制这些数值随发辫长度的变化。
每周期样本数(Samples Per Cycle) 可控制频率(Frequency),同时还可决定一个发辫周期由多少个点组成。 周期密度(Cycle Density) 可设定沿曲线分布的周期数量,而 周期偏移(Cycle Offset) 可决定这些周期的起始位置。周期比例(Cycle Scale) 可调整沿发辫长度的密度,以实现动态变化。
粗细(Thickness)、 宽度(Width) 和 高度(Height) 等针对发束的属性定义了发辫中每根线的尺寸。 你可以使用 粗细比例(Thickness Scale)、 宽度比例(Width Scale)和 高度比例(Height Scale) 等属性,沿发束长度调节上述属性。 你还可以使用 粗细挤压(Thickness Squeeze)(在每个发辫周期内调整粗细)和 粗细挤压比例(Thickness Squeeze Scale)(在整个发束中应用这种变化) 这两种属性实现其他塑形调整。
使用添加噪点(Add Noise)功能即可引入随机性,从而为整个发辫赋予基于噪点的变化。
MH Groom Bun
MH Groom Bun 节点可为Groom发髻生成导线曲线并为其设计造型。 它可根据点创建可自定义的曲线,并让用户选择 麻花型(Twist) 或 甜甜圈型(Donut) 样式。 该节点提供了调整发髻的整体形状、大小和结构的功能按钮,能为各种Groom发髻造型带来灵活性。
使用 概率(Probability) 或 蒙皮特性(Skin Attribute) 即可实现发髻的分布,而 变体(Variants) 参数则决定了样式变体的数量。
形状(Shape)功能按钮 可定义初始发髻导线曲线的生成方式。 生成样式(Generation Style) 的选择可决定导线的布局:单一中心(Single Center) 会在中心点放置单条导线。边缘(Edge) 会将导线均匀分布在以中心点为圆心的指定半径范围内。散布(Scatter) 会在中心点周围随机放置导线,并提供其他参数来控制导线放置的松弛度和种子值。
发髻类型(Bun Type) 提供两种样式:麻花型(Twist) 和 甜甜圈型(Donut)。每种样式都有专属的塑形参数。
MH Groom Cornrow
MH Groom Cornrow 可在蒙皮上生成导线,并将其输入到发辫中,从而创建玉米辫效果。 要分布曲线,请使用 曲线周围距离(Distance Around Curve) 或 自定义遮罩特性(Custom Mask Attribute),或 结合 运用两者。
默认值是 曲线周围距离(Distance Around Curve)。 该方法会在 密度距离(Density Distance) 指定的距离内散布曲线。
自定义遮罩特性(Custom Mask Attribute) 会将曲线散布在由 密度遮罩特性(Density Mask Attr) 所定义的已绘制蒙皮特性范围内。
结合式 方法会在由前两种方法 (曲线周围距离(Distance Around Curve) 和 自定义遮罩特性(Custom Mask Attribute)) 所共同定义的区域内散布曲线。
使用 结合(Combined) 功能从 曲线周围距离(Distance Around Curve) 方法所放置的曲线中减去 自定义遮罩特性 的效果如下。
你可以使用程序化噪点类型(比如Perlin、Simplex、Worley Cellular)修改导线的分布,从而实现自然的随机化效果。
导线形状的操作包括发梢偏移、弯曲、交叉混合等,另外还有各种高级操作,如基于长度的曲线删除、基于蒙皮距离的推移,以及精确的分隔线控制等。
特性和外观(Attributes & Appearance) 分段可管理曲线的粗细、引入随机形状变化、输出关键图元特性(包括 clumpid 和 braidid ),以支持下游的处理和进一步的自定义。
MH Groom Guide Fill
MH Groom Guide Fill 可程序化地生成基于管状体的导线曲线,并对宽度的缩放、扭转、分布密度和特性输出进行参数化控制,从而实现精确的塑形和自定义。
若启用 添加填充宽度(Add Fill Width),那么生成的曲线中会新增 pscale 特性。"填充半径(Fill Radius)" 可控制填充比例的半径。按特性缩放(Scale by Attribute) 会为生成的曲线添加 pscale_gain。 你还可以使用随机化(Randomize)参数对其进行随机化。
你还可以使用扭转(Twist)功能进一步修改生成的曲线。翻滚(Roll)可控制曲线围绕管状体扭转的度数。完全扭转(Full Twist)指360度完全扭转的次数。部分扭转(Partial Twist)指未满360度的扭转次数。 扭转坡度(Twist Ramp) 可控制曲线沿导线曲线长度方向扭转的紧密程度。
你可以在特性和外观(Attributes & Appearance)选项卡中启用粗细特性(Thickness Attribute),并为生成的导线曲线添加宽度(width)参数。粗细(Thickness)可设置曲线的宽度,而粗细轮廓(Thickness Profile)可修改从发根到发梢的曲线宽度。
图元特性(Primitive Attributes)是要输出到导线流上的图元特性的列表。 点特性(Point Attributes)是要输出到导线流上的点特性的列表。 开启输出曲线U(Output Curve U)即可为生成的导线曲线添加curveu参数。
发根导线(Root Guides)可启用或禁用导线的生根功能。
该工具非常适合用来打造结构化的Groom,并为其赋予均匀且可自定义的分布和风格化的造型,包括扭转变形和随机宽度变化等。
MH Groom Guide to Tube
MH Groom Guide to Tube可将导线曲线转换为可编辑的管状几何体。其输出格式包括NURBS表面和多边形等。 该节点在MH Groom Braid工具中充当了基础的编译模块。
"横截面分割(Cross-section Divisions)"可控制管状体的横截面分割数。 当输入曲线定义了pscale特性时,宽度比例(Width Scale)会缩放管状体的直径。 若输入曲线没有定义"pscale"特性,则启用添加宽度(Add Width)选项。 启用"添加宽度(Add Width)"后,宽度(Width)特性会被默认设置为0.01。 更改该值即可调整管状体的直径。 宽度坡度(Width Ramp)可控制管状体长度方向上的直径的缩放。
添加扭转(Add Twist)会围绕输入曲线的点切线扭转管状体。完全扭转(Full Twists)可定义管状体完全扭转的次数。解缠宽度(Detangle Width)可以解缠相互缠绕的管状体,以避免出现交叉。先前宽度比例(Previous Width Scale)会放大相互缠绕的管状体,以弥补碰撞间隙,同时尽量避免交叉的情况。
碰撞粗细(Collision Thickness) 可定义相互缠绕的管状体之间的碰撞偏移量,而 碰撞平滑(Collision Smooth) 则会平滑掉管状体的宽度比例值。
蒙皮峰值距离(Skin Peak Distance) 会将管状体推到蒙皮几何体的表面。你可以使用 输出(Output) 参数选择管状几何体的类型,即 NURBS表面(NURBS Surface) 或 多边形(Polygons)。
来自导线的特性(Attributes from Guides) 可决定并列出管状体会从导线继承的所有特性。
MH Groom Tube Fill
MH Groom Tube Fill 可在管状几何体内生成可编辑的曲线,并为设计样式。 该节点可以精细地控制曲线分布、发簇化、扭转、宽度塑形和特性输出等,因此对发辫、发髻或其他基于管状体的结构化Groom而言非常适用。
在 分布(Distribution) 分段下,你可以将曲线生成的分布方法设定为 概率(Probability) 或 蒙皮特性(Skin Attribute)。
在散布(Scatter)分段下,曲线在管状体内的分布模式有两种:力总计数(Force Total Count)和密度(Density)。
力总计数(Force Total Count)模式可以生成固定数量的曲线,具体数量由曲线数量(Curve Count)参数控制。
密度(Density)模式会根据给定的密度值分布曲线,即将其理解为单位表面积内的曲线数量。
启用创建发簇(Create Clumps) 后,曲线会被划分到给定的发簇区域中,而发簇的数量由 发簇数量(Clump Count) 决定。 扭转(Twist) 分段可处理基于发簇的扭转和偏移。
按发簇扭转(Twist By Clump) 会切换扭转的功能,并为管状体中心周围的所有发簇应用扭转。扭转角度(Twist Angle) 可决定旋转的度数,而 完全扭转(Full Twist) 可设置各发簇的完整旋转次数。
按发簇推移(Push by Clump) 会让整个发簇从管状体中心向外移动。推移(Push) 可定义偏移量,而 推移坡度(Push Ramp) 和 推移深度(Push Depth) 可调节沿曲线应用推移的方式及其径向位置。
MH Groom Cut Root
MH Groom Cut Root 可随机化曲线的发根位置。 其实现方法是从发根开始剪切曲线的长度,并将发根重新投影到蒙皮几何体。如需更多信息,请参阅 MH Groom玉米辫。
MH Groom Cut Root 可为曲线的发根位置引入变化。其方法是从发根修剪曲线,并将其重新投影到蒙皮几何体上。 这样可以为发根的位置带来微妙的随机性和断裂感,从而让Groom显得更自然且不单调。
范围(Range) 参数可定义剪切点距离曲线原发根位置的长度,该长度是沿着曲线的长度方向测量的,并会被投影到蒙皮上。比率(Rate) 可控制受此操作影响的曲线的比例,具体是一个0到1之间的值。 若启用 随机化(Randomize) 功能,那么单一的 范围(Range)会被 最小范围(Min Range) 和 最大范围(Max Range) 所取代,从而为每条曲线实现长度不定的剪切。 这可以为发根位置带来进一步的不规则性。 发根投影(Root Projection) 参数可控制如何将新的发根位置重新投影到蒙皮上,以及如何将修剪后的发根整合回表面。
MH Groom Rooter
MH Groom Rooter 节点可为蒙皮几何体剪切、投射和铺展曲线发根。 你可以使用该节点为发髻、发辫或玉米辫制作外形逼真的发根。
剪切导线(Cut Guides) 选项可移除蒙皮几何体内的曲线发根和任意后续的点。 剪切方法(Cut Method) 参数提供了两个选项。 删除蒙皮内的点(较快)(Delete Points Inside Skin (faster)) 可删除蒙皮内的所有点,但可能导致曲线的某些部分悬浮在表面之上。
带蒙皮的布尔曲线(较慢)(Boolean Curves with Skin (slower)) 则会使用布尔操作,在曲线与蒙皮的精确交点处创建新的根点。
启用 将根部投影到蒙皮(Project Roots to Skin) 即可将所有曲线发根直接投影到蒙皮表面。 若启用此选项,则 扩展发根(Expand Roots) 选项将变得可用。该选项能让发根从投影点开始向四周呈放射状扩散,然后再重新投影。
片段特性(Piece Attribute) 可定义哪些曲线会被分组到一起并一起生根。密度半径(Density Radius) 可设置发根可以在蒙皮上扩散的区域半径,而 密度衰减(Density Falloff) 可控制扩散效果在半径外缘方向上衰减的程度。
平滑(Smooth) 选项允许在曲线生根后对其进行平滑处理。 此选项只会影响原始曲线和新投影发根之间的区域。平滑迭代次数(Smoothing Iterations) 可决定平滑操作的应用次数,而 平滑位置(Smoothing Location) 可指定平滑效果在曲线上的作用位置。
推移量(Push Amount) 会将曲线的发根位置从蒙皮几何体处向外稍稍偏移。这有助于减少视觉穿透或穿模。
MH Groom Doctor
MH Groom Doctor 被用于Groom工作空间的末尾,可确保在进行输出或渲染之前,最终的曲线(包括发束和导线)都是干净、有效且符合要求的。 该节点会扫描常见的Groom制作问题,并允许你忽略、标记或自动修复各种类型的问题。
针对所有类型的警告,你都可以选择三种操作。忽略(Ignore) 即完全跳过检查,不报告问题。标记(Mark) 即标记有问题的几何体、将其添加到用户命名的群组中,且不应用更改,同时显示一条警告消息。修复(Repair) 即尝试在可能的情况下自动修复有问题的几何体。
点检查(Point Checks) 分段会默认识别并删除"NaN(非数值)"字段。 这些有问题的点通常很难被检测到,但它们会导致不稳定的问题。 不属于任何曲线的非连接点也会被移除。 宽度值为零的点会被标记,因为它们可能不可见,或会导致渲染问题。
图元检查(Primitive Checks)会处理数种问题。 长度为零的曲线(可能是程序化操作的结果)会被删除。 设置导线长度时可能出现的单点曲线也会被删除。 超过255个点的曲线会被标记,以确保其兼容虚幻引擎等游戏引擎的限制。 发根位置重叠的曲线会被识别并去重,最终只保留一个实例。 这个问题在合并Groom几何体时很常见。 你可以分别针对导线和发束调整重叠阈值。针对发束,你还可以为其开启或关闭重叠测试。
在所有点处宽度均为零的曲线会被删除,因为这种曲线在着色模式下几乎不可见。 隐藏的曲线—即由可视性SOP(Visibility SOP)隐藏的曲线,或在导线Groom SOP中隐藏的曲线—会被自动设为可见。 针对 id 特性不唯一的曲线,将使用图元索引重载其 id ,以保持唯一性。 缺失 name 特性的曲线会被标记,因为命名对于遮罩或分区很有用,但并不关键。 发根不在蒙皮或Substrate上的分离曲线也会被标记。 你可以使用 分离阈值(Detached Threshold) 参数调整检测分离发根的阈值。
在 特性和统计数据检查(Attributes & Stats Checks) 选项卡中,若曲线缺少所需的 skinprim 和 skinprimuv 特性,则将重新计算这些特性以进行修复。 若启用 重新计算蒙皮特性(Recompute Skin Attributes),那么无论这些特性是否已经存在,它们都会被重新计算。 如果导线的数量超过3000条(即目前建议的上限),该节点还会发出警告。 另外,如果导线流在点或细节级别上缺少 width 特性,该节点也会发出警告。
MH Groom Merge
此节点会依据其输入合并Groom几何体,并确保特定于Groom的特性能被正确地保存。 此节点会将多个输入合并为一个几何体流,以供进一步处理。 为了在以后的网络中区分被合并的几何体的不同部分,你可以事先使用 Group 节点,将输入几何体分配到已命名的群组中。
在合并拥有匹配的发簇特性名称和值的曲线集时,系统会保留发簇特性(Clump Attribute)的各种ID,并确保其唯一性。 本节点支持最多合并30条输入。
绕过本节点会导致仅有第一条输入被导出。 这种情况下不会执行合并操作。
MH Groom Parting Lines Merge
此节点可合并和处理来自输入曲线的分隔线,并创建统一的分隔线表示形式,以供毛发插值和造型使用。 此节点支持分组、基于半径的影响、强度控制和可选的重采样功能,以优化性能。
群组(Group) 参数可定义哪一组输入曲线将被用作分隔线。 默认情况下,此节点会查找名为 partinglines 的群组。
分隔属性(Parting Properties) 下的 半径(Radius) 可设置各条分隔线的影响范围,这将决定其对整个曲面的毛发插值的影响距离。强度(Strength) 可控制分隔线对导线行为的影响强度。 值为1.0意味着分隔线一侧的导线完全无法影响另一侧的毛发,从而实现了强制的分隔效果。
MH Groom Mixer
此节点可混合两个Groom输入之间的曲线形状,从而实现平滑的导线位置插值。 此节点支持基于特性的匹配、基于遮罩的控制以及沿曲线长度的基于坡度的混合,因此此节点适合用于过渡Groom的变体或为程序化编辑分层。
群组(Group) 可指定要影响的图元子集。 只有该群组内的曲线才会被混合。
按特性匹配图元(Match Primitive By Attribute) 可根据匹配的图元特性实现混合,而无需依赖图元的顺序。 这样一来,即使输入未按索引对齐,也能确保导线混合能正常生效。 匹配特性(Match Attribute) 可定义用于匹配的特性,其默认值为 id,而id属于Groom制作工具会为导线和发束生成的常用特性。
混合(Blend) 可控制两个Groom之间的整体混合强度。 要重载此值,请选择蒙皮特性(Skin Attribute)选项,然后用蒙皮特性重载。 重载后,混合特性(Blend Attribute) 会指定使用哪个蒙皮特性来驱动混合值。
MH Groom Cull
MH Groom Cull 用于根据多种标准选择性地隐藏或移除曲线几何体。这些标准包括群组成员身份、体素化、概率、长度以及各种特性的值。 此工具适用于需要控制导线或发束的密度、可视性、位置优化的Groom制作流程,且无需永久删除几何体。
选择(Selection) 分段下的 群组(Group) 参数可定义要影响的图元子集,而 保持未选择(Keep Not Selected) 可反转该选择,从而为被定义群组之外的所有曲线应用各种操作。
启用 体素(Voxel) 分段下的 使用体素(Use Voxel) 即可激活基于体素的剔除。搜索点增益(Search Points Gain) 可设置点查找的半径乘数。"体素尺寸(Voxel Size)"可控制生成的VDB体积的分辨率,小于此尺寸的点无法被解析。点半径比例(Point Radius Scale) 会在转换之前使用 pscale 特性乘以粒子的尺寸。
概率(Probability) 分段下的 使用概率(Use Probability) 选项可启用随机剔除。比例(Fraction) 可定义受影响的曲线数量,其值为1时表示移除所有曲线,0.5表示移除一半曲线,0表示保留所有曲线。随机种子(Random Seed) 会更改随机选择的分布。
长度(Length) 分段让你能基于曲线长度进行剔除。 启用 使用长度(Use Length) 即可激活此模式。模式(Mode) 可定义是否剔除短于或长于指定的 相对长度(Relative Length) 的曲线。长度度量(Length Metric) 可控制长度的测量方式,即沿曲线的 弧长(Arc Length),或表示从起点到终点的直线距离的 发根到发梢长度(Root To Tip)。
针对特性驱动的剔除,导线特性(Guide Attribute) 让你能基于逐导线的特性进行控制。使用导线特性(Use Guide Attribute) 选项可启用此功能,而 导线特性名称(Guide Attribute Name) 可设定要使用的特性(默认值为 cullmask)。
模式(Mode) 提供比较选项,具体包括 等于(Equals)、大于(Greater Than)、小于(Less Than) 或 概率(Probability)。
值(Value) 可设置阈值,随机种子(Random Seed) 则要在使用概率的情况下引入变化。
同样地,蒙皮特性(Skin Attribute) 让你能基于蒙皮级别的数据进行剔除。使用蒙皮特性(Use Skin Attribute)可开启或关闭该功能,而 蒙皮特性名称(Skin Attribute Name) 可设置输入特性(默认值为 cullmask)。对于导线特性的剔除而言,模式(Mode)、值(Value) 和 随机种子(Random Seed) 的功能相同。
在 发簇特性(Clump Attribute) 分段中,剔除是基于特定于发簇的数据进行的。使用发簇特性(Use Clump Attribute) 可启用此选项,并使用 发簇特性名称(Clump Attribute Name)(默认值clumpid)指定特性。
模式(Mode)可决定剔除的应用方式,具体选项包括 体素(Voxel)、概率(Probability)、最长项(Longest)、混合中间项 和 最长项(Blend Median and Longest)、质心(Centroid) 和数量(Count) 等选项。
搜索点增益(Search Points Gain)、体素大小(Voxel Size) 和 点半径比例(Point Radius Scale) 可控制空间求值。
比例(Fraction) 可决定剔除曲线的比例,而 随机种子(Random Seed) 可将选择随机化。曲线数量(Num Curves) 可决定每个发簇保留的曲线数量。
MH Groom Transfer RBF
此运算符会使用径向基函数(RBF)插值方法,将毛发导线从一个蒙皮几何体转移到另一个蒙皮几何体。 它非常适用于在相似的拓扑结构或UV空间中重定向Groom,同时还能保留原Groom的整体结构和流向。
样本点数(Sample Points Count) 可决定RBF解算器用于插值的点数。 一般而言,值越高,变换越精确,但计算量越大。 建议使用默认值1000,但2000或3000之类的值也许能帮你矫正复杂变换中的陡降曲线。
样本点遮罩(Sample Points Mask) 可启用样本点分布的遮罩。 启用后,系统会将浮点特性从发束或导线转移到源蒙皮,从而生成密度遮罩。 这可以为解算器提供更优化、更具代表性的点分布。
匹配点和(Match Points With) 可定义在源蒙皮和目标蒙皮之间匹配样本点的方法,即使用UV或拓扑。
RBF设置(RBF Settings) 中的 核(Kernel) 可设置RBF插值使用的核函数类型。 不同的核函数会产出不同的插值行为和精度。
解算器(Solver) 可决定插值的方法。快速(Fast) 方法会使用Cholesky解算器,该求解器速度较快,但稳定性较差;而 稳健(Robust) 方法会使用奇异值分解(SVD)解算器,该求解器速度较慢,但结果质量更高。
若使用Cholesky解算器,那么你还可以使用阻尼(Damping)。 阻尼可以在解算器失败时帮助稳定解算器。 请从非常小的值开始,例如0.00001,然后逐步将值加大,例如0.0001、0.001、0.01,直到解算器成功。
最大迭代次数(Maximum Iterations) 可指定SVD解算器可执行的迭代次数。 如果解算器失败,那么请加大此值,以帮助其成功完成解算。
MH Groom Mirror
此节点可创建输入导线的镜像副本。
群组(Group) 可决定要被镜像的导线子集。 只有此群组内的导线才会受影响。
保留原项(Keep Original) 可决定原导线是否会随镜像导线被一起保留。
镜像组(Mirror Group) 让你能对镜像导线进行分组,而 "组名称(Group Name)" 可指定生成的组的名称。 默认名称为 "mirrored"。
搜索替换名称(Search Replace Name) 让你能重命名镜像导线的特性,有助于在对称的Groom之间保持命名的一致性。
MH Groom Ambient Occlusion
此节点会使用基于顶点的方法,计算Groom曲线上的环境光遮蔽(AO)的近似值。
MH Groom Export 节点也可以计算环境光遮蔽。
曲线剔除百分比(Curve Cull Percent) 可定义在计算AO之前要忽略的曲线的比例。 建议为浓密的发型使用较高的值,例如0.8或0.9,从而只将10–20%的曲线用于AO的近似求值。
宽度增益(Width Gain) 会乘以曲线的宽度特性,以决定计算AO所用的管状体半径。 通常而言,使用一个为2到3倍宽度的值即可产出良好的效果。
光线数量(Number of Rays) 可决定逐点取样的光线数量。 增加此值即可提高 质量,但会增加计算时间。
偏差(Bias) 属性可调整环境光遮蔽效果的强度。 值越低,遮蔽效果越强。
最大光线距离(Maximum Ray Distance) 可限制光线的传播距离,有助于避免远处的几何体造成的不必要的遮蔽。
锥体宽度(Cone Width) 可控制被取样光线的扩散程度。 值越小,取样的锥体越窄,衰减越明显。
模糊迭代次数(Blurring Iterations) 可指定AO值模糊的次数,以使结果更为平滑。
逐发簇值(Per Clump Value) 可实现基于发簇的AO计算,并使用由 "发簇ID特性(Clump ID Attribute)" 所定义的特性(默认为clumpid)。
将遮蔽输出为颜色(Cd)(Output Occlusion as Color (Cd)) 可开启或关闭是否将遮蔽的值直接写入点上的 Cd (颜色)特性中。如果未使用 Cd,那么 遮蔽特性(Occlusion Attribute) 会为输出特性定义一个自定义名称。
MH Groom Head Attributes Mirror
此节点会以MetaHuman头部拓扑结构为基础,制作蒙皮特性的镜像。
群组(Group)可定义将受影响的组件的子集。 仅指定群组内的组件将被镜像。 群组类型(Group Type) 可指定群组中所包含的元素的类型(例如,点和图元)。
特性名称(Attribute Names) 可列出将沿所选轴或方向进行镜像的特性。特性镜像(Attribute Mirror) 可决定要应用的镜像操作。 选项包括:无镜像(No Mirroring)、翻转(Flip)、从左到右(Left to Right)、从右到左(Right to Left)。
MH Groom Integer To Float
此节点可将整型特性转换为浮点特性。 例如,Groom区域是由整型(整数)特性的值定义的,你可以将其转换为逐区域的Groom密度图,其数值被表示为0.0到1.0范围内的浮点值(带小数位的数字)。
源特性名称(Source Attribute Name) 可指定要转换的整型特性的名称。
新特性前缀(New Attribute Prefix) 可设置新浮点特性的命名前缀,该浮点特性就是转换后生成的特性。 初始化(Initialize) 功能可自动执行转换过程,并生成对应的输出特性。
你可以使用输出特性(Output Attributes) 手动定义要创建的输出浮点特性的数量。
显示为颜色(Cd)(Display as Color (Cd)) 选项让你可以在点的 Cd (颜色)通道中可视化输出特性。
显示特性(Display Attribute) 可指定启用可视化后哪些输出特性将被显示为颜色。
若启用 删除源特性(Delete Source Attribute) 选项,那么系统将在转换完成后删除原本的整型特性。
MH Groom Texture Blur
此节点的参数可控制基于纹理的模糊在网格体上的应用和可视化,同时支持群组遮罩、纹理遮罩和基于体素的分辨率。 此节点会计算简单的盒体模糊效果。 结果体积中的每个体素的值都是相邻体素值的平均数。 额外的重新映射选项让你能使用既定的值范围、渐变和插值方法来重塑和调整输出的值。 可视化设置可在视口中启用实时反馈,并支持灰阶或渐变样式的显示。
网格体群组(Mesh Group) 可指定用于遮罩的群组。 仅此群组内的图元将被应用模糊操作。
纹理名称(Texture Name) 即被用作纹理贴图的图像文件。
遮罩名称(Mask Name) 可指定与纹理图像相乘以应用遮罩效果的遮罩。 此遮罩会将纹理中需要模糊的区域划分出来。
体素大小(Voxel Size) 可定义生成的VDB体积中的体素的大小。 对于非锥形体积而言,所有体素都将使用此大小。 对于锥形体积而言,体素大小代表了视锥体原点处的体素大小。
迭代次数(Iterations) 可设置模糊的 重复次数。 值越高,图像越模糊。 默认滑块范围为0到200。 最大值并不限于200。输入想要的数字即可将其重载。
启用 在网格体上可视化纹理(Visualize texture on mesh) 即可显示模糊修改后的纹理。
可视化样式(Visualization Style) 的查看方式为 灰阶(Grayscale) 或 渐变(Ramp)。
MH Groom Attribute UV Jitter
此运算符可在选定的图元上启用特性抖动,从而实现更自然、更多样的遮罩效果。 你可以将这种效果限制在特定的群组内,并在UV或位置空间中应用。 抖动方法自带随机样式和基于噪点的样式,并使用参数控制抖动的强度、随机性和种子值。 其他遮罩选项让你能使用固定的值或基于特性的筛选器有条件地应用抖动,从而实现更强大的控制力和更高的精度。
群组(Group) 可定义受抖动操作影响的图元。 只有指定群组内的图元才会被修改。
特性(Attribute) 可列出将应用抖动的特性。
方法(Method) 可选择用于抖动的输入空间,即 UV 或 位置(Position)空间。
若选择UV空间,那么 UV特性(UV Attribute) 可设置所用的UV特性。 默认值为 uv,下拉菜单还提供了其他选项。
样式(Style) 可决定抖动方法,即 随机(Random) 或 噪点(Noise)。
当样式被设为随机(Random)时,抖动(Jitter)可设置应用于特性的抖动强度或数量。抖动种子(Jitter Seed)可控制用于赋予抖动频谱变化的随机种子。
当样式被设为 噪点(Noise) 时,抖动由 噪点幅度(Noise Amplitude) 和 噪点频率(Noise Frequency) 控制。 这时你还可以按需在XYZ轴上偏移噪点频谱。
遮罩(Masking) 能帮你进一步限制抖动的应用位置。
MH Groom Texture to Curve Mask Paint
与Texture Mask Paint节点类似,此节点能提供交互式绘制工作流程,以便输出体积纹理数据。 遮罩的分辨率与拓扑结构无关,因此你可以在简单几何体上使用高分辨率的遮罩。
除作为标准参数外,遮罩还可以作为曲线特性传输,也可以在同一节点内重新映射。
导线特性类型(Guide Attribute Type) 分为 点(Point) 特性或 图元(Primitive) 特性。 而下图中的 纹理绘制(Texture Paint) 参数与 Texture Mask Paint 节点的类似。
使用下方的滑块即可进一步 重新映射 已绘制的遮罩。 你既可以重新映射已绘制的纹理,也可以沿曲线进行重新映射。
你还可以使用此节点 组合 并控制体积。 每套新组合都会提供一组新参数,这组新参数会决定源体素与目标体素的组合方式。在混合到当前目标体素之前,将对源体素应用 调整,以避免需要预处理体积才能使其达到正确的范围。 使用 源(Source) 分段即可选择要应用的体积。 如果目标体积是标量,则使用源体积的长度。 如果目标体积是向量,而源体积是标量,则通过复制该值来扩展目标体积。
所有体素都会进行 后期处理(Post-Processing)。 此处理不依赖任何混合设置 — 即使某个体素并未被之前的合并所影响,它仍然会被处理。
MH Groom Import
此节点用于从Alembic文件导入Groom几何体。 此节点支持从Houdini或其他应用程序导出的文件,前提是这些几何体符合 Alembic for Grooms 规范。 使用此节点即可将外部Groom数据导入当前场景,以便进一步处理、设计造型或导出。
文件名(File Name) 可指定Groom数据所在的Alembic文件的路径。
重新加载几何体(Reload Geometry) 会强制让节点从磁盘重新加载Alembic文件。
平移(Translate)、旋转(Rotate)、缩放(Scale) 以及 统一缩放(Uniform Scale) 提供可在导入后应用的可选变换。
导线粗细(Guide Thickness) 会乘以导入的导线曲线的宽度。
移除Groom特性(Remove Groom Attributes) 会删掉除标准Houdini蒙皮特性和 宽度(Width) 之外的所有特性。
图元检查(Primitive Checks) 会检查导入的Groom资产中是否存在重叠的点。
重叠(Overlapping) 会检测发根位置重合的导线曲线。几何体流的合并可能会造成这种重叠,且通常难以识别。 请在以下三种模式中任选其一:
忽略(Ignore) 即跳过检查,不执行任何操作。
标记(Mark) 即将重叠的导线添加到用户命名的群组并发出警告,但不修改几何体。
修复(Repair) 即移除所有重叠的发根位置上的导线,同时各位置仅保留一条导线。
群组(Group) 可设置识别出存在发根重叠的导线的群组名称。但修复操作时会保留的导线除外。
导线阈值(Guides Threshold) 可定义检测重叠导线发根时所允许的距离公差。
发束阈值(Strands Threshold) 可设置识别重叠发束根部时所用的距离阈值。
应用于发束(Apply To Strands) 可切换除导线外是否也为发束应用重叠发根检查。
MH Groom Export (SOP)
此节点会按照虚幻引擎的 Alembic for Grooms 规范,将Groom曲线导出为Alembic文件。 此节点支持导出导线和发束,并可完全控制分组、特性映射和格式化。
请参阅OBJ级别的 MH Groom导出。
MH Groom Head
此运算符负责提供专为Groom制作工作流程而设计的标准化MetaHuman头部几何体。
此外,在Houdini 21中,可以从MHC导出的角色文件夹中加载自定义MH头部和纹理。 它会输出区域隔离的Groom制作网格体、完整的头部几何体(包括眼睛)以及用于碰撞的可选VDB。 几何体会遵循可供下游系统识别的命名规范。
在Houdini 21之前的版本中打开此HDA将在启动时引发提及vex严格变量的警告。 但是,这些问题不会影响你的工作,它们是由Houdini 21工具的依赖性导致的。
头部网格体 → "Head" 或 "head"
眼部网格体 → "EyeLeft"、"eyeleft"、"EyeRight"、"eyeright"
软骨网格体 → "Cartilage" 或 "cartilage"
眼部边缘网格体 → "eyeEdge" 或 "eyeedge"
眼壳网格体 → "eyeShell" 或 "eyeshell"
蒙皮纹理(Skin Texture) 可选择要应用于蒙皮的纹理。 被设为自定义(Custom) 时,你可以使用外部纹理文件。
纹理路径(Texture Path) 可指定自定义蒙皮或眼部纹理的文件路径。
蒙皮颜色(Skin Color) 可设置在未应用纹理时设置的肤色。
眼部纹理(Eye Texture) 可选择眼球的纹理。 与蒙皮一样,眼部纹理也支持 自定义(Custom) 输入。
虹膜颜色(Iris Color) 和 瞳孔颜色(Pupil Color) 可在未使用眼部纹理时设置对应的颜色值。
眼壳Alpha(Eye Shell Alpha) 可调整眼壳几何体的透明度。
UV变换(UV Transform) 会对眼球进行细微的UV调整,以最大程度地减少纹理扭曲;使用某些自定义纹理时,你可能需要禁用此功能。