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 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脚本插件--修改材质贴图名称相关推荐
- 3DMax脚本插件--改动材质amp;贴图名称
从网上淘到了一套人物的模型,当时的心情是激动无比,掏出用的不熟练的3DMax折腾了半天.突然发现了一个蛋疼的事儿,所有的模型文件,材质名称,子材质,以及贴图所实用的是中文命名!! ! 尽管说是能跑,只 ...
- Unity在脚本中修改材质参数
通过再脚本中修改材质参数,可以实现游戏中动态更新材质表现(如修改颜色),下面是一个在每一帧随机更改材质颜色的简单实例. 1.创建一个Standard Surface Shader,命名为TestSha ...
- 3dmax脚本_3DMax二种距离测量方法
3dmax微信圈子新创建的微信圈子,欢迎大家交流分享. 打开3dmax软件,在视图中随便创建几个物体,通过这几个物体来演示距离的测量方法,如图所示. 方法一:卷尺辅助工具 开启捕捉,直接使用卷尺工具来 ...
- 修改材质球面板shader属性数值
Shader 源代码下载: Unity 每次版本更新的时候,不单单会更新 Unity,配套的资源也是会一块更新 的,比如版本配套的 Shader 源代码. 一:下载步骤: 1.打开unity官网将纵向 ...
- iOS使用shell脚本批量修改属性
背景 公司需要做一系列的壳版本,壳版本如果内容雷同提交到App Store会有被拒绝的风险,除了我在上一篇文章中说道的在壳版本中注入混淆的代码,防止被苹果检测到内容太过雷同而导致审核被拒绝.还有另一种 ...
- 室外建筑表现3Dmax和vray常用材质参数设置
一. 木纹材质调整方法: 1. 木纹材质的肌理调整: A.使用过度色通道贴图后加入凹凸通道贴图,使木纹有凹凸感,肌理更明显凹凸通道强度通常为30% B.材质球的高光强度(specular level: ...
- Unity如何批量修改材质的属性
Unity导入fbx资源文件的时候,需要修改材质的某个属性,其实修改某个属性为同一个值还是比较简单的,只需要全选所有的材质,然后在Inspector里面进行修改就行了,就会批量修改所有的材质属性. 如 ...
- 3DMAX纹理插件BerconMaps使用教程
BerconMaps是3dMax的第三方纹理插件.它添加了五个新的3dMax纹理贴图:噪波(Noise).木纹(Wood).瓷砖(Tile).失真(Distortion)和渐变(Gradient). ...
- ps修改dds贴图_3DsMax+PS制作发光logo
最终效果 01 在网上搜索一张背景单一的LOGO图片,用PS打开,如图所示.(随便什么样的logo都行,这里用到华为的logo做例子) 02 使用魔棒工具在图片中选取红色部分,如下图所示.(如果log ...
最新文章
- java监听器定时删除,java监听器定时删除服务器上的文件
- C++知识点50——虚函数与纯虚函数(上)
- 计算机二级题31套资料,计算机等级考试:二级VFP机试第31套
- 作业1-四则运算题目生成程序
- 【NOI2019】回家路线【无后效性dp状态设计】【斜率优化】
- 和aes相比较有哪些特点_“黑枸杞”和“红枸杞”相比较,功效方面究竟存在哪些差别?...
- cpu频率_新版win10修复CPU频率显示不正确的bug
- Minecraft Forge:如何下载,安装和使用Forge
- Pentium Pro架构/流水线及其优化 (1) - 架构概述
- CentOS设置时区
- python写一个笔记软件_科学网—python学习笔记(1)——创建应用 - 高雪峰的博文...
- python定时任务启动与停止_Python启动定时任务
- python生成中文字符画_python实战练手项目---字符画及其原理
- bootstrap登录模板
- 訾博 2021年1月29日 周五 晴 致敬“最可爱的人”
- Slurm作业启动原理
- MYSQL修改数据库密码
- c语言中int 3.6 =,(C语言中的常量)乐创DIY C语言讲义​——3.6节
- oracle从入门到精通(4)------运算符,分组查询,函数
- 使用 EasyCV Mask2Former 轻松实现图像分割
热门文章
- 客户和服务器之间响应的序列,网络编程-第五讲-TCP客户-服务器程序例子.pdf-原创力文档...
- mysql用户函数_MySQL 函数、用户自定义函数
- 对称式创新RC振荡器
- php线雕,线雕的发展史,你知道吗?
- Unreal主材质剖析
- Android之ExpandableList扩展用法(基于BaseExpandableListAdapter)
- 2021-07-19虚拟化内存(一)
- css让几个快对象同时居中,多个CSS 居中方案,你可能还不知道!
- 计算机在线作业三答案,电科19秋《计算机操作系统》在线作业3【满分答案】
- 基于Python的旅游管理系统微信小程序设计与实现毕业论文+项目源码及数据库