从网上淘到了一套人物的模型,当时的心情是激动无比,掏出用的不熟练的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 indexif tex == undefined then(print("Index " + (index as string)+ " isn't exist in mat, so skip it"))else(tex.name = nametex.filename = maxFilePath + tex.name + ".dds"print (name + " texture name changed ok"))
)--遍历选择的物体
for obj in selection do
(--修改材质名称为与对象名称一致obj.material.name = obj.namelocal num = getNumSubMtls obj.materialif num == 0 then(ChangeTexName obj.material 2 obj.nameChangeTexName obj.material 7 obj.nameprint "main material changed ok")else(local count = 1--处理多维子材质,将多维子材质按照对象名称+递增编号重命名for material in obj.material do(local tempName = obj.nameappend tempName (count as string)material.name = tempNamecount = count + 1--将index 2对应的diffuse贴图改名ChangeTexName material 2 tempName--将index 7对应的opecity贴图改名(如果不需要刻意去掉此行)ChangeTexName material 7 tempNameprint "sub material changed ok"))print "Name Change OK"
)

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

下面看一下使用:

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

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

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

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

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

3DMax脚本插件--修改材质贴图名称相关推荐

  1. 3DMax脚本插件--改动材质amp;贴图名称

    从网上淘到了一套人物的模型,当时的心情是激动无比,掏出用的不熟练的3DMax折腾了半天.突然发现了一个蛋疼的事儿,所有的模型文件,材质名称,子材质,以及贴图所实用的是中文命名!! ! 尽管说是能跑,只 ...

  2. Unity在脚本中修改材质参数

    通过再脚本中修改材质参数,可以实现游戏中动态更新材质表现(如修改颜色),下面是一个在每一帧随机更改材质颜色的简单实例. 1.创建一个Standard Surface Shader,命名为TestSha ...

  3. 3dmax脚本_3DMax二种距离测量方法

    3dmax微信圈子新创建的微信圈子,欢迎大家交流分享. 打开3dmax软件,在视图中随便创建几个物体,通过这几个物体来演示距离的测量方法,如图所示. 方法一:卷尺辅助工具 开启捕捉,直接使用卷尺工具来 ...

  4. 修改材质球面板shader属性数值

    Shader 源代码下载: Unity 每次版本更新的时候,不单单会更新 Unity,配套的资源也是会一块更新 的,比如版本配套的 Shader 源代码. 一:下载步骤: 1.打开unity官网将纵向 ...

  5. iOS使用shell脚本批量修改属性

    背景 公司需要做一系列的壳版本,壳版本如果内容雷同提交到App Store会有被拒绝的风险,除了我在上一篇文章中说道的在壳版本中注入混淆的代码,防止被苹果检测到内容太过雷同而导致审核被拒绝.还有另一种 ...

  6. 室外建筑表现3Dmax和vray常用材质参数设置

    一. 木纹材质调整方法: 1. 木纹材质的肌理调整: A.使用过度色通道贴图后加入凹凸通道贴图,使木纹有凹凸感,肌理更明显凹凸通道强度通常为30% B.材质球的高光强度(specular level: ...

  7. Unity如何批量修改材质的属性

    Unity导入fbx资源文件的时候,需要修改材质的某个属性,其实修改某个属性为同一个值还是比较简单的,只需要全选所有的材质,然后在Inspector里面进行修改就行了,就会批量修改所有的材质属性. 如 ...

  8. 3DMAX纹理插件BerconMaps使用教程

    BerconMaps是3dMax的第三方纹理插件.它添加了五个新的3dMax纹理贴图:噪波(Noise).木纹(Wood).瓷砖(Tile).失真(Distortion)和渐变(Gradient). ...

  9. ps修改dds贴图_3DsMax+PS制作发光logo

    最终效果 01 在网上搜索一张背景单一的LOGO图片,用PS打开,如图所示.(随便什么样的logo都行,这里用到华为的logo做例子) 02 使用魔棒工具在图片中选取红色部分,如下图所示.(如果log ...

最新文章

  1. java监听器定时删除,java监听器定时删除服务器上的文件
  2. C++知识点50——虚函数与纯虚函数(上)
  3. 计算机二级题31套资料,计算机等级考试:二级VFP机试第31套
  4. 作业1-四则运算题目生成程序
  5. 【NOI2019】回家路线【无后效性dp状态设计】【斜率优化】
  6. 和aes相比较有哪些特点_“黑枸杞”和“红枸杞”相比较,功效方面究竟存在哪些差别?...
  7. cpu频率_新版win10修复CPU频率显示不正确的bug
  8. Minecraft Forge:如何下载,安装和使用Forge
  9. Pentium Pro架构/流水线及其优化 (1) - 架构概述
  10. CentOS设置时区
  11. python写一个笔记软件_科学网—python学习笔记(1)——创建应用 - 高雪峰的博文...
  12. python定时任务启动与停止_Python启动定时任务
  13. python生成中文字符画_python实战练手项目---字符画及其原理
  14. bootstrap登录模板
  15. 訾博 2021年1月29日 周五 晴 致敬“最可爱的人”
  16. Slurm作业启动原理
  17. MYSQL修改数据库密码
  18. c语言中int 3.6 =,(C语言中的常量)乐创DIY C语言讲义​——3.6节
  19. oracle从入门到精通(4)------运算符,分组查询,函数
  20. 使用 EasyCV Mask2Former 轻松实现图像分割

热门文章

  1. 客户和服务器之间响应的序列,网络编程-第五讲-TCP客户-服务器程序例子.pdf-原创力文档...
  2. mysql用户函数_MySQL 函数、用户自定义函数
  3. 对称式创新RC振荡器
  4. php线雕,线雕的发展史,你知道吗?
  5. Unreal主材质剖析
  6. Android之ExpandableList扩展用法(基于BaseExpandableListAdapter)
  7. 2021-07-19虚拟化内存(一)
  8. css让几个快对象同时居中,多个CSS 居中方案,你可能还不知道!
  9. 计算机在线作业三答案,电科19秋《计算机操作系统》在线作业3【满分答案】
  10. 基于Python的旅游管理系统微信小程序设计与实现毕业论文+项目源码及数据库