getAttr of fileTextureName on an image sequence doesn't return wildcards

130 views
Skip to first unread message

Lidia Martinez

unread,
Sep 20, 2016, 9:11:12 AM9/20/16
to python_in...@googlegroups.com

I need to modify the path set for an image sequence on a texture file.
First, when I try to get the path using getAttr, instead of having the same string in the field:

path_to_files_<f>.iff

I get the first file of the sequence instead:

path_to_files_0001.iff

I suppose this is a bug in Maya?...


This was set by the people working on the textures, and they didn't know doing it automatically would not generate a #### pattern, but that <f>.


So, after modifying that path, I need to generate the right path ending again, replacing that number for <f> or ####.


If I change to ####, Arnold (which is the plugin that will eventually uses it), doesn't get the texture that used to work. Weird, because if you change it by hand on Maya, it works.

If I set <f> , Arnold returns "unknown token <f>" error. 


This is not an Arnold problem. The thing is that changing that using code breaks the path somehow.



Any ideas?

Thanks


--
Lidia

Lidia Martinez

unread,
Sep 20, 2016, 10:57:56 AM9/20/16
to python_in...@googlegroups.com
Just as a follow up. Maya does this on the background when you activate image sequences:


import maya.app.general.fileTexturePathResolver
maya.app.general.fileTexturePathResolver.getFilePatternString('C:/texture.0001.iff', True, 0)
# Result: 'C:/texture.<f>.iff'

But it doesn't tell you what it does, because if you set that using setAttr , it will fail in Arnold. But if you let maya do it, it will work. Maya is doing something else after getting that, but echoing all commands will return nothing after that call. 

So after that, maya is doing some magic I don't know about...




--
Lidia

Justin Israel

unread,
Sep 20, 2016, 5:43:19 PM9/20/16
to python_in...@googlegroups.com
On Wed, Sep 21, 2016 at 1:11 AM Lidia Martinez <darksi...@gmail.com> wrote:

I need to modify the path set for an image sequence on a texture file.
First, when I try to get the path using getAttr, instead of having the same string in the field:

path_to_files_<f>.iff

I get the first file of the sequence instead:

path_to_files_0001.iff

I suppose this is a bug in Maya?...


This was set by the people working on the textures, and they didn't know doing it automatically would not generate a #### pattern, but that <f>.

How about this?

cmds.getAttr(".computedFileTextureNamePattern")
path_to_files_<f>.iff


computedFileTextureNamePattern (cfnp)stringTmultiSharedObject::create<TdataString>""outputinputhidden
Computed File Texture NamePattern is the name of an image file with certain parts replaced with token identifiers based on the configuration of the file node. This value is automatically computed by Maya and never stored.

That would make sense why it wasn't being returned by the normal "fileTextureName" attribute, since its computed and used dynamically.

 


So, after modifying that path, I need to generate the right path ending again, replacing that number for <f> or ####.


If I change to ####, Arnold (which is the plugin that will eventually uses it), doesn't get the texture that used to work. Weird, because if you change it by hand on Maya, it works.

If I set <f> , Arnold returns "unknown token <f>" error. 


This is not an Arnold problem. The thing is that changing that using code breaks the path somehow.



Any ideas?

Thanks


--
Lidia

--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_m...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAAB1%3D8wmCchawE-VQyXU%2BkdDw%2BTgtBZkWatzqxOciKD2ZxiFRg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages