【教程】关于武器mod制作的一些补充
前言

怪猎武器mod的制作算是十分简单了,本质就是模型替换,而且基本不涉及权重。所以我写一下自己平常做武器的流程和一些理解,希望能帮助到有需要的人。不敢保证教程写的就很完善,有不懂的地方尽管问我吧


我先大概讲一下武器mod的制作流程,附件里会准备好需要的工具

武器制作流程

模型处理

首先打开blender,导入下载好的模型:

点击cats插件的fix按钮就会自动给模型上好材质

再导入想要替换武器的mod3,选择模型骨架让模型的大小和位置与被替换的武器模型对齐(直接选网格也行,但调整好之后记得ctrl+a应用变换或者在编码模式下调整)。

调整网格一般就用三个快捷键G(移动)R(旋转)S(缩放),但想要调的准确,可以用XYZ和右侧小键盘数字键辅助。按下G/R/S后按X/Y/Z可以只调整模型对应轴向上的变换,按下G/R/S后再按小键盘数字键就可以直接调整对应数值。而没按GRS时,小键盘数字键的1,3,7是将选中对象调整到正,侧,顶视图显示,这样可以方便我们观察模型的位置大小是否正确(调整时按blender快捷键没反应可能是因为输入法调成了中文,再调回英文即可)

对齐好后我们需要一个空模去合并来继承怪猎网格的自定义属性。将原本怪猎的网格在编辑模式按x删除顶点,就可以得到一个空模,也可以直接用亮哥的Modder's Batch Tool 批量插件导入空模

先选中替换的网格,再选择被替换的网格,ctrl+j合并(注意鼠标要在红框范围,不然按ctrl+j是没反应的)

合并完之后点击绿色的倒三角,也就是物体数据属性。在这里找到并删除模型所有的顶点组,然后新建顶点组bonefunction_001,选中网格切换到编辑模式按a全选,之后选中顶点组bonefunction_001再点指定,这样网格的权重就全部到bonefunction_001上了

需要注意的是,网格自定义属性的material和mrl3的Material Name要一致,也就是材质名称要一样,不然进游戏会丢材质

确认无误后,选中骨架和网格就可以导出了。

(不过你并不一定能导出成功,这块可以参考谛听的导出报错解决方案,但我们现在有亮哥的Modder's Batch Tool插件,直接选中网格,点击自动导出预处理,便能解决95%的问题)


贴图制作

一般武器模型只有一张颜色贴图,不需要我们去做多个材质或者合并贴图。而我们一般也只需要做EM和RMT贴图就行。NM有的话可以用,但有可能会出现发红光的问题,所以也可以直接调用Assets\default_tex\null_NM这张纯色贴图来代替。

EM可以不做处理,RMT可以参考谛听的手搓贴图教程,然后都存储为dds格式,下面两张图分别为EM/RMT和NM的存储设置,可以保存预设以便下次使用

贴图做完再用Jodo大佬的转换工具,将dds文件拖上去,就会自动转换为世界的.tex格式。如果不会改mrl3,也直接用我给的武器模板,因为是调好的mrl3,直接替换掉EM和RMT贴图就行(没做RMT就只替换EM)。


全部做完之后就可以装上mod进行测试了


武器变形

由于斩斧没找到合适的例子,这里我只讲一下大剑太刀弓箭的这种简单的变形

仔细观察就会发现,大剑太刀这些武器的剑柄收拔刀时是会伸缩的,本质就是剑柄处给了一部分权重到bonefunction_002上,这样所收刀时武器剑柄不会过长,拔刀时也不会因为剑柄太短而出现空握的现象

弓是有3个顶点组来实现弓的拉伸,很多弓模型一般都有刷好的权重,做的时候直接合并权重改对应顶点组的名字就行,没有的话就手刷或者传递吧

还有一种可以通过改自定义属性来实现的武器收拔刀变形,其原理也非常简单,

武器默认的visibleCondition这个值为0,代表始终显示,而改为1就变成仅拔刀显示,同理,2就是仅收刀显示。(需要注意的是,和人物变身不同,太刀的纳刀也算收刀,所以在太刀纳刀时,人物变身还是拔刀的外观,而武器则变为了收刀外观)


武器材质


了解mrl3

武器材质贴图相关都可以在mrl3编辑器里面修改。

打开CrAs-T.Material.Editor后在左上角点open或者直接ctrl+o就可以打开mrl3,在我模板里的mrl3有几种常用的材质预设

下图绿框就是mrl3里的Material Name,红色箭头位置Resource那里可以更改材质使用的贴图路径(Resource那里的贴图指向的路径在左侧资源区添加)。

选中一个材质,点开CEMhMaterislPLLoesl diselosure这一栏,看下面红蓝两框框起来的部分

fBaseMapFactor uiColor:影响的是BML贴图。前三个值影响的是rgb基础色,最后一个是透明度,默认1为不透明,值越小越透,0为完全透明(但我们一般直接改BML贴图a通的灰度,根据黑透白不透,便能让模型实现半透或者完全透明)

fEmissiveMapFactor_uiColor:影响的是EM贴图。三个值别对应rgb(红绿蓝通道)的亮度,也就是自发光,想要让模型发光就在这里调整,需要发什么颜色的光就调对应的通道的值。

fBaseMapFactor uiColor的前三个值越大,模型越偏写实,fEmissiveMapFactor_uiColor的三个值越大,模型就更偏二次元,但要注意平衡这两个值,单独调整会导致模型过亮或过暗。(fBaseMapFactor uiColor的值一般都不超过1,而二次元材质一般将fBaseMapFactor uiColor的的值设为0001,只用自发光去渲染)


mrl3想了解全面建议看下谛听的mrl3不完全讲解


下面继续讲一下呼吸灯流光如何实现

fAnimEmitMin:控制呼吸灯的最小值,值为1的时候就相当于关闭呼吸灯

fAnimEmitSpeed:控制呼吸灯的频率,值越大闪烁的越快,如果开启流光,值越大流光的流动速度就越快

也就是说,设定好最小值,调好频率,模型便有了呼吸灯效果

fAnimEmitWave:控制流光的间距,值越大,波纹段数越多,体感上流光速度也变快了

bUseWaveEmit:0是关闭流光,1是开启流光(:想要流光必须先开启呼吸灯才能有效)

控制流光的是XM贴图的b通,由白流向黑,所以我们只需给XM贴图刷上渐变再把r通和g通涂黑,就可以得到一张能实现流光的XM贴图


很多模型的网格按松散块也拆不出来,没法单独给材质,这里就需要用到透明贴图,来实现特定部位发光,呼吸灯和流光等效果。

如何制作透明贴图

由上面所知,怪猎控制透明效果是BML贴图的a通,遵循的是黑透白不透,纯黑就是完全透明,纯白就是完全不透明,灰色就是半透明。

我们先新建一个图层,根据模型uv用魔棒工具选择我们需要实现透明的部分,再选择图层1,将画笔范围调大,根据我们想要实现的半透效果涂颜色,涂好后按ctrl+shift+i反选,用画笔将剩下的部分涂成黑色。注意不要解锁锁定的图层,否则导出时可能会丢失a通(注:EM用不到A通,所以改了a通的BML依旧可以当作EM贴图来用)

选中整个图层1,将其复制到新建的alpha1通道里,如果贴图原本就有a通或者透明蒙版,也可以直接用

删除图层1,存储为dds,这样我们就得到了一个带a通的BML贴图

如果不放心可以重新打开保存好的贴图,出现Load Transparency as Alpha channel这个选项就证明a通保存成功了


实现特定部位发光

实现特定部位发光的方法很简单,把网格shift+d复制成两份,分别给两个透明材质,一份用透明贴图让不发光的地方正常显示,发光的部分透明,另一份相反,这样改材质效果就只会影响发光部位了。这里我想让发光部分带一点半透明效果,就涂了灰色

然后在mrl3里调整发光部分材质的fEmissiveMapFactor uiColor的值

下面是我分别给100,7,77,50,50的效果,因为原贴图剑刃是青蓝色,所以r通给的更高也没那么亮


空模制作

做空模最简单的就是直接把原模型网格缩小到看不见,导出,这样就得到一个“空模。”

想隐藏刀鞘,收刀隐藏模型,甚至角色隐藏部位,都可以用这个方法快速制作一个空模,但要注意骨架要用对应的,不然可能导致游戏闪退


效果演示

用上述所讲的方法,就可以得到视频所示的武器mod(早上起来想随便写点,结果写了一上午)

模型来源:模之屋

模型版权所属:mihoyo

附件
工具
免费
附件
武器
免费
by 紫月十九 更新于 2025-02-12
若有附件,打赏后可直接下载 赠人玫瑰 手留余香
默认
最新


1