2017-08-31 29 views
0

我正在使用Python和Maya 2015,並且我很好奇在用戶拖動Maya變換小部件時如何動態記錄對象的變換。我也很好奇,在使用腳本的時候,你可能有一個用戶啓動轉換部件,然後腳本會記錄一個對象的用戶輸入變換,並在腳本的其他區域使用這些數字。謝謝。使用Python在Maya中記錄用戶輸入的動態變換數據

回答

0

有沒有簡單的方法來做到這一點。但是,您可以使用不完善的draggerContext命令進行僞造。基本上你想創建一個draggerContext和使用setToolTo

import maya.cmds as cmds 

def on_drag(): 
    # handler for the drag action 
    dragPosition = cmds.draggerContext('dragger', q=True, dragPoint=True) 
    button = cmds.draggerContext('dragger', q=True, button=True) 
    modifier = cmds.draggerContext('dragger', q=True, modifier=True) 

    # print out the values... 
    print dragPosition, button, modifier 
    message = str(dragPosition[0]) + ", " + str(dragPosition[1]) 
    cmds.draggerContext('dragger', edit=True, drawString=message) 

# Define draggerContext with press and drag procedures 
cmds.draggerContext('dragger', dragCommand=on_drag, cursor='hand'); 

cmds.setToolTo('dragger') 

在這個版本中,你會用代碼替換打印輸出到移動選定的對象,並記錄位置將其激活。 draggerContext有一些選項可讓您從光標位置獲得正確的投影到三維空間,但您必須花費一些努力確保行爲符合您的要求。

+0

非常感謝,我會試驗這個。很酷。 – winteralfs

+0

如果您覺得它有用,您應該將答案標記爲未來遇到此問題的人接受 – theodox

相關問題