## 材质

## 开始之前...
**如果你在材质方面遇到问题或想了解典型的 KKBP 材质如何工作，[材质分解](material_breakdown)上有很多信息。**

## 更新已完成的材质
如果你想返回原始材质再次编辑它，可以将材质设置回材质的 -ORG 版本。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat2p3.png)

这里我已经更新了原始着色器上的头发颜色

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat2p5.png)

要再次完成材质，只需点击 KKBP 面板上的"完成材质"按钮。材质将被重新完成，轻量级着色器 + 图集模型将被更新。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat2p6.png)

## 特殊材质（轮廓）
轮廓具有不同的材质设置。如果此材质有可用的 alpha 蒙版，则 alpha 蒙版的红色通道将用于确定轮廓应该在哪里透明。如果不可用，则将使用主纹理 alpha 通道来确定透明度。如果两者都不可用，则轮廓将在材质的任何地方可见。当你点击完成材质按钮时，轮廓材质不会转换为 png 文件。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat4.png)

## 特殊材质（眼睛）
眼睛纹理由 KKBP 导出器自动创建。如果你想使用自定义眼睛滑块并动态更改眼睛的颜色，你必须使用 SB3Utility 从游戏中提取某些眼睛纹理，然后将它们加载到绿色纹理组中并从头开始重新创建眼睛。[这是一个这样做的示例](https://www.youtube.com/watch?v=XFt12n7ByBI&t=231)

## 特殊材质（身体）
身体有一个透明蒙版以防止它穿过某些衣服[点击这里使身体可见](https://flailingfog.github.io/faq)。

如果你发现身体在错误的区域仍然透明，你可以编辑身体 alpha 蒙版（位置如下所示），或从 pmx 导出文件夹加载不同的 body_AM 文件。第一套服装的第一个身体 alpha 蒙版会自动加载（cf_m_body_AM.png），因此如果你切换到不同的服装，你必须将身体蒙版切换到正确的蒙版（例如，服装 01 使用 body_AM_01，服装 02 使用 02，等等）。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat5p4.png)

## 特殊材质（头发）
头发材质未链接。如果你修改一个头发材质，然后点击更新头发材质按钮，此对象上的其余头发材质将使用当前头发材质的设置进行更新。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat5p5.png)

## 特殊材质（泪水）
泪水有一个特殊的材质，使用渐变来获得类似游戏内的外观。你可以通过使用泪水材质中的滑块使泪水使用 HDRI 或纯色。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat6.png)

可以在形态键面板中激活泪水

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat6p1.png)


## 特殊材质（口塞眼睛）
有三组口塞眼睛：Gag00、Gag01 和 Gag02  
Gag00 图像以镜像方式显示（两只眼睛相互镜像）  
Gag01 图像按原样显示   
Gag02 图像通过随时间连续更改 UV 贴图的位置来动画化（也被卡通眨眼表情使用）

口塞眼睛使用驱动器来确定要显示的表情。当你在 Body 对象上激活口塞形态键时，某些眼睛材质会移回头部以隐藏它们，口塞眼睛网格会出现在头部前面，并根据激活的口塞形态键显示图像。

默认导入带有使口塞眼睛后面的面部区域看起来不好的设置。禁用面部眼影强度，将面部边缘设置为"无"，并使用下面"永久明亮/黑暗设置"部分中的功能可以帮助解决这个问题。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat7.png)

可以在形态键面板中激活口塞眼睛

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat6p1.png)

## Koikatsu 颜色转换
你在 Koikatsu 中看到的颜色不是正在使用的真实颜色；它们实际上正在被饱和。为了复制 Koikatsu 中显示的颜色，所有颜色和图像都通过 [converttextures.py](https://github.com/FlailingFog/KK-Blender-Porter-Pack/blob/master/importing/converttextures.py) 中的 color_to_KK 和 image_to_KK 函数运行，以将基础颜色转换为游戏中视觉上看到的"真实"颜色。此过程也在所有主纹理图像上运行。

这是颜色饱和前后的材质示例

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat11.png)

## Koikatsu 深色颜色转换
游戏使用第二个颜色转换过程来自动获取每个浅色的深色。[modifymaterial.py](https://github.com/FlailingFog/KK-Blender-Porter-Pack/blob/master/importing/modifymaterial.py) 中的 skin_dark_color 和 clothes_dark_color 函数用于在 Blender 中复制此过程，并自动获取每件衣服的深色并创建深色主纹理图像。如果在面板中禁用此功能，你将只获得浅色。

## Cycles 支持
通过在面板中选择"使用 Cycles"可以获得基本的 Cycles 支持。这将用与 Cycles 兼容的类似卡通的着色器替换 KK 着色器中的 Rim 节点组。在此模式下禁用轮廓。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat12.png)

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat13.png)

## 法线混合方法
在 Toon Shading 组中可以使用不同的法线混合方法。进入它并找到节点以使用 Unity 技术演示混合方法。这些混合方法[取自此页面](https://blog.selfshadow.com/publications/blending-in-detail/)和[此页面](https://github.com/FlailingFog/KK-Blender-Porter-Pack/issues/166)

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat16.png)


## 法线质量设置
默认情况下，法线设置为较低质量以提高动画播放性能。要更改为更高质量的法线，只需进入 Toon Shading 组，连接更高质量的输出节点并通过选择它并按 M 键取消静音节点。
如果你计划从 Blender 导出模型，则在烘焙材质时会自动完成此操作，因此你无需担心。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat17.png)


## 卡通着色设置
卡通着色由 Toon Shading 组中的颜色渐变创建。你可以编辑此部分中的颜色渐变以增加或减少显示材质的浅色或深色版本所需的光量。

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat18.png)


## 永久明亮/黑暗设置
可以使用纹理节点组中的 Permalight 图像使每个材质的部分永久明亮或黑暗。图像的红色通道用于永久明亮，蓝色通道用于永久黑暗

![image](https://raw.githubusercontent.com/kkbpwiki/kkbpwiki.github.io/master/assets/images/mat19.png)

## 编辑 KKBP 着色器
如果你想为所有导入的模型使用自定义材质或节点设置，可以编辑 KKBP 库文件。请记住，如果缺少某些内容，导入脚本将出错，因此不要删除文件中已有的任何内容。库文件通常位于此处：```C:\Users\[your username]\AppData\Roaming\Blender Foundation\Blender\[your blender version]\scripts\addons\KK-Blender-Porter-Pack\KK Shader.blend```
