CG小苏 发表于 2024-3-8 12:59:17

虚幻引擎5!制作卡通角色材质渲染2 部分流程分享!-丨CG小苏

“CG小苏 ”再点右上角“ ...”最后设为星标 ★
-------------------------------------- | CG小苏 | 分享最前沿的CG技术-游戏开发-CG自媒体平台 |

你好。我叫中岛,是 Spark Creative Co., Ltd. 的客户工程师。在第 2 部分中,基于上一课的内容,我们将使用 UE 实际创建用于细胞着色的各种表达式。这次介绍了三种表情
大纲天使戒指正常转移最后这次介绍了三种表情这次我就总结一下这三个表达。轮廓 天使圈法线转移其中一些你可能很熟悉,而另一些你可能从未听说过,但我认为它们都是创造更时尚的赛璐珞的重要表达方式。
.
大纲                                 轮廓是使用法线反转的网格来表示的。因此,您需要通过复制同一模型的网格来准备用于正常翻转的网格。这次我们将在UE中复制网格,但您也可以提前为模型数据中的轮廓准备网格。您可以通过选择放置在关卡中的模型,右键单击详细信息选项卡中的 SkeletalMeshComponent,然后选择 来复制网格。


我将其命名为SkeletalMeshComponent_Outline以使其更易于理解。准备工作现已完成。

复制网格后,为执行正常反转过程的轮廓创建材质。首先,更改材质详细信息面板,如下所示。

主要变化有三个:混合模式、着色模型和双面。Two Sided是双面绘图的设置项目。通常只绘制网格的正面,但通过启用“Two Sided”,背面也会被绘制。当您使用移除一侧的盒子网格来检查是否存在“双面”的差异进行确认时,它看起来像这样。

通过启用“双面”,现在将绘制背面,您可以看到正在绘制盒子的内部。确认背面已绘制后,请使用TwoSidedSign 节点获取背面。
如果该节点是网格的正面,则返回 1;如果是背面,则返回 -1。将TwoSidedSign值为1时变为红色、为-1时变为蓝色的材质应用到长方体网格上进行确认,并检查绘制结果。

通过启用“双面”,现在将绘制背面,您可以看到正在绘制盒子的内部。确认背面已绘制后,请使用TwoSidedSign 节点获取背面。
如果该节点是网格的正面,则返回 1;如果是背面,则返回 -1。将TwoSidedSign值为1时变为红色、为-1时变为蓝色的材质应用到长方体网格上进行确认,并检查绘制结果。

如果在这里输入 TwoSidedSign 节点乘以 -1,则正面将为 -1,背面将为 1,因此只会绘制背面。
输入到不透明蒙板的节点如下图所示。

让我们将这个过程应用到盒子网格材料上进行确认。

现在只绘制了蓝色部分,即盒子网格的背面,我们能够反转网格的法线。然而,事实上,它仍然不能作为一个大纲。
假设此复选框网格是供轮廓使用的重复网格,请尝试将其与普通框网格重叠。

它们完全重叠,根本看不到用于确认的盒子网格。要充当轮廓,请在VertexNormalWS中获取法线方向并将其输入到世界位置偏移中。



世界位置偏移会移动输入矢量应用材质的网格顶点,因此输入法线方向将导致网格表现得好像正在扩展一样。将这个过程应用于盒子网格的材质进行确认后,尝试再次将其与普通盒子网格重叠。

有点难看,但是你能看到盒子轮廓上画的蓝线吗?这样就完成了轮廓素材的基本处理。
此时整个节点如下图所示(不包括确认材料的处理)。

将完成的材质设置在复制模型的网格上。设置好材质后,让我们检查一下它的外观。

轮廓很粗,所以可能需要调整。您可以通过将世界位置偏移的 VertexNormalWS 输入乘以适当的值来调整它。

我添加了一个名为OutlineWidth的参数来调整厚度。将身体的 OutlineWidth 设置为 0.1,将脸部的 OutlineWidth 设置为 0.0,会使它看起来又漂亮又瘦。

最后,不要忘记从轮廓材质的详细信息面板中将 ShadingModel 设置为Unlit 。

整个大纲素材节点如下。

轮廓颜色默认为黑色,但我添加了一个参数来调整它。概要材料现已完成。*在UE5.1或更高版本中,您可以使用OverlayMaterial轻松表达轮廓。然而,由于它只有一个材质槽,所以在头发和服装之间分离轮廓之类的事情可能会有点困难。
天使戒指
在动漫风格的表达中,您可能经常会看到角色的头发带有高光,如下图红圈所示。

这被称为“天使戒指”,您可以使用它来创建更像动漫的表达方式。天使环可以通过使用半向量和副法线的内积值来再现。
半向量是通过对相机向量和光向量之和进行归一化找到的,副法线是通过对切向量和法线向量叉积得到的向量进行归一化找到的。使用点节点作为内积,使用叉节点作为外积来查找必要的向量。


半向量和副法线的内积值如下图所示。

这种状态下很难理解,但是黑色部分包含从0到-1的值,所以如果计算绝对值,就会如下图所示。

可以使用abs 节点找到绝对值。

使用OneMinus 节点,从 1 中减去之前找到的值,并将其提高到适当的幂,以完成将用于天使戒指的基本部分。



如果您使用 Lerp 以与创建阴影时相同的方式连接成品,它将完美地融入模型中。

正常转移在模型脸部绘制阴影和高光时,由于脸部形状和 UV 的原因,外观可能与您预期的有所不同。在这种情况下,通过执行“普通线转移”也许可以画出漂亮的画。法线传输是一种准备虚拟对象(球体等简单对象)法线并将其替换为处理实际使用模型法线的计算的技术。
这次,我们将使用法线传输在模型的脸上绘制阴影。首先,准备虚拟物体的法线。这次我们准备的法线是球形的。通过对[顶点坐标-物体坐标]向量进行归一化可以找到球体的法线,如下图所示。

使用节点创建时,它将如下图所示。

接下来,用模型的法线替换准备好的法线。通过将用于计算的模型的法线更改为准备好的法线来完成法线传输。

如果完全替换它是没有问题的,但我尝试将它连接到Lerp,以便您可以使用模型法线和球面法线调整用于计算的法线。此外,我们准备了一个位置偏移参数来调整正常传输的位置。使用普通转印与不使用普通转印的外观差异如下。

.
最后                                 将这三个表达式结合起来的结果如下。






1                                                                  END
声明:本文章中所有的图片和视频都归原作者所有,仅供大家参考学习和交流,不作商业用途,侵删。如果你喜欢这篇文章,欢迎转发!谢谢!更多学习和交流可扫描下方二维码哦!

超远道 发表于 2024-3-9 11:45:35

支持一下

超远道 发表于 2024-3-9 16:15:59

难得一见的好帖

SIJ61WEgTT 发表于 2024-3-9 23:01:35

好酷! 很细节
页: [1]
查看完整版本: 虚幻引擎5!制作卡通角色材质渲染2 部分流程分享!-丨CG小苏