绝区零发光特效mod - 制作心得
制作发光特效的各项经验总结, 以及踩坑记录。自个儿摸索了好长时间, 总结出制作发光特效的三个步骤。
(事先声明,这是一篇“笔记”而非“教程”,不是写给绝区零mod小白的,更不是写给伸手党的):
那么言归正传,我总结出的制作发光特效三步骤如下:
- 依赖RabbitFX.ini, 需要确保mods文件夹中包含此文件
- 配置.ini文件
- 制作发光贴图(重点)
OK, 以下就这三步骤展开细说
1. 依赖RabbitFX.ini, 需要确保mods文件夹中包含此文件
①注意: 不要把ZZMI和WWMI这俩对应的RabbitFX搞混了, 虽然是同一个作者且项目名称一样,但是是两个内容不同的项目.
②注意: 一个mods文件夹中只能包含唯一一个RabbitFX.ini文件, 这点作者在发布页已经说的很清楚.
2. 配置.ini文件, 在[TextureOverride配件名]节点内粘贴如下代码:
$\RabbitFX\H = 0
$\RabbitFX\S = 0
$\RabbitFX\V = 0
$\RabbitFX\Brightness = [发光度]
$\RabbitFX\interpolation = [发光插值]
ps-t17 = Resource[贴图资源节点名]
run = CommandList\RabbitFX\Run
[Resource贴图资源节点名]
filename = 贴图文件名其中的HSV三个参数是控制颜色.
Brightness是亮度.
interpolation是发光插值.
3. 制作发光贴图(踩坑点,重头戏):
发光贴图一般是目标纹理贴图的选区副本(目的是确保UV位置一致, 且尽量采用蒙版Alpha通道而非抠图), 且必须是具有sRGB格式以及具有Alpha通道的贴图, 且必须具有正确的压缩格式(保存了也不一定成功压缩为对应格式, 不生效就用VisualStudio检查压缩格式)
VisualStudio中正确展示的效果如下图
①.注意: 发光贴图必须是正宗Alpha透明贴图(不能是png另存转换而来, 更不能是直接改个后缀), 如果发光贴图有误, 可能导致.ini配置文件中其它所有贴图加载失效(所有mod贴图不生效).
②.注意: 对于发光贴图始终不生效的情况, 可以用VS打开检查压缩格式是否正确保存, 这时候你很可能会发现压缩格式信息处为空, 并且显示每像素位数为32(正确的BC7_sRGB应该是每像素位数8), 接下来要做的就是调整图层尺寸, 重新保存.
③.注意: 贴图高宽尺寸必须是4的倍数BC7_sRGB才能压缩成功 (这点非常非常重要).
④.注意: 发光贴图和mod贴图实际上是同时工作的, 如果出现只发光没有mod贴图, 在确认ini没有编辑错误的情况下, 大概率就是发光贴图把mod贴图覆盖遮挡住了, 这种情况需要重新修改发光贴图, 确保选区之外的部分是绝对透明;
对于判断是否是这种情况, 只需要制作一张全透明发光贴图测试一下, 如果mod贴图正确显示则证明先前是被发光贴图遮住了, 如果仍然是黑的则考虑其它情况.
⑤.注意: 删除选区之外的部分时, 一定要在"图层"位置进行删除(键下delete), 不要在通道位置删除, 总之一定要确认选区之外删干净.
⑥.注意: 当图层高宽尺寸(不满足4的倍数)不等于画布尺寸时, 这时候保存很可能压缩失败导致发光贴图不生效, 将图层高宽设置为画布高宽的笨方法是进入"图层", 然后在画布找两个对角随便各自点一个像素点, 这样判定图层高宽时就等于画布高宽了...希望后面能够找到更优雅的调整方式 (路过的设计专业大佬莫要笑话我这“土法炼钢”操作才好)
⑦.注意: 制作发光贴图的半透明效果, 记得使用Alpha通道的不同灰度来表现(这样才能正确导出透明度), 而不是在"图层"处直接修改"透明度"(这样导出的透明度是无效的)
综上,一般正常情况下发光贴图不生效都是因为压缩格式保存失败, 而压缩格式保存失败一般都是因为图层高宽不是4的倍数,发光特效的主要难点与重点在于发光贴图制作, 发光出现问题99%都是发光贴图制作有问题, 其余1%是ini配置代码或mods文件夹下RabbitFX实例数 > 1
——记于2025年暑假7月末, 上传于两月后的开学8月底
呼~ 尽管离编写这篇笔记已经过去两个月, 但如今上传排版仍然还记得被发光贴图调教的那一天一夜。