2013-10-28 31 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。

相關問題