无法从文件节点修改或查询带有标记 <f> 的图像序列路径
Unnable to modify or query image sequence path with token <f> from file nodes
我有参考节点,使用的纹理路径是图像序列:
path\file.< f >.iff (I put it separated so that the editor doesn't change it)
当我执行 getAttr
texture_path = cmds.getAttr('{}.fileTextureName'.format(file_node))
我得到:
path\file.0001.iff
这是序列的第一张图片。它不是常规序列,而是动画纹理,这意味着有时它是 0001,有时是 0002...等等,具体取决于附加到图像序列的动画曲线。
如何使用通配符为纹理设置通用名称?
如果我编辑该属性,Arnold Render 会告诉我这是一个无效标记。似乎还有其他事情在发生。
已编辑:
import pymel.core as pc
obj = pc.PyNode( 'textureFileNode')
obj.fileTextureName.get()
Returns 也没有通配符的路径。
似乎有隐藏的属性没有显示在属性编辑器中。我花了很长时间才弄明白这一切。
在激活 "Use Image Sequence" 复选框时执行更新路径的代码中搜索,我找到了这三个属性:
- fileNode.textureFileNode : 这个在UI里面没有隐藏但是如果没有image sequence on的话这个字段的内容对应变量的内容这个文件节点。否则,如果您查询它,它 returns 序列的第一项。
- fileNode.fileTextureNamePattern :包含显示在
带有标记的图像路径字段。这是你应该查询的,如果你
想要带有标记的路径。可以修改。
- fileNode.computedFileTextureNamePattern :包含生成的 maya
带有标记的路径。无法更改!
修改 fileTextureNamePattern 不会更改 computedFileTextureNamePattern 。要更改它,您需要强制 Maya 重新生成它,首先修改 fileTextureNamePattern,然后修改属性 textureFileNode(按此顺序!)。
重要:为了让 Maya 重新生成第三个参数,文件应该存在。否则,它将不会更改,并且会出现混合路径,直到您通过进行一些更改来更新 UI 。如果你是写批处理脚本,那就全混了!
为什么第三个参数很重要,为什么不只使用 fileTextureNamePattern 属性?
例如,Arnold Render 使用 computedFileTextureNamePattern 来生成 ASS 文件。为了获得图案,maya 中的内部算法会尝试获取它们中的每一个,最后一个,textureFileNode。一般来说,如果maya重新生成了第三个属性,后面的第二个属性是空的,所以还是拿生成的那个比较好。
我有参考节点,使用的纹理路径是图像序列:
path\file.< f >.iff (I put it separated so that the editor doesn't change it)
当我执行 getAttr
texture_path = cmds.getAttr('{}.fileTextureName'.format(file_node))
我得到:
path\file.0001.iff
这是序列的第一张图片。它不是常规序列,而是动画纹理,这意味着有时它是 0001,有时是 0002...等等,具体取决于附加到图像序列的动画曲线。
如何使用通配符为纹理设置通用名称?
如果我编辑该属性,Arnold Render 会告诉我这是一个无效标记。似乎还有其他事情在发生。
已编辑:
import pymel.core as pc
obj = pc.PyNode( 'textureFileNode')
obj.fileTextureName.get()
Returns 也没有通配符的路径。
似乎有隐藏的属性没有显示在属性编辑器中。我花了很长时间才弄明白这一切。
在激活 "Use Image Sequence" 复选框时执行更新路径的代码中搜索,我找到了这三个属性:
- fileNode.textureFileNode : 这个在UI里面没有隐藏但是如果没有image sequence on的话这个字段的内容对应变量的内容这个文件节点。否则,如果您查询它,它 returns 序列的第一项。
- fileNode.fileTextureNamePattern :包含显示在 带有标记的图像路径字段。这是你应该查询的,如果你 想要带有标记的路径。可以修改。
- fileNode.computedFileTextureNamePattern :包含生成的 maya 带有标记的路径。无法更改!
修改 fileTextureNamePattern 不会更改 computedFileTextureNamePattern 。要更改它,您需要强制 Maya 重新生成它,首先修改 fileTextureNamePattern,然后修改属性 textureFileNode(按此顺序!)。
重要:为了让 Maya 重新生成第三个参数,文件应该存在。否则,它将不会更改,并且会出现混合路径,直到您通过进行一些更改来更新 UI 。如果你是写批处理脚本,那就全混了!
为什么第三个参数很重要,为什么不只使用 fileTextureNamePattern 属性? 例如,Arnold Render 使用 computedFileTextureNamePattern 来生成 ASS 文件。为了获得图案,maya 中的内部算法会尝试获取它们中的每一个,最后一个,textureFileNode。一般来说,如果maya重新生成了第三个属性,后面的第二个属性是空的,所以还是拿生成的那个比较好。