2013-10-28 36 views
0

我只想知道如何将多个代理添加到我的Maya场景中引用的文件中。将多个代理添加到场景中的引用

情景: 我们选用含有“_v001”对象:

select -r "*_v001"; 

我们创造增加代理每个引用文件的功能:

global proc proxyAddition() 
{ 
    string $selectionList[] = `ls -sl`; 
    if(size($selectionList)) 
    { 
     string $object = $selectionList[0]; 
     string $currentRN = `referenceQuery -rfn $object`; 
     string $currentFilePath = `referenceQuery -filename $object`; 
     string $currentNamespace = `referenceQuery -namespace $object`; 
     if(endsWith($currentRN, "v001RN") == 1) 
     { 
      string $newRN = `substitute "v001RN" $currentRN "v002"`; 
      string $newFilePath = `substitute "v001" $currentFilePath "v002"`; 
      string $newNamespace = `substitute "v001" $currentNamespace "v002"`; 
      proxyAdd $currentRN $newFilePath "HD"; 
      print "Opération effectuée avec succès."; 
     } 
    } 
    else 
    { 
     warning "Aucun objet de type v001 dans la scène."; 
    } 
} 
proxyAddition; 

我要的是找到一张每个引用文件中的字符串“v001”并将其更改为“v002”(对于proxyName,命名空间和文件路径)。

谢谢! :)

+0

如果您的上次编辑是解决方案,请将其从中删除,并将其添加到下面的答案部分。如果可能的话还有一些解释,这对社区有帮助。稍后接受(适当的)答案。 –

+0

谢谢你的评论! ;) – mickaelb91

回答

1

最后我成功完成它:

select -r "*_v001:*"; 
global proc proxyAddition() 
{ 
    string $selectionList[] = `ls -sl -type "mesh"`; 
    if(size($selectionList)) 
    { 
     for($object in $selectionList) { 
      string $currentRN = `referenceQuery -rfn $object`; 
      string $currentFilePath = `referenceQuery -filename $object`; 
      string $currentNamespace = `referenceQuery -namespace $object`; 
      if(endsWith($currentRN, "v001RN") == 1) 
      { 
       string $newRN = `substitute "v001RN" $currentRN "v002"`; 
       string $newFilePath = `substitute "v001" $currentFilePath "v002"`; 
       string $newNamespace = `substitute "v001" $currentNamespace "v002"`; 
       proxyAdd $currentRN $newFilePath "HD"; 
       print "Opération effectuée avec succès."; 

      } 
     } 
    } 
    else 
    { 
     warning "Aucun objet de type v001 dans la scène."; 
    } 
} 
proxyAddition; 

的脚本选择对象,名字中含有“_v001”,然后对其过滤只保留网格对象。 之后,我们使用referenceQuery方法来存储我们当前的参考变量。然后我们在新变量中将包含“v001”字符串值的变量替换为“v002”。这个替换方法用于我们当前引用对象的文件路径,名称空间和ReferenceNode。通过这些新变量,我们可以使用“proxyAdd”添加我们的新代理/代理。

只有在参考文件在同一文件夹中时,此过程才有效。 如果不是这种情况,请使用替代方法将更多选项用于文件路径var。 您也可以根据您自己的值来更改“v001”和“v002”,以区分参考文件版本。

“HD”参数用于参考文件的proxyTag。

相关问题