Ok, creo que seria algo facil si se hiciera de esta forma:
por ejemplo:esta un archivo A (C:\A.max) con una cantidad de objetos con un material y un modificador UVWMap cada uno (ojo si es unwrap no funciona), y un archivo B (C:\B.max) con objetos equivalentes a los del archivo A, con los mismos nombres pero con modificaciones. Entonces para obtener el material y el modificador uvw map de los objetos viejos y ponerselos a los nuevos puedes hacer que el script primero abriera el archivo viejo, copiara los materiales y los modificadores UVWMap de cada uno de los objetos, luego abriera el archivo nuevo y asignara los materiales y los modificadores a sus respectivos objetos:
Código:
ArchivoA="C:\A.max"
ArchivoB="C:\B.max"
ListaModMat=#()
loadMaxFile ArchivoA quiet:true
for obj in Geometry do
(
append ListaModMat #(obj.name, obj.material, obj.modifiers[#UVW_Mapping])
)
loadMaxFile ArchivoB quiet:true
for MM in ListaModMAt do
(
obj=getNodeByName MM[1]
if obj!=undefined then
(
obj.material=MM[2]
if MM[3]!=undefined then addmodifier obj MM[3]
)
)
saveMaxFile (maxFilePath + maxFileName)
en el archivo A el script recorre todos los objetos con geometria en la escena y por cada objeto almacena el nombre, el material y el modificador en una lista: #(obj.name, obj.material, obj.modifiers[#UVW_Mapping]), esta a su vez es almacenda en otra lista llamada ListaModMat que contendria todas las listas de cada objeto.
Luego abre el archivo B, recorre cada item de la ListaModMat, obtiene el objeto a partir del nombre, si este objeto existe le asigna el material y si el modificador existe le asigna el modificador.
si no quieres que guarde el archivo al final tienes que quitarle la ultima linea.
espero que te pueda ser de utilidad
