该工具用于 Blender 场景的外观开发(look development),提供材质预设、着色器与贴图分配、纹理图片管理以及色彩管理相关的辅助能力。材质预设以可移植的 dcc-mcp-blender.material-preset.v1 JSON 形状存储在场景中;纹理助手仅针对显式给出的本地图片路径操作,不假设任何私有资产库路径、服务或主机名。
图片生命周期方面,list_images 与 reload_image 用于报告已加载的图片;实际定位由以下工具负责:load_image 将磁盘文件载入数据块集合;save_image 将数据块写回磁盘;pack_image / unpack_image 用于嵌入 .blend 或写出并停止嵌入;image_file_status 报告图片状态(packed、external、missing、unsaved 或 modified);list_image_tiles 列出 UDIM 瓦片,非 UDIM 图片报告一个瓦片。
实践中需注意:打包是经过确认的,如果打包调用后没有任何内容被打包,工具会失败而不会报告未实际发生的嵌入成功;对已打包图片再次打包是无操作并会说明。save_image 可在 blender --background 下工作,但从磁盘载入的图片在真正读取前没有解码像素。其实现是刻意的:它从不赋值 image.filepath,因为在后台模式下赋值会把数据块与文件重新关联并使已解码像素缓冲失效——解码前赋值会导致像素为空(读取时报 IndexError),解码后赋值会使 save() 因“does not have any image data”失败,因此直接不赋值;它通过索引 image.pixels[0] 解码,然后检查 has_data。若带 file_path,则通过 save_render(path) 写入显式路径而不重新指向数据块;无路径时通过 image.save() 原地写入。两种方式都会在写入后确认文件存在,因此写出空文件会视为失败。另有两点:len(image.pixels) 不能用作探测,因为所有受支持版本中它在 has_data 仍为 False 时就已报告完整像素数;save_render 会应用场景色彩管理,因此与 image.save() 并非逐字节相同,但它是“在该路径保存副本”的唯一可行途径。只有从磁盘载入的图片需要解码,生成的图片已带像素数据可直接保存,打包则复制源文件无需此过程。save_image 对没有路径的生成图片需要显式路径,否则会报告而非猜测位置。运行中的 Blender 若拒绝某色彩空间,会在 not_applied 中返回,使调用方看到赋值未生效。打包与解包会移动文件,但两者都不删除图片数据。