设置相对路径的方法

方法一:

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
原文地址:https://www.cnblogs.com/amixc/p/4026602.html