角色毛发分解-乔纳森·科策-双语
2324 1
实名

通过了实名认证的内容创造者

发布于 2022-8-8 11:46:36

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 七月纪旅。 于 2022-8-9 14:19 编辑

Introduction
介绍
Thank you for checking out this tutorial, my name is Jonathan Coetzer, I am a CFX Artist in the film and commercial industry. In this short tutorial, I will be going over a basic character groom workflow in Houdini 19. I will demonstrate all aspects of the grooming process, from attribute painting and grouping to guide processes and shading.
感谢您查看本教程,我的名字是 Jonathan Coetzer,我是电影和商业行业的 CFX 艺术家。在这个简短的教程中,我将介绍 Houdini 19 中的基本角色修饰工作流程。我将演示修饰过程的所有方面,从属性绘制和分组到引导过程和着色。
1.jpg

2.jpg


Overview
概述
The final setup will follow the image above and is broken up into these primary elements:
最终设置将遵循上图并分为以下主要元素:

Skin Object, which contains our skin geometry and any modifications it will require for the grooming process, as well as any of our master groom attributes.
皮肤对象,其中包含我们的皮肤几何形状和修饰过程所需的任何修改,以及我们的任何主修饰属性。
Guide groom 1, which is the primary guide grooming node that houses the majority of the guides except for the eyelashes, which fall into guide groom 2.
引导修饰 1,它是主要的引导修饰节点,包含除睫毛之外的大部分引导,睫毛落入引导修饰 2。
Hair Gen objects for each group created in the guide groom objects.
在引导修饰对象中创建的每个组的 Hair Gen 对象。
Magnet for materials
材料用磁铁
Camera and ROP net for Mantra Render
用于 Mantra Render 的相机和 ROP 网络
Basic environment light containing a simple HDRI
包含简单 HDRI 的基本环境光



Skin Setup
皮肤设置
The Skin Object will be where the skin geometry for the groom is set up and handled as well as where the guide skin attributes will be housed. The chain consists of a file node to fetch the geometry, this may also be an Alembic or an FBX import file.
皮肤对象将是设置和处理新郎皮肤几何形状的地方,也是放置引导皮肤属性的地方。该链由一个文件节点组成,用于获取几何图形,这也可以是 Alembic 或 FBX 导入文件。

A Poly Extrude node is used to pull out the base of the neck slightly, and a PolyFill node to seal the hole in the neck. This is to allow for a solid volume for the internal VDB process the guide groom uses.
Poly Extrude 节点用于稍微拉出颈部底部,PolyFill 节点用于密封颈部中的孔。这是为了为指导修饰使用的内部 VDB 进程提供一个稳定的体积。

Use subdivision if you need to achieve a higher resolution mesh to assist with a more detailed attribute painting process, the OpenSubdiv Bilinear algorithm works well, but you should experiment with your mesh to determine which results in the best detail/form retention post subdivide.
如果您需要获得更高分辨率的网格以帮助进行更详细的属性绘制过程,请使用细分,OpenSubdiv 双线性算法效果很好,但您应该对网格进行试验以确定哪些结果会在细分后产生最佳的细节/形状保留。
Lastly, smooth out to correct any faceting from the subdivision. Place down a Null named OUT_skin, this is the Null we will be linking to the guide groom, above which the attributes we paint will be kept.
最后,平滑以纠正细分中的任何刻面。放置一个名为 OUT_skin 的 Null,这是我们将链接到引导新郎的 Null,我们绘制的属性将保留在该 Null 之上。



Attribute Painting
属性绘画
Placing down a Guide Groom node, assign the OUT_skin Null from the skin object to the SOP path. The simplest way is to select the Null node, press ‘ctrl+C’, and in the input field next to the SOP path press ‘ctrl+V’.
放下 Guide Groom 节点,将皮肤对象的 OUT_skin Null 分配给 SOP 路径。最简单的方法是选择 Null 节点,按“ctrl+C”,然后在 SOP 路径旁边的输入字段中按“ctrl+V”。

This will assign the skin to our guide groom node, and it will scatter guides across the surface of the skin. The next step is to isolate the area those guides grow on, this is done using an Attribute Paint node and painting the density attribute onto the skin. Select the skin attribute from the override drop-down next to the slider of the density parameter, the density attribute field will appear under the density parameter. Clicking on the small orange and gray icon next to that field will create an Attribute Create node and an Attribute Paint node above the Null in the skin object field.
这会将皮肤分配给我们的引导修饰节点,并将引导分散在皮肤表面。下一步是隔离那些引导生长的区域,这是使用属性绘制节点并将密度属性绘制到皮肤上来完成的。从密度参数滑块旁边的覆盖下拉列表中选择皮肤属性,密度属性字段将出现在密度参数下方。单击该字段旁边的橙色和灰色小图标将在皮肤对象字段中的 Null 上方创建一个 Attribute Create 节点和一个 Attribute Paint 节点。



Using the Attribute Paint node, press ‘Enter’ while the cursor is in the viewport thus activating the paint mode. Select the Fill option from the shape parameter drop-down and, holding down ‘ctrl’, click on the mesh. This will fill the mesh with a 0 density value represented by the blue color, where the red represents the 1 value. Next, select the volume from the shape options again and paint the desired area for hair growth. A list of commands for the brush tool will be visible on the left side of the viewport.
使用属性绘制节点,当光标在视口中时按“Enter”,从而激活绘制模式。从形状参数下拉列表中选择填充选项,然后按住“ctrl”,单击网格。这将用蓝色表示的 0 密度值填充网格,其中红色表示 1 值。接下来,再次从形状选项中选择体积并绘制所需的头发生长区域。画笔工具的命令列表将显示在视口的左侧。



Guide Grooming
指导美容
After the initial Density attribute has been painted, the grooming process can begin. Inside the Guide Groom node, you will find the guide grooms grooming workspace. This is where the processes and tools used in the grooming process for the guides are housed.
绘制初始密度属性后,可以开始修饰过程。在 Guide Groom 节点内,您将找到 Guide Groom 修饰工作区。这是在引导的修饰过程中使用的过程和工具的位置。

In this workflow, the guide groom SOP will be used as the basis for building the various groom pieces separately. This is to allow for easier management of the different elements. Above, you will see the final result of the grooming structure. Each chain follows the similar structure of the Guide Groom>Group>Merge, except for the side hair, which has a guide initialize, and another guide groom, which, although not required, will make that specific area easier to groom.
在此工作流程中,指导修饰 SOP 将用作分别构建各种修饰部分的基础。这是为了更容易管理不同的元素。在上面,您将看到修饰结构的最终结果。每个链都遵循 Guide Groom>Group>Merge 的类似结构,除了侧毛,它有一个引导初始化,另一个引导修饰,虽然不是必需的,但会使特定区域更容易修饰。



To start the grooming process, place down the first Guide Groom SOP, select the "Delete from the tool parameter" drop-down menu. Place the cursor over the viewport and press ‘Enter’, this will enable the guide brush.
要开始修饰过程,请放下第一个 Guide Groom SOP,选择“从工具参数中删除”下拉菜单。将光标放在视口上并按“Enter”,这将启用引导画笔。



Clear away the guides currently on the mesh and then select the draw tool from the previous menu, draw out the first guides, you can also use the sculpt, brush and adjust length tools respectively to aid in the grooming process. Feel free, however, to experiment with the various tools as they are all very useful.
清除当前网格上的参考线,然后从上一个菜单中选择绘制工具,绘制第一个参考线,您还可以分别使用雕刻、笔刷和调整长度工具来辅助修饰过程。但是,请随意尝试各种工具,因为它们都非常有用。

I find that it is easier to break down the guides into 3 levels: the first level is seen as the anchors or tentpole guides that will support the rest of the groom going forward. They dictate the primary flow and direction as well as the starting length for the rest of the groom.
我发现将指南分为 3 个级别更容易:第一级被视为支撑新郎其余部分前进的锚或支柱指南。它们决定了新郎其余部分的主要流动和方向以及起始长度。

After the level 1 guides are placed, select the plant tool and change the mode to single, then start outlining the contour of what would be the hairline/boundaries of the current groom element, sculpt and shape this level to get the final profile of the desired groom.
放置 1 级指南后,选择植物工具并将模式更改为单一,然后开始勾勒当前修饰元素的发际线/边界的轮廓,雕刻并塑造此级别以获得最终轮廓想要的新郎。

Level 3 is the density level of the guides. Using the plant tool on either scatter or single place down an equal density of guides inside the boundaries created in level 2. The density displayed above is a good gauge of what would be considered a light-medium density, well suited for most groom requirements. For a highly detailed simulation, however, roughly double the amount may be required.
级别 3 是指南的密度级别。使用植物工具在 2 级创建的边界内分散或单一放置相同密度的引导线。上面显示的密度很好地衡量了轻中密度,非常适合大多数修饰要求。然而,对于高度详细的模拟,可能需要大约两倍的数量。

After the guide grooming process for an element of the groom is complete, place a Group node underneath the Guide Groom node. Ensuring the group type is set to primitives, name the group according to the groom element.
完成修饰元素的引导修饰过程后,将 Group 节点放置在 Guide Groom 节点下方。确保组类型设置为基元,根据修饰元素命名组。

After all groom elements are complete, merge them and run the merge into the output.
在所有修饰元素完成后,合并它们并将合并运行到输出中。



Hair Generation
头发生成
After the guide process is complete, place a Hair Generate object. This is the node in which the hair curves are generated that are visible when rendering. The guides are simply just that, guides that the hair interpolates around. To link the Guide Groom to the Hair Generate, select the latter so that its parameter window is displayed, then drag the Guide Groom node into the groom object field, the path will change to ../guidegroom1 in this example.
引导过程完成后,放置一个 Hair Generate 对象。这是生成在渲染时可见的头发曲线的节点。指南就是这样,引导头发在周围插入。要将 Guide Groom 链接到 Hair Generate,选择后者以显示其参数窗口,然后将 Guide Groom 节点拖到修饰对象字段中,在本例中路径将更改为 ../guidegroom1。

To select the group you wish to generate hair for, go to General > Guide Interpolation > Guide Group and type in the name of the group you wish to target. In some instances, the names will not appear in the drop-down menu. In this case, simply type the name.
要选择您希望为其生成头发的组,请转到 General > Guide Interpolation > Guide Group 并输入您希望定位的组的名称。在某些情况下,名称不会出现在下拉菜单中。在这种情况下,只需键入名称。

The next step is to set the density and thickness of the generated hair. We already have a generalized density attribute for the scalp, which can be referenced in the density override as a skin attribute. For the beard, eyebrows, and eyelashes, this will not be viable. In those situations, repeat the process but in the Hair Generate override instead of the Guide Groom. This will place the Attribute Create and Attribute Paint nodes into the Guide Groom node.
下一步是设置生成的头发的密度和厚度。我们已经有了头皮的通用密度属性,可以在密度覆盖中将其作为皮肤属性进行引用。对于胡须、眉毛和睫毛,这是不可行的。在这些情况下,重复该过程,但在 Hair Generate 覆盖而不是 Guide Groom 中。这会将 Attribute Create 和 Attribute Paint 节点放置到 Guide Groom 节点中。



An important note: there is a distinction between density and influence radius. If you see the distribution of hairs like in the left image above, it means the influence radius on the Hair Generate is too low, you can set this higher to have the hairs spread out more from each guide, thus increasing each guide's radius of influence. Should you find that the hair is spilling into unwanted areas, you can assign an attribute override and paint a mask to constrain the hairs to only grow in the desired location.
重要说明:密度和影响半径之间存在区别。如果你看到如上左图所示的头发分布,则表示 Hair Generate 的影响半径太小,你可以将这个设置得更高,让头发从每个导向器上展开得更多,从而增加每个导向器的影响半径. 如果您发现头发溢出到不需要的区域,您可以指定一个属性覆盖并绘制一个蒙版以限制头发仅在所需位置生长。

Using the top of the hair as an example, we will go over the Clump node and its function. One of the most powerful tools in the grooming toolkit, clumping is fundamental in creating a realistic groom.
以头发的顶部为例,我们将介绍 Clump 节点及其功能。作为修饰工具包中最强大的工具之一,成束是创建逼真修饰的基础。



Above, you can see the full view of all the parameters available in the Clump node, I encourage you to visit the full documentation for the node on SideFX’s website.
在上面,您可以看到 Clump 节点中所有可用参数的完整视图,我鼓励您访问 SideFX 网站上的节点的完整文档。

Base groom:
基础新郎:



For this example, I will be going through the methodology of using the Clump node to affect the groom in layers, or levels of detail, starting first with the base layer of large shaping clumps. A high crossover rate on the clumps ensures a natural-looking clump distribution when looking at the scalp. Adjusting the clump profile, match the more convex shape of the reference. Introduce some curling and fractal clumping as well for a more natural breakup.
在本例中,我将介绍使用丛节点影响层或细节级别的修饰的方法,首先从大型整形丛的基础层开始。凝块上的高交叉率确保在观察头皮时看起来自然的凝块分布。调整丛轮廓,匹配参考的更凸的形状。引入一些卷曲和分形结块,以实现更自然的分手。



The next layer is a further refinement of the previous step with smaller clumps, the process is very similar and can be treated as experimental. Push and pull various parameters until the desired shape is achieved. In addition, start to introduce some stray rates at this point.
下一层是上一步的进一步细化,具有更小的团块,过程非常相似,可以视为实验性的。推拉各种参数,直到达到所需的形状。此外,此时开始引入一些杂散率。



The final clump layer will be the most granular in control, using a very small clump size and a linear clumping method to achieve the tight clumps caused by hair products. Also, with the usual stray rate, curling, and fractal clumping to preference.
最终的发束层将是控制最细的,使用非常小的发束尺寸和线性发束方法来实现由头发产品引起的紧密发束。此外,具有通常的杂散率、卷曲和分形聚集以偏好。




The next tool we will discuss is the Guide Process node. This is a node that allows for a number of different modifiers to be applied to the hair easily. It is my preference to use this only after the clumping process as otherwise, it may result in nullifying some of the processes.
我们将讨论的下一个工具是 Guide Process 节点。这是一个允许将许多不同的修改器轻松应用于头发的节点。我倾向于仅在结块过程之后使用它,否则可能会导致某些过程无效。



There are a total of 10 different modifiers or processes that can be applied. The two most commonly used are Set Length, which allows length adjustments of the hair. This is very useful to add randomness to hair length among other applications. The other is Frizz, it's is a basic noise modifier. It is also worth noting that the Guide Process node has a built-in masking function, which can be accessed from the masking tab; this can be used to quickly generate contained attribute masks to limit the influence of the Guide Processes effect to a specific area. Skin Attribute overrides can also be applied across most of the parameters to offer further granular control.
总共可以应用 10 种不同的修饰符或过程。最常用的两个是设置长度,它允许调整头发的长度。这对于在其他应用程序中为头发长度添加随机性非常有用。另一个是 Frizz,它是一个基本的噪声修改器。还值得注意的是,Guide Process 节点具有内置的屏蔽功能,可以从屏蔽选项卡中访问;这可用于快速生成包含的属性掩码,以将引导过程效果的影响限制在特定区域。皮肤属性覆盖也可以应用于大多数参数,以提供更精细的控制。




Utilizing these tools and techniques creates Hair Generate nodes for each of the desired groom elements, adjusting the various workflows according to your needs.
利用这些工具和技术为每个所需的修饰元素创建头发生成节点,根据您的需要调整各种工作流程。



Shading and Rendering (Mantra)
着色和渲染(咒语)
For this example, we will be rendering using Mantra, Houdini’s native render engine. Please feel free to experiment with whatever render engine you have at your disposal.
对于这个例子,我们将使用 Houdini 的原生渲染引擎 Mantra 进行渲染。请随意尝试您可以使用的任何渲染引擎。

We will keep the setup simple for the sake of this tutorial, creating a basic material network on the object. This will contain all of our relevant shaders.
为了本教程,我们将保持设置简单,在对象上创建一个基本的材质网络。这将包含我们所有相关的着色器。

Create two Hair Shader nodes inside the material network. We will use one of them for the overall brown hair and another for the eyelashes.
在材质网络中创建两个头发着色器节点。我们将其中一个用于整体棕色头发,另一个用于睫毛。

The Hair Shader node consists of primary and secondary reflection tabs, this may be confusing upon first use, however, it may be easier to view these as primary being the Diffuse Color and secondary being the Specular Value. The default settings for most of these parameters are pretty good for most applications and are a great place to start adjusting from.
头发着色器节点由主要反射选项卡和次要反射选项卡组成,这在第一次使用时可能会造成混淆,但是,将它们视为主要是漫反射颜色和次要是高光值可能更容易。大多数这些参数的默认设置对于大多数应用程序来说都非常好,并且是开始调整的好地方。

Beginning with primary reflection, you can adjust the root hair color to be slightly darker and more saturated by adjusting the color picker found next to the name. Do the same for the tip color except make it lighter and slightly more desaturated, leaning more towards the red spectrum if the natural look is desired.
从初级反射开始,您可以通过调整名称旁边的颜色选择器将发根的颜色调整为稍微更暗和更饱和。对尖端颜色做同样的事情,除了让它更轻和稍微不饱和,如果需要自然的外观,更倾向于红色光谱。

The secondary reflection tab can be adjusted in a few ways to get different results: smaller size and higher intensity will result in a ‘wet’ look, and large size with low intensity will result in a matte dull look.
可以通过几种方式调整二次反射标签以获得不同的结果:较小的尺寸和较高的强度会导致“湿”的外观,而低强度的大尺寸会导致哑光暗淡的外观。

Transmission can be overdriven to some great effect to get more light to pass through the hair, simply adjust the intensity and introduce a slight amount of orange to red into the transmission depending on hair type.
传输可以被过度驱动以达到一些很好的效果,以获得更多的光线通过头发,只需调整强度并根据头发类型将少量橙色到红色引入传输。

Randomness is a collection of modifiers that can apply a random range value to the parameters of the shader, I recommend using the specular intensity often, it adds a feeling of realism to almost any groom.
随机性是一组修改器,可以将随机范围值应用于着色器的参数,我建议经常使用镜面反射强度,它为几乎任何修饰添加了真实感。

Under the Opacity tab, there is a setting I would like to draw your attention to. Enabling transparent shadows is a great way to achieve a distinct look of hair. Enabling this softens the hair by adjusting the shadows cast by the hair strands. Disabling will result in hair that is more defined and looks thicker. This setting is very useful when it comes to soft animal fur.
在不透明度选项卡下,有一个设置我想提请您注意。启用透明阴影是获得独特头发外观的好方法。启用此功能可通过调整发束投射的阴影来柔化头发。禁用将导致头发更清晰,看起来更厚。当涉及到柔软的动物毛皮时,此设置非常有用。

After you have applied the materials to your desired Hair Gen objects, ensure that all object level nodes are display flagged. Hair Generates can only render in their nodes if the Guide Groom node they are assigned to is display flagged ‘on’. To get around this, you can pull out the hair outputs into object merges located in another geometry node.
将材质应用到所需的 Hair Gen 对象后,确保所有对象级别节点都显示标记。Hair Generates 只能在其指定的 Guide Groom 节点显示标记为“打开”时在其节点中渲染。为了解决这个问题,您可以将头发输出拉出到位于另一个几何节点中的对象合并中。

After this, create an ROP network, place a Mantra node inside, create a camera, select your camera angle, and create an HDRI using an environment light. You can now render your scene.
之后,创建一个 ROP 网络,在里面放置一个 Mantra 节点,创建一个摄像机,选择你的摄像机角度,然后使用环境光创建一个 HDRI。您现在可以渲染场景。

Thank you for taking the time to check out this tutorial. I hope that it has proved useful. Should you have any questions, please feel free to reach out at jonathancoetzervfx@gmail.com.
感谢您抽出宝贵时间查看本教程。我希望它被证明是有用的。如果您有任何问题,请随时通过jonathancoetzervfx@gmail.com与我们联系。

评分

参与人数 3元素币 +34 活跃度 +29 展开 理由
会飞的鱿鱼... + 20 + 10 强势围观
andywater1... + 9 + 10 有推荐,就进来看看
yangzzzzzh + 5 + 9 这...

查看全部评分

有时候,坚持了你最不想干的事情之后,会得到你最想要的东西。
使用道具 <
衔鱼233  发表于 2022-8-9 10:07:21  
2#
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表