3DMax脚本插件:修改材质&贴图名称
Vivian 2018-05-28 来源 : 阅读 1525 评论 0

摘要:本文主要向大家介绍3DMax脚本插件,关于修改材质以及贴图名称,希望对大家学习有所帮助。

本文主要向大家介绍3DMax脚本插件,关于修改材质以及贴图名称,希望对大家学习有所帮助。

从网上淘到了一套人物的模型,当时的心情是激动无比,掏出用的不熟练的3DMax折腾了半天,突然发现了一个蛋疼的事儿,所有的模型文件,材质名称,子材质,以及贴图全部用的是中文命名!!!虽然说是能跑,不过这个命名也忒不规范了,将模型,资源导入了Unity,关联产生的资源和材质名称也都是中文的!!!虽说是能用,不过心里总感觉有点儿别扭,然而要修改一系列的名称又太太太麻烦....于是我这个懒人就想到了写一个max脚本完成这个功能。

我搞到的素材在Max里面打开是酱紫的,赤果果的中文命名:

从文件名,模型名称,材质名称,子材质名称,贴图名称,贴图路径都是中文...

我的思路大概是这样:

1)max文件名称保持不变,仍然为中文,方便查找,而且这个无影响。

2.)手动修改模型名称为自己希望的英文名,根据材质名称 手动修改文件夹下的贴图名称为“模型名称 + 递增编号”

3)通过脚本,自动将材质名称改为模型名称,如果有多维子材质,自动将子材质重命名为 ”模型名称 + 递增编号“

4)通过脚本,自动将材质对应的贴图名称&贴图路径名改为当前路径下对应的贴图。

 

好了,废话不多说了,上代码:

--更换材质包含的贴图的名称--arg: mat 材质名--arg: index standard material 中贴图的index 比如2是diffuse 7是Opacity--arg  name 要修改的名称
function ChangeTexName mat index name =
(
tex = getSubTexmap mat index
if tex == undefined then
(
print("Index " + (index as string)+ " isn't exist in mat, so skip it")
)
else
(
tex.name = name
tex.filename = maxFilePath + tex.name + ".dds"
print (name + " texture name changed ok")
)
)
--遍历选择的物体
for obj in selection do 
(
--修改材质名称为与对象名称一致
obj.material.name = obj.name
local num = getNumSubMtls obj.material
if num == 0 then
(
ChangeTexName obj.material 2 obj.name
ChangeTexName obj.material 7 obj.name
print "main material changed ok"
)
else
(
local count = 1
--处理多维子材质,将多维子材质按照对象名称+递增编号重命名
for material in obj.material do
(
local tempName = obj.name
append tempName (count as string)
material.name = tempName
count = count + 1
--将index 2对应的diffuse贴图改名
ChangeTexName material 2 tempName
--将index 7对应的opecity贴图改名(如果不需要刻意去掉此行)
ChangeTexName material 7 tempName
print "sub material changed ok"
)
)
print "Name Change OK"
)

 

 

详细的注释我写在了代码中,主要要注意的是一个地方,由于我的资源是使用了Diffuse和Opecity两个贴图,所以我这样写,如果要改名字的脚本是其他类型的贴图,只需要修改Index值就可以,index的对应关系如下:

3DMax脚本插件:修改材质&贴图名称

下面看一下使用:

我首先根据材质编辑器中的贴图,将文件夹下的贴图修改名称,这时,模型会因为找不到贴图而变成白色:

 3DMax脚本插件:修改材质&贴图名称

然后,我们把模型名称修改一下,改成jingyingbaijianke,然后运行脚本:

 3DMax脚本插件:修改材质&贴图名称

由于最后一个贴图没有用Opecity贴图,所以跳过了修改。这时,我们的模型贴图又回来了,而我们打开材质编辑器,也可以看到,所有的中文都被我们修改成我们想要的命名了:

 3DMax脚本插件:修改材质&贴图名称

 

由于这些模型资源是一个蒙皮文件(max)+若干个动作文件(max)+贴图文件(dds)放在同一个目录下,所以我只需要第一次修改一次贴图文件名称,然后每次打开一个文件之后,重命名一下模型,运行一下脚本,所有材质,子材质,贴图名,贴图路径就都变成我们设定好的名称了,哇咔咔!!

比如我重新打开一个动作文件,开始时会提醒我贴图丢失,我们直接点击跳过,然后修改模型名,运行脚本,一切就都自动搞定了。然后我们就可以放心大胆的把它们导入到Unity中,最后再来张帅帅哒图片。

 3DMax脚本插件:修改材质&贴图名称

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标常用软件3Dmax频道!

本文由 @Vivian 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved