本篇所有能用到的工具与插件均在下面传送门中
Mod解包与制作工具资源汇总帖
https://www.caimogu.cc/post/1898548.html
因为我在世界学习mrl3的时候,学习的是谛听的教程。而考虑到MDF与mrl3的相似性,我在排版,用语等方面很多都参考了谛听佬的mrl3教学
同时此篇更多的篇幅是讲述mdf2,对于mesh的篇幅很少
如果你对世界的材质感兴趣,可以看这个传送门:
https://www.caimogu.cc/post/1406616.html
我对于mesh与mdf2的理解还非常不足且片面,如果你有更深的理解并且乐于分享,欢迎你在评论区指出,我会直接进行修改相应的内容。。
网格的材质名直接嵌入在mesh文件的名称或属性中,如图:
Group_10_Sub_0_moon_arm,其中 moon_arm 即为该网格关联的材质名。
匹配规则:需确保此材质名与MDF文件中定义的材质名完全一致。
(重中之重,必须完全一致)
命名格式示例:
Group_[状态编码]_Sub_[子级编号]_[材质名]
(1)状态编码:
0:常态显示(默认状态,会一直显示)。
1:拔刀显示(武器出鞘状态,反之纳刀则隐藏)。
2:纳刀显示(武器收回状态,反之拔刀则隐藏)。
3:坐骑显示(鸟身上那个袋子里显示的模型)。
5:盾斧,斩斧的剑模式显示(反之则隐藏)。
6:盾斧,斩斧的斧模式显示(反之则隐藏)。
哦对了,这个功能大多时候只能用在武器身上哦
修改示例:
将 Group_10_Sub_0_moon_arm 改为 Group_1_Sub_0_moon_arm,该网格会在游戏内表现为 拔刀显示。
(2)子级编号:
1. 子级编号的作用
当多个网格需要共享同一材质时,通过递增子级编号(如 Sub_0、Sub_1、Sub_2)来区分不同网格实例,同时避免材质名称重复定义。
如图展示,虽然我们有三个网格,但是其实是共用一个材质,也就是材质:moon
对于子级编号的实际运用,你可以根据自己的习惯来,比如按后期制作的物理来分组
网格材质名:直接嵌入在网格文件名称中(如moon_arm),需与MDF文件中的材质名严格匹配。
状态编码:通过命名中的数字(0/1/2)控制不同动作状态下的网格显示逻辑。
子级编号:用于区分同一主组下的多个子网格实例,不影响材质绑定
这是一份mdf2的文件总览图,下面我们把每个部分拆卸下来讲
总览图的左上角有个file,也就是文件的意思,我们打开file就会展现如图所示
我们只需要认识以下三个就行了
Open(打开/导入):
作用:从本地目录选择并加载 MDF 文件。
使用场景:适用于手动定位文件的传统操作。
备注:我们更常用 拖拽文件到界面 的方式导入 MDF,效率更高。
Save(保存):
作用:直接覆盖当前打开的 MDF 文件,保留最新修改。
适用场景:完成调整后快速保存,无需创建新副本。
Save As(另存为):
作用:将当前文件保存为新的副本,避免覆盖原文件。
适用场景:
创建备份或实验性版本。
调整后需保留原文件供后续对比。
其中导入用的会比较少,因为mdf可以直接拖进去
(这三个我都讲,够小白吧
接下来我们往下看,在file下面有个Library(材质库)
1. 材质库(Library)的功能
位置:位于 File 菜单下方,用于管理所有可用材质资源。
Add(添加):从外部 MDF 文件导入新材质到库中。
Remove(移除):删除库中不需要的材质。
所以当我们需要为自己的mdf文件添加新的材质时,我们可以点击add
然后选择新材质所在的mdf文件,选择后则会展现如图内容(记得展开)
2. 添加新材质的步骤
点击 Add 按钮:
选择包含目标材质的 MDF 文件。
导入后记得展开库:
材质名(如 moon)会显示在库列表中,表示已成功加载。
应用材质:
将库中的材质 拖拽至右侧资源区(资源区为材质实际绑定的操作区域)。
(如图就是资源区)
我们可以看到现在有俩个moon,下面的moon就是我们新添加的材质
(注意材质不要同名哦,下面那个可以改成moon_1之类的,或者别的名字
这个功能我们用不着,所以大致讲一下就结束
作用:集中管理不同项目或引擎版本对应的 MDF 配置
版本与项目绑定:
每个版本号(如 Version 6)对应特定游戏或引擎版本(如 RE7 指 生化7)。
材质配置标准化:
不同版本包含针对特定项目的材质参数调
我把刚刚导入的材质重新命名了一下,方便辨认
1. 资源区的作用
作用:用于管理当前 MDF 文件引用的材质资源,支持名称调整、顺序控制及数量匹配验证
Material Texture Count:材质关联的纹理数量
Material Property Count:材质的属性参数数量
在材质的命名中,我们的命名会转换为哈希值 也就是右侧的Hash:0x7F2D0B9C
2. 材质命名与排序规则
重命名规范:
自己命名材质名称需你自己清晰用途(如 moon_1 表示裙子材质,moon_2 表示头发等等)
moon只是我自己爱用的名称,你自己随意命名,比如咸菜佬喜欢命名body
顺序调整:
通过 右侧方向键 控制材质在列表中的显示顺序
3. 禁止重复:(重点)
同一资源区中材质名必须唯一,不可出现重复(如两个 moon_2 需修正)
4. 与网格文件的强制一致性
规则:资源区的材质名与数量必须与关联的 .mesh 文件严格匹配。
示例:
MDF 文件:ch03_060_0002.mdf2
对应网格文件:ch03_060_0002.mesh
要求:
材质名必须为 moon_1 和 moon_2,不可多、少或改名(如 moon 或 moon_3 会黑屏)。
材质数量必须一致(如网格引用 2 个材质,资源区也需保留 2 个
Texture Path为贴图路径
需要注意的是贴图路径必须正确无误,否则进游戏就是黑屏伺候
这里我只讲一些比较常用的
此处引用了DK_Nimboln(肯特)佬的贴图数据,更推荐去原帖查看相关资料,原帖更全面更细致
https://www.caimogu.cc/post/1921753.html
还有此处我描述的黑白为只显示单通道颜色时
比如b通全黑,那么rgb的实际效果时越蓝
BaseDielectricMap(基础色贴图/金属度)
一般为ALBD贴图
作用:定义材质的基础颜色(Albedo)和 金属度(表面的反射特性)
RGB通道:
通过RGB三通道的混合值,生成材质的最终基础颜色(Albedo)
A通道(Alpha):
金属度(Metallic):越黑则金属度越高,越白则反之
NormalRoughnessOcclusionMap(法线/粗糙度/环境光遮蔽贴图)
一般为NRRO贴图
RGB通道:
R(红):粗糙度,越黑越光滑,越白越粗糙
G(绿):法线向量Y(G通的法线向量与怪猎世界的NM一致)
B(蓝):环境光遮蔽贴图(ao贴图 可以把法线向量X,也就是a通复制过来偷懒)
A通道(Alpha): 法线向量X(怪猎世界的NM的R通)
EmissiveMap(自发光贴图)
一般为EMI贴图
作用:定义材质的自发光区域和强度(如灯光、火焰、能量核心)。
示例:角色武器上的发光符文、霓虹标志
RGB通道与基础色类似,就不细讲了
需要注意的是不发光的部分需要涂黑
FxMap(高光/薄膜/透视图)
一般为FX_MSK4贴图
R(红):高光贴图(我更喜欢称之为油膜)
G(绿):不知道
B(蓝):流光的方向(越黑的地方往越白的地方流)
A通道(Alpha): 不知道
AlphaTranslucentOcclusionSSSMap(透明/半透明/次表面散射贴图)
R(红):游戏的Alpha贴图(透明,越黑越透明,纯黑则完全透明,反之同理)
G(绿):Translucent贴图:半透光效果(越白透光性越好,反之同理)
B(蓝):环境光遮蔽贴图(ao贴图,比nrro的颜色更深,优先级也更高)
A通道(Alpha): 次表面散射贴图:模拟光线穿透材质的效果
常用的差不多就这些
此外,如果你是怪猎世界的mod作者
那么你可以看下面这张图,你懂世界的这些贴图,再看懂这张图就可以无缝衔接荒野的贴图了
材质自己的某种类别枚举,这里不做特殊效果一般不建议改
默认的Standard就行
这里列举一些包含Standard在内,你能经常用到的材质,
Standard:
标准通用材质:支持基础光照模型(漫反射、高光、金属度、粗糙度),适用于大多数静态或动态物体
Transparent:
标准透明材质:支持 Alpha 混合(或者我们叫它混合透明材质)
混合透明材质,类似世界的-1eff这些混合半透(世界的混合半透图)
除了此处,还有一种半透,就是a通半透,或者称呼他为哈希半透
这类半透往往伴随着较多颗粒,更适合网纱的材质(世界也有这种特性
所以最常用的半透就这是这里的混合半透
ExpensiveTransparent:
高精度透明材质:支持更复杂的混合
就是精细程度更好的混合半透,如图所示,这是肯特大佬总结的最好用的混合半透
你需要做半透的话,可以点击下面的链接获取
怪猎荒野现存所有可用材质:https://www.caimogu.cc/post/1943850.html
其实常用的就是图中打勾的,再加个BaseTwoSideEnable
(1). 基础
BaseAlphaTestEnable
启用透明度测试,控制材质是否根据Alpha值进行像素剔除。
BaseTwoSideEnable
启用双面渲染,允许材质正反两面均可见
EmissiveUsed / EmissiveUs
启用自发光效果
VertexShaderUsed
启用顶点着色器
(2). 透明度与遮罩
AlphaMaskUsed
使用Alpha贴图控制透明度区域
RoughTransparentEnable
启用粗糙透明效果
(3). 阴影与光照
ShadowCastDisable
禁用材质投射阴影。
SSSProfileUsed
启用次表面散射,模拟光线穿透半透明材质
NoRayTracing
禁用光线追踪功能
这俩不知道是做什么的,不知道就不要碰,碰就容易出问题。
和mrl3一样的所有参数都已经命名了,所以根据名字就能知道它大概的作用。不过说实话还是有点谜语人,所以我也只挑一些我知道的讲一讲。
此处有多处引用自前言中提到的谛听大佬的mrl3解析
mrl3解析的传送门也在前言
ColorParam:
含义:ALBD色彩贴图强度因子。四个值分别是ALBD贴图的R/G/B/以及ATOS的R通道(Alpha通道)的强度因子。比如说这里RGB全部设为0.2,就相当于是亮度调暗到0.2倍后的ALBD贴图
RayTrace_BaseColor
含义:光线追踪中的基础反射颜色
Emissive_Color:
含义:Emi自发光贴图强度因子。三个值分别是Emi贴图的R/G/B的发光强度,
同时我们的二次元mod通常用Emi来经行RGB着色
Emissive Power
含义:控制自发光的光照强度,影响发光区域的亮度
Emissive Intensity
含义:调节自发光颜色通道的亮度(RGB 值的乘数)。
控制发光颜色的视觉强度,但不直接影响光照计算。
效果表现为自发光颜色会加倍或减弱显示,但不会增加实际光照强度。
Use.Basecolor_to_Emissive
含义:将基础颜色(Basecolor)直接转换为自发光(Emissive)。
RoughnessParam
含义:控制材质表面的粗糙度。调整高光反射的锐利度
MetalParam
含义:调整金属度,定义材质反射特性
TranslucentParam
含义:控制材质的半透明程度(如透光性)模拟玻璃、薄纱等透光材质
SSSParam
含义:调整次表面散射
OcclusionParam
含义:控制环境光遮蔽,提升材质缝隙或凹陷处的深度感
AlphaAdjust
含义:全局调整材质透明度的乘数
AlphaTest_Ref
含义:Alpha 测试的阈值,低于此值的像素将被丢弃
深入了解的话,请看腹黑淼淼的呼吸灯与流光的教学
教学传送门(在教学最底下)
https://www.caimogu.cc/post/1923741.html
AnimEmit_Min
含义:呼吸灯的相对的亮度,基准是1,设置成1的时候亮度不会发生变化,大于1的时候会比常态更亮,为负数的时候会缩减发光的时长
AnimEmit_Speed
含义:呼吸灯的呼吸频率。
UseWaveEmit
含义:流水灯开关
AnimEmitWave
含义:控制水流的速度(同时也会控制呼吸频率)
深入了解的话,请看我的UV流动的教学
教学传送门
https://www.caimogu.cc/post/1928771.html
UV_Scroll
含义:流动方向的开关
UV_Scroll_Vectel
含义:流动的向量
UV_Scroll_speed
含义:流动的速度
Use_MoveEmit
含义:启用移动发光效果(如拖尾光效)
注释:
该参数与emi自发光冲突,按照前面的参数命名逻辑,这里的移动光效应该是不会出错的,可能是缺少了什么,或者有什么设置与它是冲突的
MoveEmit
含义:控制移动发光的基础属性
MoveEmit_Width
含义:控制拖尾光效的宽度或衰减范围。
mdf篇太长了,就不写总结了
没有什么特别深入的东西,相信看到这里,你已经大概了解mdf是什么了

