2013-02-03 36 views
0

有沒有一種方法使用NODES來獲得以前的變換或在我的案例翻譯,從時間?我寫了一個簡單的表達式,但我真的想用節點來實現這一點。獲取以前的變換Maya

$ transx = getattr 'objname.tx' -frame time -1;

或相似反正我不能完全記住的東西,但它在表達式中使用getatrr了。

任何想法?

回答

0

表達式節點是節點,堅韌getAttr裏面的一個表達式節點打破了節點流。但是,可以將前一次運行的值與frameCache節點一起存儲。或者您可以將值存儲在表達式中的屬性中。

node.tx = node.cacheTx; 
node.cacheTx = objname.tx; 

這會更快,因爲它不會中斷屬性評估流程。這兩種機制都存在缺陷,如果在框架更改之間發生變化,它們不會評估時間背景。 Maya用戶一直在做什麼,導致用戶反饋不佳。實際上,這種實現非常複雜的自定義節點的做法很少。

這是很難的原因是因爲瑪雅用戶已經用他們的實際行動成功地打破了瑪雅人的時間機制。然後,開發人員在用戶壓力下投降並允許這樣做,但這已經打破了Mayas時間評估週期,因此並非所有事情都可以通過時間上下文轉移來查詢。難以在Maya中創建差分方程求解器。當然,在這種特殊情況下,節點並不是特別難做,但實際上在大多數情況下工作的節點很難。

+0

我真的不明白你提供的代碼會如何處理「以前的」translationX,它們不僅僅是相同的值嗎? –

+0

啊,對不起,線路是錯誤的。 – joojaa

+0

你可以編輯你的答案SO –