请尝试以下可能的解决方案。
无论创建的是渲染层还是场景渲染层,每次只能有一个渲染层可见。
可以将对象添加到层中的集合,而不必位于该层中。因此,您可以将对象添加到目前不位于其中的层。
若要确定所处的层,请查找带有 亮显图标的层。如果位于场景层中,则“渲染设定”(Render Setup)编辑器顶部的“场景”(Scene)设置区域中的 将亮显。
若要切换到其他渲染层或场景层,请在层上单击 。
集合自上而下进行解释。因此,如果同一对象显示在两个集合中且其中一个集合已禁用,则列表中排在下面的集合状态将确定最终状态。请参见控制集合的可见性。
在此示例中,眼睛几何体同时属于顶部和底部集合。但是,由于集合自上而下进行解释且列表中排在下面的集合已禁用,因此它优先于已启用的集合,且眼睛不会显示在渲染层中。
覆盖也自上而下进行解释。请参见覆盖的应用顺序。
选择集合,然后单击“查看全部”(View All)可显示集合成员的列表。
集合“特性编辑器”(Property Editor)中的“集合过滤器”(Collection Filters)功能可用于仅将特定节点类型包含在集合中。如果对象不显示在层中,则有可能已被过滤设置排除。请参见标识集合中缺少的成员和按节点类型添加集合成员。
表达式区分大小写;因此,*apple* 与 *Apple* 不同。如果使用表达式填充集合,请根据节点名称检查表达式,看看是否使用正确的大小写来包括节点。
如果某个节点已添加到集合,但稍后从场景中删除,则集合中可能会缺少该节点。“渲染设置”(Render Setup)编辑器使用 图标来标记层和集合,用来提醒您缺少的成员。如果您有许多层,可能需要向下滚动层列表来找出有错误的层。
父集合将确定成员身份,而子集合应该只包含父集合的部分成员。如果将 pSphere1 和 pSphere2 分别添加到父集合和子集合,则 pSphere2 将在层中不可见。请参见创建子集合。
如果单击“查看全部”(View All)显示集合成员的列表,但发现某些节点未列出,这可能是因为您未使用 : 或 :: 来表示名称空间。
例如,表达式 *foo* 仅与包含字母 foo 的节点名称匹配。它与包含字母 foo 的名称空间不匹配。因此,使用该表达式无法包括 food:food1、food:bread 和 food:fruit:apple 等节点。若要仅包括前两个节点,可以使用表达式 foo:*。若要包括所有三个节点,可以使用表达式 foo::*。
唯一的例外是表达式 *,它包含所有名称空间中的所有节点。
刷新层。检查层可见性图标 周围是否显示红色边界,并单击该图标以相应地更新层。
检查要创建覆盖的节点是否属于集合的一部分。若要执行此操作,请在集合的“特性编辑器”(Property Editor)中单击“查看全部”(View All)。如果要创建覆盖的节点在“查看集合对象”(View Collection Objects)窗口中未列出,那么这就是导致覆盖不生效的原因。
出现这种情况的原因可能包括:节点名称拼写错误(导致与表达式不匹配);或者,在“特性编辑器”(Property Editor)中选择的“集合过滤器”(Collection Filter)错误(导致所需的节点被意外过滤掉)。
一个可能的原因是,没有初始着色组的对象不支持着色器覆盖。这包括 Arnold 替代对象。
改为创建材质覆盖,或为您的对象指定着色器,然后再创建着色器覆盖。
Maya 中使用内部单位计算覆盖,这些单位与您在 Maya 用户界面中看到的单位不同。因此,如果使用脚本在任何时间、帧范围、距离或角度属性上创建覆盖,您应确保使用内部单位设置这些值。
Maya 中时间的内部单位是时间标记 - 六千分之一 (1/6000) 秒,而时间的默认用户界面单位是电影 - 24 帧/秒。
有关内部单位的详细信息,请参见“Maya 开发人员帮助 > C++ API 参考”(Maya Developer Help > C++ API Reference)中的 MTime、MDistance、MAngle API 文档。有关如何转化单位的信息,请参见 Maya 安装文件夹下的 ..\Python\Lib\site-packages\maya\app\renderSetup\model\override.py 文件中的 getAttrValue和 setAttrValue 函数文档。
对于通过用户界面创建的覆盖,其转化由 Maya 自动执行。
这些值显示“不正确”,因为 Maya 中使用内部单位计算覆盖,这些单位与您在 Maya 用户界面中看到的单位不同。例如,20 帧覆盖值将转换为 20 帧/24 帧/秒 * 6000 时间标记/秒 = 5000 时间标记。
有关详细信息,请参见上面的疑难解答 - 通过脚本创建的时间、帧范围、距离或角度上的覆盖生成的结果不准确。
将以下标志添加到属性所属节点的 AE<NodeType>Template.mel 文件中的属性控制命令:
-dragCallback "AEdragCallback"
有关示例,请参见 AElambertCommon.mel。
可以使用鼠标中键拖放 Lambert 节点的“凹凸贴图”(Bump Mapping)属性,因为在 UI 中创建凹凸贴图属性的过程的 attrNavigationControlGrp 部分向其添加了 -dragCallback "AEdragCallback" 行:
global proc AEshaderBumpNew (string $attrName) { setUITemplate -pst attributeEditorTemplate; attrNavigationControlGrp -label (uiRes("m_AElambertCommon.kBumpMapping")) -at $attrName -dragCallback "AEdragCallback" bumpControl; setUITemplate -ppt; }
如果选择一个节点并在“特性编辑器”(Property Editor)中单击“添加”(Add),然后该节点在节点列表中灰显并采用斜体形式,请检查“集合过滤器”(Collection Filter)下拉列表,看看为集合选择的节点类型是否正确。如果尝试添加一个变换节点,但将“集合过滤器”(Collection Filter)设置为“着色器”(Shaders),则该节点不会添加到集合中。
选择“文件 > 全部导入”(File > Import All)时,只能导入使用“文件 > 导出全部”(File > Export All)导出的文件(即:属于完整渲染设置的文件)。使用“文件 > 导出选定对象”(File > Export Selected)导出的文件;即:包含渲染设置子集(例如,一个层和一个集合或两个覆盖)的文件只能通过单击 按钮或者层或集合的快捷菜单导入。
可以通过“导出选定对象”(Export Selected)导出多个项目;但是,这些项目必须属于同一类型。例如,不能仅导出一个层和一个覆盖。否则将出现错误,或者不会显示“导出选定对象”(Export Selected)上下文菜单。
请参见导入和导出渲染设置。
如果在使用“渲染设置”(Render Setup)系统时通过“文件 > 导入”(File > Import)来导入 .ma 或 .mb,AOV 不会与场景文件一起导入。
但如果在使用传统渲染层系统时执行相同操作,AOV 会与场景一起导入。
以前,在 Maya 2016 Extension 2 中,默认用户模板位置为 <Documents>\maya\Templates。在 Maya 2017 中,默认用户模板位置已更改为 <Documents>\maya\RSTemplates。这也是当前行为。如果您将模板保存到 Maya 2016 Extension 2 中的默认位置,则系统无法在更高版本 Maya 中自动识别它们。若要解决此问题,请将模板从 Templates 文件夹复制到新的 RSTemplates 位置。
place3dTexture 节点是变换节点。因此,如果将对象添加到集合中,然后拖放 place3dTexture 节点上的属性以覆盖其属性之一(例如,平移纹理),结果不会创建 place3dTexture 子集合。
解决方法:选择 place3dTexture 节点并手动将其添加到集合中。您可以将其添加到对象集合中,或为这些节点创建单独的集合。如果是后者,请将“集合过滤器”(Collection Filters)下拉列表保留为其默认值(“变换”(Transforms))。
通常,如果不支持覆盖属性,则用于创建覆盖的相应快捷菜单也不可用。
将全局模板路径设置为访问速度缓慢的远程服务器,这可能会导致加载导入模板菜单(通过 或者通过层/集合快捷菜单)时减速。
建议改为将全局模板存储到本地服务器。
同样,如果局部或全局模板路径是由许多文件或子文件夹组成的文件夹,在访问快捷菜单时可能会减慢速度。如果出现这种情况,您可能要选择其他文件夹作为模板路径。
错误可能已输出到“脚本编辑器”(Script Editor)中。检查“脚本编辑器”(Script Editor)中是否存在可能的消息。