本操作将所有场景中的外部文件路径变为相对路径,以方便共享项目或移动文件。
bpy.ops.file.make_paths_relative(directory="", copy=False, files=[], missing="NONE", relative_lib_path="", path_mode='AUTO')
directory (string): 需要处理的文件夹路径,默认为 "",表示处理当前项目的所有文件。copy (boolean): 是否需要复制文件而不是移动文件, 默认为 False。files (string[]): 需要处理的特定文件列表,可以是单个路径字符串或路径字符串的列表,默认为 []。missing (string): 如何处理丢失的外部文件引用,默认为 'NONE'。relative_lib_path (string): 在移动场景中的外部文件时,将其相对于该路径路径,默认为 ""。path_mode (string): 确定相对路径是使用blend文件所在文件夹( 'AUTO' ,默认值 )还是使用使用场景中包含纹理的obj( 'OBJECT' )。{'FINISHED'}: 成功。将当前项目中的所有外部文件路径变为相对路径:
import bpy
bpy.ops.file.make_paths_relative()
将指定目录内的所有外部文件路径变为相对路径:
import bpy
directory = "/path/to/directory"
bpy.ops.file.make_paths_relative(directory=directory)
将指定文件列表内的所有外部文件路径变为相对路径:
import bpy
files = ["/path/to/file1.blend", "/path/to/file2.obj"]
bpy.ops.file.make_paths_relative(files=files)
将指定目录内的所有外部文件路径变为相对路径,并将所有丢失的链接忽略:
import bpy
directory = "/path/to/directory"
bpy.ops.file.make_paths_relative(directory=directory, missing="IGNORE")
按相对路径移动文件:
import bpy
directory = "/path/to/directory"
relative_path = "/path/to/lib"
bpy.ops.file.make_paths_relative(directory=directory, relative_lib_path=relative_path)
RuntimeError: 操作无法完成,通常是由于文件无法找到或路径无效导致的。