[英]Dynamic Node Names in MEL Expressions
您知道如何在表達式中更改nodeName,它也將同時更改其內部的名稱嗎? 好吧,我們如何針對諸如pointPosition之類的東西執行此操作,其中nodeName在字符串內部?
例如:
vector $v = `pointPosition -world "outputCloth1.vtx[11]"`;
如果將outputCloth1的名稱更改為myCloth,則該表達式將停止工作,因為字符串仍然顯示outputCloth1!
不幸的是,簡短的答案是,您不能(輕松)..節點內的表達式可能會被Maya保留,因為它位於Maya主動監視的框架的一部分內。 對於您的腳本,不能這么說,因為對於Maya來說,只要您告訴它,它只是一堆文本,它可以讀取和處理...兩個選項本身就可以顯示出來:
(如果可能的話)您可以重寫表達式以動態引用對象 。例如,如果您知道outputCloth1始終是masterObjectGroup15的子代,則可以選擇第一個子代,而不用按名稱進行引用。
進入PyMEL 。 類似於#1,因為您將要引用該對象,並且如果更改名稱,則對該對象的引用仍然有效。 (可能)超出了答案的范圍,但我強烈建議您查看PyMEL入門文檔,因為它們首先給出了一個很好的示例
您還可以考慮通過Maya API構建DG節點-與腳本編寫相比,它的設置工作要多得多,但是您正在做的事情是構建適合標准Maya框架(基本上是自定義節點)的東西-意味着您可以利用Maya為您做的所有內部整理工作。 好極了!
我認為您可以通過message屬性來實現所需的功能。 消息用於在Maya中將節點鏈接在一起,(除其他事項外)消息可以構成腳本的基礎,這些腳本會在重命名節點時自動更新名稱。
抱歉,我沒有更具體的自動取款機示例,但是請仔細閱讀消息-應該可以使您朝正確的方向前進。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.