2016-09-20 63 views
0

我已经引用的节点文件中的节点,其中所使用的纹理的路径是图像序列与令牌 查询图像序列路径: Unnable修改或从

路径\文件。 <˚F> .IFF(我把它分离,使得编辑器不改变它)

当我做GETATTR

texture_path = cmds.getAttr('{}.fileTextureName'.format(file_node)) 

我得到:

路径\文件。 0001.iff

这是序列的第一个图像。它不是常规序列,但它是一个动画纹理,这意味着有时它是0001,其他时间是0002 ...等,这取决于附加到图像序列的动画曲线。

如何使用通配符为纹理设置通用名称?

如果我编辑该属性,Arnold Render告诉我这是一个无效的标记。似乎下面还有其他事情发生。

编辑:

import pymel.core as pc 
obj = pc.PyNode('textureFileNode') 
obj.fileTextureName.get() 

原封不动地返回通配符也路径。

回答

0

似乎隐藏属性没有在属性编辑器中显示。花了很长时间才弄明白这一切。

在执行更新路径,当你激活“使用图像序列”复选框的代码搜索,我发现这三个属性:

  • filenode的。 textureFileNode:如果在此文件节点上没有图像序列,则这不会隐藏在UI中,而是该字段的内容对应于变量的内容。否则,如果您查询它,它将返回序列的第一个项目。
  • fileNode。 fileTextureNamePattern:包含具有标记的 图像路径字段中显示的路径。如果你想要带有标记的路径,那么这是你应该查询的那个。可以修改。
  • fileNode。 computedFileTextureNamePattern:包含maya生成的带有标记的 路径。它不能改变!

修改fileTextureNamePattern不会改变computedFileTextureNamePattern。要更改它,您需要强制Maya重新生成它,首先修改fileTextureNamePattern,然后是属性textureFileNode(按照该顺序!)。

重要:文件应该存在才能让Maya重新生成第三个参数。否则,它将不会被更改,并且在您通过做一些更改来更新UI之前,路径的组合将会一直存在。如果您正在编写批处理脚本,它将会混杂在一起!

为什么第三个参数很重要,为什么不使用fileTextureNamePattern属性? 例如,Arnold Render使用computedFileTextureNamePattern来生成ASS文件。为了得到这个模式,maya中的内部算法试图获得它们中的每一个,最后一个是textureFileNode。一般来说,如果maya重新生成第三个属性,那么第二个属性在之后是空的,因此获取生成的属性是一个更好的主意。