On 02/08/2018 at 01:34, xxxxxxxx wrote:
I am completely ignorant of scripts
I wondered if it was possible to write a script that would change the name of all the textures of a project, and relink them.
wood_diffuse.jpg becomes texture_001.jpg
wood_reflect.jpg becomes texture_002.jpg
carpet.jpg becomes texture_003.jpg
curtain_fabric.png becomes texture_004.png
all this with vray materials, where textures are placed in the VrayAdvBitmap shader
thanks a lot to everyone
On 02/08/2018 at 15:12, xxxxxxxx wrote:
On 03/08/2018 at 07:21, xxxxxxxx wrote:
Hi Zac Davide, first of all, welcome in the PluginCafe forum.
It's actually not necessary to bump a thread if a day has not passed.
Regarding your question, take in consideration we can only support c4d related stuff, and give you advice about it.
But as you may know or not, a vrayMaterial, is nothing more than a MaterialData and a VrayAdvBitmap, is a ShaderData.
All ShaderData are part of a MaterialData. So with the following script, you will iterate over all the shader within the selected material.
And change the texture path
# Change the texture path to another one for a VrayAdvBitmap
def changeTexture(shader) :
before = "wood_diffuse"
after = "texture_001"
oldPath = shader[c4d.VRAY_BITMAPCCGAMMA_BITMAP_FILENAME] # Read the current value, again I simply drag and drop the parameter in the consoel to knwo the ID
newPath = oldPath.replace(before, after) # Replace before value by new value
doc = shader.GetDocument()
shader[c4d.VRAY_BITMAPCCGAMMA_BITMAP_FILENAME] = newPath # Assign the new value
# Iterate a hierarchy and check if the passed is a VrayAdvBitmap shader
def recurse_hierarchy(shader) :
# Check if it's a VrayAdvBitmap, I know the ID by drag and drop a VrayAdvancedShader into the console
if shader.CheckType(1037364) :
shader = shader.GetNext()
# Main function
def main() :
mats = doc.GetActiveMaterials()
# Iterate over selected material
for mat in mats:
# Execute main()
If you have any question please let me know!
On 03/08/2018 at 10:12, xxxxxxxx wrote:
thank you so much MaximeA
I'll try it immediately, and sorry again for my "precocis bump"