方法一:
for i in objects do ( --判断是否是多维材质 if (classof i.material==Multimaterial) then ( --遍历子材质球(个数) for numsubs =1 to i.material.numsubs do ( --获得当前材质球颜色贴图的文件名 fileName = getfilenamefile i.material[numsubs].diffusemap.filename --获得当前材质球颜色贴图的文件类型(.后缀名) fileType = getfilenametype i.material[numsubs].diffusemap.filename --贴图名字=文件名+后缀名 texName=fileName+fileType --去除材质球贴图的路径名,只保留贴图本身的名字(相对路径) i.material[numsubs].diffusemap.filename=texName ) )--end of if else ( fileName =getfilenamefile i.material.diffusemap.filename fileType=getfilenametype i.material.diffusemap.filename texName=fileName+fileType i.material.diffusemap.filename=texName )--end of else )--end of for loop
方法二:
for i in objects do ( --判断是否是多维材质 if (classof i.material==Multimaterial) then ( --遍历子材质球(个数) for numsubs =1 to i.material.numsubs do ( --获得当前材质求的贴图全路径 fullpath = i.material[numsubs].diffusemap.filename --将全路径的字符串分割,并返回到一个集合中 filterName=filterstring fullpath "\" --集合中最后一个元素就是当前贴图的名字 texName=filterName[filterName.count] --去除材质球贴图的路径名,只保留贴图本身的名字(相对路径) i.material[numsubs].diffusemap.filename=texName ) )--end of if else ( fullpath = i.material.diffusemap.filename filterName=filterstring fullpath "\" texName=filterName[filterName.count] i.material.diffusemap.filename=texName )--end of else )--end of for loop
*方法三:将全部贴图设置成相对路径
for i in objects do ( --判断是否是多维子材质 if(classof i.material==Multimaterial) then ( --遍历多维材质的材质球个数 for numsubs = 1 to i.material.numsubs do ( --判断子材质球是否不是未定义 if(i.material[numsubs]!=undefined)do ( --将子材质的全部贴图文件存放到数组中 mapsAll=i.material[numsubs].maps --遍历贴图的数量 for m = 1 to mapsAll.count do ( --判断贴图是否不是未定义 if (mapsAll[m]!=undefined) do ( --获取贴图名字 fileName=getfilenamefile mapsAll[m].filename --获取贴图格式(后缀名) fileType=getfilenametype mapsAll[m].filename --获取贴图的名称(文件名+后缀名) texName=fileName+fileType --重新赋值贴图的名字(设置成相对路径) mapsAll[m].filename=texName )--end of if )--end of mapsAll.count loop )--end of if )--end of numsubs loop )--end of if else ( --将材质的全部贴图文件存放到数组中 mapsAll=i.material.maps --遍历贴图的数量 for m=1 to mapsAll.count do ( --判断贴图是否不是未定义 if (mapsAll[m]!=undefined) do ( --获取贴图名字 fileName =getfilenamefile mapsAll[m].filename --获取贴图格式(后缀名) fileType=getfilenametype mapsAll[m].filename --获取贴图的名称(文件名+后缀名) texName=fileName+fileType --重新赋值贴图的名字(设置成相对路径) mapsAll[m].filename=texName )--end of if )--end of mapsAll.count loop )--end of else )--end of for loop