MaskimXul opened this issue on Feb 26, 2011 · 11 posts
MaskimXul posted Sat, 26 February 2011 at 5:11 PM
solved the error changed
if img == myimgnam:
to
if img == myimgname:
but it pretty much just listed the texture file locations
Quote - here is one that looks for an image map name and replaces it , might not be quite what you want.
sorry for the name error , O am not at my poser machine so I am working from memory.
searches tree for all materials in figure and replaces named file with new file name
save as material collection to save running script again
import poser
file name used
myimgname = "c:/program files/e frontier/poser7/runtime/textures/oldimgname.jpg"
new file name to be used
newimgname = "c:/program files/e frontier/poser7/runtime/textures/newimgname.jpg"
scn = poser.Scene()
fig = scn.CurrentFigure()
mats = fig.Materials()
for mat in mats:
print mat.Name()
tree = mat.ShaderTree()
nods = tree.Nodes()
for nod in nods:
if nod.Type() == poser.kNodeTypeCodeIMAGEMAP:
img = nod.Input(0).Value()
print img
if img == myimgnam:
nod.input(0).SetString(newimgname)
tree.UpdatePreview
scn.DrawAll()